From e28214bfe91b23fe5e463d6e56152218f0769910 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 21 Apr 2010 18:11:29 -0700 Subject: fix reference error in RSSCloud plugin --- plugins/RSSCloud/RSSCloudPlugin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 9f444c8bb..661c32141 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -100,12 +100,12 @@ class RSSCloudPlugin extends Plugin * * Hook for RouterInitialized event. * - * @param Mapper &$m URL parser and mapper + * @param Mapper $m URL parser and mapper * * @return boolean hook return */ - function onRouterInitialized(&$m) + function onRouterInitialized($m) { $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); -- cgit v1.2.3-54-g00ecf From a129c455a2e102c4276a95694a8fb0ece830232b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 21 Apr 2010 18:19:16 -0700 Subject: Fix exceptions with bad gravatar URLs --- plugins/OStatus/classes/Ostatus_profile.php | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'plugins') diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index e3b3daa2c..5d3f37cd0 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1001,7 +1001,7 @@ class Ostatus_profile extends Memcached_DataObject return; } if (!common_valid_http_url($url)) { - throw new ServerException(_m("Invalid avatar URL %s"), $url); + throw new ServerException(sprintf(_m("Invalid avatar URL %s"), $url)); } if ($this->isGroup()) { @@ -1303,15 +1303,23 @@ class Ostatus_profile extends Memcached_DataObject $ok = $oprofile->insert(); - if ($ok) { - $avatar = self::getActivityObjectAvatar($object, $hints); - if ($avatar) { + if (!$ok) { + throw new ServerException("Can't save OStatus profile"); + } + + $avatar = self::getActivityObjectAvatar($object, $hints); + + if ($avatar) { + try { $oprofile->updateAvatar($avatar); + } catch (Exception $ex) { + // Profile is saved, but Avatar is messed up. We're + // just going to continue. + common_log(LOG_WARNING, "Exception saving OStatus profile avatar: ". $ex->getMessage()); } - return $oprofile; - } else { - throw new ServerException("Can't save OStatus profile"); } + + return $oprofile; } /** @@ -1330,7 +1338,11 @@ class Ostatus_profile extends Memcached_DataObject } $avatar = self::getActivityObjectAvatar($object, $hints); if ($avatar) { - $this->updateAvatar($avatar); + try { + $this->updateAvatar($avatar); + } catch (Exception $ex) { + common_log(LOG_WARNING, "Exception saving OStatus profile avatar: " . $ex->getMessage()); + } } } -- cgit v1.2.3-54-g00ecf From fd9d520aeb52f7f3a3fe7c242fbe16078de1bc6e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 22 Apr 2010 06:14:40 +0200 Subject: OStatus: CLI script to force a renewal on the given PuSH subscription. May help when we get out of sync with the hub. php plugins/OStatus/scripts/resub-feed.php -smysite http://example.com/some/atom/feed --- plugins/OStatus/scripts/resub-feed.php | 74 ++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 plugins/OStatus/scripts/resub-feed.php (limited to 'plugins') diff --git a/plugins/OStatus/scripts/resub-feed.php b/plugins/OStatus/scripts/resub-feed.php new file mode 100644 index 000000000..121d12109 --- /dev/null +++ b/plugins/OStatus/scripts/resub-feed.php @@ -0,0 +1,74 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$helptext = <<huburi with new subscription for $sub->uri\n"; +$ok = $sub->subscribe(); + +if ($ok) { + print "ok\n"; +} else { + print "Could not confirm.\n"; +} + +$sub2 = FeedSub::staticGet('topic', $feedurl); + +print "\n"; +print "New state:\n"; +showSub($sub2); + +function showSub($sub) +{ + print " Subscription state: $sub->sub_state\n"; + print " Verify token: $sub->verify_token\n"; + print " Signature secret: $sub->secret\n"; + print " Sub start date: $sub->sub_start\n"; + print " Record created: $sub->created\n"; + print " Record modified: $sub->modified\n"; +} -- cgit v1.2.3-54-g00ecf From 67b8b1334fc53fb06f1a751e534533e30b7cfd01 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 23 Apr 2010 07:10:36 -0700 Subject: Fix keys / keyTypes for Blacklist plugin - was spewing notices for undefined array indexes when saving blacklist entries from admin panel --- plugins/Blacklist/Homepage_blacklist.php | 4 ++-- plugins/Blacklist/Nickname_blacklist.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/Blacklist/Homepage_blacklist.php b/plugins/Blacklist/Homepage_blacklist.php index 32080667e..ec89ee4bd 100644 --- a/plugins/Blacklist/Homepage_blacklist.php +++ b/plugins/Blacklist/Homepage_blacklist.php @@ -94,7 +94,7 @@ class Homepage_blacklist extends Memcached_DataObject function keys() { - return array('pattern' => 'K'); + return array_keys($this->keyTypes()); } /** @@ -108,7 +108,7 @@ class Homepage_blacklist extends Memcached_DataObject function keyTypes() { - return $this->keys(); + return array('pattern' => 'K'); } /** diff --git a/plugins/Blacklist/Nickname_blacklist.php b/plugins/Blacklist/Nickname_blacklist.php index 981063144..e8545292d 100644 --- a/plugins/Blacklist/Nickname_blacklist.php +++ b/plugins/Blacklist/Nickname_blacklist.php @@ -88,7 +88,7 @@ class Nickname_blacklist extends Memcached_DataObject function keys() { - return array('pattern' => 'K'); + return array_keys($this->keyTypes()); } /** @@ -99,7 +99,7 @@ class Nickname_blacklist extends Memcached_DataObject function keyTypes() { - return $this->keys(); + return array('pattern' => 'K'); } /** -- cgit v1.2.3-54-g00ecf From 390a2a8624b71be7d598b945452fc6e0000f3df5 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 23 Apr 2010 07:17:52 -0700 Subject: Fix for Blacklist plugin: was saving an empty entry if blacklist was empty, which would match *all* possible nickname registrations, preventing all registration on mozilla.status.net. Now saving only non-empty lines, and only matching non-empty lines so we don't fail if we still have a bogus entry. --- plugins/Blacklist/BlacklistPlugin.php | 4 ++-- plugins/Blacklist/blacklistadminpanel.php | 29 ++++++++++++++--------------- 2 files changed, 16 insertions(+), 17 deletions(-) (limited to 'plugins') diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php index adc4d9d7e..63bffe2c6 100644 --- a/plugins/Blacklist/BlacklistPlugin.php +++ b/plugins/Blacklist/BlacklistPlugin.php @@ -262,7 +262,7 @@ class BlacklistPlugin extends Plugin $patterns = $this->_getUrlPatterns(); foreach ($patterns as $pattern) { - if (preg_match("/$pattern/", $url)) { + if ($pattern != '' && preg_match("/$pattern/", $url)) { return false; } } @@ -285,7 +285,7 @@ class BlacklistPlugin extends Plugin $patterns = $this->_getNicknamePatterns(); foreach ($patterns as $pattern) { - if (preg_match("/$pattern/", $nickname)) { + if ($pattern != '' && preg_match("/$pattern/", $nickname)) { return false; } } diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php index b996aba8d..23c503cd8 100644 --- a/plugins/Blacklist/blacklistadminpanel.php +++ b/plugins/Blacklist/blacklistadminpanel.php @@ -88,28 +88,27 @@ class BlacklistadminpanelAction extends AdminPanelAction function saveSettings() { - $nickPatterns = array(); - - $rawNickPatterns = explode("\n", $this->trimmed('blacklist-nicknames')); - - foreach ($rawNickPatterns as $raw) { - $nickPatterns[] = trim($raw); - } - + $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames')); Nickname_blacklist::saveNew($nickPatterns); - $rawUrlPatterns = explode("\n", $this->trimmed('blacklist-urls')); - $urlPatterns = array(); - - foreach ($rawUrlPatterns as $raw) { - $urlPatterns[] = trim($raw); - } - + $urlPatterns = $this->splitPatterns($this->trimmed('url-nicknames')); Homepage_blacklist::saveNew($urlPatterns); return; } + protected function splitPatterns($text) + { + $patterns = array(); + foreach (explode("\n", $text) as $raw) { + $trimmed = trim($raw); + if ($trimmed != '') { + $patterns[] = $trimmed; + } + } + return $patterns; + } + /** * Validate the values * -- cgit v1.2.3-54-g00ecf From 0f975f42159ce714b59b5d7ca958f3f5ee1b226b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 23 Apr 2010 08:24:53 -0700 Subject: Fix to regression in last commit; wrong field name for homepage blacklist --- plugins/Blacklist/blacklistadminpanel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php index 23c503cd8..4289dec1b 100644 --- a/plugins/Blacklist/blacklistadminpanel.php +++ b/plugins/Blacklist/blacklistadminpanel.php @@ -91,7 +91,7 @@ class BlacklistadminpanelAction extends AdminPanelAction $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames')); Nickname_blacklist::saveNew($nickPatterns); - $urlPatterns = $this->splitPatterns($this->trimmed('url-nicknames')); + $urlPatterns = $this->splitPatterns($this->trimmed('blacklist-urls')); Homepage_blacklist::saveNew($urlPatterns); return; -- cgit v1.2.3-54-g00ecf From 4beaba9fb013ab32be0e07fe4d25a622c95b8a06 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 23 Apr 2010 11:28:50 -0700 Subject: Ticket #93: pretty up the auto-submit for OpenID logins a bit. * throwing in our spinner * cleanup of texts * "If this doesn't go through click the button" instead of just a mystery button * slightly faster submission: immediate at end of page rather than waiting for jQuery to confirm document setup completion --- plugins/OpenID/openid.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 152438917..4ec336e1c 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -299,11 +299,21 @@ class AutosubmitAction extends Action function title() { - return _m('OpenID Auto-Submit'); + return _m('OpenID Login Submission'); } function showContent() { + $this->raw('

'); + // @fixme this would be better using standard CSS class, but the present theme's a bit scary. + $this->element('img', array('src' => Theme::path('images/icons/icon_processing.gif', 'base'), + // for some reason the base CSS sets s as block display?! + 'style' => 'display: inline')); + $this->text(_m('Requesting authorization from your login provider...')); + $this->raw('

'); + $this->raw('

'); + $this->text(_m('If you are not redirected to your login provider in a few seconds, try pushing the button below.')); + $this->raw('

'); $this->raw($this->form_html); } @@ -311,8 +321,6 @@ class AutosubmitAction extends Action { parent::showScripts(); $this->element('script', null, - '$(document).ready(function() { ' . - ' $(\'#'. $this->form_id .'\').submit(); '. - '});'); + 'document.getElementById(\'' . $this->form_id . '\').submit();'); } } -- cgit v1.2.3-54-g00ecf From 9c8052e755e5ad4c8120ace9acdd75ee910e2ab7 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 23 Apr 2010 12:54:31 -0700 Subject: Rerun feed discovery and update the feed, salmon, and hub for the given OStatus remote profile. Restarts subscription fresh as well. update-profile.php -sexample.com http://example.com/path/to/profile/url --- plugins/OStatus/scripts/update-profile.php | 147 +++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 plugins/OStatus/scripts/update-profile.php (limited to 'plugins') diff --git a/plugins/OStatus/scripts/update-profile.php b/plugins/OStatus/scripts/update-profile.php new file mode 100644 index 000000000..d06de4f90 --- /dev/null +++ b/plugins/OStatus/scripts/update-profile.php @@ -0,0 +1,147 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$helptext = <<uri\n"; +showProfile($oprofile); + +print "\n"; +print "Re-running feed discovery for profile URL $oprofile->uri\n"; +// @fixme will bork where the URI isn't the profile URL for now +$discover = new FeedDiscovery(); +$feedurl = $discover->discoverFromURL($oprofile->uri); +$huburi = $discover->getAtomLink('hub'); +$salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES); + +print " Feed URL: $feedurl\n"; +print " Hub URL: $huburi\n"; +print " Salmon URL: $salmonuri\n"; + +if ($feedurl != $oprofile->feeduri || $salmonuri != $oprofile->salmonuri) { + print "\n"; + print "Updating...\n"; + // @fixme update keys :P + #$orig = clone($oprofile); + #$oprofile->feeduri = $feedurl; + #$oprofile->salmonuri = $salmonuri; + #$ok = $oprofile->update($orig); + $ok = $oprofile->query('UPDATE ostatus_profile SET ' . + 'feeduri=\'' . $oprofile->escape($feedurl) . '\',' . + 'salmonuri=\'' . $oprofile->escape($salmonuri) . '\' ' . + 'WHERE uri=\'' . $oprofile->escape($uri) . '\''); + + if (!$ok) { + print "Failed to update profile record...\n"; + exit(1); + } + + $oprofile->decache(); +} else { + print "\n"; + print "Ok, ostatus_profile record unchanged.\n\n"; +} + +$sub = FeedSub::ensureFeed($feedurl); + +if ($huburi != $sub->huburi) { + print "\n"; + print "Updating hub record for feed; was $sub->huburi\n"; + $orig = clone($sub); + $sub->huburi = $huburi; + $ok = $sub->update($orig); + + if (!$ok) { + print "Failed to update sub record...\n"; + exit(1); + } +} else { + print "\n"; + print "Feed record ok, not changing.\n\n"; +} + +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"; +} + +$o2 = Ostatus_profile::staticGet('uri', $uri); + +print "\n"; +print "New profile state:\n"; +showProfile($o2); + +print "\n"; +print "New feed state:\n"; +$sub2 = FeedSub::ensureFeed($feedurl); +showSub($sub2); + +function showProfile($oprofile) +{ + print " Feed URL: $oprofile->feeduri\n"; + print " Salmon URL: $oprofile->salmonuri\n"; + print " Avatar URL: $oprofile->avatar\n"; + print " Profile ID: $oprofile->profile_id\n"; + print " Group ID: $oprofile->group_id\n"; + print " Record created: $oprofile->created\n"; + print " Record modified: $oprofile->modified\n"; +} + +function showSub($sub) +{ + print " Subscription state: $sub->sub_state\n"; + print " Verify token: $sub->verify_token\n"; + print " Signature secret: $sub->secret\n"; + print " Sub start date: $sub->sub_start\n"; + print " Record created: $sub->created\n"; + print " Record modified: $sub->modified\n"; +} -- cgit v1.2.3-54-g00ecf