Code Duplication    Length = 122-122 lines in 2 locations

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

class.json-api-endpoints.php 1 location

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