Code Duplication    Length = 122-122 lines in 2 locations

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
}
675

class.json-api-endpoints.php 1 location

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