Code Duplication    Length = 122-122 lines in 2 locations

class.json-api-endpoints.php 1 location

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

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

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