public function load($url, $parameters = null) { $regexMatches = $parameters["regex_matches"]; $itemId = $regexMatches[1]; // bam $originalUrl = 'http://vimeo.com/api/v2/video/' . $itemId . '.json'; // read feed into SimpleXML object $entry = json_decode(file_get_contents($originalUrl)); $entry = $entry[0]; $item = new Item(); $item->setUri((string) $entry->id); $item->setTitle((string) $entry->title); $item->setDescription((string) $entry->description); $item->setAttributionUri('http://vimeo.com/' . $item->getUri()); $item->setDateCreated(new \DateTime((string) $entry->upload_date)); $item->setMediaType('Video'); $item->setLayerType('Vimeo'); $item->setChildItemsCount(0); // TODO: ADD TAGS $tags = (string) $entry->tags; if (isset($tags)) { $tags = explode(", ", $tags); $itemTags = array(); foreach ($tags as $tagName) { if (!empty($tagName)) { foreach ($tags as $tag) { array_push($itemTags, $tag); } $item->setTags($itemTags); } } } $item->setMediaCreatorUsername((string) $entry->user_name); $item->setMediaCreatorRealname('Unknown'); // write metadata $item->setArchive('Vimeo'); /* $metadata->setLicense((string)$entry->embed_privacy); $metadata->setThumbnailUrl((string)$entry->thumbnail_medium); */ $item->setThumbnailUrl((string) $entry->thumbnail_medium); /* // write media information $media->setDuration((string)$entry->duration); $media->setWidth((string)$entry->width); $media->setHeight((string)$entry->height); $item->setMetadata($metadata); $item->setMedia($media); */ return $this->returnResponse($item, true, false); }
public function load($url, $parameters = null) { $itemUrl = "http://api.soundcloud.com/resolve.json?url={$url}&consumer_key=" . self::$soundcloudConsumerKey; $itemJson = file_get_contents($itemUrl, 0, null, null); $itemJson = json_decode($itemJson, true); if (!$itemJson["streamable"]) { return $this->returnResponse($item, false, false, "This track is not embeddable and cannot be added to Zeega."); } $item = new Item(); $tags = $itemJson["tag_list"]; if (isset($tags)) { $tags = explode(" ", $tags); $itemTags = array(); foreach ($tags as $tag) { array_push($itemTags, $tag); } $item->setTags($itemTags); } $item->setTitle($itemJson['title']); $item->setDescription($itemJson['description']); $item->setMediaCreatorUsername($itemJson['user']['username']); $item->setMediaCreatorRealname($itemJson['user']['username']); $item->setMediaType('Audio'); $item->setLayerType('Audio'); $item->setArchive('SoundCloud'); $item->setUri($itemJson['stream_url']); $item->setUri($item->getUri() . '?consumer_key=' . self::$soundcloudConsumerKey); $item->setAttributionUri($itemJson['permalink_url']); $item->setMediaDateCreated($itemJson['created_at']); if (!is_null($itemJson['artwork_url'])) { $item->setThumbnailUrl($itemJson['artwork_url']); } else { if (!is_null($itemJson['user']['avatar_url'])) { $item->setThumbnailUrl($itemJson['user']['avatar_url']); } else { $item->setThumbnailUrl($itemJson['waveform_url']); } } $item->setChildItemsCount(0); $item->setLicense($itemJson['license']); return $this->returnResponse($item, true, false); }
public function load($url, $parameters = null) { require_once __DIR__ . '/../../../../../vendor/phpflickr/lib/Phpflickr/Phpflickr.php'; $flickrAuthenticationKey = $parameters["authentication_key"]; $loadCollectionItems = $parameters["load_child_items"]; $checkForDuplicates = (bool) $parameters["check_for_duplicates"]; $tags = $parameters["tags"]; $user = $parameters["user"]; $originalItems = null; $searchParameters = array("tags" => $tags, "tag_mode" => "any", "extras" => "path_alias, description, license, date_upload, date_taken, owner_name, geo, tags, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o", "page" => 1, "per_page" => 500); if (FALSE !== $checkForDuplicates) { $em = $parameters["entityManager"]; $originalItems = $em->getRepository('ZeegaDataBundle:Item')->findUriByUserArchive($user->getId(), "Flickr"); if (isset($originalItems)) { $checkForDuplicates = TRUE; } else { $checkForDuplicates = FALSE; } } else { $checkForDuplicates = FALSE; } $f = new \Phpflickr_Phpflickr("97ac5e379fbf4df38a357f9c0943e140"); $currentPage = 1; $items = array(); while (1) { $searchParameters["page"] = $currentPage; $searchResults = $f->photos_search($searchParameters); $photos = $searchResults['photo']; $pages = $searchResults['pages']; foreach ($photos as $photo) { $item = new Item(); $tags = array(); if (isset($photo['tags'])) { $item->setTags(explode(" ", $photo['tags'])); } if (isset($photo['datetaken'])) { $item->setMediaDateCreated(new DateTime($photo['datetaken'])); } if (isset($photo['ownername'])) { $item->setMediaCreatorUsername($photo['ownername']); } if (isset($photo['latitude'])) { $item->setMediaGeoLatitude($photo['latitude']); } if (isset($photo['longitude'])) { $item->setMediaGeoLongitude($photo['longitude']); } if (isset($photo['license'])) { $item->setLicense(self::$license[$photo['license']]); } else { $item->setLicense('All Rights Reserved'); } if (isset($photo["url_l"])) { $item->setUri($photo['url_l']); } else { if (isset($photo["url_o"])) { $item->setUri($photo['url_o']); } else { if (isset($photo["url_m"])) { $item->setUri($photo['url_m']); } else { $item->setUri($photo['url_s']); } } } if (isset($photo["description"])) { $item->setDescription($photo['description']); } $item->setTitle($photo['title']); $item->setAttributionUri("http://www.flickr.com/photos/" . $photo["owner"] . "/" . $photo["id"]); $item->setArchive('Flickr'); $item->setMediaType('Image'); $item->setLayerType('Image'); $item->setChildItemsCount(0); if (TRUE === $checkForDuplicates) { if (FALSE === array_key_exists($item->getUri(), $originalItems)) { array_push($items, $item); } } else { array_push($items, $item); } if (true !== $loadCollectionItems) { return parent::returnResponse($items, true, true); } } if ($currentPage++ > $pages || $currentPage > 10) { break; } } return parent::returnResponse($items, true, true); }
public function parseItem($itemArray, $user, $item = null, $ingestor = null) { if (!isset($item)) { $item = new Item(); // set the defaults $item->setDateCreated(new \DateTime("now")); $item->setChildItemsCount(0); $item->setEnabled(true); $item->setPublished(false); $item->setUser($user); } $item->setDateUpdated(new \DateTime("now")); // parse the item if (isset($ingestor)) { $item->setIngestedBy($ingestor); } if (isset($itemArray['title'])) { $item->setTitle($itemArray['title']); } if (isset($itemArray['description'])) { $item->setDescription($itemArray['description']); } if (isset($itemArray['text'])) { $mediaType = $item->getMediaType(); $text = $item->getText(); if ($mediaType !== 'project' || $mediaType == 'project' && !isset($text)) { if (is_array($itemArray['text'])) { $itemJson = json_encode($itemArray['text']); // quick fix to encode integers properly before upgrading to php >= 5.3.3 $itemJson = preg_replace("/\"(\\d+)\"/", '$1', $itemJson); $item->setText($itemJson); } else { $item->setText($itemArray['text']); } } } if (isset($itemArray['uri'])) { $item->setUri($itemArray['uri']); } if (isset($itemArray['attribution_uri'])) { $item->setAttributionUri($itemArray['attribution_uri']); } if (isset($itemArray['media_type'])) { $item->setMediaType($itemArray['media_type']); } if (isset($itemArray['layer_type'])) { $item->setLayerType($itemArray['layer_type']); } if (isset($itemArray['media_geo_latitude'])) { $item->setMediaGeoLatitude($itemArray['media_geo_latitude']); } if (isset($itemArray['media_geo_longitude'])) { $item->setMediaGeoLongitude($itemArray['media_geo_longitude']); } if (isset($itemArray['headline'])) { $item->setHeadline($itemArray['headline']); } $thumbnailSize = 4; $mediaType = $item->getMediaType(); if ($mediaType === 'project') { $thumbnailSize = 6; } if (!isset($itemArray['thumbnail_url']) || isset($itemArray['create_thumbnail'])) { $thumbnail = $this->thumbnailService->getItemThumbnail($item->getUri(), $thumbnailSize); } else { $thumbnail = $itemArray['thumbnail_url']; } if (null !== $thumbnail) { $item->setThumbnailUrl($thumbnail); } if (isset($itemArray['media_date_created'])) { $parsedDate = strtotime($itemArray['media_date_created']); if ($parsedDate) { $d = date("Y-m-d h:i:s", $parsedDate); $item->setMediaDateCreated(new \DateTime($d)); } } if (isset($itemArray['media_creator_username'])) { $item->setMediaCreatorUsername($itemArray['media_creator_username']); } else { $item->setMediaCreatorUsername($user->getDisplayName()); } if (isset($itemArray['media_creator_realname'])) { $item->setMediaCreatorRealname($itemArray['media_creator_realname']); } else { $item->setMediaCreatorUsername($user->getDisplayName()); } if (isset($itemArray['archive'])) { $item->setArchive($itemArray['archive']); } if (isset($itemArray['location'])) { $item->setLocation($itemArray['location']); } if (isset($itemArray['license'])) { $item->setLicense($itemArray['license']); } if (isset($itemArray['attributes'])) { $item->setAttributes($itemArray['attributes']); } if (isset($itemArray['tags'])) { $item->setTags($itemArray['tags']); } if (isset($itemArray['published'])) { $item->setPublished($itemArray['published']); } if (isset($itemArray["child_items"])) { foreach ($itemArray["child_items"] as $child_item) { $child = self::parseItem($child_item, $user, $ingestor); if (isset($child)) { $item->addChildItem($child); } } } return $item; }
public function load($url, $parameters = null) { $loadCollectionItems = $parameters["load_child_items"]; $itemUrl = "http://api.soundcloud.com/resolve.json?url={$url}&consumer_key=" . self::$soundcloudConsumerKey; $itemJson = file_get_contents($itemUrl, 0, null, null); $itemJson = json_decode($itemJson, true); $item = new Item(); $item->setTitle($itemJson['permalink']); $item->setDescription($itemJson['description']); $item->setMediaCreatorUsername($itemJson['user']['username']); $item->setMediaCreatorRealname($itemJson['user']['username']); $item->setMediaType('Collection'); $item->setLayerType('Collection'); $item->setArchive('SoundCloud'); $item->setUri($itemJson['permalink_url']); $item->setUri($item->getUri() . '?consumer_key=' . self::$soundcloudConsumerKey); $item->setAttributionUri($itemJson['permalink_url']); $item->setDateCreated(new DateTime((string) $itemJson['created_at'])); $item->setThumbnailUrl($itemJson['tracks'][0]['waveform_url']); $item->setChildItemsCount(count($itemJson['tracks'])); $item->setLicense($itemJson['license']); if (isset($tags) && count($tags) > 0) { $tags = explode(" ", $tags); $itemTags = array(); foreach ($tags as $tag) { array_push($itemTags, $tag); } $item->setTags($tags); } if ($loadCollectionItems) { foreach ($itemJson["tracks"] as $childItemJson) { if ($childItemJson["streamable"]) { $childItem = new Item(); $childItem->setTitle($childItemJson['title']); $childItem->setDescription($childItemJson['description']); $childItem->setMediaCreatorUsername($childItemJson['user']['username']); $childItem->setMediaCreatorRealname($childItemJson['user']['username']); $childItem->setMediaType('Audio'); $childItem->setLayerType('Audio'); $childItem->setArchive('SoundCloud'); $childItem->setUri($childItemJson['stream_url']); $childItem->setUri($childItem->getUri() . '?consumer_key=' . self::$soundcloudConsumerKey); $childItem->setAttributionUri($childItemJson['permalink_url']); $childItem->setMediaDateCreated($itemJson['created_at']); if (!is_null($itemJson['artwork_url'])) { $childItem->setThumbnailUrl($itemJson['artwork_url']); } else { if (!is_null($itemJson['user']['avatar_url'])) { $childItem->setThumbnailUrl($itemJson['user']['avatar_url']); } else { $childItem->setThumbnailUrl($itemJson['waveform_url']); } } $childItem->setChildItemsCount(0); $childItem->setLicense($childItemJson['license']); $tags = $childItemJson["tag_list"]; if (isset($tags)) { $tags = explode(" ", $tags); $itemTags = array(); foreach ($tags as $tag) { array_push($itemTags, $tag); } $childItem->setTags($tags); } $item->addChildItem($childItem); } } } return $this->returnResponse($item, true, true); }