Example #1
0
 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);
 }
Example #3
0
 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);
 }
Example #4
0
 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);
 }