Ejemplo n.º 1
0
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);
}