Example #1
0
 public function load($url, $parameters = null)
 {
     require_once __DIR__ . '/../../../../../vendor/phpflickr/lib/Phpflickr/Phpflickr.php';
     if (isset($parameters["photo_id"])) {
         $itemId = $parameters["photo_id"];
     } else {
         $regexMatches = $parameters["regex_matches"];
         $itemId = $regexMatches[1];
         // bam
     }
     $f = new \Phpflickr_Phpflickr('97ac5e379fbf4df38a357f9c0943e140');
     $info = $f->photos_getInfo($itemId);
     $size = $f->photos_getSizes($itemId);
     if (is_array($info) && is_array($size)) {
         $item = new Item();
         $tags = array();
         $item->setAttributionUri($info['urls']['url'][0]['_content']);
         if ($info['tags']) {
             $tags = array();
             foreach ($info['tags']['tag'] as $t) {
                 array_push($tags, $t["raw"]);
             }
             $item->setTags($tags);
         }
         foreach ($size as $s) {
             $sizes[$s['label']] = array('width' => $s['width'], 'height' => $s['height'], 'source' => $s['source']);
         }
         //return $sizes;
         $attr = array('farm' => $info['farm'], 'server' => $info['server'], 'id' => $info['id'], 'secret' => $info['secret']);
         if (isset($sizes['Original'])) {
             $attr['originalsecret'] = $info['originalsecret'];
         }
         if (isset($sizes['Large'])) {
             $itemSize = 'Large';
         } elseif (isset($sizes['Original'])) {
             $itemSize = 'Original';
         } elseif (isset($sizes['Medium 800'])) {
             $itemSize = 'Medium 800';
         } elseif (isset($sizes['Medium 640'])) {
             $itemSize = 'Medium 640';
         } elseif (isset($sizes['Medium'])) {
             $itemSize = 'Medium';
         } elseif (isset($sizes['Small 320'])) {
             $itemSize = 'Small 320';
         } else {
             $itemSize = 'Small';
         }
         if (isset($sizes['Medium'])) {
             $thumbSize = 'Medium';
         } elseif (isset($sizes['Small 320'])) {
             $thumbSize = 'Small 320';
         } else {
             $thumbSize = 'Small';
         }
         $item->setThumbnailUrl($sizes[$thumbSize]['source']);
         if ($info['dates']['taken']) {
             $item->setMediaDateCreated(new DateTime($info['dates']['taken']));
         }
         $item->setUri($sizes[$itemSize]['source']);
         $item->setChildItemsCount(0);
         $attr['sizes'] = $sizes;
         $item->setDescription($info['description']);
         if ($info['license']) {
             $item->setLicense(self::$license[$info['license']]);
         } else {
             $item->setLicense('All Rights Reserved');
         }
         if ($info['owner']['username']) {
             $item->setMediaCreatorUsername($info['owner']['username']);
         } else {
             $item->setMediaCreatorUsername($info['owner']['realname']);
         }
         if ($info['owner']['realname']) {
             $item->setMediaCreatorRealname($info['owner']['realname']);
         } else {
             $item->setMediaCreatorRealname($item->getMediaCreatorUsername());
         }
         $attr['creator_nsid'] = $info['owner']['nsid'];
         $item->setTitle($info['title']);
         if (array_key_exists('location', $info)) {
             if ($info['location']['latitude']) {
                 $item->setMediaGeoLatitude($info['location']['latitude']);
                 $item->setMediaGeoLongitude($info['location']['longitude']);
             }
         }
         $item->setArchive('Flickr');
         $item->setMediaType('Image');
         $item->setLayerType('Image');
         return $this->returnResponse($item, true, false);
     } else {
         return $this->returnResponse(null, false, false);
     }
 }
Example #2
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 #3
0
 public function load($url, $parameters = null)
 {
     require_once __DIR__ . '/../../../../../vendor/phpflickr/lib/Phpflickr/Phpflickr.php';
     $loadCollectionItems = $parameters["load_child_items"];
     $regexMatches = $parameters["regex_matches"];
     $setId = $regexMatches[1];
     // bam
     $f = new \Phpflickr_Phpflickr('97ac5e379fbf4df38a357f9c0943e140');
     $setInfo = $f->photosets_getInfo($setId);
     $collection = new Item();
     $ownerInfo = $f->people_getInfo($setInfo["owner"]);
     $collection->setTitle($setInfo["title"]);
     $collection->setDescription($setInfo["description"]);
     $collection->setMediaType('Collection');
     $collection->setLayerType('Flickr');
     $collection->setArchive('Flickr');
     $collection->setAttributionUri($url);
     $collection->setChildItemsCount($setInfo["count_photos"]);
     $collection->setMediaCreatorUsername($ownerInfo["path_alias"]);
     $collection->setMediaCreatorRealname($ownerInfo["username"]);
     $collection->setMediaDateCreated(new \DateTime());
     if (isset($setInfo["primary"])) {
         $size = $f->photos_getSizes($setInfo["primary"]);
         foreach ($size as $s) {
             $sizes[$s['label']] = array('width' => $s['width'], 'height' => $s['height'], 'source' => $s['source']);
         }
     }
     $collection->setThumbnailUrl($sizes['Square']['source']);
     if (isset($sizes['Large'])) {
         $itemSize = 'Large';
     } elseif (isset($sizes['Original'])) {
         $itemSize = 'Original';
     } elseif (isset($sizes['Medium'])) {
         $itemSize = 'Medium';
     } else {
         $itemSize = 'Small';
     }
     $collection->setUri($sizes[$itemSize]['source']);
     if ($loadCollectionItems == true) {
         $page = 1;
         while (1) {
             $setPhotos = $f->photosets_getPhotos($setId, null, null, 500, $page);
             $photos = $setPhotos['photoset']['photo'];
             if (null !== $photos) {
                 $ownerInfo = $f->people_getInfo($setInfo["owner"]);
                 $collection->setChildItemsCount(count($photos));
                 foreach ($photos as $photo) {
                     $item = $this->itemParser->load(null, array("photo_id" => $photo['id']));
                     if (isset($item)) {
                         $collection->addChildItem($item["items"][0]);
                     }
                 }
             } else {
                 break;
             }
             if ($page > 10) {
                 break;
             }
             ++$page;
         }
     }
     return parent::returnResponse($collection, true, true);
 }