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

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