define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
+$longoptions = array('unsub');
+$shortoptions = 'u';
+
$helptext = <<<END_OF_HELP
resub-feed.php [options] http://example.com/atom-feed-url
Reinitialize the PuSH subscription for the given feed. This may help get
things restarted if we and the hub have gotten our states out of sync.
+Options:
+
+ -u --unsub Unsubscribe instead of subscribing.
END_OF_HELP;
-require_once INSTALLDIR.'/scripts/commandline.inc';
+require_once INSTALLDIR.'/scripts/commandline.inc.php';
if (empty($args[0]) || !Validate::uri($args[0])) {
print "$helptext";
$feedurl = $args[0];
-$sub = FeedSub::staticGet('topic', $feedurl);
+$sub = FeedSub::getKV('uri', $feedurl);
if (!$sub) {
print "Feed $feedurl is not subscribed.\n";
exit(1);
print "Old state:\n";
showSub($sub);
-print "\n";
-print "Pinging hub $sub->huburi with new subscription for $sub->uri\n";
-$ok = $sub->subscribe();
-
-if ($ok) {
- print "ok\n";
-} else {
- print "Could not confirm.\n";
+try {
+ echo "\n";
+ if (have_option('u') || have_option('--unsub')) {
+ echo "Pinging hub {$sub->huburi} with unsubscription for {$sub->uri}\n";
+ $sub->unsubscribe();
+ } else {
+ echo "Pinging hub {$sub->huburi} with new subscription for {$sub->uri}\n";
+ $sub->subscribe();
+ }
+ echo "ok\n";
+} catch (Exception $e) {
+ echo 'Could not confirm. '.get_class($e).': '.$e->getMessage()."\n";
}
-$sub2 = FeedSub::staticGet('topic', $feedurl);
+$sub2 = FeedSub::getKV('uri', $feedurl);
print "\n";
print "New state:\n";