function wscompose_get_many(&$maps) { $requests = array(); $more = array('http_port' => $GLOBALS['cfg']['wscompose_port'], 'http_timeout' => 10); foreach ($maps as $map) { $url = _wscompose_request_url($map); $requests[] = array('url' => $url, 'more' => $more); } $_responses = http_multi($requests); $responses = array(); foreach ($_responses as $rsp) { $responses[] = _wscompose_parse_response($rsp); } return $responses; }
# up so that you could only use that format if you were getting your photos # nw: or just remove the stuff you're not authed for # So, instead we're going to call flickr.photos.getInfo a bunch... # Note: this assumes that $to_backups will simply be empty if the # various feature flags around push backups are disabled. if (count($to_backup)) { loadlib("http"); loadlib("flickr_photos_import"); loadlib("flickr_faves_import"); $reqs = array(); foreach ($to_backup as $args) { list($url, $args) = flickr_api_call_build('flickr.photos.getInfo', $args); $url = $url . "?" . http_build_query($args); $reqs[] = array('method' => 'GET', 'url' => $url); } $multi_rsp = http_multi($reqs); $topic_map = flickr_push_topic_map(); $topic_id = $subscription['topic_id']; $topic = $topic_map[$topic_id]; foreach ($multi_rsp as $rsp) { $rsp = flickr_api_parse_response($rsp); if (!$rsp['ok']) { continue; } $photo = $rsp['rsp']['photo']; $spr = flickr_push_utils_info2spr($photo); # log_info("[PUSH] {$topic} ({$user['id']}) start import..."); # log_info("[PUSH] SPR " . var_export($spr, 1)); $import_rsp = null; if ($topic == 'my_photos') { $import_rsp = flickr_photos_import_photo($spr);
function _flickr_photos_import_do_fetch_multi($reqs, $retries = 3) { $multi = array(); $failed = array(); $success = array(); foreach ($reqs as $uri) { $multi[] = array('url' => $uri); } $multi_rsp = http_multi($multi); foreach ($multi_rsp as $rsp) { if ($rsp['ok']) { $success[] = $rsp; } else { $failed[] = $rsp; } } if (count($failed) and $retries > 0) { $retries -= 1; list($success2, $failed) = _flickr_photos_import_do_fetch_multi($failed, $retries); $success = array_merge($success, $success2); } return array($success, $failed); }