diff options
Diffstat (limited to 'plugins/OStatus/scripts')
-rw-r--r-- | plugins/OStatus/scripts/fixup-shadow.php | 59 | ||||
-rw-r--r-- | plugins/OStatus/scripts/resub-feed.php | 4 | ||||
-rw-r--r-- | plugins/OStatus/scripts/testfeed.php | 3 | ||||
-rw-r--r-- | plugins/OStatus/scripts/updateostatus.php | 6 |
4 files changed, 62 insertions, 10 deletions
diff --git a/plugins/OStatus/scripts/fixup-shadow.php b/plugins/OStatus/scripts/fixup-shadow.php index 6522ca240..3e2c18e02 100644 --- a/plugins/OStatus/scripts/fixup-shadow.php +++ b/plugins/OStatus/scripts/fixup-shadow.php @@ -35,6 +35,58 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; $dry = have_option('dry-run'); +// Look for user.uri matches... These may not match up with the current +// URL schema if the site has changed names. +echo "Checking for bogus ostatus_profile entries matching user.uri...\n"; + +$user = new User(); +$oprofile = new Ostatus_profile(); +$user->joinAdd($oprofile, 'INNER', 'oprofile', 'uri'); +$user->find(); +$count = $user->N; +echo "Found $count...\n"; + +while ($user->fetch()) { + $uri = $user->uri; + echo "user $user->id ($user->nickname) hidden by $uri"; + if ($dry) { + echo " - skipping\n"; + } else { + echo " - removing bogus ostatus_profile entry..."; + $evil = Ostatus_profile::staticGet('uri', $uri); + $evil->delete(); + echo " ok\n"; + } +} +echo "\n"; + +// Also try user_group.uri matches for local groups. +// Not all group entries will have this filled out, though, as it's new! +echo "Checking for bogus ostatus_profile entries matching local user_group.uri...\n"; +$group = new User_group(); +$group->joinAdd(array('uri', 'ostatus_profile:uri')); +$group->joinAdd(array('id', 'local_group:group_id')); +$group->find(); +$count = $group->N; +echo "Found $count...\n"; + +while ($group->fetch()) { + $uri = $group->uri; + echo "group $group->id ($group->nickname) hidden by $uri"; + if ($dry) { + echo " - skipping\n"; + } else { + echo " - removing bogus ostatus_profile entry..."; + $evil = Ostatus_profile::staticGet('uri', $uri); + $evil->delete(); + echo " ok\n"; + } +} +echo "\n"; + + +// Fallback? +echo "Checking for bogus profiles blocking local users/groups by URI pattern match...\n"; $oprofile = new Ostatus_profile(); $marker = mt_rand(31337, 31337000); @@ -42,16 +94,18 @@ $marker = mt_rand(31337, 31337000); $profileTemplate = common_local_url('userbyid', array('id' => $marker)); $encProfile = $oprofile->escape($profileTemplate, true); $encProfile = str_replace($marker, '%', $encProfile); +echo " LIKE '$encProfile'\n"; $groupTemplate = common_local_url('groupbyid', array('id' => $marker)); $encGroup = $oprofile->escape($groupTemplate, true); $encGroup = str_replace($marker, '%', $encGroup); +echo " LIKE '$encGroup'\n"; $sql = "SELECT * FROM ostatus_profile WHERE uri LIKE '%s' OR uri LIKE '%s'"; $oprofile->query(sprintf($sql, $encProfile, $encGroup)); $count = $oprofile->N; -echo "Found $count bogus ostatus_profile entries shadowing local users and groups:\n"; +echo "Found $count...\n"; while ($oprofile->fetch()) { $uri = $oprofile->uri; @@ -77,7 +131,7 @@ while ($oprofile->fetch()) { echo "$uri matched query, but we don't recognize it.\n"; continue; } - + if ($dry) { echo " - skipping\n"; } else { @@ -93,4 +147,3 @@ if ($count && $dry) { } else { echo "done.\n"; } - diff --git a/plugins/OStatus/scripts/resub-feed.php b/plugins/OStatus/scripts/resub-feed.php index 121d12109..8803c0118 100644 --- a/plugins/OStatus/scripts/resub-feed.php +++ b/plugins/OStatus/scripts/resub-feed.php @@ -38,7 +38,7 @@ if (empty($args[0]) || !Validate::uri($args[0])) { $feedurl = $args[0]; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); @@ -57,7 +57,7 @@ if ($ok) { print "Could not confirm.\n"; } -$sub2 = FeedSub::staticGet('topic', $feedurl); +$sub2 = FeedSub::staticGet('uri', $feedurl); print "\n"; print "New state:\n"; diff --git a/plugins/OStatus/scripts/testfeed.php b/plugins/OStatus/scripts/testfeed.php index 5e3ccd433..149bcc343 100644 --- a/plugins/OStatus/scripts/testfeed.php +++ b/plugins/OStatus/scripts/testfeed.php @@ -45,7 +45,7 @@ $skip = have_option('skip') ? intval(get_option_value('skip')) : 0; $count = have_option('count') ? intval(get_option_value('count')) : 0; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); @@ -86,4 +86,3 @@ if ($skip || $count) { } Event::handle('StartFeedSubReceive', array($sub, $feed)); - diff --git a/plugins/OStatus/scripts/updateostatus.php b/plugins/OStatus/scripts/updateostatus.php index 622ded56a..052cca146 100644 --- a/plugins/OStatus/scripts/updateostatus.php +++ b/plugins/OStatus/scripts/updateostatus.php @@ -44,14 +44,14 @@ try { if (empty($user)) { throw new Exception("Can't find user with id '$id'."); } - updateProfileURL($user); + updateOStatus($user); } else if (have_option('n', 'nickname')) { $nickname = get_option_value('n', 'nickname'); $user = User::staticGet('nickname', $nickname); if (empty($user)) { - throw new Exception("Can't find user with nickname '$nickname'"); + throw new Exception("Can't find user with nickname '$nickname'."); } - updateProfileURL($user); + updateOStatus($user); } else if (have_option('a', 'all')) { $user = new User(); if ($user->find()) { |