Code Duplication    Length = 122-122 lines in 2 locations

class.json-api-endpoints.php 1 location

@@ 1151-1272 (lines=122) @@
1148
		return (object) $response;
1149
	}
1150
1151
	function get_media_item_v1_1( $media_id ) {
1152
		$media_item = get_post( $media_id );
1153
1154
		if ( ! $media_item || is_wp_error( $media_item ) )
1155
			return new WP_Error( 'unknown_media', 'Unknown Media', 404 );
1156
1157
		$file = basename( wp_get_attachment_url( $media_item->ID ) );
1158
		$file_info = pathinfo( $file );
1159
		$ext  = $file_info['extension'];
1160
1161
		$response = array(
1162
			'ID'           => $media_item->ID,
1163
			'URL'          => wp_get_attachment_url( $media_item->ID ),
1164
			'guid'         => $media_item->guid,
1165
			'date'         => (string) $this->format_date( $media_item->post_date_gmt, $media_item->post_date ),
1166
			'post_ID'      => $media_item->post_parent,
1167
			'author_ID'    => (int) $media_item->post_author,
1168
			'file'         => $file,
1169
			'mime_type'    => $media_item->post_mime_type,
1170
			'extension'    => $ext,
1171
			'title'        => $media_item->post_title,
1172
			'caption'      => $media_item->post_excerpt,
1173
			'description'  => $media_item->post_content,
1174
			'alt'          => get_post_meta( $media_item->ID, '_wp_attachment_image_alt', true ),
1175
			'thumbnails'   => array()
1176
		);
1177
1178
		if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
1179
			$metadata = wp_get_attachment_metadata( $media_item->ID );
1180
			if ( isset( $metadata['height'], $metadata['width'] ) ) {
1181
				$response['height'] = $metadata['height'];
1182
				$response['width'] = $metadata['width'];
1183
			}
1184
1185
			if ( isset( $metadata['sizes'] ) ) {
1186
				/**
1187
				 * Filter the thumbnail sizes available for each attachment ID.
1188
				 *
1189
				 * @module json-api
1190
				 *
1191
				 * @since 3.9.0
1192
				 *
1193
				 * @param array $metadata['sizes'] Array of thumbnail sizes available for a given attachment ID.
1194
				 * @param string $media_id Attachment ID.
1195
				 */
1196
				$sizes = apply_filters( 'rest_api_thumbnail_sizes', $metadata['sizes'], $media_id );
1197
				if ( is_array( $sizes ) ) {
1198
					foreach ( $sizes as $size => $size_details ) {
1199
						$response['thumbnails'][ $size ] = dirname( $response['URL'] ) . '/' . $size_details['file'];
1200
					}
1201
				}
1202
			}
1203
1204
			if ( isset( $metadata['image_meta'] ) ) {
1205
				$response['exif'] = $metadata['image_meta'];
1206
			}
1207
		}
1208
1209
		if ( in_array( $ext, array( 'mp3', 'm4a', 'wav', 'ogg' ) ) ) {
1210
			$metadata = wp_get_attachment_metadata( $media_item->ID );
1211
			$response['length'] = $metadata['length'];
1212
			$response['exif']   = $metadata;
1213
		}
1214
1215
		if ( in_array( $ext, array( 'ogv', 'mp4', 'mov', 'wmv', 'avi', 'mpg', '3gp', '3g2', 'm4v' ) ) ) {
1216
			$metadata = wp_get_attachment_metadata( $media_item->ID );
1217
			if ( isset( $metadata['height'], $metadata['width'] ) ) {
1218
				$response['height'] = $metadata['height'];
1219
				$response['width']  = $metadata['width'];
1220
			}
1221
1222
			if ( isset( $metadata['length'] ) ) {
1223
				$response['length'] = $metadata['length'];
1224
			}
1225
1226
			// add VideoPress info
1227
			if ( function_exists( 'video_get_info_by_blogpostid' ) ) {
1228
				$info = video_get_info_by_blogpostid( $this->api->get_blog_id_for_output(), $media_id );
1229
1230
				// Thumbnails
1231
				if ( function_exists( 'video_format_done' ) && function_exists( 'video_image_url_by_guid' ) ) {
1232
					$response['thumbnails'] = array( 'fmt_hd' => '', 'fmt_dvd' => '', 'fmt_std' => '' );
1233
					foreach ( $response['thumbnails'] as $size => $thumbnail_url ) {
1234
						if ( video_format_done( $info, $size ) ) {
1235
							$response['thumbnails'][ $size ] = video_image_url_by_guid( $info->guid, $size );
1236
						} else {
1237
							unset( $response['thumbnails'][ $size ] );
1238
						}
1239
					}
1240
				}
1241
1242
				$response['videopress_guid'] = $info->guid;
1243
				$response['videopress_processing_done'] = true;
1244
				if ( '0000-00-00 00:00:00' == $info->finish_date_gmt ) {
1245
					$response['videopress_processing_done'] = false;
1246
				}
1247
			}
1248
		}
1249
1250
		$response['thumbnails'] = (object) $response['thumbnails'];
1251
1252
		$response['meta'] = (object) array(
1253
			'links' => (object) array(
1254
				'self' => (string) $this->links->get_media_link( $this->api->get_blog_id_for_output(), $media_id ),
1255
				'help' => (string) $this->links->get_media_link( $this->api->get_blog_id_for_output(), $media_id, 'help' ),
1256
				'site' => (string) $this->links->get_site_link( $this->api->get_blog_id_for_output() ),
1257
			),
1258
		);
1259
1260
		// add VideoPress link to the meta
1261
		if ( in_array( $ext, array( 'ogv', 'mp4', 'mov', 'wmv', 'avi', 'mpg', '3gp', '3g2', 'm4v' ) ) ) {
1262
			if ( function_exists( 'video_get_info_by_blogpostid' ) ) {
1263
				$response['meta']->links->videopress = (string) $this->links->get_link( '/videos/%s', $response['videopress_guid'], '' );
1264
			}
1265
		}
1266
1267
		if ( $media_item->post_parent > 0 ) {
1268
			$response['meta']->links->parent = (string) $this->links->get_post_link( $this->api->get_blog_id_for_output(), $media_item->post_parent );
1269
		}
1270
1271
		return (object) $response;
1272
	}
1273
1274
	function get_taxonomy( $taxonomy_id, $taxonomy_type, $context ) {
1275

sal/class.json-api-post-base.php 1 location

@@ 552-673 (lines=122) @@
549
	}
550
551
	// TODO: factor this out into site
552
	private function get_media_item_v1_1( $media_id ) {
553
		$media_item = get_post( $media_id );
554
555
		if ( ! $media_item || is_wp_error( $media_item ) )
556
			return new WP_Error( 'unknown_media', 'Unknown Media', 404 );
557
558
		$file = basename( wp_get_attachment_url( $media_item->ID ) );
559
		$file_info = pathinfo( $file );
560
		$ext  = $file_info['extension'];
561
562
		$response = array(
563
			'ID'           => $media_item->ID,
564
			'URL'          => wp_get_attachment_url( $media_item->ID ),
565
			'guid'         => $media_item->guid,
566
			'date'         => (string) WPCOM_JSON_API_Date::format_date( $media_item->post_date_gmt, $media_item->post_date ),
567
			'post_ID'      => $media_item->post_parent,
568
			'author_ID'    => (int) $media_item->post_author,
569
			'file'         => $file,
570
			'mime_type'    => $media_item->post_mime_type,
571
			'extension'    => $ext,
572
			'title'        => $media_item->post_title,
573
			'caption'      => $media_item->post_excerpt,
574
			'description'  => $media_item->post_content,
575
			'alt'          => get_post_meta( $media_item->ID, '_wp_attachment_image_alt', true ),
576
			'thumbnails'   => array()
577
		);
578
579
		if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
580
			$metadata = wp_get_attachment_metadata( $media_item->ID );
581
			if ( isset( $metadata['height'], $metadata['width'] ) ) {
582
				$response['height'] = $metadata['height'];
583
				$response['width'] = $metadata['width'];
584
			}
585
586
			if ( isset( $metadata['sizes'] ) ) {
587
				/**
588
				 * Filter the thumbnail sizes available for each attachment ID.
589
				 *
590
				 * @module json-api
591
				 *
592
				 * @since 3.9.0
593
				 *
594
				 * @param array $metadata['sizes'] Array of thumbnail sizes available for a given attachment ID.
595
				 * @param string $media_id Attachment ID.
596
				 */
597
				$sizes = apply_filters( 'rest_api_thumbnail_sizes', $metadata['sizes'], $media_id );
598
				if ( is_array( $sizes ) ) {
599
					foreach ( $sizes as $size => $size_details ) {
600
						$response['thumbnails'][ $size ] = dirname( $response['URL'] ) . '/' . $size_details['file'];
601
					}
602
				}
603
			}
604
605
			if ( isset( $metadata['image_meta'] ) ) {
606
				$response['exif'] = $metadata['image_meta'];
607
			}
608
		}
609
610
		if ( in_array( $ext, array( 'mp3', 'm4a', 'wav', 'ogg' ) ) ) {
611
			$metadata = wp_get_attachment_metadata( $media_item->ID );
612
			$response['length'] = $metadata['length'];
613
			$response['exif']   = $metadata;
614
		}
615
616
		if ( in_array( $ext, array( 'ogv', 'mp4', 'mov', 'wmv', 'avi', 'mpg', '3gp', '3g2', 'm4v' ) ) ) {
617
			$metadata = wp_get_attachment_metadata( $media_item->ID );
618
			if ( isset( $metadata['height'], $metadata['width'] ) ) {
619
				$response['height'] = $metadata['height'];
620
				$response['width']  = $metadata['width'];
621
			}
622
623
			if ( isset( $metadata['length'] ) ) {
624
				$response['length'] = $metadata['length'];
625
			}
626
627
			// add VideoPress info
628
			if ( function_exists( 'video_get_info_by_blogpostid' ) ) {
629
				$info = video_get_info_by_blogpostid( $this->site->get_id(), $media_id );
630
631
				// Thumbnails
632
				if ( function_exists( 'video_format_done' ) && function_exists( 'video_image_url_by_guid' ) ) {
633
					$response['thumbnails'] = array( 'fmt_hd' => '', 'fmt_dvd' => '', 'fmt_std' => '' );
634
					foreach ( $response['thumbnails'] as $size => $thumbnail_url ) {
635
						if ( video_format_done( $info, $size ) ) {
636
							$response['thumbnails'][ $size ] = video_image_url_by_guid( $info->guid, $size );
637
						} else {
638
							unset( $response['thumbnails'][ $size ] );
639
						}
640
					}
641
				}
642
643
				$response['videopress_guid'] = $info->guid;
644
				$response['videopress_processing_done'] = true;
645
				if ( '0000-00-00 00:00:00' == $info->finish_date_gmt ) {
646
					$response['videopress_processing_done'] = false;
647
				}
648
			}
649
		}
650
651
		$response['thumbnails'] = (object) $response['thumbnails'];
652
653
		$response['meta'] = (object) array(
654
			'links' => (object) array(
655
				'self' => (string) $this->links->get_media_link( $this->site->get_id(), $media_id ),
656
				'help' => (string) $this->links->get_media_link( $this->site->get_id(), $media_id, 'help' ),
657
				'site' => (string) $this->links->get_site_link( $this->site->get_id() ),
658
			),
659
		);
660
661
		// add VideoPress link to the meta
662
		if ( in_array( $ext, array( 'ogv', 'mp4', 'mov', 'wmv', 'avi', 'mpg', '3gp', '3g2', 'm4v' ) ) ) {
663
			if ( function_exists( 'video_get_info_by_blogpostid' ) ) {
664
				$response['meta']->links->videopress = (string) $this->links->get_link( '/videos/%s', $response['videopress_guid'], '' );
665
			}
666
		}
667
668
		if ( $media_item->post_parent > 0 ) {
669
			$response['meta']->links->parent = (string) $this->links->get_post_link( $this->site->get_id(), $media_item->post_parent );
670
		}
671
672
		return (object) $response;
673
	}
674
}