function convert_to_dwca($params) { require_library('FlickrAPI'); $auth_token = NULL; // if(FlickrAPI::valid_auth_token(FLICKR_AUTH_TOKEN)) $auth_token = FLICKR_AUTH_TOKEN; $page = 1; $per_page = 500; $url = $this->service['photosets'] . '&photoset_id=' . $params['photoset_id'] . '&user_id=' . $params['flickr_user_id'] . '&per_page=' . $per_page; if ($json = Functions::lookup_with_cache($url . '&page=' . $page, $this->download_options)) { $json = str_replace("\\'", "'", $json); $obj = json_decode($json); $total_pages = ceil($obj->photoset->total / $per_page); echo "\ntotal_pages = {$total_pages}\n"; for ($i = 1; $i <= $total_pages; $i++) { if ($json = Functions::lookup_with_cache($url . '&page=' . $page, $this->download_options)) { $json = str_replace("\\'", "'", $json); $obj = json_decode($json); $k = 0; $total_photos = count($obj->photoset->photo); foreach ($obj->photoset->photo as $rec) { $k++; echo "\n{$i} of {$total_pages} - {$k} of {$total_photos}"; if (!($sciname = self::get_sciname_from_title($rec->title))) { continue; } // if($sciname == "SONY DSC") //debug // { // print_r($rec); // } $photo_response = FlickrAPI::photos_get_info($rec->id, $rec->secret, $auth_token, $this->download_options); $photo = @$photo_response->photo; if (!$photo) { continue; } if ($photo->visibility->ispublic != 1) { continue; } if ($photo->usage->candownload != 1) { continue; } if (@(!$GLOBALS["flickr_licenses"][$photo->license])) { continue; } $data_objects = FlickrAPI::get_data_objects($photo, $params['flickr_user_id']); foreach ($data_objects as $do) { self::create_archive($sciname, $do); } } } $page++; // break; //debug } } $this->archive_builder->finalize(TRUE); }