function flickr_push_unsubscribe($subscription) { $flickr_user = flickr_users_get_by_user_id($subscription['user_id']); $callback = "{$GLOBALS['cfg']['abs_root_url']}push/{$subscription['secret_url']}/"; $method = 'flickr.push.unsubscribe'; $map = flickr_push_topic_map(); $topic = $map[$subscription['topic_id']]; $args = array('auth_token' => $flickr_user['auth_token'], 'topic' => $topic, 'verify' => 'sync', 'verify_token' => $subscription['verify_token'], 'callback' => $callback); if ($topic_args = $subscription['topic_args']) { if (!is_array($topic_args)) { $topic_args = json_decode($topic_args, "as hash"); } $args = array_merge($args, $topic_args); } $rsp = flickr_api_call($method, $args); return $rsp; }
function api_flickr_photos_friends_faves() { if (!$GLOBALS['cfg']['enable_feature_flickr_push']) { api_output_error(999, "disabled"); } if (!$GLOBALS['cfg']['flickr_push_enable_photos_friends_faves']) { api_output_error(999, "disabled"); } $topic_map = flickr_push_topic_map("string keys"); $topic_id = $topic_map["contacts_faves"]; $sub = flickr_push_subscriptions_get_by_user_and_topic($GLOBALS['cfg']['user'], $topic_id); if (!$sub) { api_output_error(999, "no subscription"); } $older_than = get_int32("older_than"); $rsp = flickr_push_photos_for_subscription($sub, $older_than); if (!$rsp['ok']) { api_output_error(999, $rsp['error']); } $out = array('photos' => $rsp['rows']); $more = array('inline' => 1); api_output_ok($out, $more); }
loadlib("cli"); loadlib("flickr_backups"); loadlib("flickr_push"); loadlib("flickr_push_subscriptions"); $features = array("backups", "flickr_push", "flickr_push_backups"); if (!features_is_enabled($features)) { echo "backups are currently disabled\n"; exit; } $spec = array("url" => array("flag" => "u", "required" => 1, "help" => "the *root* URL of your copy of parallel-ogram (the need to specify this here is not a feature...)")); $opts = cli_getopts($spec); $topic = $opts['topic']; # This sucks to have to do but I am uncertain what the # better alternative is right now... (20120601/straup) $root = rtrim($opts['url'], '/') . "/"; $GLOBALS['cfg']['abs_root_url'] = $root; log_info("set 'abs_root_url' to '{$GLOBALS['cfg']['abs_root_url']}'"); $topic_map = flickr_push_topic_map("string keys"); $topics = array("my_photos", "my_faves"); foreach (flickr_backups_users() as $user) { foreach ($topics as $topic) { $sub = array('user_id' => $user['id'], 'topic_id' => $topic_map[$topic]); $rsp = flickr_push_subscriptions_register_subscription($sub); log_info("[{$user['username']}] {$topic}: {$rsp['ok']}"); if (!$rsp['ok']) { log_info("[{$user['username']}] {$topic}: {$rsp['error']}"); } } } log_info("- done -"); exit;
error_404(); } $crumb_key = "delete_feed"; $GLOBALS['smarty']->assign("crumb_key", $crumb_key); if (post_str("delete") && crumb_check($crumb_key)) { $feed_rsp = flickr_push_unsubscribe($sub); $GLOBALS['smarty']->assign("delete_feed", $feed_rsp); if ($feed_rsp['ok']) { $sub_rsp = flickr_push_subscriptions_delete($sub); $GLOBALS['smarty']->assign("delete_sub", $sub_rsp); if ($sub_rsp['ok']) { $redir = "{$GLOBALS['cfg']['abs_root_url']}god/push/subscriptions/{$sub['user_id']}/"; header("location: {$redir}"); exit; } } } $topic_map = flickr_push_topic_map(); $sub['str_topic'] = $topic_map[$sub['topic_id']]; if ($sub['last_update_details']) { $sub['last_update_details'] = json_decode($sub['last_update_details'], "as hash"); } $owner = users_get_by_id($sub['user_id']); $sub['owner'] = $owner; $photos = flickr_push_photos_for_subscription($sub); $is_push_backup = flickr_push_subscriptions_is_push_backup($sub); $GLOBALS['smarty']->assign("is_push_backup", $is_push_backup); $GLOBALS['smarty']->assign_by_ref("subscription", $sub); $GLOBALS['smarty']->assign_by_ref("photos", $photos['rows']); $GLOBALS['smarty']->display("page_god_push_subscription.txt"); exit;
function flickr_backups_is_registered_push_subscription(&$sub) { loadlib("flickr_push"); $map = flickr_push_topic_map("string keys"); # for now, anyway... $valid = array($map['my_photos'], $map['my_faves'], $map['commons']); return in_array($sub['topic_id'], $valid) ? 1 : 0; }