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);
}
function flickr_backups_is_push_backup(&$backup, $check_subscription = 0)
{
    $push_features = array("flickr_push", "flickr_push_backups");
    if (!features_is_enabled($push_features)) {
        return 0;
    }
    $type_id = $backup['type_id'];
    $map = flickr_backups_push_topics_map();
    if (!isset($map[$type_id])) {
        return 0;
    }
    # Stub subscription data
    $user = users_get_by_id($backup['user_id']);
    $topic_id = $map[$type_id];
    $sub = array('user_id' => $user['id'], 'topic_id' => $topic_id);
    if (!flickr_backups_is_registered_push_subscription($sub)) {
        return 0;
    }
    if ($check_subscription) {
        if (!flickr_push_subscriptions_get_by_user_and_topic($user, $topic_id)) {
            return 0;
        }
    }
    return 1;
}
loadlib("flickr_push");
loadlib("flickr_push_subscriptions");
loadlib("flickr_push_photos");
login_ensure_loggedin($_SERVER['REQUEST_URI']);
# this one is still full of weirdness (20111220/straup)
error_disabled();
if (!$GLOBALS['cfg']['enable_feature_flickr_push']) {
    error_disabled();
}
if (!$GLOBALS['cfg']['flickr_push_enable_recent_activity']) {
    error_disabled();
}
$topic_map = flickr_push_topic_map("string keys");
$topic_id = $topic_map["my_photos"];
$topic_args = array('update_type' => 'comments,faves,tags,notes');
$sub = flickr_push_subscriptions_get_by_user_and_topic($GLOBALS['cfg']['user'], $topic_id, $topic_args);
$GLOBALS['smarty']->assign_by_ref("subscription", $sub);
dumper($sub);
if (!$sub) {
    if (!$GLOBALS['cfg']['flickr_push_enable_registrations']) {
        error_disabled();
    }
    $sub = array('user_id' => $GLOBALS['cfg']['user']['id'], 'topic_id' => $topic_id, 'topic_args' => $topic_args);
    $rsp = flickr_push_subscriptions_register_subscription($sub);
    dumper($rsp);
    $GLOBALS['smarty']->assign("new_subscription", $rsp['ok']);
    $GLOBALS['smarty']->assign("subscription_ok", $rsp['ok']);
} else {
    $now = time();
    $offset_hours = 24;
    $older_than = $now - 60 * 60 * $offset_hours;