]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Removed legacy OMB. Use OStatus for remote profiles.
authorMikael Nordfeldth <mmn@hethane.se>
Mon, 28 Oct 2013 15:22:09 +0000 (16:22 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Mon, 28 Oct 2013 15:22:09 +0000 (16:22 +0100)
61 files changed:
actions/apiaccountupdateprofile.php
actions/apiaccountupdateprofileimage.php
actions/avatarsettings.php
actions/profilesettings.php
actions/subscribe.php
classes/Profile.php
classes/Remote_profile.php [deleted file]
db/core.php
lib/command.php
lib/default.php
lib/installer.php
lib/snapshot.php
lib/util.php
plugins/ExtendedProfile/actions/profiledetailsettings.php
plugins/OMB/OMBPlugin.php [deleted file]
plugins/OMB/README [deleted file]
plugins/OMB/actions/accesstoken.php [deleted file]
plugins/OMB/actions/finishremotesubscribe.php [deleted file]
plugins/OMB/actions/postnotice.php [deleted file]
plugins/OMB/actions/remotesubscribe.php [deleted file]
plugins/OMB/actions/requesttoken.php [deleted file]
plugins/OMB/actions/updateprofile.php [deleted file]
plugins/OMB/actions/userauthorization.php [deleted file]
plugins/OMB/actions/xrds.php [deleted file]
plugins/OMB/extlib/libomb/base_url_xrds_mapper.php [deleted file]
plugins/OMB/extlib/libomb/constants.php [deleted file]
plugins/OMB/extlib/libomb/datastore.php [deleted file]
plugins/OMB/extlib/libomb/helper.php [deleted file]
plugins/OMB/extlib/libomb/invalidparameterexception.php [deleted file]
plugins/OMB/extlib/libomb/invalidyadisexception.php [deleted file]
plugins/OMB/extlib/libomb/notice.php [deleted file]
plugins/OMB/extlib/libomb/omb_yadis_xrds.php [deleted file]
plugins/OMB/extlib/libomb/plain_xrds_writer.php [deleted file]
plugins/OMB/extlib/libomb/profile.php [deleted file]
plugins/OMB/extlib/libomb/remoteserviceexception.php [deleted file]
plugins/OMB/extlib/libomb/service_consumer.php [deleted file]
plugins/OMB/extlib/libomb/service_provider.php [deleted file]
plugins/OMB/extlib/libomb/unsupportedserviceexception.php [deleted file]
plugins/OMB/extlib/libomb/xrds_mapper.php [deleted file]
plugins/OMB/extlib/libomb/xrds_writer.php [deleted file]
plugins/OMB/lib/omb.php [deleted file]
plugins/OMB/lib/omboauthdatastore.php [deleted file]
plugins/OMB/lib/ombqueuehandler.php [deleted file]
plugins/OMB/lib/profilequeuehandler.php [deleted file]
plugins/OMB/locale/OMB.pot [deleted file]
plugins/OMB/locale/br/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/ca/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/de/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/es/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/eu/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/fr/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/gl/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/ia/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/it/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/mk/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/nl/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/te/LC_MESSAGES/OMB.po [deleted file]
plugins/OMB/locale/tl/LC_MESSAGES/OMB.po [deleted file]
plugins/OStatus/scripts/updateostatus.php [deleted file]
plugins/TwitterBridge/lib/twitterimport.php
scripts/updateurls.php

index fea6064f30b7cbecf508a048424797049c0d879c..6b9c358e7b79df590c9f4d5c88dd787cef5c8442 100644 (file)
@@ -131,8 +131,6 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
             return;
         }
 
-        common_broadcast_profile($profile);
-
         $twitter_user = $this->twitterUserArray($profile, true);
 
         if ($this->format == 'xml') {
index 6058d4fabd06b5d9c140dbf94efbd0649418fd95..383818415e5c211bc31329ecb48a26c4563bce12 100644 (file)
@@ -97,8 +97,6 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
         $profile = $this->user->getProfile();
         $profile->setOriginal($filename);
 
-        common_broadcast_profile($profile);
-
         $twitter_user = $this->twitterUserArray($profile, true);
 
         if ($this->format == 'xml') {
index 76974265e6dadce606c1ba556601cf26ed4eea13..dd8093b765c57af9599772ecdf90c8764b24385f 100644 (file)
@@ -386,7 +386,6 @@ class AvatarsettingsAction extends SettingsAction
             $this->mode = 'upload';
             // TRANS: Success message for having updated a user avatar.
             $this->showForm(_('Avatar updated.'), true);
-            common_broadcast_profile($profile);
         } else {
             // TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason.
             $this->showForm(_('Failed updating avatar.'));
index 4f63966a4031ad1e8de8552dd73b34a4d4d2f4a5..3b71b997555e4f7ae0c06849048b54722b4684db 100644 (file)
@@ -427,7 +427,6 @@ class ProfilesettingsAction extends SettingsAction
 
             $user->query('COMMIT');
             Event::handle('EndProfileSaveForm', array($this));
-            common_broadcast_profile($profile);
 
             // TRANS: Confirmation shown when user profile settings are saved.
             $this->showForm(_('Settings saved.'), true);
index 5b74c2503b098634695fd029b65f214012729a9f..36f9fc724b53a1c552e02b7075a849a44591d640 100644 (file)
@@ -35,8 +35,7 @@ if (!defined('STATUSNET')) {
 /**
  * Subscription action
  *
- * Subscribing to a profile. Does not work for OMB 0.1 remote subscriptions,
- * but may work for other remote subscription protocols, like OStatus.
+ * Subscribing to a profile. Likely to work for OStatus profiles.
  *
  * Takes parameters:
  *
index e461254f9dde88daea334c282510942a83d0573a..0175831a11fcffc20c3a9f757352d5953b869e30 100644 (file)
@@ -1376,7 +1376,7 @@ class Profile extends Managed_DataObject
         $profile = null;
 
         if (Event::handle('StartGetProfileFromURI', array($uri, &$profile))) {
-            // Get a local user or remote (OMB 0.1) profile
+            // Get a local user
             $user = User::getKV('uri', $uri);
             if (!empty($user)) {
                 $profile = $user->getProfile();
diff --git a/classes/Remote_profile.php b/classes/Remote_profile.php
deleted file mode 100644 (file)
index 46a187f..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-/**
- * Table Definition for remote_profile
- */
-require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
-
-class Remote_profile extends Managed_DataObject
-{
-    ###START_AUTOCODE
-    /* the code below is auto generated do not remove the above tag */
-
-    public $__table = 'remote_profile';                  // table name
-    public $id;                              // int(4)  primary_key not_null
-    public $uri;                             // varchar(255)  unique_key
-    public $postnoticeurl;                   // varchar(255)
-    public $updateprofileurl;                // varchar(255)
-    public $created;                         // datetime()   not_null
-    public $modified;                        // timestamp()   not_null default_CURRENT_TIMESTAMP
-
-    /* the code above is auto generated do not remove the tag below */
-    ###END_AUTOCODE
-
-    function hasRight($right)
-    {
-        $profile = Profile::getKV($this->id);
-        if ($profile) {
-            return $profile->hasright($right);
-        } else {
-            // TRANS: Exception thrown when a right for a non-existing user profile is checked.
-            throw new Exception(_("Missing profile."));
-        }
-    }
-
-    public static function schemaDef()
-    {
-        return array(
-            'description' => 'remote people (OMB)',
-            'fields' => array(
-                'id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'),
-                'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier, usually a tag URI'),
-                'postnoticeurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL we use for posting notices'),
-                'updateprofileurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL we use for updates to this profile'),
-                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
-                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
-            ),
-            'primary key' => array('id'),
-            'unique keys' => array(
-                'remote_profile_uri_key' => array('uri'),
-            ),
-            'foreign keys' => array(
-                'remote_profile_id_fkey' => array('profile', array('id' => 'id')),
-            ),
-        );
-    }
-}
index da2f5fde5fa62fa966377c33ed2698d6141135b2..db0c9371faf9c168d44cada6e7add8d332d326b2 100644 (file)
@@ -34,7 +34,6 @@ $classes = array('Schema_version',
                  'Avatar',
                  'Sms_carrier',
                  'User',
-                 'Remote_profile',
                  'Subscription',
                  'Group_join_queue',
                  'Subscription_queue',
index 6d0d7194f3953b6b9f54234ac9b295299457df0f..04c2e57ec8689b3372b3adf79ad39844e162c22d 100644 (file)
@@ -770,12 +770,6 @@ class SubCommand extends Command
 
         $target = $this->getProfile($this->other);
 
-        $remote = Remote_profile::getKV('id', $target->id);
-        if ($remote) {
-            // TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
-            throw new CommandException(_("Can't subscribe to OMB profiles by command."));
-        }
-
         try {
             Subscription::start($this->user->getProfile(), $target);
             // TRANS: Text shown after having subscribed to another user successfully.
index fd505cd4c2a5931a5371cba25d3e25376f2e347d..431eb6d9e68f94faea055d9f4d03c3a90a6d7795 100644 (file)
@@ -300,8 +300,6 @@ $default =
         'location' =>
         array('share' => 'user', // whether to share location; 'always', 'user', 'never'
               'sharedefault' => false),
-        'omb' =>
-        array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates
         'logincommand' =>
         array('disabled' => true),
         'plugins' =>
index a8f3e31a45db47a9ea4401b182c82c1d955167b2..6292b184673907b0d5641f722491fa57168c210c 100644 (file)
@@ -259,16 +259,12 @@ abstract class Installer
      */
     function validateSiteProfile()
     {
-        $fail = false;
-
-        $sprofile = $this->siteProfile;
-
-        if (empty($sprofile))  {
+        if (empty($this->siteProfile))  {
             $this->updateStatus("No site profile selected.", true);
-            $fail = true;
+            return false;
         }
 
-        return !$fail;
+        return true;
     }
 
     /**
@@ -563,6 +559,8 @@ abstract class Installer
      */
     function doInstall()
     {
+        global $config;
+
         $this->updateStatus("Initializing...");
         ini_set('display_errors', 1);
         error_reporting(E_ALL);
@@ -572,9 +570,15 @@ abstract class Installer
         if (!defined('STATUSNET')) {
             define('STATUSNET', true);
         }
+
         require_once INSTALLDIR . '/lib/framework.php';
         StatusNet::initDefaults($this->server, $this->path);
 
+        if ($this->siteProfile == "singleuser") {
+            // Until we use ['site']['profile']==='singleuser' everywhere
+            $config['singleuser']['enabled'] = true;
+        }
+
         try {
             $this->db = $this->setupDatabase();
             if (!$this->db) {
index a16087ac00da648d6b3f43307be0c776a1b688b4..54cf512743e0bb6d5ea4d84a83908e01aae16272 100644 (file)
@@ -136,7 +136,6 @@ class Snapshot
         $tables = array('user',
                         'notice',
                         'subscription',
-                        'remote_profile',
                         'user_group');
 
         foreach ($tables as $table) {
index 842889ec5b04b84e1d75b378d35608145305ae42..5f6f03295868f2ca8c7cd1851fa7f53f48c58996 100644 (file)
@@ -1513,21 +1513,6 @@ function common_enqueue_notice($notice)
     return true;
 }
 
-/**
- * Legacy function to broadcast profile updates to OMB remote subscribers.
- *
- * XXX: This probably needs killing, but there are several bits of code
- *      that broadcast profile changes that need to be dealt with. AFAIK
- *      this function is only used for OMB. -z
- *
- * Since this may be slow with a lot of subscribers or bad remote sites,
- * this is run through the background queues if possible.
- */
-function common_broadcast_profile(Profile $profile)
-{
-    Event::handle('BroadcastProfile', array($profile));
-}
-
 function common_profile_url($nickname)
 {
     return common_local_url('showstream', array('nickname' => $nickname),
index 016dad39ef33b97e3fd4a4f54f950972d68e590b..5bc2443481d1f9b565a7fb95e66d856b9485b680 100644 (file)
@@ -633,7 +633,6 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
             }
 
             Event::handle('EndProfileSaveForm', array($this));
-            common_broadcast_profile($profile);
         }
     }
 
diff --git a/plugins/OMB/OMBPlugin.php b/plugins/OMB/OMBPlugin.php
deleted file mode 100644 (file)
index 27c35a0..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2011, StatusNet, Inc.
- *
- * OpenMicroBlogging plugin - add OpenMicroBloggin 0.1 support to
- * StatusNet.
- *
- * Note: the OpenMicroBlogging protocol has been deprecated in favor of OStatus.
- * This plugin is provided for backwards compatibility and experimentation.
- *
- * Please see the README and the OStatus plugin.
- *
- * PHP version 5
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @category  Sample
- * @package   StatusNet
- * @author    Zach Copley
- * @copyright 2011 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/');
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * OMB plugin main class
- *
- * Depends on: WebFinger plugin
- *
- * @category  Integration
- * @package   StatusNet
- * @author    Zach Copley <zach@status.net>
- * @copyright 2011 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-class OMBPlugin extends Plugin
-{
-
-    /**
-     * Map URLs to actions
-     *
-     * @param Net_URL_Mapper $m path-to-action mapper
-     *
-     * @return boolean hook value; true means continue processing, false means stop.
-     */
-    function onRouterInitialized($m)
-    {
-        $bare = array(
-            'requesttoken',
-            'accesstoken',
-            'userauthorization',
-            'postnotice',
-            'updateprofile',
-            'finishremotesubscribe'
-        );
-
-        foreach ($bare as $action) {
-            $m->connect(
-                'index.php?action=' . $action, array('action' => $action)
-            );
-        }
-
-        // exceptional
-
-        $m->connect('main/remote', array('action' => 'remotesubscribe'));
-        $m->connect(
-            'main/remote?nickname=:nickname',
-            array('action' => 'remotesubscribe'),
-            array('nickname' => '[A-Za-z0-9_-]+')
-        );
-
-        $m->connect(
-            'xrds',
-            array('action' => 'xrds', 'nickname' => $nickname)
-        );
-
-        return true;
-    }
-
-    /**
-     * Put saved notices into the queue for OMB distribution
-     *
-     * @param Notice $notice     the notice to broadcast
-     * @param array  $transports queuehandler's list of transports
-     * @return boolean true if queing was successful
-     */
-    function onStartEnqueueNotice($notice, &$transports)
-    {
-        if ($notice->isLocal()) {
-            if ($notice->inScope(null)) {
-                array_unshift($transports, 'omb');
-                common_log(
-                    LOG_INFO, "Notice {$notice->id} queued for OMB processing"
-                );
-            } else {
-                // Note: We don't do privacy-controlled OMB updates.
-                common_log(
-                    LOG_NOTICE,
-                    "Not queueing notice {$notice->id} for OMB because of "
-                    . "privacy; scope = {$notice->scope}",
-                    __FILE__
-                );
-            }
-        } else {
-            common_log(
-                LOG_NOTICE,
-                "Not queueing notice {$notice->id} for OMB because it's not "
-                . "local.",
-                __FILE__
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * Set up queue handlers for outgoing OMB pushes
-     *
-     * @param QueueManager $qm
-     * @return boolean hook return
-     */
-    function onEndInitializeQueueManager(QueueManager $qm)
-    {
-        // Prepare outgoing distributions after notice save.
-        $qm->connect('omb', 'OmbQueueHandler');
-        $qm->connect('profile', 'ProfileQueueHandler');
-
-        return true;
-    }
-
-    /**
-     * Return OMB remote profile, if any
-     *
-     * @param Profile $profile
-     * @param string  $uri
-     * @return boolen false if there's a remote profile
-     */
-    function onStartGetProfileUri($profile, &$uri)
-    {
-        $remote = Remote_profile::getKV('id', $this->id);
-        if (!empty($remote)) {
-            $uri = $remote->uri;
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * We can't initiate subscriptions for a remote OMB profile; don't show
-     * subscribe button
-     *
-     * @param type $action
-     */
-    function onStartShowProfileListSubscribeButton($action)
-    {
-        $remote = Remote_profile::getKV('id', $action->profile->id);
-        if (empty($remote)) {
-            false;
-        }
-        return true;
-    }
-
-    /**
-     * Check for illegal subscription attempts
-     *
-     * @param Profile $profile  subscriber
-     * @param Profile $other    subscribee
-     * @return hook return value
-     */
-    function onStartSubscribe(Profile $profile, Profile $other)
-    {
-        // OMB 0.1 doesn't have a mechanism for local-server-
-        // originated subscription.
-
-        $omb01 = Remote_profile::getKV('id', $other->id);
-
-        if (!empty($omb01)) {
-            throw new ClientException(
-                // TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-                _m('You cannot subscribe to an OMB 0.1 '
-                    . 'remote profile with this action.'
-                )
-            );
-            return false;
-        }
-    }
-
-    /**
-     * Throw an error if someone tries to tag a remote profile
-     *
-     * @param Profile $tagger_profile   profile of the tagger
-     * @param Profile $tagged_profile   profile of the taggee
-     * @param string $tag
-     *
-     * @return true
-     */
-    function onStartTagProfile($tagger_profile, $tagged_profile, $tag)
-    {
-        // OMB 0.1 doesn't have a mechanism for local-server-
-        // originated tag.
-
-        $omb01 = Remote_profile::getKV('id', $tagged_profile->id);
-
-        if (!empty($omb01)) {
-            $this->clientError(
-                // TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-                _m('You cannot list an OMB 0.1 '
-                   .'remote profile with this action.')
-            );
-        }
-        return false;
-    }
-
-    /**
-     * Check to make sure we're not tryng to untag an OMB profile
-     *
-     * // XXX: Should this ever happen?
-     *
-     * @param Profile_tag $ptag the profile tag
-     */
-    function onUntagProfile($ptag)
-    {
-        // OMB 0.1 doesn't have a mechanism for local-server-
-        // originated tag.
-
-        $omb01 = Remote_profile::getKV('id', $ptag->tagged);
-
-        if (!empty($omb01)) {
-            $this->clientError(
-                // TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-                _m('You cannot (un)list an OMB 0.1 '
-                    . 'remote profile with this action.')
-            );
-            return false;
-        }
-    }
-
-    /**
-     * Remove old OMB subscription tokens
-     *
-     * @param Profile $profile  subscriber
-     * @param Profile $other    subscribee
-     * @return hook return value
-     */
-    function onEndUnsubscribe(Profile $profile, Profile $other)
-    {
-        $sub = Subscription::pkeyGet(
-            array('subscriber' => $profile->id, 'subscribed' => $other->id)
-        );
-
-        if (!empty($sub->token)) {
-
-            $token = new Token();
-
-            $token->tok    = $sub->token;
-
-            if ($token->find(true)) {
-
-                $result = $token->delete();
-
-                if (!$result) {
-                    common_log_db_error($token, 'DELETE', __FILE__);
-                    throw new Exception(
-                        // TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-                        _m('Could not delete subscription OMB token.')
-                    );
-                }
-            } else {
-                common_log(
-                    LOG_ERR,
-                    "Couldn't find credentials with token {$token->tok}",
-                    __FILE__
-                );
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Search for an OMB remote profile by URI
-     *
-     * @param string  $uri      remote profile URI
-     * @param Profile $profile  the profile to set
-     * @return boolean hook value
-     */
-    function onStartGetProfileFromURI($uri, &$profile)
-    {
-        $remote_profile = Remote_profile::getKV('uri', $uri);
-        if (!empty($remote_profile)) {
-            $profile = Profile::getKV('id', $remote_profile->profile_id);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Return OMB remote profiles as well as regular profiles
-     * in helper
-     *
-     * @param type $profile
-     * @param type $uri
-     */
-    function onStartCommonProfileURI($profile, &$uri)
-    {
-        $remote = Remote_profile::getKV($profile->id);
-        if ($remote) {
-            $uri = $remote->uri;
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Broadcast a profile over OMB
-     *
-     * @param Profile $profile to broadcast
-     * @return false
-     */
-    function onBroadcastProfile($profile) {
-        $qm = QueueManager::get();
-        $qm->enqueue($profile, "profile");
-        return true;
-    }
-
-    function onStartProfileRemoteSubscribe($out, $profile)
-    {
-        $out->elementStart('li', 'entity_subscribe');
-        $url = common_local_url('remotesubscribe',
-                                array('nickname' => $this->profile->nickname));
-        $out->element('a', array('href' => $url,
-                                  'class' => 'entity_remote_subscribe'),
-                       // TRANS: Link text for link that will subscribe to a remote profile.
-                       _m('BUTTON','Subscribe'));
-        $out->elementEnd('li');
-
-        return false;
-    }
-
-    /**
-     * Plugin version info
-     *
-     * @param array $versions
-     * @return boolean hook value
-     */
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array(
-            'name'           => 'OpenMicroBlogging',
-            'version'        => STATUSNET_VERSION,
-            'author'         => 'Zach Copley',
-            'homepage'       => 'http://status.net/wiki/Plugin:Sample',
-            // TRANS: Plugin description.
-            'rawdescription' => _m('A sample plugin to show basics of development for new hackers.')
-        );
-
-        return true;
-    }
-}
diff --git a/plugins/OMB/README b/plugins/OMB/README
deleted file mode 100644 (file)
index f296e38..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-OMB (OpenMicroBlogging) plugin
-==============================
-
-This plugin encapsulates OpenMicroBlogging 0.1 functionality. OMB was the
-original federation protocol for StatusNet, but has been deprecated
-in favor of OStatus (see the OStatus plugin). This plugin is provided for
-backward-compatibility with older sites, and for posterity.
-
-External libraries
-------------------
-
-This is provided with the plugin, but you may wish to use a newer version of
-the library, if and when it becomes available.
-
-- libomb. a library for implementing OpenMicroBlogging 0.1
-  http://gitorious.org/libomb
-
-
-Installation
-------------
-
-[TODO]
-
-Offline Processing
-------------------
-
-Note: once you have a sizable number of users, sending OMB messages whenever
-someone posts a message can really slow down your site; it may cause posting
-to timeout. You may wish to enable queuing and handle OMB communication
-offline. See the "queues and daemons" section of the main StatusNet README.
diff --git a/plugins/OMB/actions/accesstoken.php b/plugins/OMB/actions/accesstoken.php
deleted file mode 100644 (file)
index cd7a2f4..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-/**
- * Access token class
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-require_once dirname(__FILE__) . '/../lib/omb.php';
-
-/**
- * Access token class
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- */
-class AccesstokenAction extends Action
-{
-    /**
-     * Class handler
-     *
-     * @param array $args query arguments
-     *
-     * @return nothing
-     *
-     **/
-    function handle($args)
-    {
-        parent::handle($args);
-        try {
-            $srv = new OMB_Service_Provider(null, omb_oauth_datastore(),
-                                            omb_oauth_server());
-            $srv->writeAccessToken();
-        } catch (Exception $e) {
-            $this->serverError($e->getMessage());
-        }
-    }
-}
diff --git a/plugins/OMB/actions/finishremotesubscribe.php b/plugins/OMB/actions/finishremotesubscribe.php
deleted file mode 100644 (file)
index e933716..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-/**
- * Handler for remote subscription finish callback
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- **/
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../extlib/libomb/service_consumer.php';
-require_once dirname(__FILE__) . '/../lib/omb.php';
-
-/**
- * Handler for remote subscription finish callback
- *
- * When a remote user subscribes a local user, a redirect to this action is
- * issued after the remote user authorized their service to subscribe.
- *
- * @category Action
- * @package  Laconica
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@controlyourself.ca>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://laconi.ca/
- */
-class FinishremotesubscribeAction extends Action
-{
-    /**
-     * Class handler.
-     *
-     * @param array $args query arguments
-     *
-     * @return nothing
-     *
-     */
-    function handle($args)
-    {
-        parent::handle($args);
-
-        /* Restore session data. RemotesubscribeAction should have stored
-           this entry. */
-        $service  = unserialize($_SESSION['oauth_authorization_request']);
-
-        if (!$service) {
-            // TRANS: Client error displayed when subscribing to a remote profile and an unexpected response is received.
-            $this->clientError(_('Not expecting this response!'));
-            return;
-        }
-
-        common_debug('stored request: '. print_r($service, true), __FILE__);
-
-        /* Create user objects for both users. Do it early for request
-           validation. */
-        $user = User::getKV('uri', $service->getListeneeURI());
-
-        if (!$user) {
-            // TRANS: Client error displayed when subscribing to a remote profile that does not exist.
-            $this->clientError(_('User being listened to does not exist.'));
-            return;
-        }
-
-        $other = User::getKV('uri', $service->getListenerURI());
-
-        if ($other) {
-            // TRANS: Client error displayed when subscribing to a remote profile that is a local profile.
-            $this->clientError(_('You can use the local subscription!'));
-            return;
-        }
-
-        $remote = Remote_profile::getKV('uri', $service->getListenerURI());
-        if ($remote) {
-            // Note remote profile may not have been saved yet.
-            // @fixme not convinced this is correct at all!
-
-            $profile = Profile::getKV($remote->id);
-
-            if ($user->hasBlocked($profile)) {
-                // TRANS: Client error displayed when subscribing to a remote profile that is blocked form subscribing to.
-                $this->clientError(_('That user has blocked you from subscribing.'));
-                return;
-            }
-        }
-
-        /* Perform the handling itself via libomb. */
-        try {
-            $service->finishAuthorization();
-        } catch (OAuthException $e) {
-            if ($e->getMessage() == 'The authorized token does not equal the ' .
-                                    'submitted token.') {
-                // TRANS: Client error displayed when subscribing to a remote profile without providing an authorised token.
-                $this->clientError(_('You are not authorized.'));
-                return;
-            } else {
-                // TRANS: Client error displayed when subscribing to a remote profile and conversion of the request token to access token fails.
-                $this->clientError(_('Could not convert request token to ' .
-                                     'access token.'));
-                return;
-            }
-        } catch (OMB_RemoteServiceException $e) {
-            // TRANS: Client error displayed when subscribing to a remote profile fails because of an unsupported version of the OMB protocol.
-            $this->clientError(_('Remote service uses unknown version of ' .
-                                 'OMB protocol.'));
-            return;
-        } catch (Exception $e) {
-            common_debug('Got exception ' . print_r($e, true), __FILE__);
-            $this->clientError($e->getMessage());
-            return;
-        }
-
-        /* The service URLs are not accessible from datastore, so setting them
-           after insertion of the profile. */
-        $remote = Remote_profile::getKV('uri', $service->getListenerURI());
-        $orig_remote = clone($remote);
-
-        $remote->postnoticeurl    =
-                            $service->getServiceURI(OMB_ENDPOINT_POSTNOTICE);
-        $remote->updateprofileurl =
-                            $service->getServiceURI(OMB_ENDPOINT_UPDATEPROFILE);
-
-        if (!$remote->update($orig_remote)) {
-                // TRANS: Server error displayed when subscribing to a remote profile fails because the remote profile could not be updated.
-                $this->serverError(_('Error updating remote profile.'));
-                return;
-        }
-
-        /* Clear the session data. */
-        unset($_SESSION['oauth_authorization_request']);
-
-        /* If we show subscriptions in reverse chronological order, the new one
-           should show up close to the top of the page. */
-        common_redirect(common_local_url('subscribers', array('nickname' =>
-                                                             $user->nickname)),
-                        303);
-    }
-}
diff --git a/plugins/OMB/actions/postnotice.php b/plugins/OMB/actions/postnotice.php
deleted file mode 100644 (file)
index c2128f7..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
- * Handle postnotice action
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-
-/**
- * Handler for postnotice action
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- */
-class PostnoticeAction extends Action
-{
-    /**
-     * For initializing members of the class.
-     *
-     * @param array $argarray misc. arguments
-     *
-     * @return boolean true
-     */
-    function prepare($argarray)
-    {
-        StatusNet::setApi(true); // Send smaller error pages
-
-        parent::prepare($argarray);
-
-        try {
-            $this->checkNotice();
-        } catch (Exception $e) {
-            $this->clientError($e->getMessage());
-            return false;
-        }
-        return true;
-    }
-
-    function handle($args)
-    {
-        parent::handle($args);
-        try {
-            $srv = new OMB_Service_Provider(null, omb_oauth_datastore(),
-                                            omb_oauth_server());
-            $srv->handlePostNotice();
-        } catch (OMB_RemoteServiceException $rse) {
-            $msg = $rse->getMessage();
-            if (preg_match('/Revoked accesstoken/', $msg) ||
-                preg_match('/No subscriber/', $msg)) {
-                $this->clientError($msg, 403);
-            } else {
-                $this->clientError($msg);
-            }
-        } catch (Exception $e) {
-            $this->serverError($e->getMessage());
-            return;
-        }
-    }
-
-    function checkNotice()
-    {
-        $content = common_shorten_links($_POST['omb_notice_content']);
-        if (Notice::contentTooLong($content)) {
-            // TRANS: Client error displayed if the notice posted has too many characters.
-            $this->clientError(_('Invalid notice content.'), 400);
-            return false;
-        }
-        $license      = $_POST['omb_notice_license'];
-        $site_license = common_config('license', 'url');
-        if ($license && !common_compatible_license($license, $site_license)) {
-            // TRANS: Exception thrown if a notice's license is not compatible with the StatusNet site license.
-            // TRANS: %1$s is the notice license, %2$s is the StatusNet site's license.
-            throw new Exception(sprintf(_('Notice license "%1$s" is not ' .
-                                          'compatible with site license "%2$s".'),
-                                        $license, $site_license));
-        }
-    }
-}
diff --git a/plugins/OMB/actions/remotesubscribe.php b/plugins/OMB/actions/remotesubscribe.php
deleted file mode 100644 (file)
index 1f7b9c0..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-/**
- * Handler for remote subscription
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011 StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- **/
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_consumer.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/profile.php';
-
-/**
- * Handler for remote subscription
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- */
-class RemotesubscribeAction extends Action
-{
-    var $nickname;
-    var $profile_url;
-    var $err;
-
-    function prepare($args)
-    {
-        parent::prepare($args);
-
-        if (common_logged_in()) {
-            // TRANS: Client error displayed when using remote subscribe for a local entity.
-            $this->clientError(_('You can use the local subscription!'));
-            return false;
-        }
-
-        $this->nickname    = $this->trimmed('nickname');
-        $this->profile_url = $this->trimmed('profile_url');
-
-        return true;
-    }
-
-    function handle($args)
-    {
-        parent::handle($args);
-
-        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-            /* Use a session token for CSRF protection. */
-            $token = $this->trimmed('token');
-            if (!$token || $token != common_session_token()) {
-                // TRANS: Client error displayed when the session token does not match or is not given.
-                $this->showForm(_('There was a problem with your session token. '.
-                                  'Try again, please.'));
-                return;
-            }
-            $this->remoteSubscription();
-        } else {
-            $this->showForm();
-        }
-    }
-
-    function showForm($err=null)
-    {
-        $this->err = $err;
-        $this->showPage();
-    }
-
-    function showPageNotice()
-    {
-        if ($this->err) {
-            $this->element('div', 'error', $this->err);
-        } else {
-            // TRANS: Page notice for remote subscribe. This message contains Markdown links.
-            // TRANS: Ensure to keep the correct markup of [link description](link).
-            $inst = _('To subscribe, you can [login](%%action.login%%),' .
-                      ' or [register](%%action.register%%) a new ' .
-                      ' account. If you already have an account ' .
-                      ' on a [compatible microblogging site](%%doc.openmublog%%), ' .
-                      ' enter your profile URL below.');
-            $output = common_markup_to_html($inst);
-            $this->elementStart('div', 'instructions');
-            $this->raw($output);
-            $this->elementEnd('div');
-        }
-    }
-
-    function title()
-    {
-        // TRANS: Page title for Remote subscribe.
-        return _('Remote subscribe');
-    }
-
-    function showContent()
-    {
-        /* The id 'remotesubscribe' conflicts with the
-           button on profile page. */
-        $this->elementStart('form', array('id' => 'form_remote_subscribe',
-                                          'method' => 'post',
-                                          'class' => 'form_settings',
-                                          'action' => common_local_url('remotesubscribe')));
-        $this->elementStart('fieldset');
-        // TRANS: Field legend on page for remote subscribe.
-        $this->element('legend', _('Subscribe to a remote user'));
-        $this->hidden('token', common_session_token());
-
-        $this->elementStart('ul', 'form_data');
-        $this->elementStart('li');
-        // TRANS: Field label on page for remote subscribe.
-        $this->input('nickname', _('User nickname'), $this->nickname,
-                     // TRANS: Field title on page for remote subscribe.
-                     _('Nickname of the user you want to follow.'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        // TRANS: Field label on page for remote subscribe.
-        $this->input('profile_url', _('Profile URL'), $this->profile_url,
-                     // TRANS: Field title on page for remote subscribe.
-                     _('URL of your profile on another compatible microblogging service.'));
-        $this->elementEnd('li');
-        $this->elementEnd('ul');
-        // TRANS: Button text on page for remote subscribe.
-        $this->submit('submit', _m('BUTTON','Subscribe'));
-        $this->elementEnd('fieldset');
-        $this->elementEnd('form');
-    }
-
-    function remoteSubscription()
-    {
-        if (!$this->nickname) {
-            // TRANS: Form validation error on page for remote subscribe when no user was provided.
-            $this->showForm(_('No such user.'));
-            return;
-        }
-
-        $user = User::getKV('nickname', $this->nickname);
-
-        $this->profile_url = $this->trimmed('profile_url');
-
-        if (!$this->profile_url) {
-            // TRANS: Form validation error on page for remote subscribe when no user profile was found.
-            $this->showForm(_('No such user.'));
-            return;
-        }
-
-        if (!common_valid_http_url($this->profile_url)) {
-            // TRANS: Form validation error on page for remote subscribe when an invalid profile URL was provided.
-            $this->showForm(_('Invalid profile URL (bad format).'));
-            return;
-        }
-
-        try {
-            $service = new OMB_Service_Consumer($this->profile_url,
-                                                common_root_url(),
-                                                omb_oauth_datastore());
-        } catch (OMB_InvalidYadisException $e) {
-            // TRANS: Form validation error on page for remote subscribe when no the provided profile URL
-            // TRANS: does not contain expected data.
-            $this->showForm(_('Not a valid profile URL (no YADIS document or ' .
-                              'invalid XRDS defined).'));
-            return;
-        }
-
-        if ($service->getServiceURI(OAUTH_ENDPOINT_REQUEST) ==
-            common_local_url('requesttoken') ||
-            User::getKV('uri', $service->getRemoteUserURI())) {
-            // TRANS: Form validation error on page for remote subscribe.
-            $this->showForm(_('That is a local profile! Login to subscribe.'));
-            return;
-        }
-
-        try {
-            $service->requestToken();
-        } catch (OMB_RemoteServiceException $e) {
-            // TRANS: Form validation error on page for remote subscribe when the remote service is not providing a request token.
-            $this->showForm(_('Could not get a request token.'));
-            return;
-        }
-
-        /* Create an OMB_Profile from $user. */
-        $profile = $user->getProfile();
-        if (!$profile) {
-            common_log_db_error($user, 'SELECT', __FILE__);
-            // TRANS: Error message displayed when referring to a user without a profile.
-            $this->serverError(_('User has no profile.'));
-            return;
-        }
-
-        $target_url = $service->requestAuthorization(
-                                   profile_to_omb_profile($user->uri, $profile),
-                                   common_local_url('finishremotesubscribe'));
-
-        common_ensure_session();
-
-        $_SESSION['oauth_authorization_request'] = serialize($service);
-
-        /* Redirect to the remote service for authorization. */
-        common_redirect($target_url, 303);
-    }
-}
diff --git a/plugins/OMB/actions/requesttoken.php b/plugins/OMB/actions/requesttoken.php
deleted file mode 100644 (file)
index 57e8118..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-/**
- * Request token action class.
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-
-/**
- * Request token action class.
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- */
-class RequesttokenAction extends Action
-{
-     /**
-     * Is read only?
-     *
-     * @return boolean false
-     */
-    function isReadOnly()
-    {
-        return false;
-    }
-
-    /**
-     * Class handler.
-     *
-     * @param array $args array of arguments
-     *
-     * @return void
-     */
-    function handle($args)
-    {
-        parent::handle($args);
-        try {
-            $srv = new OMB_Service_Provider(null, omb_oauth_datastore(),
-                                            omb_oauth_server());
-            $srv->writeRequestToken();
-        } catch (Exception $e) {
-            $this->serverError($e->getMessage());
-        }
-    }
-}
diff --git a/plugins/OMB/actions/updateprofile.php b/plugins/OMB/actions/updateprofile.php
deleted file mode 100644 (file)
index 29d334b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Handle an updateprofile action
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-
-/**
- * Handle an updateprofile action
- *
- * @category Action
- * @package  Laconica
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@controlyourself.ca>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://laconi.ca/
- */
-class UpdateprofileAction extends Action
-{
-    /**
-     * For initializing members of the class.
-     *
-     * @param array $argarray misc. arguments
-     *
-     * @return boolean true
-     */
-    function prepare($argarray)
-    {
-        StatusNet::setApi(true); // Send smaller error pages
-
-        parent::prepare($argarray);
-        $license      = $_POST['omb_listenee_license'];
-        $site_license = common_config('license', 'url');
-        if (!common_compatible_license($license, $site_license)) {
-            // TRANS: Client error displayed when trying to update profile with an incompatible license.
-            // TRANS: %1$s is the license incompatible with site license %2$s.
-            $this->clientError(sprintf(_('Listenee stream license "%1$s" is not '.
-                                         'compatible with site license "%2$s".'),
-                                       $license, $site_license));
-            return false;
-        }
-        return true;
-    }
-
-    function handle($args)
-    {
-        parent::handle($args);
-
-        try {
-            $srv = new OMB_Service_Provider(null, omb_oauth_datastore(),
-                                            omb_oauth_server());
-            $srv->handleUpdateProfile();
-        } catch (OMB_RemoteServiceException $rse) {
-            $msg = $rse->getMessage();
-            if (preg_match('/Revoked accesstoken/', $msg) ||
-                preg_match('/No subscriber/', $msg)) {
-                $this->clientError($msg, 403);
-            } else {
-                $this->clientError($msg);
-            }
-        } catch (Exception $e) {
-            $this->serverError($e->getMessage());
-            return;
-        }
-    }
-}
diff --git a/plugins/OMB/actions/userauthorization.php b/plugins/OMB/actions/userauthorization.php
deleted file mode 100644 (file)
index 848cc77..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-<?php
-/**
- * Let the user authorize a remote subscription request
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/profile.php';
-define('TIMESTAMP_THRESHOLD', 300);
-
-// @todo FIXME: Missing documentation.
-class UserauthorizationAction extends Action
-{
-    var $error;
-    var $params;
-
-    function handle($args)
-    {
-        parent::handle($args);
-
-        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-            /* Use a session token for CSRF protection. */
-            $token = $this->trimmed('token');
-            if (!$token || $token != common_session_token()) {
-                $srv = $this->getStoredParams();
-                // TRANS: Client error displayed when the session token does not match or is not given.
-                $this->showForm($srv->getRemoteUser(), _('There was a problem ' .
-                                        'with your session token. Try again, ' .
-                                        'please.'));
-                return;
-            }
-            /* We've shown the form, now post user's choice. */
-            $this->sendAuthorization();
-        } else {
-            if (!common_logged_in()) {
-                /* Go log in, and then come back. */
-                common_set_returnto($_SERVER['REQUEST_URI']);
-
-                common_redirect(common_local_url('login'));
-                return;
-            }
-
-            $user    = common_current_user();
-            $profile = $user->getProfile();
-            if (!$profile) {
-                common_log_db_error($user, 'SELECT', __FILE__);
-                // TRANS: Error message displayed when referring to a user without a profile.
-                $this->serverError(_('User has no profile.'));
-                return;
-            }
-
-            /* TODO: If no token is passed the user should get a prompt to enter
-               it according to OAuth Core 1.0. */
-            try {
-                $this->validateOmb();
-                $srv = new OMB_Service_Provider(
-                        profile_to_omb_profile($user->uri, $profile),
-                        omb_oauth_datastore());
-
-                $remote_user = $srv->handleUserAuth();
-            } catch (Exception $e) {
-                $this->clearParams();
-                $this->clientError($e->getMessage());
-                return;
-            }
-
-            $this->storeParams($srv);
-            $this->showForm($remote_user);
-        }
-    }
-
-    function showForm($params, $error=null)
-    {
-        $this->params = $params;
-        $this->error  = $error;
-        $this->showPage();
-    }
-
-    function title()
-    {
-        // TRANS: Page title.
-        return _('Authorize subscription');
-    }
-
-    function showPageNotice()
-    {
-        // TRANS: Page notice on "Authorize subscription" page.
-        $this->element('p', null, _('Please check these details to make sure '.
-                                    'that you want to subscribe to this ' .
-                                    'user’s notices. If you didn’t just ask ' .
-                                    'to subscribe to someone’s notices, '.
-                                    'click "Reject".'));
-    }
-
-    function showContent()
-    {
-        $params = $this->params;
-
-        $nickname = $params->getNickname();
-        $profile  = $params->getProfileURL();
-        $license  = $params->getLicenseURL();
-        $fullname = $params->getFullname();
-        $homepage = $params->getHomepage();
-        $bio      = $params->getBio();
-        $location = $params->getLocation();
-        $avatar   = $params->getAvatarURL();
-
-        $this->elementStart('div', 'entity_profile vcard');
-
-        if ($avatar) {
-            $this->element('img', array('src' => $avatar,
-                                        'class' => 'photo avatar entity_depiction',
-                                        'width' => AVATAR_PROFILE_SIZE,
-                                        'height' => AVATAR_PROFILE_SIZE,
-                                        'alt' => $nickname));
-        }
-
-        // TRANS: Label for nickname on user authorisation page.
-        $this->element('div', 'entity_nickname', _('Nickname'));
-
-        $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
-
-        // XXX: why are these raw() instead of escaped...?
-
-        $this->elementStart('a', array('href' => $profile,
-                                       'class' => 'url '.$hasFN));
-        $this->raw($nickname);
-        $this->elementEnd('a');
-
-        if (!is_null($fullname)) {
-            $this->elementStart('div', 'fn entity_fn');
-            $this->raw($fullname);
-            $this->elementEnd('div');
-        }
-
-        if (!is_null($location)) {
-            $this->elementStart('div', 'label entity_location');
-            $this->raw($location);
-        }
-
-        if (!is_null($homepage)) {
-            $this->elementStart('a', array('href' => $homepage,
-                                           'class' => 'url entity_url'));
-            $this->raw($homepage);
-            $this->elementEnd('a');
-        }
-
-        if (!is_null($bio)) {
-            $this->elementStart('div', 'note entity_note');
-            $this->raw($bio);
-            $this->elementEnd('dd');
-        }
-
-        if (!is_null($license)) {
-            $this->element('a', array('href' => $license,
-                                      'class' => 'license entity_license'),
-                           $license);
-        }
-
-        $this->elementEnd('div');
-
-        $this->elementStart('div', 'entity_actions');
-        $this->elementStart('ul');
-        $this->elementStart('li', 'entity_subscribe');
-        $this->elementStart('form', array('method' => 'post',
-                                          'id' => 'userauthorization',
-                                          'class' => 'form_user_authorization',
-                                          'name' => 'userauthorization',
-                                          'action' => common_local_url(
-                                                         'userauthorization')));
-        $this->hidden('token', common_session_token());
-
-        $this->submit('accept',
-                      // TRANS: Button text on Authorise Subscription page.
-                      _m('BUTTON','Accept'), 'submit accept', null,
-                      // TRANS: Title for button on Authorise Subscription page.
-                      _('Subscribe to this user.'));
-        $this->submit('reject',
-                      // TRANS: Button text on Authorise Subscription page.
-                      _m('BUTTON','Reject'), 'submit reject', null,
-                      // TRANS: Title for button on Authorise Subscription page.
-                      _('Reject this subscription.'));
-        $this->elementEnd('form');
-        $this->elementEnd('li');
-        $this->elementEnd('ul');
-        $this->elementEnd('div');
-    }
-
-    function sendAuthorization()
-    {
-        $srv = $this->getStoredParams();
-
-        if (is_null($srv)) {
-            // TRANS: Client error displayed for an empty authorisation request.
-            $this->clientError(_('No authorization request!'));
-            return;
-        }
-
-        $accepted = $this->arg('accept');
-        try {
-            list($val, $token) = $srv->continueUserAuth($accepted);
-        } catch (Exception $e) {
-            $this->clientError($e->getMessage());
-            return;
-        }
-        if ($val !== false) {
-            common_redirect($val, 303);
-        } elseif ($accepted) {
-            $this->showAcceptMessage($token);
-        } else {
-            $this->showRejectMessage();
-        }
-    }
-
-    function showAcceptMessage($tok)
-    {
-        // TRANS: Accept message header from Authorise subscription page.
-        common_show_header(_('Subscription authorized'));
-        $this->element('p', null,
-                       // TRANS: Accept message text from Authorise subscription page.
-                       _('The subscription has been authorized, but no '.
-                         'callback URL was passed. Check with the site\'s ' .
-                         'instructions for details on how to authorize the ' .
-                         'subscription. Your subscription token is:'));
-        $this->element('blockquote', 'token', $tok);
-        common_show_footer();
-    }
-
-    function showRejectMessage()
-    {
-        // TRANS: Reject message header from Authorise subscription page.
-        common_show_header(_('Subscription rejected'));
-        $this->element('p', null,
-                       // TRANS: Reject message from Authorise subscription page.
-                       _('The subscription has been rejected, but no '.
-                         'callback URL was passed. Check with the site\'s ' .
-                         'instructions for details on how to fully reject ' .
-                         'the subscription.'));
-        common_show_footer();
-    }
-
-    function storeParams($params)
-    {
-        common_ensure_session();
-        $_SESSION['userauthorizationparams'] = serialize($params);
-    }
-
-    function clearParams()
-    {
-        common_ensure_session();
-        unset($_SESSION['userauthorizationparams']);
-    }
-
-    function getStoredParams()
-    {
-        common_ensure_session();
-        $params = unserialize($_SESSION['userauthorizationparams']);
-        return $params;
-    }
-
-    function validateOmb()
-    {
-        $listener = $_GET['omb_listener'];
-        $listenee = $_GET['omb_listenee'];
-        $nickname = $_GET['omb_listenee_nickname'];
-        $profile  = $_GET['omb_listenee_profile'];
-
-        $user = User::getKV('uri', $listener);
-        if (!$user) {
-            // TRANS: Exception thrown when no valid user is found for an authorisation request.
-            // TRANS: %s is a listener URI.
-            throw new Exception(sprintf(_('Listener URI "%s" not found here.'),
-                                        $listener));
-        }
-
-        if (strlen($listenee) > 255) {
-            // TRANS: Exception thrown when listenee URI is too long for an authorisation request.
-            // TRANS: %s is a listenee URI.
-            throw new Exception(sprintf(_('Listenee URI "%s" is too long.'),
-                                        $listenee));
-        }
-
-        $other = User::getKV('uri', $listenee);
-        if ($other) {
-            // TRANS: Exception thrown when listenee URI is a local user for an authorisation request.
-            // TRANS: %s is a listenee URI.
-            throw new Exception(sprintf(_('Listenee URI "%s" is a local user.'),
-                                        $listenee));
-        }
-
-        $remote = Remote_profile::getKV('uri', $listenee);
-        if ($remote) {
-            $sub             = new Subscription();
-            $sub->subscriber = $user->id;
-            $sub->subscribed = $remote->id;
-            if ($sub->find(true)) {
-                // TRANS: Exception thrown when already subscribed.
-                throw new Exception('You are already subscribed to this user.');
-            }
-        }
-
-        if ($profile == common_profile_url($nickname)) {
-            // TRANS: Exception thrown when profile URL is a local user for an authorisation request.
-            // TRANS: %s is a profile URL.
-            throw new Exception(sprintf(_('Profile URL "%s" is for a local user.'),
-                                        $profile));
-
-        }
-
-        $license      = $_GET['omb_listenee_license'];
-        $site_license = common_config('license', 'url');
-        if (!common_compatible_license($license, $site_license)) {
-            // TRANS: Exception thrown when licenses are not compatible for an authorisation request.
-            // TRANS: %1$s is the license for the listenee, %2$s is the license for "this" StatusNet site.
-            throw new Exception(sprintf(_('Listenee stream license "%1$s" is not ' .
-                                          'compatible with site license "%2$s".'),
-                                        $license, $site_license));
-        }
-
-        $avatar = $_GET['omb_listenee_avatar'];
-        if ($avatar) {
-            if (!common_valid_http_url($avatar) || strlen($avatar) > 255) {
-                // TRANS: Exception thrown when avatar URL is invalid for an authorisation request.
-                // TRANS: %s is an avatar URL.
-                throw new Exception(sprintf(_('Avatar URL "%s" is not valid.'),
-                                            $avatar));
-            }
-            $size = @getimagesize($avatar);
-            if (!$size) {
-                // TRANS: Exception thrown when avatar URL could not be read for an authorisation request.
-                // TRANS: %s is an avatar URL.
-                throw new Exception(sprintf(_('Cannot read avatar URL "%s".'),
-                                            $avatar));
-            }
-            if (!in_array($size[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG,
-                                          IMAGETYPE_PNG))) {
-                // TRANS: Exception thrown when avatar URL return an invalid image type for an authorisation request.
-                // TRANS: %s is an avatar URL.
-                throw new Exception(sprintf(_('Wrong image type for avatar URL '.
-                                              '"%s".'), $avatar));
-            }
-        }
-    }
-}
diff --git a/plugins/OMB/actions/xrds.php b/plugins/OMB/actions/xrds.php
deleted file mode 100644 (file)
index 8248d46..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/**
- * XRDS for OpenMicroBlogging
- *
- * PHP version 5
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- *
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once dirname(__FILE__) . '/../lib/omb.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/service_provider.php';
-require_once dirname(__FILE__) . '/../extlib/libomb/xrds_mapper.php';
-require_once dirname(__FILE__) . '/../lib/xrdsoutputter.php';
-
-/**
- * XRDS for OpenMicroBlogging
- *
- * @category Action
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @author   Robin Millette <millette@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
- * @link     http://status.net/
- */
-class XrdsAction extends Action
-{
-    var $user;
-
-    /**
-     * Is read only?
-     *
-     * @return boolean true
-     */
-    function isReadOnly()
-    {
-        return true;
-    }
-
-    function prepare($args)
-    {
-        parent::prepare($args);
-        $nickname = $this->trimmed('nickname');
-        $this->user     = User::getKV('nickname', $nickname);
-        if (!$this->user) {
-            // TRANS: Client error displayed providing a non-existing nickname.
-            $this->clientError(_('No such user.'));
-            return;
-        }
-        return true;
-    }
-
-    /**
-     * Class handler.
-     *
-     * @param array $args query arguments
-     *
-     * @return void
-     */
-    function handle($args)
-    {
-        parent::handle($args);
-        $xrdsOutputter = new XRDSOutputter();
-        $xrdsOutputter->startXRDS();
-
-        Event::handle('StartUserXRDS', array($this,&$xrdsOutputter));
-
-        //oauth
-        $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                                          'xml:id' => 'oauth',
-                                          'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
-                                          'version' => '2.0'));
-        $xrdsOutputter->element('Type', null, 'xri://$xrds*simple');
-        $xrdsOutputter->showXrdsService(OAUTH_ENDPOINT_REQUEST,
-                            common_local_url('requesttoken'),
-                            array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY, OAUTH_HMAC_SHA1),
-                            null,
-                            $this->user->uri);
-        $xrdsOutputter->showXrdsService( OAUTH_ENDPOINT_AUTHORIZE,
-                            common_local_url('userauthorization'),
-                            array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY, OAUTH_HMAC_SHA1));
-        $xrdsOutputter->showXrdsService(OAUTH_ENDPOINT_ACCESS,
-                            common_local_url('accesstoken'),
-                            array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY, OAUTH_HMAC_SHA1));
-        $xrdsOutputter->showXrdsService(OAUTH_ENDPOINT_RESOURCE,
-                            null,
-                            array(OAUTH_AUTH_HEADER, OAUTH_POST_BODY, OAUTH_HMAC_SHA1));
-        $xrdsOutputter->elementEnd('XRD');
-
-        //omb
-        $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                                          'xml:id' => 'omb',
-                                          'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
-                                          'version' => '2.0'));
-        $xrdsOutputter->element('Type', null, 'xri://$xrds*simple');
-        $xrdsOutputter->showXrdsService(OMB_ENDPOINT_POSTNOTICE,
-                            common_local_url('postnotice'));
-        $xrdsOutputter->showXrdsService(OMB_ENDPOINT_UPDATEPROFILE,
-                            common_local_url('updateprofile'));
-        $xrdsOutputter->elementEnd('XRD');
-
-        Event::handle('EndUserXRDS', array($this,&$xrdsOutputter));
-
-        //misc
-        $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                                          'version' => '2.0'));
-        $xrdsOutputter->showXrdsService(OAUTH_DISCOVERY,
-                            '#oauth');
-        $xrdsOutputter->showXrdsService(OMB_VERSION,
-                            '#omb');
-        $xrdsOutputter->elementEnd('XRD');
-
-        $xrdsOutputter->endXRDS();
-    }
-}
diff --git a/plugins/OMB/extlib/libomb/base_url_xrds_mapper.php b/plugins/OMB/extlib/libomb/base_url_xrds_mapper.php
deleted file mode 100755 (executable)
index d45d6d6..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'xrds_mapper.php';
-require_once 'constants.php';
-
-/**
- * Map XRDS actions to URLs using base URLs
- *
- * This class realizes a simple mapping of action URIs to handler URLs. The
- * target URLs are constructed using a base URL.
- */
-class OMB_Base_URL_XRDS_Mapper implements OMB_XRDS_Mapper
-{
-    protected $urls;
-
-    /**
-     * Constructor
-     *
-     * Initialize the XRDS mapper with base URLs for OAuth and OMB endpoints.
-     *
-     * @param string $oauth_base The base URL for OAuth endpoints
-     * @param string $omb_base   The base URL for OMB endpoints
-     */
-    public function __construct($oauth_base, $omb_base)
-    {
-        $this->urls = array(
-                OAUTH_ENDPOINT_REQUEST => $oauth_base . 'requesttoken',
-                OAUTH_ENDPOINT_AUTHORIZE => $oauth_base . 'userauthorization',
-                OAUTH_ENDPOINT_ACCESS => $oauth_base . 'accesstoken',
-                OMB_ENDPOINT_POSTNOTICE => $omb_base . 'postnotice',
-                OMB_ENDPOINT_UPDATEPROFILE => $omb_base . 'updateprofile');
-    }
-
-    /**
-     * Fetch an URL for a specified action
-     *
-     * Returns the action URL for an action specified by the endpoint URI.
-     *
-     * @param string $action The endpoint URI
-     *
-     * @return string The action URL
-     */
-    public function getURL($action)
-    {
-        return $this->urls[$action];
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/constants.php b/plugins/OMB/extlib/libomb/constants.php
deleted file mode 100644 (file)
index 2f8c0e5..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Constants for libomb
- *
- * This file contains constant definitions for libomb. The defined constants
- * are service and namespace URIs for OAuth and OMB as used in XRDS.
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * The OMB constants.
- */
-
-define('OMB_VERSION_01', 'http://openmicroblogging.org/protocol/0.1');
-
-/* The OMB version supported by this libomb version. */
-define('OMB_VERSION', OMB_VERSION_01);
-
-define('OMB_ENDPOINT_UPDATEPROFILE', OMB_VERSION . '/updateProfile');
-define('OMB_ENDPOINT_POSTNOTICE', OMB_VERSION . '/postNotice');
-
-/**
- * The OAuth constants.
- */
-
-define('OAUTH_NAMESPACE', 'http://oauth.net/core/1.0/');
-
-define('OAUTH_ENDPOINT_REQUEST', OAUTH_NAMESPACE.'endpoint/request');
-define('OAUTH_ENDPOINT_AUTHORIZE', OAUTH_NAMESPACE.'endpoint/authorize');
-define('OAUTH_ENDPOINT_ACCESS', OAUTH_NAMESPACE.'endpoint/access');
-define('OAUTH_ENDPOINT_RESOURCE', OAUTH_NAMESPACE.'endpoint/resource');
-
-define('OAUTH_AUTH_HEADER', OAUTH_NAMESPACE.'parameters/auth-header');
-define('OAUTH_POST_BODY', OAUTH_NAMESPACE.'parameters/post-body');
-
-define('OAUTH_HMAC_SHA1', OAUTH_NAMESPACE.'signature/HMAC-SHA1');
-
-define('OAUTH_DISCOVERY', 'http://oauth.net/discovery/1.0');
-?>
diff --git a/plugins/OMB/extlib/libomb/datastore.php b/plugins/OMB/extlib/libomb/datastore.php
deleted file mode 100755 (executable)
index d67aafc..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'OAuth.php';
-
-/**
- * Data access interface
- *
- * This interface specifies data access methods libomb needs. It should be
- * implemented by libomb users. OMB_Datastore is libomb’s main interface to the
- * application’s data. Objects corresponding to this interface are used in
- * OMB_Service_Provider and OMB_Service_Consumer.
- *
- * Note that it’s implemented as a class since OAuthDataStore is as well a
- * class, though only declaring methods.
- *
- * OMB_Datastore extends OAuthDataStore with two OAuth-related methods for token
- * revoking and authorizing and all OMB-related methods.
- * Refer to OAuth.php for a complete specification of OAuth-related methods.
- *
- * It is the user’s duty to signal and handle errors. libomb does not check
- * return values nor handle exceptions. It is suggested to use exceptions.
- * Note that lookup_token and getProfile return null if the requested object
- * is not available. This is NOT an error and should not raise an exception.
- * Same applies for lookup_nonce which returns a boolean value. These methods
- * may nevertheless throw an exception, for example in case of a storage errors.
- *
- * Most of the parameters passed to these methods are unescaped and unverified
- * user input. Therefore they should be handled with extra care to avoid
- * security problems like SQL injections.
- */
-class OMB_Datastore extends OAuthDataStore
-{
-
-    /*********
-     * OAUTH *
-     *********/
-
-    /**
-     * Revoke specified OAuth token
-     *
-     * Revokes the authorization token specified by $token_key.
-     * Throws exceptions in case of error.
-     *
-     * @param string $token_key The key of the token to be revoked
-     *
-     * @access public
-     */
-    public function revoke_token($token_key)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Authorize specified OAuth token
-     *
-     * Authorizes the authorization token specified by $token_key.
-     * Throws exceptions in case of error.
-     *
-     * @param string $token_key The key of the token to be authorized
-     *
-     * @access public
-     */
-    public function authorize_token($token_key)
-    {
-        throw new Exception();
-    }
-
-    /*********
-     *  OMB  *
-     *********/
-
-    /**
-     * Get profile by identifying URI
-     *
-     * Returns an OMB_Profile object representing the OMB profile identified by
-     * $identifier_uri.
-     * Returns null if there is no such OMB profile.
-     * Throws exceptions in case of other error.
-     *
-     * @param string $identifier_uri The OMB identifier URI specifying the
-     *                               requested profile
-     *
-     * @access public
-     *
-     * @return OMB_Profile The corresponding profile
-     */
-    public function getProfile($identifier_uri)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Save passed profile
-     *
-     * Stores the OMB profile $profile. Overwrites an existing entry.
-     * Throws exceptions in case of error.
-     *
-     * @param OMB_Profile $profile The OMB profile which should be saved
-     *
-     * @access public
-     */
-    public function saveProfile($profile)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Save passed notice
-     *
-     * Stores the OMB notice $notice. The datastore may change the passed
-     * notice. This might by necessary for URIs depending on a database key.
-     * Note that it is the user’s duty to present a mechanism for his
-     * OMB_Datastore to appropriately change his OMB_Notice.
-     * Throws exceptions in case of error.
-     *
-     * @param OMB_Notice &$notice The OMB notice which should be saved
-     *
-     * @access public
-     */
-    public function saveNotice(&$notice)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Get subscriptions of a given profile
-     *
-     * Returns an array containing subscription informations for the specified
-     * profile. Every array entry should in turn be an array with keys
-     *   'uri´: The identifier URI of the subscriber
-     *   'token´: The subscribe token
-     *   'secret´: The secret token
-     * Throws exceptions in case of error.
-     *
-     * @param string $subscribed_user_uri The OMB identifier URI specifying the
-     *                                    subscribed profile
-     *
-     * @access public
-     *
-     * @return mixed An array containing the subscriptions or 0 if no
-     *               subscription has been found.
-     */
-    public function getSubscriptions($subscribed_user_uri)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Delete a subscription
-     *
-     * Deletes the subscription from $subscriber_uri to $subscribed_user_uri.
-     * Throws exceptions in case of error.
-     *
-     * @param string $subscriber_uri      The OMB identifier URI specifying the
-     *                                    subscribing profile
-     *
-     * @param string $subscribed_user_uri The OMB identifier URI specifying the
-     *                                    subscribed profile
-     *
-     * @access public
-     */
-    public function deleteSubscription($subscriber_uri, $subscribed_user_uri)
-    {
-        throw new Exception();
-    }
-
-    /**
-     * Save a subscription
-     *
-     * Saves the subscription from $subscriber_uri to $subscribed_user_uri.
-     * Throws exceptions in case of error.
-     *
-     * @param string     $subscriber_uri      The OMB identifier URI specifying
-     *                                            the subscribing profile
-     *
-     * @param string     $subscribed_user_uri The OMB identifier URI specifying
-     *                                            the subscribed profile
-     * @param OAuthToken $token               The access token
-     *
-     * @access public
-     */
-    public function saveSubscription($subscriber_uri, $subscribed_user_uri,
-                                     $token)
-    {
-        throw new Exception();
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/helper.php b/plugins/OMB/extlib/libomb/helper.php
deleted file mode 100644 (file)
index 08e6e7a..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'Validate.php';
-
-/**
- * Helper functions for libomb
- *
- * This class contains helper functions for libomb.
- */
-class OMB_Helper
-{
-
-    /**
-     * Non-scalar constants
-     *
-     * The set of OMB and OAuth Services an OMB Server has to implement.
-     */
-
-    public static $OMB_SERVICES   = array(OMB_ENDPOINT_UPDATEPROFILE,
-                                          OMB_ENDPOINT_POSTNOTICE);
-    public static $OAUTH_SERVICES = array(OAUTH_ENDPOINT_REQUEST,
-                                          OAUTH_ENDPOINT_AUTHORIZE,
-                                          OAUTH_ENDPOINT_ACCESS);
-
-    /**
-     * Validate URL
-     *
-     * Basic URL validation. Currently http, https, ftp and gopher are supported
-     * schemes.
-     *
-     * @param string $url The URL which is to be validated.
-     *
-     * @return bool Whether URL is valid.
-     *
-     * @access public
-     */
-    public static function validateURL($url)
-    {
-        return Validate::uri($url, array('allowed_schemes' => array('http',
-                                                    'https', 'gopher', 'ftp')));
-    }
-
-    /**
-     * Validate Media type
-     *
-     * Basic Media type validation. Checks for valid maintype and correct
-     * format.
-     *
-     * @param string $mediatype The Media type which is to be validated.
-     *
-     * @return bool Whether media type is valid.
-     *
-     * @access public
-     */
-    public static function validateMediaType($mediatype)
-    {
-        return preg_match('/^(\w+)\/([\w\d-+.]+)$/', $mediatype, $subtypes) > 0
-               &&
-               in_array(strtolower($subtypes[1]), array('application', 'audio',
-               'image', 'message', 'model', 'multipart', 'text', 'video'));
-    }
-
-    /**
-     * Remove escaping from request parameters
-     *
-     * Neutralise the evil effects of magic_quotes_gpc in the current request.
-     * This is used before handing a request off to OAuthRequest::from_request.
-     * Many thanks to Ciaran Gultnieks for this fix.
-     *
-     * @access public
-     */
-    public static function removeMagicQuotesFromRequest()
-    {
-        if (get_magic_quotes_gpc() === 1) {
-            $_POST = array_map('stripslashes', $_POST);
-            $_GET  = array_map('stripslashes', $_GET);
-        }
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/invalidparameterexception.php b/plugins/OMB/extlib/libomb/invalidparameterexception.php
deleted file mode 100755 (executable)
index d95c702..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Exception stating that a passed parameter is invalid
- *
- * This exception is raised when a parameter does not obey the OMB standard.
- */
-class OMB_InvalidParameterException extends Exception
-{
-    /**
-     * Constructor
-     *
-     * Creates a new exception based on a parameter name, value, and object
-     * type.
-     *
-     * @param string $value     The wrong value passed
-     * @param string $type      The object type the parameter belongs to;
-     *                          Currently OMB uses profiles and notices
-     * @param string $parameter The name of the parameter the wrong value has
-     *                          been passed for
-     */
-    public function __construct($value, $type, $parameter)
-    {
-        parent::__construct("Invalid value ‘${value}’ for parameter " .
-                            "‘${parameter}’ in $type");
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/invalidyadisexception.php b/plugins/OMB/extlib/libomb/invalidyadisexception.php
deleted file mode 100755 (executable)
index dc61a13..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Exception stating that a requested url does not resolve to a valid yadis
- *
- * This exception is raised when OMB_Service is not able to discover a valid
- * yadis location with XRDS.
- */
-class OMB_InvalidYadisException extends Exception
-{
-
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/notice.php b/plugins/OMB/extlib/libomb/notice.php
deleted file mode 100755 (executable)
index 4963597..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'invalidparameterexception.php';
-require_once 'Validate.php';
-require_once 'helper.php';
-
-/**
- * OMB Notice representation
- *
- * This class represents an OMB notice.
- *
- * Do not call the setters with null values. Instead, if you want to delete a
- * field, pass an empty string. The getters will return null for empty fields.
- */
-class OMB_Notice
-{
-    protected $author;
-    protected $uri;
-    protected $content;
-    protected $url;
-    protected $license_url; /* url is an own addition for clarification. */
-    protected $seealso_url; /* url is an own addition for clarification. */
-    protected $seealso_disposition;
-    protected $seealso_mediatype;
-    protected $seealso_license_url; /* url is an addition for clarification. */
-
-    /* The notice as OMB param array. Cached and rebuild on usage.
-       false while outdated. */
-    protected $param_array;
-
-    /**
-     * Constructor for OMB_Notice
-     *
-     * Initializes the OMB_Notice object with author, uri and content.
-     * These parameters are mandatory for postNotice.
-     *
-     * @param object $author  An OMB_Profile object representing the author of
-     *                        the notice.
-     * @param string $uri     The notice URI as defined by the OMB. A unique and
-     *                        never changing identifier for a notice.
-     * @param string $content The content of the notice. 140 chars recommended,
-     *                        but there is no limit.
-     *
-     * @access public
-     */
-    public function __construct($author, $uri, $content)
-    {
-        $this->content = $content;
-        if (is_null($author)) {
-            throw new OMB_InvalidParameterException('', 'notice', 'omb_listenee');
-        }
-        $this->author = $author;
-
-        if (!Validate::uri($uri)) {
-            throw new OMB_InvalidParameterException($uri, 'notice', 'omb_notice');
-        }
-        $this->uri = $uri;
-
-        $this->param_array = false;
-    }
-
-    /**
-     * Return the notice as array
-     *
-     * Returns an array which contains the whole notice as array. The array is
-     * cached and only rebuilt on changes of the notice.
-     * Empty optional values are not passed.
-     *
-     * @access public
-     * @return array The notice as parameter array
-     */
-    public function asParameters()
-    {
-        if ($this->param_array !== false) {
-            return $this->param_array;
-        }
-
-        $this->param_array = array(
-                                 'omb_notice' => $this->uri,
-                                 'omb_notice_content' => $this->content);
-
-        if (!is_null($this->url))
-            $this->param_array['omb_notice_url'] = $this->url;
-
-        if (!is_null($this->license_url))
-            $this->param_array['omb_notice_license'] = $this->license_url;
-
-        if (!is_null($this->seealso_url)) {
-            $this->param_array['omb_seealso'] = $this->seealso_url;
-
-            /* This is actually a free interpretation of the OMB standard. We
-               assume that additional seealso parameters are not of any use if
-               seealso itself is not set. */
-            if (!is_null($this->seealso_disposition))
-                $this->param_array['omb_seealso_disposition'] =
-                                                     $this->seealso_disposition;
-
-            if (!is_null($this->seealso_mediatype))
-                $this->param_array['omb_seealso_mediatype'] =
-                                                       $this->seealso_mediatype;
-
-            if (!is_null($this->seealso_license_url))
-                $this->param_array['omb_seealso_license'] =
-                                                     $this->seealso_license_url;
-        }
-        return $this->param_array;
-    }
-
-    /**
-     * Build an OMB_Notice object from array
-     *
-     * Builds an OMB_Notice object from the passed parameters array. The array
-     * MUST provide a notice URI and content. The array fields HAVE TO be named
-     * according to the OMB standard, i. e. omb_notice_* and omb_seealso_*.
-     * Values are handled as not passed if the corresponding array fields are
-     * not set or the empty string.
-     *
-     * @param object $author     An OMB_Profile object representing the author
-     *                           of the notice.
-     * @param string $parameters An array containing the notice parameters.
-     *
-     * @access public
-     *
-     * @returns OMB_Notice The built OMB_Notice.
-     */
-    public static function fromParameters($author, $parameters)
-    {
-        $notice = new OMB_Notice($author, $parameters['omb_notice'],
-                                             $parameters['omb_notice_content']);
-
-        if (isset($parameters['omb_notice_url'])) {
-            $notice->setURL($parameters['omb_notice_url']);
-        }
-
-        if (isset($parameters['omb_notice_license'])) {
-            $notice->setLicenseURL($parameters['omb_notice_license']);
-        }
-
-        if (isset($parameters['omb_seealso'])) {
-            $notice->setSeealsoURL($parameters['omb_seealso']);
-        }
-
-        if (isset($parameters['omb_seealso_disposition'])) {
-            $notice->setSeealsoDisposition($parameters['omb_seealso_disposition']);
-        }
-
-        if (isset($parameters['omb_seealso_mediatype'])) {
-            $notice->setSeealsoMediatype($parameters['omb_seealso_mediatype']);
-        }
-
-        if (isset($parameters['omb_seealso_license'])) {
-            $notice->setSeealsoLicenseURL($parameters['omb_seealso_license']);
-        }
-        return $notice;
-    }
-
-    public function getAuthor()
-    {
-        return $this->author;
-    }
-
-    public function getIdentifierURI()
-    {
-        return $this->uri;
-    }
-
-    public function getContent()
-    {
-        return $this->content;
-    }
-
-    public function getURL()
-    {
-        return $this->url;
-    }
-
-    public function getLicenseURL()
-    {
-        return $this->license_url;
-    }
-
-    public function getSeealsoURL()
-    {
-        return $this->seealso_url;
-    }
-
-    public function getSeealsoDisposition()
-    {
-        return $this->seealso_disposition;
-    }
-
-    public function getSeealsoMediatype()
-    {
-        return $this->seealso_mediatype;
-    }
-
-    public function getSeealsoLicenseURL()
-    {
-        return $this->seealso_license_url;
-    }
-
-    public function setURL($url)
-    {
-        $this->setVal('notice_url', $url, 'OMB_Helper::validateURL', 'url');
-    }
-
-    public function setLicenseURL($license_url)
-    {
-        $this->setVal('license', $license_url, 'OMB_Helper::validateURL',
-                      'license_url');
-    }
-
-    public function setSeealsoURL($seealso_url)
-    {
-        $this->setVal('seealso', $seealso_url, 'OMB_Helper::validateURL',
-                      'seealso_url');
-    }
-
-    public function setSeealsoDisposition($seealso_disposition)
-    {
-        $this->setVal('seealso_disposition', $seealso_disposition,
-                      'OMB_Notice::validateDisposition');
-    }
-
-    protected static function validateDisposition($str)
-    {
-        return in_array($str, array('link', 'inline'));
-    }
-
-    public function setSeealsoMediatype($seealso_mediatype)
-    {
-        $this->setVal('seealso_mediatype', $seealso_mediatype,
-                      'OMB_Helper::validateMediaType');
-    }
-
-    public function setSeealsoLicenseURL($seealso_license_url)
-    {
-        $this->setVal('seealso_license', $seealso_license_url,
-                      'OMB_Helper::validateURL', 'seealso_license_url');
-    }
-
-    /**
-     * Set a value
-     *
-     * Updates a value specified by a parameter name and the new value.
-     *
-     * @param string   $param     The parameter name according to OMB
-     * @param string   $value     The new value
-     * @param callback $validator A validator function for the parameter
-     * @param string   $field     The name of the field in OMB_Notice
-     * @param bool     $force     Whether null values should be checked as well
-     */
-    protected function setVal($param, $value, $validator, $field = null,
-                              $force = false)
-    {
-        if (is_null($field)) {
-            $field = $param;
-        }
-        if ($value === '' && !$force) {
-            $value = null;
-        } elseif (!call_user_func($validator, $value)) {
-            throw new OMB_InvalidParameterException($value, 'notice', $param);
-        }
-        if ($this->$field !== $value) {
-            $this->$field      = $value;
-            $this->param_array = false;
-        }
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/omb_yadis_xrds.php b/plugins/OMB/extlib/libomb/omb_yadis_xrds.php
deleted file mode 100755 (executable)
index a05477c..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'Auth/Yadis/Yadis.php';
-require_once 'unsupportedserviceexception.php';
-require_once 'invalidyadisexception.php';
-
-/**
- * OMB XRDS representation
- *
- * This class represents a Yadis XRDS file for OMB. It adds some useful methods to
- * Auth_Yadis_XRDS.
- */
-class OMB_Yadis_XRDS extends Auth_Yadis_XRDS
-{
-
-    protected $fetcher;
-
-    /**
-     * Create an instance from URL
-     *
-     * Constructs an OMB_Yadis_XRDS object from a given URL. A full Yadis
-     * discovery is performed on the URL and the XRDS is parsed.
-     * Throws an OMB_InvalidYadisException when no Yadis is discovered or the
-     * detected XRDS file is broken.
-     *
-     * @param string                 $url     The URL on which Yadis discovery
-     *                                        should be performed on
-     * @param Auth_Yadis_HTTPFetcher $fetcher A fetcher used to get HTTP
-     *                                        resources
-     *
-     * @access public
-     *
-     * @return OMB_Yadis_XRDS The initialized object representing the given
-     *                        resource
-     */
-    public static function fromYadisURL($url, $fetcher)
-    {
-        /* Perform a Yadis discovery. */
-        $yadis = Auth_Yadis_Yadis::discover($url, $fetcher);
-        if ($yadis->failed) {
-            throw new OMB_InvalidYadisException($url);
-        }
-
-        /* Parse the XRDS file. */
-        $xrds = OMB_Yadis_XRDS::parseXRDS($yadis->response_text);
-        if ($xrds === null) {
-            throw new OMB_InvalidYadisException($url);
-        }
-        $xrds->fetcher = $fetcher;
-        return $xrds;
-    }
-
-    /**
-     * Get a specific service
-     *
-     * Returns the Auth_Yadis_Service object corresponding to the given service
-     * URI.
-     * Throws an OMB_UnsupportedServiceException if the service is not
-     * available.
-     *
-     * @param string $service URI specifier of the requested service
-     *
-     * @access public
-     *
-     * @return Auth_Yadis_Service The object representing the requested service
-     */
-    public function getService($service)
-    {
-        $match = $this->services(array(create_function('$s',
-                             "return in_array('$service', \$s->getTypes());")));
-        if ($match === array()) {
-            throw new OMB_UnsupportedServiceException($service);
-        }
-        return $match[0];
-    }
-
-    /**
-     * Get a specific XRD
-     *
-     * Returns the OMB_Yadis_XRDS object corresponding to the given URI.
-     * Throws an OMB_UnsupportedServiceException if the XRD is not available.
-     * Note that getXRD tries to resolve external XRD parts as well.
-     *
-     * @param string $uri URI specifier of the requested XRD
-     *
-     * @access public
-     *
-     * @return OMB_Yadis_XRDS The object representing the requested XRD
-     */
-    public function getXRD($uri)
-    {
-        $nexthash = strpos($uri, '#');
-        if ($nexthash === false) {
-            throw new OMB_InvalidYadisException("‘$uri’ does not specify a " .
-                                                'valid XML node.');
-        }
-
-        if ($nexthash > 0) {
-            $cururi  = substr($uri, 0, $nexthash);
-            $nexturi = substr($uri, $nexthash);
-            return OMB_Yadis_XRDS::fromYadisURL($cururi, $this->fetcher)
-                                               ->getXRD($nexturi);
-        }
-
-        $id = substr($uri, 1);
-        foreach ($this->allXrdNodes as $node) {
-            $attrs = $this->parser->attributes($node);
-            if (array_key_exists('xml:id', $attrs) && $attrs['xml:id'] == $id) {
-                /* Trick the constructor into thinking this is the only node. */
-                $bogus_nodes = array($node);
-                return new OMB_Yadis_XRDS($this->parser, $bogus_nodes);
-            }
-        }
-        throw new OMB_UnsupportedServiceException($uri);
-    }
-
-    /**
-     * Parse an XML string containing a XRDS document
-     *
-     * Parses an XML string (XRDS document) and returns either an
-     * Auth_Yadis_XRDS object or null, depending on whether the XRDS XML is
-     * valid.
-     * This method is just copy and paste from the parent class to select the
-     * correct constructor.
-     *
-     * @param string $xml_string   An XRDS XML string
-     * @param array  $extra_ns_map Additional namespace declarations
-     *
-     * @access public
-     *
-     * @return mixed An instance of OMB_Yadis_XRDS or null,
-     *               depending on the validity of $xml_string
-     */
-    public static function parseXRDS($xml_string, $extra_ns_map = null)
-    {
-        $_null = null;
-
-        if (!$xml_string) {
-            return $_null;
-        }
-
-        $parser = Auth_Yadis_getXMLParser();
-
-        $ns_map = Auth_Yadis_getNSMap();
-
-        if ($extra_ns_map && is_array($extra_ns_map)) {
-            $ns_map = array_merge($ns_map, $extra_ns_map);
-        }
-
-        if (!($parser && $parser->init($xml_string, $ns_map))) {
-            return $_null;
-        }
-
-        // Try to get root element.
-        $root = $parser->evalXPath('/xrds:XRDS[1]');
-        if (!$root) {
-            return $_null;
-        }
-
-        if (is_array($root)) {
-            $root = $root[0];
-        }
-
-        $attrs = $parser->attributes($root);
-
-        if (array_key_exists('xmlns:xrd', $attrs) &&
-                    $attrs['xmlns:xrd'] != Auth_Yadis_XMLNS_XRDS) {
-            return $_null;
-        } else if (array_key_exists('xmlns', $attrs) &&
-                                     preg_match('/xri/', $attrs['xmlns']) &&
-                                     $attrs['xmlns'] != Auth_Yadis_XMLNS_XRD_2_0) {
-            return $_null;
-        }
-
-        // Get the last XRD node.
-        $xrd_nodes = $parser->evalXPath('/xrds:XRDS[1]/xrd:XRD');
-
-        if (!$xrd_nodes) {
-            return $_null;
-        }
-
-        $xrds = new OMB_Yadis_XRDS($parser, $xrd_nodes);
-        return $xrds;
-    }
-}
diff --git a/plugins/OMB/extlib/libomb/plain_xrds_writer.php b/plugins/OMB/extlib/libomb/plain_xrds_writer.php
deleted file mode 100755 (executable)
index ba1027b..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'xrds_writer.php';
-
-/**
- * Write OMB-specific XRDS using XMLWriter
- *
- * This class writes the XRDS file announcing the OMB server. It uses XMLWriter.
- * An instance of OMB_Plain_XRDS_Writer should be passed to
- * OMB_Service_Provider->writeXRDS.
- */
-class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer
-{
-    /**
-     * Write XRDS using XMLWriter
-     *
-     * Outputs a XRDS document specifying an OMB service.
-     *
-     * @param OMB_profile     $user   The target user for the OMB service
-     * @param OMB_XRDS_Mapper $mapper An OMB_XRDS_Mapper providing endpoint URLs
-     */
-    public function writeXRDS($user, $mapper)
-    {
-        header('Content-Type: application/xrds+xml');
-        $xw = new XMLWriter();
-        $xw->openURI('php://output');
-        $xw->setIndent(true);
-
-        $xw->startDocument('1.0', 'UTF-8');
-        $this->_writeFullElement($xw, 'XRDS', array('xmlns' => 'xri://$xrds'), array(
-        array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                            'xml:id' => 'oauth',
-                            'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
-                            'version' => '2.0'), array(
-          array('Type', null, 'xri://$xrds*simple'),
-          array('Service', null, array(
-            array('Type', null, OAUTH_ENDPOINT_REQUEST),
-            array('URI', null, $mapper->getURL(OAUTH_ENDPOINT_REQUEST)),
-            array('Type', null, OAUTH_AUTH_HEADER),
-            array('Type', null, OAUTH_POST_BODY),
-            array('Type', null, OAUTH_HMAC_SHA1),
-            array('LocalID', null, $user->getIdentifierURI())
-          )),
-          array('Service', null, array(
-            array('Type', null, OAUTH_ENDPOINT_AUTHORIZE),
-            array('URI', null, $mapper->getURL(OAUTH_ENDPOINT_AUTHORIZE)),
-            array('Type', null, OAUTH_AUTH_HEADER),
-            array('Type', null, OAUTH_POST_BODY),
-            array('Type', null, OAUTH_HMAC_SHA1)
-          )),
-          array('Service', null, array(
-            array('Type', null, OAUTH_ENDPOINT_ACCESS),
-            array('URI', null, $mapper->getURL(OAUTH_ENDPOINT_ACCESS)),
-            array('Type', null, OAUTH_AUTH_HEADER),
-            array('Type', null, OAUTH_POST_BODY),
-            array('Type', null, OAUTH_HMAC_SHA1)
-          )),
-          array('Service', null, array(
-            array('Type', null, OAUTH_ENDPOINT_RESOURCE),
-            array('Type', null, OAUTH_AUTH_HEADER),
-            array('Type', null, OAUTH_POST_BODY),
-            array('Type', null, OAUTH_HMAC_SHA1)
-          ))
-        )),
-        array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                           'xml:id' => 'omb',
-                           'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
-                           'version' => '2.0'), array(
-          array('Type', null, 'xri://$xrds*simple'),
-          array('Service', null, array(
-            array('Type', null, OMB_ENDPOINT_POSTNOTICE),
-            array('URI', null, $mapper->getURL(OMB_ENDPOINT_POSTNOTICE))
-          )),
-          array('Service', null, array(
-            array('Type', null, OMB_ENDPOINT_UPDATEPROFILE),
-            array('URI', null, $mapper->getURL(OMB_ENDPOINT_UPDATEPROFILE))
-          ))
-        )),
-        array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
-                           'version' => '2.0'), array(
-          array('Type', null, 'xri://$xrds*simple'),
-          array('Service', null, array(
-            array('Type', null, OAUTH_DISCOVERY),
-            array('URI', null, '#oauth')
-          )),
-          array('Service', null, array(
-            array('Type', null, OMB_VERSION),
-            array('URI', null, '#omb')
-          ))
-        ))));
-        $xw->endDocument();
-        $xw->flush();
-    }
-
-    /**
-     * Write a complex XML element
-     *
-     * Outputs a XML element with attributes and content.
-     *
-     * @param XMLWriter    $xw         The XMLWriter used to output the element
-     * @param string       $tag        The tag name
-     * @param array|null   $attributes A map of XML attributes
-     * @param array|string $content    The content of the element; either an
-     *                                 array of child nodes each specified by a
-     *                                 three entry-array ($tag, $attributes,
-     *                                 $content) or a string
-     */
-    private function _writeFullElement($xw, $tag, $attributes, $content)
-    {
-        $xw->startElement($tag);
-        if (!is_null($attributes)) {
-            foreach ($attributes as $name => $value) {
-                $xw->writeAttribute($name, $value);
-            }
-        }
-        if (is_array($content)) {
-            foreach ($content as $val) {
-                $this->_writeFullElement($xw, $val[0], $val[1], $val[2]);
-            }
-        } else {
-            $xw->text($content);
-        }
-        $xw->fullEndElement();
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/profile.php b/plugins/OMB/extlib/libomb/profile.php
deleted file mode 100755 (executable)
index d732e10..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'invalidparameterexception.php';
-require_once 'Validate.php';
-require_once 'helper.php';
-
-/**
- * OMB profile representation
- *
- * This class represents an OMB profile.
- *
- * Do not call the setters with null values. Instead, if you want to delete a
- * field, pass an empty string. The getters will return null for empty fields.
- */
-class OMB_Profile
-{
-    protected $identifier_uri;
-    protected $profile_url;
-    protected $nickname;
-    protected $license_url;
-    protected $fullname;
-    protected $homepage;
-    protected $bio;
-    protected $location;
-    protected $avatar_url;
-
-    /* The profile as OMB param array. Cached and rebuild on usage.
-       false while outdated. */
-    protected $param_array;
-
-    /**
-     * Constructor for OMB_Profile
-     *
-     * Initializes the OMB_Profile object with an identifier uri.
-     *
-     * @param string $identifier_uri The profile URI as defined by the OMB;
-     *                               A unique and never changing identifier for
-     *                               a profile
-     *
-     * @access public
-     */
-    public function __construct($identifier_uri)
-    {
-        if (!Validate::uri($identifier_uri)) {
-            throw new OMB_InvalidParameterException($identifier_uri, 'profile',
-                                                'omb_listenee or omb_listener');
-        }
-        $this->identifier_uri = $identifier_uri;
-        $this->param_array    = false;
-    }
-
-    /**
-     * Return the profile as array
-     *
-     * Returns an array which contains the whole profile as array.
-     * The array is cached and only rebuilt on changes of the profile.
-     *
-     * @param string $prefix    The common prefix to the key for all parameters
-     * @param bool   $force_all Specifies whether empty fields should be added
-     *                          to the array as well; This is necessary to
-     *                          clear fields via updateProfile
-     *
-     * @access public
-     *
-     * @return array The profile as parameter array
-     */
-    public function asParameters($prefix, $force_all = false)
-    {
-        if ($this->param_array === false) {
-            $this->param_array = array('' => $this->identifier_uri);
-
-            if ($force_all || !is_null($this->profile_url)) {
-                $this->param_array['_profile'] = $this->profile_url;
-            }
-
-            if ($force_all || !is_null($this->homepage)) {
-                $this->param_array['_homepage'] = $this->homepage;
-            }
-
-            if ($force_all || !is_null($this->nickname)) {
-                $this->param_array['_nickname'] = $this->nickname;
-            }
-
-            if ($force_all || !is_null($this->license_url)) {
-                $this->param_array['_license'] = $this->license_url;
-            }
-
-            if ($force_all || !is_null($this->fullname)) {
-                $this->param_array['_fullname'] = $this->fullname;
-            }
-
-            if ($force_all || !is_null($this->bio)) {
-                $this->param_array['_bio'] = $this->bio;
-            }
-
-            if ($force_all || !is_null($this->location)) {
-                $this->param_array['_location'] = $this->location;
-            }
-
-            if ($force_all || !is_null($this->avatar_url)) {
-                $this->param_array['_avatar'] = $this->avatar_url;
-            }
-
-        }
-        $ret = array();
-        foreach ($this->param_array as $k => $v) {
-            $ret[$prefix . $k] = $v;
-        }
-        return $ret;
-    }
-
-    /**
-     * Build an OMB_Profile object from array
-     *
-     * Builds an OMB_Profile object from the passed parameters array. The
-     * array MUST provide a profile URI. The array fields HAVE TO be named
-     * according to the OMB standard. The prefix (omb_listener or omb_listenee)
-     * is passed as a parameter.
-     *
-     * @param string $parameters An array containing the profile parameters
-     * @param string $prefix     The common prefix of the profile parameter keys
-     *
-     * @access public
-     *
-     * @returns OMB_Profile The built OMB_Profile
-     */
-    public static function fromParameters($parameters, $prefix)
-    {
-        if (!isset($parameters[$prefix])) {
-            throw new OMB_InvalidParameterException('', 'profile', $prefix);
-        }
-
-        $profile = new OMB_Profile($parameters[$prefix]);
-        $profile->updateFromParameters($parameters, $prefix);
-        return $profile;
-    }
-
-    /**
-     * Update from array
-     *
-     * Updates from the passed parameters array. The array does not have to
-     * provide a profile URI. The array fields HAVE TO be named according to the
-     * OMB standard. The prefix (omb_listener or omb_listenee) is passed as a
-     * parameter.
-     *
-     * @param string $parameters An array containing the profile parameters
-     * @param string $prefix     The common prefix of the profile parameter keys
-     *
-     * @access public
-     */
-    public function updateFromParameters($parameters, $prefix)
-    {
-        if (isset($parameters[$prefix.'_profile'])) {
-            $this->setProfileURL($parameters[$prefix.'_profile']);
-        }
-
-        if (isset($parameters[$prefix.'_license'])) {
-            $this->setLicenseURL($parameters[$prefix.'_license']);
-        }
-
-        if (isset($parameters[$prefix.'_nickname'])) {
-            $this->setNickname($parameters[$prefix.'_nickname']);
-        }
-
-        if (isset($parameters[$prefix.'_fullname'])) {
-            $this->setFullname($parameters[$prefix.'_fullname']);
-        }
-
-        if (isset($parameters[$prefix.'_homepage'])) {
-            $this->setHomepage($parameters[$prefix.'_homepage']);
-        }
-
-        if (isset($parameters[$prefix.'_bio'])) {
-            $this->setBio($parameters[$prefix.'_bio']);
-        }
-
-        if (isset($parameters[$prefix.'_location'])) {
-            $this->setLocation($parameters[$prefix.'_location']);
-        }
-
-        if (isset($parameters[$prefix.'_avatar'])) {
-            $this->setAvatarURL($parameters[$prefix.'_avatar']);
-        }
-    }
-
-    public function getIdentifierURI()
-    {
-        return $this->identifier_uri;
-    }
-
-    public function getProfileURL()
-    {
-        return $this->profile_url;
-    }
-
-    public function getHomepage()
-    {
-        return $this->homepage;
-    }
-
-    public function getNickname()
-    {
-        return $this->nickname;
-    }
-
-    public function getLicenseURL()
-    {
-        return $this->license_url;
-    }
-
-    public function getFullname()
-    {
-        return $this->fullname;
-    }
-
-    public function getBio()
-    {
-        return $this->bio;
-    }
-
-    public function getLocation()
-    {
-        return $this->location;
-    }
-
-    public function getAvatarURL()
-    {
-        return $this->avatar_url;
-    }
-
-    public function setProfileURL($profile_url)
-    {
-        $this->setVal('profile', $profile_url, 'OMB_Helper::validateURL',
-                      'profile_url');
-    }
-
-    public function setNickname($nickname)
-    {
-        $this->setVal('nickname', $nickname, 'OMB_Profile::validateNickname',
-                      'nickname', true);
-    }
-
-    public function setLicenseURL($license_url)
-    {
-        $this->setVal('license', $license_url, 'OMB_Helper::validateURL',
-                      'license_url');
-    }
-
-    public function setFullname($fullname)
-    {
-        $this->setVal('fullname', $fullname, 'OMB_Profile::validate255');
-    }
-
-    public function setHomepage($homepage)
-    {
-        $this->setVal('homepage', $homepage, 'OMB_Helper::validateURL');
-    }
-
-    public function setBio($bio)
-    {
-        $this->setVal('bio', $bio, 'OMB_Profile::validate140');
-    }
-
-    public function setLocation($location)
-    {
-        $this->setVal('location', $location, 'OMB_Profile::validate255');
-    }
-
-    public function setAvatarURL($avatar_url)
-    {
-        $this->setVal('avatar', $avatar_url, 'OMB_Helper::validateURL',
-                      'avatar_url');
-    }
-
-    protected static function validate255($str)
-    {
-        return Validate::string($str, array('max_length' => 255));
-    }
-
-    protected static function validate140($str)
-    {
-        return Validate::string($str, array('max_length' => 140));
-    }
-
-    protected static function validateNickname($str)
-    {
-        return Validate::string($str,
-                              array('min_length' => 1,
-                                    'max_length' => 64,
-                                    'format' => VALIDATE_NUM . VALIDATE_ALPHA));
-    }
-
-    /**
-     * Set a value
-     *
-     * Updates a value specified by a parameter name and the new value.
-     *
-     * @param string   $param     The parameter name according to OMB
-     * @param string   $value     The new value
-     * @param callback $validator A validator function for the parameter
-     * @param string   $field     The name of the field in OMB_Profile
-     * @param bool     $force     Whether null values should be checked as well
-     */
-    protected function setVal($param, $value, $validator, $field = null,
-                              $force = false)
-    {
-        if (is_null($field)) {
-            $field = $param;
-        }
-        if ($value === '' && !$force) {
-            $value = null;
-        } elseif (!call_user_func($validator, $value)) {
-            throw new OMB_InvalidParameterException($value, 'profile', $param);
-        }
-        if ($this->$field !== $value) {
-            $this->$field      = $value;
-            $this->param_array = false;
-        }
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/remoteserviceexception.php b/plugins/OMB/extlib/libomb/remoteserviceexception.php
deleted file mode 100755 (executable)
index f8341e8..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Exception stating that the remote service had a failure
- *
- * This exception is raised when a remote service failed to return a valid
- * response to a request or send a valid request.
- */
-class OMB_RemoteServiceException extends Exception
-{
-    /**
-     * Create exception from Yadis response
-     *
-     * Creates an exception from a passed yadis result.
-     *
-     * @param string                  $request_uri The target URI for the failed
-     *                                             request
-     * @param Auth_Yadis_HTTPResponse $result      The result of the failed
-     *                                             request
-     *
-     * @return OMB_RemoteServiceException A new exception
-     */
-    public static function fromYadis($request_uri, $result)
-    {
-        if ($result->status == 200) {
-            $err = 'Got wrong response ' . $result->body;
-        } else {
-            $err = 'Got error code ' . $result->status . ' with response ' .
-                   $result->body;
-        }
-        return OMB_RemoteServiceException::forRequest($request_uri, $err);
-    }
-
-    /**
-     * Create exception for a call to a resource
-     *
-     * Creates an exception for a given error message and target URI.
-     *
-     * @param string $action_uri The target URI for the failed request
-     * @param string $failure    An error message
-     *
-     * @return OMB_RemoteServiceException A new exception
-     */
-    public static function forRequest($action_uri, $failure)
-    {
-        return new OMB_RemoteServiceException("Handler for $action_uri: $failure");
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/service_consumer.php b/plugins/OMB/extlib/libomb/service_consumer.php
deleted file mode 100755 (executable)
index 33ebccc..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'Validate.php';
-require_once 'Auth/Yadis/Yadis.php';
-require_once 'OAuth.php';
-require_once 'constants.php';
-require_once 'helper.php';
-require_once 'omb_yadis_xrds.php';
-require_once 'profile.php';
-require_once 'remoteserviceexception.php';
-require_once 'unsupportedserviceexception.php';
-
-/**
- * OMB service representation
- *
- * This class represents a complete remote OMB service. It provides discovery
- * and execution of the service’s methods.
- */
-class OMB_Service_Consumer
-{
-    protected $url; /* The service URL */
-    protected $services; /* An array of strings mapping service URI to
-                            service URL */
-
-    protected $token; /* An OAuthToken */
-
-    protected $listener_uri; /* The URI identifying the listener, i. e. the
-                                remote user. */
-
-    protected $listenee_uri; /* The URI identifying the listenee, i. e. the
-                                local user during an auth request. */
-
-    /**
-     * According to OAuth Core 1.0, an user authorization request is no
-     * full-blown OAuth request. nonce, timestamp, consumer_key and signature
-     * are not needed in this step. See http://laconi.ca/trac/ticket/827 for
-     * more informations.
-     *
-     * Since Laconica up to version 0.7.2 performs a full OAuth request check, a
-     * correct request would fail.
-     */
-    public $performLegacyAuthRequest = true;
-
-    /* Helper stuff we are going to need. */
-    protected $fetcher;
-    protected $oauth_consumer;
-    protected $datastore;
-
-    /**
-     * Constructor for OMB_Service_Consumer
-     *
-     * Initializes an OMB_Service_Consumer object representing the OMB service
-     * specified by $service_url. Performs a complete service discovery using
-     * Yadis.
-     * Throws OMB_UnsupportedServiceException if XRDS file does not specify a
-     * complete OMB service.
-     *
-     * @param string        $service_url  The URL of the service
-     * @param string        $consumer_url An URL representing the consumer
-     * @param OMB_Datastore $datastore    An instance of a class implementing
-     *                                    OMB_Datastore
-     *
-     * @access public
-     */
-    public function __construct ($service_url, $consumer_url, $datastore)
-    {
-        $this->url            = $service_url;
-        $this->fetcher        = Auth_Yadis_Yadis::getHTTPFetcher();
-        $this->datastore      = $datastore;
-        $this->oauth_consumer = new OAuthConsumer($consumer_url, '');
-
-        $xrds = OMB_Yadis_XRDS::fromYadisURL($service_url, $this->fetcher);
-
-        /* Detect our services. This performs a validation as well, since
-            getService und getXRD throw exceptions on failure. */
-        $this->services = array();
-
-        foreach (array(OAUTH_DISCOVERY => OMB_Helper::$OAUTH_SERVICES,
-                       OMB_VERSION     => OMB_Helper::$OMB_SERVICES)
-                 as    $service_root   => $targetservices) {
-            $uris = $xrds->getService($service_root)->getURIs();
-            $xrd  = $xrds->getXRD($uris[0]);
-            foreach ($targetservices as $targetservice) {
-                $yadis_service = $xrd->getService($targetservice);
-                if ($targetservice == OAUTH_ENDPOINT_REQUEST) {
-                        $localid            =
-                                   $yadis_service->getElements('xrd:LocalID');
-                        $this->listener_uri =
-                                   $yadis_service->parser->content($localid[0]);
-                }
-                $uris                           = $yadis_service->getURIs();
-                $this->services[$targetservice] = $uris[0];
-            }
-        }
-    }
-
-    /**
-     * Get the handler URI for a service
-     *
-     * Returns the URI the remote web service has specified for the given
-     * service.
-     *
-     * @param string $service The URI identifying the service
-     *
-     * @access public
-     *
-     * @return string The service handler URI
-     */
-    public function getServiceURI($service)
-    {
-        return $this->services[$service];
-    }
-
-    /**
-     * Get the remote user’s URI
-     *
-     * Returns the URI of the remote user, i. e. the listener.
-     *
-     * @access public
-     *
-     * @return string The remote user’s URI
-     */
-    public function getRemoteUserURI()
-    {
-        return $this->listener_uri;
-    }
-
-    /**
-     * Get the listenee’s URI
-     *
-     * Returns the URI of the user being subscribed to, i. e. the local user.
-     *
-     * @access public
-     *
-     * @return string The local user’s URI
-     */
-    public function getListeneeURI()
-    {
-        return $this->listenee_uri;
-    }
-
-    /**
-     * Request a request token
-     *
-     * Performs a token request on the service. Returns an OAuthToken on success.
-     * Throws an exception if the request fails.
-     *
-     * @access public
-     *
-     * @return OAuthToken An unauthorized request token
-     */
-    public function requestToken()
-    {
-        /* Set the token to null just in case the user called setToken. */
-        $this->token = null;
-
-        $result = $this->performAction(OAUTH_ENDPOINT_REQUEST,
-                                       array('omb_listener' => $this->listener_uri));
-        if ($result->status != 200) {
-            throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST,
-                                                        $result);
-        }
-        parse_str($result->body, $return);
-        if (!isset($return['oauth_token']) ||
-            !isset($return['oauth_token_secret'])) {
-            throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST,
-                                                        $result);
-        }
-        $this->setToken($return['oauth_token'], $return['oauth_token_secret']);
-        return $this->token;
-    }
-
-    /**
-     * Request authorization
-     *
-     * Returns an URL which equals to an authorization request. The end user
-     * should be redirected to this location to perform authorization.
-     * The $finish_url should be a local resource which invokes
-     * OMB_Consumer::finishAuthorization on request.
-     *
-     * @param OMB_Profile $profile    An OMB_Profile object representing the
-     *                                soon-to-be subscribed (i. e. local) user
-     * @param string      $finish_url Target location after successful
-     *                                authorization
-     *
-     * @access public
-     *
-     * @return string An URL representing an authorization request
-     */
-    public function requestAuthorization($profile, $finish_url)
-    {
-        if ($this->performLegacyAuthRequest) {
-            $params                   = $profile->asParameters('omb_listenee',
-                                                               false);
-            $params['omb_listener']   = $this->listener_uri;
-            $params['oauth_callback'] = $finish_url;
-
-            $url = $this->prepareAction(OAUTH_ENDPOINT_AUTHORIZE, $params,
-                                        'GET')->to_url();
-        } else {
-            $params = array('oauth_callback' => $finish_url,
-                            'oauth_token'    => $this->token->key,
-                            'omb_version'    => OMB_VERSION,
-                            'omb_listener'   => $this->listener_uri);
-
-            $params = array_merge($profile->asParameters('omb_listenee', false),
-                                  $params);
-
-            /* Build result URL. */
-            $url = $this->services[OAUTH_ENDPOINT_AUTHORIZE] .
-                   (strrpos($url, '?') === false ? '?' : '&');
-            foreach ($params as $k => $v) {
-                $url .= OAuthUtil::urlencode_rfc3986($k) . '=' .
-                        OAuthUtil::urlencode_rfc3986($v) . '&';
-            }
-        }
-
-        $this->listenee_uri = $profile->getIdentifierURI();
-
-        return $url;
-    }
-
-    /**
-     * Finish authorization
-     *
-     * Finish the subscription process by converting the received and authorized
-     * request token into an access token. After that, the subscriber’s profile
-     * and the subscription are stored in the database.
-     * Expects an OAuthRequest in query parameters.
-     * Throws exceptions on failure.
-     *
-     * @access public
-     */
-    public function finishAuthorization()
-    {
-        OMB_Helper::removeMagicQuotesFromRequest();
-        $req = OAuthRequest::from_request();
-        if ($req->get_parameter('oauth_token') != $this->token->key) {
-            /* That’s not the token I wanted to get authorized. */
-            throw new OAuthException('The authorized token does not equal ' .
-                                     'the submitted token.');
-        }
-
-        if ($req->get_parameter('omb_version') != OMB_VERSION) {
-            throw new OMB_RemoteServiceException('The remote service uses an ' .
-                                                 'unsupported OMB version');
-        }
-
-        /* Construct the profile to validate it. */
-
-        /* Fix OMB bug. Listener URI is not passed. */
-        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-            $params = $_POST;
-        } else {
-            $params = $_GET;
-        }
-        $params['omb_listener'] = $this->listener_uri;
-
-        $listener = OMB_Profile::fromParameters($params, 'omb_listener');
-
-        /* Ask the remote service to convert the authorized request token into
-           an access token. */
-
-        $result = $this->performAction(OAUTH_ENDPOINT_ACCESS, array());
-        if ($result->status != 200) {
-            throw new OAuthException('Could not get access token');
-        }
-
-        parse_str($result->body, $return);
-        if (!isset($return['oauth_token']) ||
-            !isset($return['oauth_token_secret'])) {
-            throw new OAuthException('Could not get access token');
-        }
-        $this->setToken($return['oauth_token'], $return['oauth_token_secret']);
-
-        /* Subscription is finished and valid. Now store the new subscriber and
-           the subscription in the database. */
-
-        $this->datastore->saveProfile($listener);
-        $this->datastore->saveSubscription($this->listener_uri,
-                                           $this->listenee_uri,
-                                           $this->token);
-    }
-
-    /**
-     * Return the URI identifying the listener
-     *
-     * Returns the URI for the OMB user who tries to subscribe or already has
-     * subscribed our user. This method is a workaround for a serious OMB flaw:
-     * The Listener URI is not passed in the finishauthorization call.
-     *
-     * @access public
-     *
-     * @return string the listener’s URI
-     */
-    public function getListenerURI()
-    {
-        return $this->listener_uri;
-    }
-
-    /**
-     * Inform the service about a profile update
-     *
-     * Sends an updated profile to the service.
-     *
-     * @param OMB_Profile $profile The profile that has changed
-     *
-     * @access public
-     */
-    public function updateProfile($profile)
-    {
-        $params = $profile->asParameters('omb_listenee', true);
-        $this->performOMBAction(OMB_ENDPOINT_UPDATEPROFILE, $params,
-                                $profile->getIdentifierURI());
-    }
-
-    /**
-     * Inform the service about a new notice
-     *
-     * Sends a notice to the service.
-     *
-     * @param OMB_Notice $notice The notice
-     *
-     * @access public
-     */
-    public function postNotice($notice)
-    {
-        $params                 = $notice->asParameters();
-        $params['omb_listenee'] = $notice->getAuthor()->getIdentifierURI();
-        $this->performOMBAction(OMB_ENDPOINT_POSTNOTICE, $params,
-                                $params['omb_listenee']);
-    }
-
-    /**
-     * Set the token member variable
-     *
-     * Initializes the token based on given token and secret token.
-     *
-     * @param string $token  The token
-     * @param string $secret The secret token
-     *
-     * @access public
-     */
-    public function setToken($token, $secret)
-    {
-        $this->token = new OAuthToken($token, $secret);
-    }
-
-    /**
-     * Prepare an OAuthRequest object
-     *
-     * Creates an OAuthRequest object mapping the request specified by the
-     * parameters.
-     *
-     * @param string $action_uri The URI specifying the target service
-     * @param array  $params     Additional parameters for the service call
-     * @param string $method     The HTTP method used to call the service
-     *                           ('POST' or 'GET', usually)
-     *
-     * @access protected
-     *
-     * @return OAuthRequest the prepared request
-     */
-    protected function prepareAction($action_uri, $params, $method)
-    {
-        $url = $this->services[$action_uri];
-
-        $url_params = array();
-        parse_str(parse_url($url, PHP_URL_QUERY), $url_params);
-
-        /* Add OMB version. */
-        $url_params['omb_version'] = OMB_VERSION;
-
-        /* Add user-defined parameters. */
-        $url_params = array_merge($url_params, $params);
-
-        $req = OAuthRequest::from_consumer_and_token($this->oauth_consumer,
-                                                     $this->token, $method,
-                                                     $url, $url_params);
-
-        /* Sign the request. */
-        $req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(),
-                           $this->oauth_consumer, $this->token);
-
-        return $req;
-    }
-
-    /**
-     * Perform a service call
-     *
-     * Creates an OAuthRequest object and execute the mapped call as POST
-     * request.
-     *
-     * @param string $action_uri The URI specifying the target service
-     * @param array  $params     Additional parameters for the service call
-     *
-     * @access protected
-     *
-     * @return Auth_Yadis_HTTPResponse The POST request response
-     */
-    protected function performAction($action_uri, $params)
-    {
-        $req = $this->prepareAction($action_uri, $params, 'POST');
-
-        /* Return result page. */
-        return $this->fetcher->post($req->get_normalized_http_url(),
-                                    $req->to_postdata(), array());
-    }
-
-    /**
-     * Perform an OMB action
-     *
-     * Executes an OMB action – as of OMB 0.1, it’s one of updateProfile and
-     * postNotice.
-     *
-     * @param string $action_uri   The URI specifying the target service
-     * @param array  $params       Additional parameters for the service call
-     * @param string $listenee_uri The URI identifying the local user for whom
-     *                             the action is performed
-     *
-     * @access protected
-     */
-    protected function performOMBAction($action_uri, $params, $listenee_uri)
-    {
-        $result = $this->performAction($action_uri, $params);
-        if ($result->status == 403) {
-            /* The remote user unsubscribed us. */
-            $this->datastore->deleteSubscription($this->listener_uri,
-                                                 $listenee_uri);
-        } else if ($result->status != 200 ||
-                   strpos($result->body, 'omb_version=' . OMB_VERSION) === false) {
-            /* The server signaled an error or sent an incorrect response. */
-            throw OMB_RemoteServiceException::fromYadis($action_uri, $result);
-        }
-    }
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/service_provider.php b/plugins/OMB/extlib/libomb/service_provider.php
deleted file mode 100755 (executable)
index 9a1a488..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-require_once 'constants.php';
-require_once 'helper.php';
-require_once 'notice.php';
-require_once 'remoteserviceexception.php';
-
-/**
- * OMB service realization
- *
- * This class realizes a complete, simple OMB service.
- */
-class OMB_Service_Provider
-{
-    protected $user; /* An OMB_Profile representing the user */
-    protected $datastore; /* AN OMB_Datastore */
-
-    protected $remote_user; /* An OMB_Profile representing the remote user
-                               during the authorization process */
-
-    protected $oauth_server; /* An OAuthServer; should only be accessed via
-                                getOAuthServer. */
-
-    /**
-     * Initialize an OMB_Service_Provider object
-     *
-     * Constructs an OMB_Service_Provider instance that provides OMB services
-     * referring to a particular user.
-     *
-     * @param OMB_Profile   $user         An OMB_Profile; mandatory for XRDS
-     *                                    output, user auth handling and OMB
-     *                                    action performing
-     * @param OMB_Datastore $datastore    An OMB_Datastore; mandatory for
-     *                                    everything but XRDS output
-     * @param OAuthServer   $oauth_server An OAuthServer; used for token writing
-     *                                    and OMB action handling; will use
-     *                                    default value if not set
-     *
-     * @access public
-     */
-    public function __construct ($user = null, $datastore = null,
-                                 $oauth_server = null)
-    {
-        $this->user         = $user;
-        $this->datastore    = $datastore;
-        $this->oauth_server = $oauth_server;
-    }
-
-    /**
-     * Return the remote user during user authorization
-     *
-     * Returns an OMB_Profile representing the remote user during the user
-     * authorization request.
-     *
-     * @return OMB_Profile The remote user
-     */
-    public function getRemoteUser()
-    {
-        return $this->remote_user;
-    }
-
-    /**
-     * Write a XRDS document
-     *
-     * Writes a XRDS document specifying the OMB service. Optionally uses a
-     * given object of a class implementing OMB_XRDS_Writer for output. Else
-     * OMB_Plain_XRDS_Writer is used.
-     *
-     * @param OMB_XRDS_Mapper $xrds_mapper An object mapping actions to URLs
-     * @param OMB_XRDS_Writer $xrds_writer Optional; The OMB_XRDS_Writer used to
-     *                                     write the XRDS document
-     *
-     * @access public
-     *
-     * @return mixed Depends on the used OMB_XRDS_Writer; OMB_Plain_XRDS_Writer
-     *               returns nothing.
-     */
-    public function writeXRDS($xrds_mapper, $xrds_writer = null)
-    {
-        if ($xrds_writer == null) {
-                require_once 'plain_xrds_writer.php';
-                $xrds_writer = new OMB_Plain_XRDS_Writer();
-        }
-        return $xrds_writer->writeXRDS($this->user, $xrds_mapper);
-    }
-
-    /**
-     * Echo a request token
-     *
-     * Outputs an unauthorized request token for the query found in $_GET or
-     * $_POST.
-     *
-     * @access public
-     */
-    public function writeRequestToken()
-    {
-        OMB_Helper::removeMagicQuotesFromRequest();
-        echo $this->getOAuthServer()->fetch_request_token(
-                                                  OAuthRequest::from_request());
-    }
-
-    /**
-     * Handle an user authorization request.
-     *
-     * Parses an authorization request. This includes OAuth and OMB
-     * verification.
-     * Throws exceptions on failures. Returns an OMB_Profile object representing
-     * the remote user.
-     *
-     * The OMB_Profile passed to the constructor of OMB_Service_Provider should
-     * not represent the user specified in the authorization request, but the
-     * one currently logged in to the service. This condition being satisfied,
-     * handleUserAuth will check whether the listener specified in the request
-     * is identical to the logged in user.
-     *
-     * @access public
-     *
-     * @return OMB_Profile The profile of the soon-to-be subscribed, i. e.
-     *                     remote user
-     */
-    public function handleUserAuth()
-    {
-        OMB_Helper::removeMagicQuotesFromRequest();
-
-        /* Verify the request token. */
-
-        $this->token = $this->datastore->lookup_token(null, "request",
-                                                      $_GET['oauth_token']);
-        if (is_null($this->token)) {
-            throw new OAuthException('The given request token has not been ' .
-                                     'issued by this service.');
-        }
-
-        /* Verify the OMB part. */
-
-        if ($_GET['omb_version'] !== OMB_VERSION) {
-            throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE,
-                                                         'Wrong OMB version ' .
-                                                         $_GET['omb_version']);
-        }
-
-        if ($_GET['omb_listener'] !== $this->user->getIdentifierURI()) {
-            throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE,
-                                                         'Wrong OMB listener ' .
-                                                         $_GET['omb_listener']);
-        }
-
-        foreach (array('omb_listenee', 'omb_listenee_profile',
-                       'omb_listenee_nickname', 'omb_listenee_license') as $param) {
-            if (!isset($_GET[$param]) || is_null($_GET[$param])) {
-                throw OMB_RemoteServiceException::forRequest(
-                                       OAUTH_ENDPOINT_AUTHORIZE,
-                                       "Required parameter '$param' not found");
-            }
-        }
-
-        /* Store given callback for later use. */
-        if (isset($_GET['oauth_callback']) && $_GET['oauth_callback'] !== '') {
-            $this->callback = $_GET['oauth_callback'];
-            if (!OMB_Helper::validateURL($this->callback)) {
-                throw OMB_RemoteServiceException::forRequest(
-                                        OAUTH_ENDPOINT_AUTHORIZE,
-                                        'Invalid callback URL specified');
-            }
-        }
-        $this->remote_user = OMB_Profile::fromParameters($_GET, 'omb_listenee');
-
-        return $this->remote_user;
-    }
-
-    /**
-     * Continue the OAuth dance after user authorization
-     *
-     * Performs the appropriate actions after user answered the authorization
-     * request.
-     *
-     * @param bool $accepted Whether the user granted authorization
-     *
-     * @access public
-     *
-     * @return array A two-component array with the values:
-     *                 - callback The callback URL or null if none given
-     *                 - token    The authorized request token or null if not
-     *                            authorized.
-     */
-    public function continueUserAuth($accepted)
-    {
-        $callback = $this->callback;
-        if (!$accepted) {
-            $this->datastore->revoke_token($this->token->key);
-            $this->token = null;
-
-        } else {
-            $this->datastore->authorize_token($this->token->key);
-            $this->datastore->saveProfile($this->remote_user);
-            $this->datastore->saveSubscription($this->user->getIdentifierURI(),
-                                         $this->remote_user->getIdentifierURI(),
-                                         $this->token);
-
-            if (!is_null($this->callback)) {
-                /* Callback wants to get some informations as well. */
-                $params = $this->user->asParameters('omb_listener', false);
-
-                $params['oauth_token'] = $this->token->key;
-                $params['omb_version'] = OMB_VERSION;
-
-                $callback .= (parse_url($this->callback, PHP_URL_QUERY) ? '&' : '?');
-                foreach ($params as $k => $v) {
-                    $callback .= OAuthUtil::urlencode_rfc3986($k) . '=' .
-                                 OAuthUtil::urlencode_rfc3986($v) . '&';
-                }
-            }
-        }
-        return array($callback, $this->token);
-    }
-
-    /**
-     * Echo an access token
-     *
-     * Outputs an access token for the query found in $_POST. OMB 0.1 specifies
-     * that the access token request has to be a POST even if OAuth allows GET
-     * as well.
-     *
-     * @access public
-     */
-    public function writeAccessToken()
-    {
-        OMB_Helper::removeMagicQuotesFromRequest();
-        echo $this->getOAuthServer()->fetch_access_token(
-                                            OAuthRequest::from_request('POST'));
-    }
-
-    /**
-     * Handle an updateprofile request
-     *
-     * Handles an updateprofile request posted to this service. Updates the
-     * profile through the OMB_Datastore.
-     *
-     * @access public
-     *
-     * @return OMB_Profile The updated profile
-     */
-    public function handleUpdateProfile()
-    {
-        list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_UPDATEPROFILE);
-        $profile->updateFromParameters($req->get_parameters(), 'omb_listenee');
-        $this->datastore->saveProfile($profile);
-        $this->finishOMBRequest();
-        return $profile;
-    }
-
-    /**
-     * Handle a postnotice request
-     *
-     * Handles a postnotice request posted to this service. Saves the notice
-     * through the OMB_Datastore.
-     *
-     * @access public
-     *
-     * @return OMB_Notice The received notice
-     */
-    public function handlePostNotice()
-    {
-        list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_POSTNOTICE);
-
-        $notice = OMB_Notice::fromParameters($profile, $req->get_parameters());
-        $this->datastore->saveNotice($notice);
-        $this->finishOMBRequest();
-
-        return $notice;
-    }
-
-    /**
-     * Handle an OMB request
-     *
-     * Performs common OMB request handling.
-     *
-     * @param string $uri The URI defining the OMB endpoint being served
-     *
-     * @access protected
-     *
-     * @return array(OAuthRequest, OMB_Profile)
-     */
-    protected function handleOMBRequest($uri)
-    {
-        OMB_Helper::removeMagicQuotesFromRequest();
-        $req      = OAuthRequest::from_request('POST');
-        $listenee = $req->get_parameter('omb_listenee');
-
-        try {
-            list($consumer, $token) = $this->getOAuthServer()->verify_request($req);
-        } catch (OAuthException $e) {
-            header('HTTP/1.1 403 Forbidden');
-            throw OMB_RemoteServiceException::forRequest($uri,
-                                       'Revoked accesstoken for ' . $listenee);
-        }
-
-        $version = $req->get_parameter('omb_version');
-        if ($version !== OMB_VERSION) {
-            header('HTTP/1.1 400 Bad Request');
-            throw OMB_RemoteServiceException::forRequest($uri,
-                                               'Wrong OMB version ' . $version);
-        }
-
-        $profile = $this->datastore->getProfile($listenee);
-        if (is_null($profile)) {
-            header('HTTP/1.1 400 Bad Request');
-            throw OMB_RemoteServiceException::forRequest($uri,
-                                         'Unknown remote profile ' . $listenee);
-        }
-
-        $subscribers = $this->datastore->getSubscriptions($listenee);
-        if (count($subscribers) === 0) {
-            header('HTTP/1.1 403 Forbidden');
-            throw OMB_RemoteServiceException::forRequest($uri,
-                                              'No subscriber for ' . $listenee);
-        }
-
-        return array($req, $profile);
-    }
-
-    /**
-     * Finishes an OMB request handling
-     *
-     * Performs common OMB request handling finishing.
-     *
-     * @access protected
-     */
-    protected function finishOMBRequest()
-    {
-        header('HTTP/1.1 200 OK');
-        header('Content-type: text/plain');
-        /* There should be no clutter but the version. */
-        echo "omb_version=" . OMB_VERSION;
-    }
-
-    /**
-     * Return an OAuthServer
-     *
-     * Checks whether the OAuthServer is null. If so, initializes it with a
-     * default value. Returns the OAuth server.
-     *
-     * @access protected
-     */
-    protected function getOAuthServer()
-    {
-        if (is_null($this->oauth_server)) {
-            $this->oauth_server = new OAuthServer($this->datastore);
-            $this->oauth_server->add_signature_method(
-                                          new OAuthSignatureMethod_HMAC_SHA1());
-        }
-        return $this->oauth_server;
-    }
-
-    /**
-     * Publish a notice
-     *
-     * Posts an OMB notice. This includes storing the notice and posting it to
-     * subscribed users.
-     *
-     * @param OMB_Notice $notice The new notice
-     *
-     * @access public
-     *
-     * @return array An array mapping subscriber URIs to the exception posting
-     *               to them has raised; Empty array if no exception occured
-     */
-    public function postNotice($notice)
-    {
-        $uri = $this->user->getIdentifierURI();
-
-        /* $notice is passed by reference and may change. */
-        $this->datastore->saveNotice($notice);
-        $subscribers = $this->datastore->getSubscriptions($uri);
-
-        /* No one to post to. */
-        if (is_null($subscribers)) {
-            return array();
-        }
-
-        require_once 'service_consumer.php';
-
-        $err = array();
-        foreach ($subscribers as $subscriber) {
-            try {
-                $service = new OMB_Service_Consumer($subscriber['uri'], $uri,
-                                                    $this->datastore);
-                $service->setToken($subscriber['token'], $subscriber['secret']);
-                $service->postNotice($notice);
-            } catch (Exception $e) {
-                $err[$subscriber['uri']] = $e;
-                continue;
-            }
-        }
-        return $err;
-    }
-
-    /**
-     * Publish a profile update
-     *
-     * Posts the current profile as an OMB profile update. This includes
-     * updating the stored profile and posting it to subscribed users.
-     *
-     * @access public
-     *
-     * @return array An array mapping subscriber URIs to the exception posting
-     *               to them has raised; Empty array if no exception occured
-     */
-    public function updateProfile()
-    {
-        $uri = $this->user->getIdentifierURI();
-
-        $this->datastore->saveProfile($this->user);
-        $subscribers = $this->datastore->getSubscriptions($uri);
-
-        /* No one to post to. */
-        if (is_null($subscribers)) {
-                return array();
-        }
-
-        require_once 'service_consumer.php';
-
-        $err = array();
-        foreach ($subscribers as $subscriber) {
-            try {
-                $service = new OMB_Service_Consumer($subscriber['uri'], $uri,
-                                                    $this->datastore);
-                $service->setToken($subscriber['token'], $subscriber['secret']);
-                $service->updateProfile($this->user);
-            } catch (Exception $e) {
-                $err[$subscriber['uri']] = $e;
-                continue;
-            }
-        }
-        return $err;
-    }
-}
diff --git a/plugins/OMB/extlib/libomb/unsupportedserviceexception.php b/plugins/OMB/extlib/libomb/unsupportedserviceexception.php
deleted file mode 100755 (executable)
index be30a1f..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Exception stating that a requested service is not available
- *
- * This exception is raised when OMB_Service is asked to call a service the
- * remote server does not provide.
- */
-class OMB_UnsupportedServiceException extends Exception
-{
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/xrds_mapper.php b/plugins/OMB/extlib/libomb/xrds_mapper.php
deleted file mode 100755 (executable)
index 8fbe652..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Map XRDS actions to URLs
- *
- * This interface specifies classes which write the XRDS file announcing
- * the OMB server. An instance of an implementing class should be passed to
- * OMB_Service_Provider->writeXRDS.
- */
-interface OMB_XRDS_Mapper
-{
-    /**
-     * Fetch an URL for a specified action
-     *
-     * Returns the action URL for an action specified by the endpoint URI.
-     *
-     * @param string $action The endpoint URI
-     *
-     * @return string The action URL
-     */
-    public function getURL($action);
-}
-?>
diff --git a/plugins/OMB/extlib/libomb/xrds_writer.php b/plugins/OMB/extlib/libomb/xrds_writer.php
deleted file mode 100755 (executable)
index c7939d6..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * This file is part of libomb
- *
- * PHP version 5
- *
- * LICENSE: This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * @package OMB
- * @author  Adrian Lang <mail@adrianlang.de>
- * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0
- * @version 0.1a-20090828
- * @link    http://adrianlang.de/libomb
- */
-
-/**
- * Write OMB-specific XRDS
- *
- * This interface specifies classes which write the XRDS file announcing
- * the OMB server. An instance of an implementing class should be passed to
- * OMB_Service_Provider->writeXRDS.
- */
-interface OMB_XRDS_Writer
-{
-    /**
-     * Write XRDS
-     *
-     * Outputs a XRDS document specifying an OMB service.
-     *
-     * @param OMB_profile     $user   The target user for the OMB service
-     * @param OMB_XRDS_Mapper $mapper An OMB_XRDS_Mapper providing endpoint URLs
-     */
-    public function writeXRDS($user, $mapper);
-}
-?>
diff --git a/plugins/OMB/lib/omb.php b/plugins/OMB/lib/omb.php
deleted file mode 100644 (file)
index 4731440..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-$dir = dirname(__FILE__);
-
-require_once $dir . '/../extlib/libomb/constants.php';
-require_once $dir . '/../extlib/libomb/service_consumer.php';
-require_once $dir . '/../extlib/libomb/notice.php';
-require_once $dir . '/../extlib/libomb/profile.php';
-require_once INSTALLDIR . '/extlib/Auth/Yadis/Yadis.php';
-
-function omb_oauth_consumer()
-{
-    // Don't try to make this static. Leads to issues in
-    // multi-site setups - Z
-    return new OAuthConsumer(common_root_url(), '');
-}
-
-function omb_oauth_server()
-{
-    static $server = null;
-    if (is_null($server)) {
-        $server = new OAuthServer(omb_oauth_datastore());
-        $server->add_signature_method(omb_hmac_sha1());
-    }
-    return $server;
-}
-
-function omb_oauth_datastore()
-{
-    static $store = null;
-    if (is_null($store)) {
-        $store = new OMBOAuthDataStore();
-    }
-    return $store;
-}
-
-function omb_hmac_sha1()
-{
-    static $hmac_method = null;
-    if (is_null($hmac_method)) {
-        $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
-    }
-    return $hmac_method;
-}
-
-function omb_broadcast_notice($notice)
-{
-    try {
-        $omb_notice = notice_to_omb_notice($notice);
-    } catch (Exception $e) {
-        // @fixme we should clean up or highlight the problem item
-        common_log(LOG_ERR, 'Invalid OMB outgoing notice for notice ' . $notice->id);
-        common_log(LOG_ERR, 'Error status '.$e);
-        return true;
-    }
-
-    /* Get remote users subscribed to this profile. */
-    $rp = new Remote_profile();
-
-    $rp->query('SELECT remote_profile.*, secret, token ' .
-               'FROM subscription JOIN remote_profile ' .
-               'ON subscription.subscriber = remote_profile.id ' .
-               'WHERE subscription.subscribed = ' . $notice->profile_id . ' ');
-
-    $posted = array();
-
-    while ($rp->fetch()) {
-        if (isset($posted[$rp->postnoticeurl])) {
-            /* We already posted to this url. */
-            continue;
-        }
-        common_debug('Posting to ' . $rp->postnoticeurl, __FILE__);
-
-        /* Post notice. */
-        $service = new StatusNet_OMB_Service_Consumer(
-                     array(OMB_ENDPOINT_POSTNOTICE => $rp->postnoticeurl),
-                                                      $rp->uri);
-        try {
-            $service->setToken($rp->token, $rp->secret);
-            $service->postNotice($omb_notice);
-        } catch (Exception $e) {
-            common_log(LOG_ERR, 'Failed posting to ' . $rp->postnoticeurl);
-            common_log(LOG_ERR, 'Error status '.$e);
-            continue;
-        }
-        $posted[$rp->postnoticeurl] = true;
-
-        common_debug('Finished to ' . $rp->postnoticeurl, __FILE__);
-    }
-
-    return true;
-}
-
-function omb_broadcast_profile($profile)
-{
-    $user = User::getKV('id', $profile->id);
-
-    if (!$user) {
-        return false;
-    }
-
-    $profile = $user->getProfile();
-
-    $omb_profile = profile_to_omb_profile($user->uri, $profile, true);
-
-    /* Get remote users subscribed to this profile. */
-    $rp = new Remote_profile();
-
-    $rp->query('SELECT remote_profile.*, secret, token ' .
-               'FROM subscription JOIN remote_profile ' .
-               'ON subscription.subscriber = remote_profile.id ' .
-               'WHERE subscription.subscribed = ' . $profile->id . ' ');
-
-    $posted = array();
-
-    while ($rp->fetch()) {
-        if (isset($posted[$rp->updateprofileurl])) {
-            /* We already posted to this url. */
-            continue;
-        }
-        common_debug('Posting to ' . $rp->updateprofileurl, __FILE__);
-
-        /* Update profile. */
-        $service = new StatusNet_OMB_Service_Consumer(
-                     array(OMB_ENDPOINT_UPDATEPROFILE => $rp->updateprofileurl),
-                                                      $rp->uri);
-        try {
-            $service->setToken($rp->token, $rp->secret);
-            $service->updateProfile($omb_profile);
-        } catch (Exception $e) {
-            common_log(LOG_ERR, 'Failed posting to ' . $rp->updateprofileurl);
-            common_log(LOG_ERR, 'Error status '.$e);
-            continue;
-        }
-        $posted[$rp->updateprofileurl] = true;
-
-        common_debug('Finished to ' . $rp->updateprofileurl, __FILE__);
-    }
-
-    return;
-}
-
-class StatusNet_OMB_Service_Consumer extends OMB_Service_Consumer {
-    public function __construct($urls, $listener_uri=null)
-    {
-        $this->services       = $urls;
-        $this->datastore      = omb_oauth_datastore();
-        $this->oauth_consumer = omb_oauth_consumer();
-        $this->fetcher        = Auth_Yadis_Yadis::getHTTPFetcher();
-        $this->fetcher->timeout = intval(common_config('omb', 'timeout'));
-        $this->listener_uri   = $listener_uri;
-    }
-
-}
-
-function profile_to_omb_profile($uri, $profile, $force = false)
-{
-    $omb_profile = new OMB_Profile($uri);
-    $omb_profile->setNickname($profile->nickname);
-    $omb_profile->setLicenseURL(common_config('license', 'url'));
-    if (!is_null($profile->fullname)) {
-        $omb_profile->setFullname($profile->fullname);
-    } elseif ($force) {
-        $omb_profile->setFullname('');
-    }
-    if (!is_null($profile->homepage)) {
-        $omb_profile->setHomepage($profile->homepage);
-    } elseif ($force) {
-        $omb_profile->setHomepage('');
-    }
-    if (!is_null($profile->bio)) {
-        $omb_profile->setBio($profile->bio);
-    } elseif ($force) {
-        $omb_profile->setBio('');
-    }
-    if (!is_null($profile->location)) {
-        $omb_profile->setLocation($profile->location);
-    } elseif ($force) {
-        $omb_profile->setLocation('');
-    }
-    if (!is_null($profile->profileurl)) {
-        $omb_profile->setProfileURL($profile->profileurl);
-    } elseif ($force) {
-        $omb_profile->setProfileURL('');
-    }
-
-    $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
-    if ($avatar) {
-        $omb_profile->setAvatarURL($avatar->url);
-    } elseif ($force) {
-        $omb_profile->setAvatarURL('');
-    }
-    return $omb_profile;
-}
-
-function notice_to_omb_notice($notice)
-{
-    /* Create an OMB_Notice for $notice. */
-    $user = User::getKV('id', $notice->profile_id);
-
-    if (!$user) {
-        return null;
-    }
-
-    $profile = $user->getProfile();
-
-    $omb_notice = new OMB_Notice(profile_to_omb_profile($user->uri, $profile),
-                                 $notice->uri,
-                                 $notice->content);
-    $omb_notice->setURL(common_local_url('shownotice', array('notice' =>
-                                                                 $notice->id)));
-    $omb_notice->setLicenseURL(common_config('license', 'url'));
-
-    return $omb_notice;
-}
-
diff --git a/plugins/OMB/lib/omboauthdatastore.php b/plugins/OMB/lib/omboauthdatastore.php
deleted file mode 100644 (file)
index 13bd793..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011 StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-require_once dirname(__FILE__) . '/../extlib/libomb/datastore.php';
-
-// @todo FIXME: Class documentation missing.
-class OMBOAuthDataStore extends OAuthDataStore
-{
-    // We keep a record of who's contacted us
-    function lookup_consumer($consumer_key)
-    {
-        $con = Consumer::getKV('consumer_key', $consumer_key);
-        if (!$con) {
-            $con = new Consumer();
-            $con->consumer_key = $consumer_key;
-            $con->seed = common_random_hexstr(16);
-            $con->created = common_sql_now();
-            if (!$con->insert()) {
-                return null;
-            }
-        }
-        return new OAuthConsumer($con->consumer_key, '');
-    }
-
-    function lookup_token($consumer, $token_type, $token_key)
-    {
-        $t = new Token();
-        if (!is_null($consumer)) {
-            $t->consumer_key = $consumer->key;
-        }
-        $t->tok = $token_key;
-        $t->type = ($token_type == 'access') ? 1 : 0;
-        if ($t->find(true)) {
-            return new OAuthToken($t->tok, $t->secret);
-        } else {
-            return null;
-        }
-    }
-
-    // http://oauth.net/core/1.0/#nonce
-    // "The Consumer SHALL then generate a Nonce value that is unique for
-    // all requests with that timestamp."
-    // XXX: It's not clear why the token is here
-    function lookup_nonce($consumer, $token, $nonce, $timestamp)
-    {
-        $n = new Nonce();
-        $n->consumer_key = $consumer->key;
-        $n->ts = common_sql_date($timestamp);
-        $n->nonce = $nonce;
-        if ($n->find(true)) {
-            return true;
-        } else {
-            $n->created = common_sql_now();
-            $n->insert();
-            return false;
-        }
-    }
-
-    function new_request_token($consumer)
-    {
-        $t = new Token();
-        $t->consumer_key = $consumer->key;
-        $t->tok = common_random_hexstr(16);
-        $t->secret = common_random_hexstr(16);
-        $t->type = 0; // request
-        $t->state = 0; // unauthorized
-        $t->created = common_sql_now();
-        if (!$t->insert()) {
-            return null;
-        } else {
-            return new OAuthToken($t->tok, $t->secret);
-        }
-    }
-
-    // defined in OAuthDataStore, but not implemented anywhere
-    function fetch_request_token($consumer)
-    {
-        return $this->new_request_token($consumer);
-    }
-
-    function new_access_token($token, $consumer)
-    {
-        common_debug('new_access_token("'.$token->key.'","'.$consumer->key.'")', __FILE__);
-        $rt = new Token();
-        $rt->consumer_key = $consumer->key;
-        $rt->tok = $token->key;
-        $rt->type = 0; // request
-        if ($rt->find(true) && $rt->state == 1) { // authorized
-            common_debug('request token found.', __FILE__);
-            $at = new Token();
-            $at->consumer_key = $consumer->key;
-            $at->tok = common_random_hexstr(16);
-            $at->secret = common_random_hexstr(16);
-            $at->type = 1; // access
-            $at->created = common_sql_now();
-            if (!$at->insert()) {
-                $e = $at->_lastError;
-                common_debug('access token "'.$at->tok.'" not inserted: "'.$e->message.'"', __FILE__);
-                return null;
-            } else {
-                common_debug('access token "'.$at->tok.'" inserted', __FILE__);
-                // burn the old one
-                $orig_rt = clone($rt);
-                $rt->state = 2; // used
-                if (!$rt->update($orig_rt)) {
-                    return null;
-                }
-                common_debug('request token "'.$rt->tok.'" updated', __FILE__);
-                // Update subscription
-                // XXX: mixing levels here
-                $sub = Subscription::getKV('token', $rt->tok);
-                if (!$sub) {
-                    return null;
-                }
-                common_debug('subscription for request token found', __FILE__);
-                $orig_sub = clone($sub);
-                $sub->token = $at->tok;
-                $sub->secret = $at->secret;
-                if (!$sub->update($orig_sub)) {
-                    return null;
-                } else {
-                    common_debug('subscription updated to use access token', __FILE__);
-                    return new OAuthToken($at->tok, $at->secret);
-                }
-            }
-        } else {
-            return null;
-        }
-    }
-
-    // defined in OAuthDataStore, but not implemented anywhere
-    function fetch_access_token($consumer)
-    {
-        return $this->new_access_token($consumer);
-    }
-
-    /**
-     * Revoke specified OAuth token
-     *
-     * Revokes the authorization token specified by $token_key.
-     * Throws exceptions in case of error.
-     *
-     * @param string $token_key The token to be revoked
-     *
-     * @access public
-     **/
-    public function revoke_token($token_key) {
-        $rt = new Token();
-        $rt->tok = $token_key;
-        $rt->type = 0;
-        $rt->state = 0;
-        if (!$rt->find(true)) {
-            throw new Exception('Tried to revoke unknown token');
-        }
-        if (!$rt->delete()) {
-            throw new Exception('Failed to delete revoked token');
-        }
-    }
-
-    /**
-     * Authorize specified OAuth token
-     *
-     * Authorizes the authorization token specified by $token_key.
-     * Throws exceptions in case of error.
-     *
-     * @param string $token_key The token to be authorized
-     *
-     * @access public
-     **/
-    public function authorize_token($token_key) {
-        $rt = new Token();
-        $rt->tok = $token_key;
-        $rt->type = 0;
-        $rt->state = 0;
-        if (!$rt->find(true)) {
-            throw new Exception('Tried to authorize unknown token');
-        }
-        $orig_rt = clone($rt);
-        $rt->state = 1; # Authorized but not used
-        if (!$rt->update($orig_rt)) {
-            throw new Exception('Failed to authorize token');
-        }
-    }
-
-    /**
-     * Get profile by identifying URI
-     *
-     * Returns an OMB_Profile object representing the OMB profile identified by
-     * $identifier_uri.
-     * Returns null if there is no such OMB profile.
-     * Throws exceptions in case of other error.
-     *
-     * @param string $identifier_uri The OMB identifier URI specifying the
-     *                               requested profile
-     *
-     * @access public
-     *
-     * @return OMB_Profile The corresponding profile
-     **/
-    public function getProfile($identifier_uri) {
-        /* getProfile is only used for remote profiles by libomb.
-           @TODO: Make it work with local ones anyway. */
-        $remote = Remote_profile::getKV('uri', $identifier_uri);
-        if (!$remote) throw new Exception('No such remote profile');
-        $profile = Profile::getKV('id', $remote->id);
-        if (!$profile) throw new Exception('No profile for remote user');
-
-        require_once dirname(__FILE__) . '/omb.php';
-        return profile_to_omb_profile($identifier_uri, $profile);
-    }
-
-    /**
-     * Save passed profile
-     *
-     * Stores the OMB profile $profile. Overwrites an existing entry.
-     * Throws exceptions in case of error.
-     *
-     * @param OMB_Profile $profile   The OMB profile which should be saved
-     *
-     * @access public
-     **/
-    public function saveProfile($omb_profile) {
-        if (common_profile_url($omb_profile->getNickname()) ==
-                                                $omb_profile->getProfileURL()) {
-            throw new Exception('Not implemented');
-        } else {
-            $remote = Remote_profile::getKV('uri', $omb_profile->getIdentifierURI());
-
-            if ($remote) {
-                $exists = true;
-                $profile = Profile::getKV($remote->id);
-                $orig_remote = clone($remote);
-                $orig_profile = clone($profile);
-                // XXX: compare current postNotice and updateProfile URLs to the ones
-                // stored in the DB to avoid (possibly...) above attack
-            } else {
-                $exists = false;
-                $remote = new Remote_profile();
-                $remote->uri = $omb_profile->getIdentifierURI();
-                $profile = new Profile();
-            }
-
-            $profile->nickname = $omb_profile->getNickname();
-            $profile->profileurl = $omb_profile->getProfileURL();
-
-            $fullname = $omb_profile->getFullname();
-            $profile->fullname = is_null($fullname) ? '' : $fullname;
-            $homepage = $omb_profile->getHomepage();
-            $profile->homepage = is_null($homepage) ? '' : $homepage;
-            $bio = $omb_profile->getBio();
-            $profile->bio = is_null($bio) ? '' : $bio;
-            $location = $omb_profile->getLocation();
-            $profile->location = is_null($location) ? '' : $location;
-
-            if ($exists) {
-                $profile->update($orig_profile);
-            } else {
-                $profile->created = common_sql_now(); # current time
-                $id = $profile->insert();
-                if (!$id) {
-                    // TRANS: Exception thrown when creating a new profile fails in OAuth store.
-                    throw new Exception(_('Error inserting new profile.'));
-                }
-                $remote->id = $id;
-            }
-
-            $avatar_url = $omb_profile->getAvatarURL();
-            if ($avatar_url) {
-                if (!$this->add_avatar($profile, $avatar_url)) {
-                    // TRANS: Exception thrown when creating a new avatar fails in OAuth store.
-                    throw new Exception(_('Error inserting avatar.'));
-                }
-            } else {
-                Avatar::deleteFromProfile($profile);
-            }
-
-            if ($exists) {
-                if (!$remote->update($orig_remote)) {
-                    // TRANS: Exception thrown when updating a remote profile fails in OAuth store.
-                    throw new Exception(_('Error updating remote profile.'));
-                }
-            } else {
-                $remote->created = common_sql_now(); # current time
-                if (!$remote->insert()) {
-                    // TRANS: Exception thrown when creating a remote profile fails in OAuth store.
-                    throw new Exception(_('Error inserting remote profile.'));
-                }
-            }
-        }
-    }
-
-    function add_avatar($profile, $url)
-    {
-        $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
-        try {
-            copy($url, $temp_filename);
-            $imagefile = new ImageFile($profile->id, $temp_filename);
-            $filename = Avatar::filename($profile->id,
-                                         image_type_to_extension($imagefile->type),
-                                         null,
-                                         common_timestamp());
-            rename($temp_filename, Avatar::path($filename));
-        } catch (Exception $e) {
-            unlink($temp_filename);
-            throw $e;
-        }
-        return $profile->setOriginal($filename);
-    }
-
-    /**
-     * Save passed notice
-     *
-     * Stores the OMB notice $notice. The datastore may change the passed notice.
-     * This might by neccessary for URIs depending on a database key. Note that
-     * it is the user’s duty to present a mechanism for his OMB_Datastore to
-     * appropriately change his OMB_Notice.
-     * Throws exceptions in case of error.
-     *
-     * @param OMB_Notice $notice The OMB notice which should be saved
-     *
-     * @access public
-     **/
-    public function saveNotice(&$omb_notice) {
-        if (Notice::getKV('uri', $omb_notice->getIdentifierURI())) {
-            // TRANS: Exception thrown when a notice is denied because it has been sent before.
-            throw new Exception(_('Duplicate notice.'));
-        }
-        $author_uri = $omb_notice->getAuthor()->getIdentifierURI();
-        common_log(LOG_DEBUG, $author_uri, __FILE__);
-        $author = Remote_profile::getKV('uri', $author_uri);
-        if (!$author) {
-            $author = User::getKV('uri', $author_uri);
-        }
-        if (!$author) {
-            throw new Exception('No such user.');
-        }
-
-        common_log(LOG_DEBUG, print_r($author, true), __FILE__);
-
-        $notice = Notice::saveNew($author->id,
-                                  $omb_notice->getContent(),
-                                  'omb',
-                                  array('is_local' => Notice::REMOTE,
-                                        'uri' => $omb_notice->getIdentifierURI()));
-
-    }
-
-    /**
-     * Get subscriptions of a given profile
-     *
-     * Returns an array containing subscription informations for the specified
-     * profile. Every array entry should in turn be an array with keys
-     *   'uri´: The identifier URI of the subscriber
-     *   'token´: The subscribe token
-     *   'secret´: The secret token
-     * Throws exceptions in case of error.
-     *
-     * @param string $subscribed_user_uri The OMB identifier URI specifying the
-     *                                    subscribed profile
-     *
-     * @access public
-     *
-     * @return mixed An array containing the subscriptions or 0 if no
-     *               subscription has been found.
-     **/
-    public function getSubscriptions($subscribed_user_uri) {
-        $sub = new Subscription();
-
-        $user = $this->_getAnyProfile($subscribed_user_uri);
-
-        $sub->subscribed = $user->id;
-
-        if (!$sub->find(true)) {
-            return array();
-        }
-
-        /* Since we do not use OMB_Service_Provider’s action methods, there
-           is no need to actually return the subscriptions. */
-        return 1;
-    }
-
-    private function _getAnyProfile($uri)
-    {
-        $user = Remote_profile::getKV('uri', $uri);
-        if (!$user) {
-            $user = User::getKV('uri', $uri);
-        }
-        if (!$user) {
-            throw new Exception('No such user.');
-        }
-        return $user;
-    }
-
-    /**
-     * Delete a subscription
-     *
-     * Deletes the subscription from $subscriber_uri to $subscribed_user_uri.
-     * Throws exceptions in case of error.
-     *
-     * @param string $subscriber_uri      The OMB identifier URI specifying the
-     *                                    subscribing profile
-     *
-     * @param string $subscribed_user_uri The OMB identifier URI specifying the
-     *                                    subscribed profile
-     *
-     * @access public
-     **/
-    public function deleteSubscription($subscriber_uri, $subscribed_user_uri)
-    {
-        $sub = new Subscription();
-
-        $subscribed = $this->_getAnyProfile($subscribed_user_uri);
-        $subscriber = $this->_getAnyProfile($subscriber_uri);
-
-        $sub->subscribed = $subscribed->id;
-        $sub->subscriber = $subscriber->id;
-
-        $sub->delete();
-    }
-
-    /**
-     * Save a subscription
-     *
-     * Saves the subscription from $subscriber_uri to $subscribed_user_uri.
-     * Throws exceptions in case of error.
-     *
-     * @param string     $subscriber_uri      The OMB identifier URI specifying
-     *                                        the subscribing profile
-     *
-     * @param string     $subscribed_user_uri The OMB identifier URI specifying
-     *                                        the subscribed profile
-     * @param OAuthToken $token               The access token
-     *
-     * @access public
-     **/
-    public function saveSubscription($subscriber_uri, $subscribed_user_uri,
-                                                                       $token)
-    {
-        $sub = new Subscription();
-
-        $subscribed = $this->_getAnyProfile($subscribed_user_uri);
-        $subscriber = $this->_getAnyProfile($subscriber_uri);
-
-        if (!$subscriber->hasRight(Right::SUBSCRIBE)) {
-            common_log(LOG_INFO, __METHOD__ . ": remote subscriber banned ($subscriber_uri subbing to $subscribed_user_uri)");
-            // TRANS: Error message displayed to a banned user when they try to subscribe.
-            return _('You have been banned from subscribing.');
-        }
-
-        $sub->subscribed = $subscribed->id;
-        $sub->subscriber = $subscriber->id;
-
-        $sub_exists = $sub->find(true);
-
-        if ($sub_exists) {
-            $orig_sub = clone($sub);
-        } else {
-            $sub->created = common_sql_now();
-        }
-
-        $sub->token  = $token->key;
-        $sub->secret = $token->secret;
-
-        if ($sub_exists) {
-            $result = $sub->update($orig_sub);
-        } else {
-            $result = $sub->insert();
-        }
-
-        if (!$result) {
-            common_log_db_error($sub, ($sub_exists) ? 'UPDATE' : 'INSERT', __FILE__);
-            // TRANS: Exception thrown when creating a new subscription fails in OAuth store.
-            throw new Exception(_('Could not insert new subscription.'));
-            return;
-        }
-
-        /* Notify user, if necessary. */
-
-        if ($subscribed instanceof User) {
-            mail_subscribe_notify_profile($subscribed,
-                                          Profile::getKV($subscriber->id));
-        }
-    }
-}
diff --git a/plugins/OMB/lib/ombqueuehandler.php b/plugins/OMB/lib/ombqueuehandler.php
deleted file mode 100644 (file)
index df44351..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-/**
- * Queue handler for pushing new notices to OpenMicroBlogging subscribers.
- */
-class OmbQueueHandler extends QueueHandler
-{
-
-    function transport()
-    {
-        return 'omb';
-    }
-
-    /**
-     * @fixme doesn't currently report failure back to the queue manager
-     * because omb_broadcast_notice() doesn't report it to us
-     */
-    function handle($notice)
-    {
-        if ($this->is_remote($notice)) {
-            common_log(LOG_DEBUG, 'Ignoring remote notice ' . $notice->id);
-            return true;
-        } else {
-            require_once(dirname(__FILE__) . '/omb.php');
-            omb_broadcast_notice($notice);
-            return true;
-        }
-    }
-
-    function is_remote($notice)
-    {
-        $user = User::getKV($notice->profile_id);
-        return is_null($user);
-    }
-}
diff --git a/plugins/OMB/lib/profilequeuehandler.php b/plugins/OMB/lib/profilequeuehandler.php
deleted file mode 100644 (file)
index 5c67b0b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/*
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2010-2011, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * @package QueueHandler
- * @maintainer Brion Vibber <brion@status.net>
- */
-
-class ProfileQueueHandler extends QueueHandler
-{
-
-    function transport()
-    {
-        return 'profile';
-    }
-
-    function handle($profile)
-    {
-        if (!($profile instanceof Profile)) {
-            common_log(LOG_ERR, "Got a bogus profile, not broadcasting");
-            return true;
-        }
-
-        if (Event::handle('StartBroadcastProfile', array($profile))) {
-            require_once(dirname(__FILE__) . '/omb.php');
-            try {
-                omb_broadcast_profile($profile);
-            } catch (Exception $e) {
-                common_log(LOG_ERR, "Failed sending OMB profiles: " . $e->getMessage());
-            }
-        }
-        Event::handle('EndBroadcastProfile', array($profile));
-        return true;
-    }
-
-}
diff --git a/plugins/OMB/locale/OMB.pot b/plugins/OMB/locale/OMB.pot
deleted file mode 100644 (file)
index ca26023..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-#: actions/remotesubscribe.php:147 OMBPlugin.php:388
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr ""
-
-#. TRANS: Button text on Authorise Subscription page.
-#: actions/userauthorization.php:202
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr ""
-
-#. TRANS: Button text on Authorise Subscription page.
-#: actions/userauthorization.php:207
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr ""
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-#: OMBPlugin.php:233
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-#: OMBPlugin.php:260
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-#: OMBPlugin.php:284
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-#: OMBPlugin.php:318
-msgid "Could not delete subscription OMB token."
-msgstr ""
-
-#. TRANS: Plugin description.
-#: OMBPlugin.php:408
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
diff --git a/plugins/OMB/locale/br/LC_MESSAGES/OMB.po b/plugins/OMB/locale/br/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 26cbec5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# Translation of StatusNet - OMB to Breton (brezhoneg)
-# Exported from translatewiki.net
-#
-# Author: Y-M D
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: br\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Koumanantiñ"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Asantiñ"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Disteurel"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr ""
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
diff --git a/plugins/OMB/locale/ca/LC_MESSAGES/OMB.po b/plugins/OMB/locale/ca/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 81f4a9b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# Translation of StatusNet - OMB to Catalan (català)
-# Exported from translatewiki.net
-#
-# Author: Toniher
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: ca\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Subscriu"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Accepta"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rebutja"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr ""
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
diff --git a/plugins/OMB/locale/de/LC_MESSAGES/OMB.po b/plugins/OMB/locale/de/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 2dd3c16..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# Translation of StatusNet - OMB to German (Deutsch)
-# Exported from translatewiki.net
-#
-# Author: Alphakilo
-# Author: Marcel083
-# Author: PtM
-# Author: Tiin
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: de\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Abonnieren"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Annehmen"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Ablehnen"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "Sie können mit dieser Aktion kein OMB0.1 Profil abonnieren."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Du kannst mit dieser Aktion kein OMB-0.1-Profil auflisten."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr "Du kannst mit dieser Aktion kein OMB-0.1-Profil (ab)listen."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Konnte Abonnement-OMB-Token nicht löschen."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr "Ein Beispiel-Plugin Grundlagen der Entwicklung neuen Hacker zu zeigen."
diff --git a/plugins/OMB/locale/es/LC_MESSAGES/OMB.po b/plugins/OMB/locale/es/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 5d8e828..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# Translation of StatusNet - OMB to Spanish (español)
-# Exported from translatewiki.net
-#
-# Author: Armando-Martin
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Suscribirse"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Aceptar"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rechazar"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "No es posible suscribirse a un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "No puede listar un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr "No puede (des)listar un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "No se pudo eliminar el token de suscripción OMB."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Un complemento (plugin) de ejemplo para mostrar los principios básicos de "
-"desarrollo a los nuevos programadores."
diff --git a/plugins/OMB/locale/eu/LC_MESSAGES/OMB.po b/plugins/OMB/locale/eu/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 64b4061..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Translation of StatusNet - OMB to Basque (euskara)
-# Exported from translatewiki.net
-#
-# Author: An13sa
-# Author: Artsuaga
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: eu\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Harpidetu"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Onartu"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Baztertu"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "Ezin zaitezke OMB 0.1 hurruneko profilera harpidetu ekintza honekin."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Ezin duzu OMB 0.1 hurruneko profil bat zerrendatu ekintza honekin."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Ezin duzu OMB 0.1 hurruneko profil bat (des)zerrendatu ekintza honekin."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "OMB token harpidetza ezin da ezabatu."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr "Frogako plugin bat, hacker berriei garapen oinarriak erakusteko."
diff --git a/plugins/OMB/locale/fr/LC_MESSAGES/OMB.po b/plugins/OMB/locale/fr/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index b7f9e27..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# Translation of StatusNet - OMB to French (français)
-# Exported from translatewiki.net
-#
-# Author: Gomoko
-# Author: Od1n
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: fr\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "S’abonner"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Accepter"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rejeter"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "Impossible de s'abonner à un profil distant OMB 0.1 avec cette action."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Impossible de lister un profil distant OMB 0.1 avec cette action."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Impossible de (ne plus) lister un profil distant OMB 0.1 avec cette action."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Impossible de supprimer le jeton d'abonnement OMB."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Un exemple de plugin pour montrer les bases de développement pour les "
-"nouveaux codeurs."
diff --git a/plugins/OMB/locale/gl/LC_MESSAGES/OMB.po b/plugins/OMB/locale/gl/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 3da5fc9..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Translation of StatusNet - OMB to Galician (galego)
-# Exported from translatewiki.net
-#
-# Author: Toliño
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: gl\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Subscribirse"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Aceptar"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rexeitar"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "Non se pode subscribir a un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Non pode listar un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr "Non pode (des)listar un perfil remoto OMB 0.1 con esta acción."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Non se puido borrar o pase de subscrición OMB."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Un complemento de exemplo para mostrar os principios básicos de "
-"desenvolvemento aos novos programadores."
diff --git a/plugins/OMB/locale/ia/LC_MESSAGES/OMB.po b/plugins/OMB/locale/ia/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index f4bead3..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Translation of StatusNet - OMB to Interlingua (interlingua)
-# Exported from translatewiki.net
-#
-# Author: McDutchie
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: ia\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Subscriber"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Acceptar"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rejectar"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "Tu non pote subscriber te a un profilo remote OMB 0.1 con iste action."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Tu non pote listar un profilo remote OMB 0.1 con iste action."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr "Tu non pote (dis)listar un profilo remote OMB 0.1 con iste action."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Non poteva deler le indicio OMB del subscription."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Un plug-in de exemplo pro demonstrar le principios de disveloppamento pro "
-"nove programmatores."
diff --git a/plugins/OMB/locale/it/LC_MESSAGES/OMB.po b/plugins/OMB/locale/it/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 17b5d8a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# Translation of StatusNet - OMB to Italian (italiano)
-# Exported from translatewiki.net
-#
-# Author: GreenFox
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Iscriviti"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Accetta"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Rifiuta"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-"Non è possibile iscriversi ad un profilo remoto di tipo OMB 0.1 con questa "
-"azione."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Non è possibile aggiungere alla lista un profilo remoto di tipo OMB 0.1 con "
-"questa azione."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Non è possibile rimuovere dalla lista un profilo remoto di tipo OMB 0.1 con "
-"questa azione."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Impossibile cancellare il token di iscrizione OMB dal server."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Un esempio di estensione per mostrare i fondamentali di sviluppo per i nuovi "
-"programmatori"
diff --git a/plugins/OMB/locale/mk/LC_MESSAGES/OMB.po b/plugins/OMB/locale/mk/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 2c28bc9..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# Translation of StatusNet - OMB to Macedonian (македонски)
-# Exported from translatewiki.net
-#
-# Author: Bjankuloski06
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:22+0000\n"
-"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: mk\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Претплати се"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Прифати"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Одбиј"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-"Не можете да се претплатите на далечински профил OMB 0.1 со ова дејство."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr "Не можете да наведете далечински профил OMB 0.1 со ова дејство."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Не можете да наведете/отстраните од список далечински профил OMB 0.1 со ова "
-"дејство."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Не можам да го избришам OMB-жетонот за претплата."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Приклучок-пример за основите на развојното програмирање за нови хакери."
diff --git a/plugins/OMB/locale/nl/LC_MESSAGES/OMB.po b/plugins/OMB/locale/nl/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 14338de..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# Translation of StatusNet - OMB to Dutch (Nederlands)
-# Exported from translatewiki.net
-#
-# Author: SPQRobin
-# Author: Siebrand
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:23+0000\n"
-"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Language-Code: nl\n"
-"X-Message-Group: #out-statusnet-plugin-omb\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Abonneren"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Aanvaarden"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Weigeren"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-"U kunt via deze handeling niet abonneren op een extern OMB 1.0-profiel."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-"U kunt een extern OMB 1.0-profiel niet opnemen in een lijst via deze "
-"handeling."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"U kunt een extern OMB 1.0-profiel niet opnemen in of verwijderen uit een "
-"lijst via deze handeling."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr ""
-"Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Een voorbeeldplug-in om de basisprogrammeertechnieken te demonstreren aan "
-"nieuwe ontwikkelaars."
diff --git a/plugins/OMB/locale/te/LC_MESSAGES/OMB.po b/plugins/OMB/locale/te/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index e4b7852..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-# Translation of StatusNet - OMB to Telugu (తెలుగు)
-# Exported from translatewiki.net
-#
-# Author: Veeven
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:23+0000\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "చందాచేరు"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "అంగీకరించు"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "తిరస్కరించు"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr ""
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
diff --git a/plugins/OMB/locale/tl/LC_MESSAGES/OMB.po b/plugins/OMB/locale/tl/LC_MESSAGES/OMB.po
deleted file mode 100644 (file)
index 99f881c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# Translation of StatusNet - OMB to Tagalog (Tagalog)
-# Exported from translatewiki.net
-#
-# Author: AnakngAraw
-# --
-# This file is distributed under the same license as the StatusNet package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: StatusNet - OMB\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-30 11:07+0000\n"
-"PO-Revision-Date: 2012-06-30 11:09:23+0000\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-POT-Import-Date: 2012-01-02 10:11:37+0000\n"
-"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
-"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANS: Button text on page for remote subscribe.
-#. TRANS: Link text for link that will subscribe to a remote profile.
-msgctxt "BUTTON"
-msgid "Subscribe"
-msgstr "Tumanggap ng sipi"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Accept"
-msgstr "Tanggapin"
-
-#. TRANS: Button text on Authorise Subscription page.
-msgctxt "BUTTON"
-msgid "Reject"
-msgstr "Tanggihan"
-
-#. TRANS: Client error displayed trying to subscribe to an OMB 0.1 remote profile.
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-"Hindi ka makasisipi sa isang malayong balangkas ng 0.1 na OMB sa pamamagitan "
-"ng galaw na ito."
-
-#. TRANS: Client error displayed when trying to add an OMB 0.1 remote profile to a list.
-msgid "You cannot list an OMB 0.1 remote profile with this action."
-msgstr ""
-"Hindi mo maililista ang isang 0.1 na malayong balangkas ng OMB sa "
-"pamamagitan ng galaw na ito."
-
-#. TRANS: Client error displayed when trying to (un)list an OMB 0.1 remote profile.
-msgid "You cannot (un)list an OMB 0.1 remote profile with this action."
-msgstr ""
-"(Hindi) mo maililista ang isang 0.1 na malayong balangkas ng OMB sa "
-"pamamagitan ng galaw na ito."
-
-#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
-msgid "Could not delete subscription OMB token."
-msgstr "Hindi mabura ang panghalip na pagsipi ng OMB."
-
-#. TRANS: Plugin description.
-msgid "A sample plugin to show basics of development for new hackers."
-msgstr ""
-"Isang payak na pampasak upang maipakita ang mga saligan ng kaunlaran para sa "
-"bagong mga mangunguha."
diff --git a/plugins/OStatus/scripts/updateostatus.php b/plugins/OStatus/scripts/updateostatus.php
deleted file mode 100644 (file)
index e19b853..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env php
-<?php
-/*
- * StatusNet - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
-
-$shortoptions = 'i:n:a';
-$longoptions = array('id=', 'nickname=', 'all');
-
-$helptext = <<<END_OF_UPDATEOSTATUS_HELP
-updateostatus.php [options]
-update the OMB subscriptions of a user to use OStatus if possible
-
-  -i --id       ID of user to update
-  -n --nickname nickname of the user to update
-  -a --all      update all
-
-END_OF_UPDATEOSTATUS_HELP;
-
-require_once INSTALLDIR.'/scripts/commandline.inc';
-
-try {
-    $user = null;
-
-    if (have_option('i', 'id')) {
-        $id = get_option_value('i', 'id');
-        $user = User::getKV('id', $id);
-        if (empty($user)) {
-            throw new Exception("Can't find user with id '$id'.");
-        }
-        updateOStatus($user);
-    } else if (have_option('n', 'nickname')) {
-        $nickname = get_option_value('n', 'nickname');
-        $user = User::getKV('nickname', $nickname);
-        if (empty($user)) {
-            throw new Exception("Can't find user with nickname '$nickname'.");
-        }
-        updateOStatus($user);
-    } else if (have_option('a', 'all')) {
-        $user = new User();
-        if ($user->find()) {
-            while ($user->fetch()) {
-                try {
-                    updateOStatus($user);
-                } catch (Exception $e) {
-                    common_log(LOG_NOTICE, "Couldn't convert OMB subscriptions ".
-                               "for {$user->nickname} to OStatus: " . $e->getMessage());
-                }
-            }
-        }
-    } else {
-        show_help();
-        exit(1);
-    }
-} catch (Exception $e) {
-    print $e->getMessage()."\n";
-    exit(1);
-}
-
-function updateOStatus($user)
-{
-    if (!have_option('q', 'quiet')) {
-        echo "{$user->nickname}...";
-    }
-
-    $up = $user->getProfile();
-
-    $sp = $up->getSubscribed();
-
-    $rps = array();
-
-    while ($sp->fetch()) {
-        $remote = Remote_profile::getKV('id', $sp->id);
-
-        if (!empty($remote)) {
-            $rps[] = clone($sp);
-        }
-    }
-
-    if (!have_option('q', 'quiet')) {
-        echo count($rps) . "\n";
-    }
-
-    foreach ($rps as $rp) {
-        try {
-            if (!have_option('q', 'quiet')) {
-                echo "Checking {$rp->nickname}...";
-            }
-
-            $op = Ostatus_profile::ensureProfileURL($rp->profileurl);
-
-            if (empty($op)) {
-                echo "can't convert.\n";
-                continue;
-            } else {
-                if (!have_option('q', 'quiet')) {
-                    echo "Converting...";
-                }
-                Subscription::start($up, $op->localProfile());
-                Subscription::cancel($up, $rp);
-                if (!have_option('q', 'quiet')) {
-                    echo "done.\n";
-                }
-            }
-
-        } catch (Exception $e) {
-            if (!have_option('q', 'quiet')) {
-                echo "fail.\n";
-            }
-            common_log(LOG_NOTICE, "Couldn't convert OMB subscription (" . $up->nickname . ", " . $rp->nickname .
-                       ") to OStatus: " . $e->getMessage());
-            continue;
-        }
-    }
-}
index e6ddc3b3ac612fbcfa3ed95c6840b5729deae482..2d481688aa6f1dc3ead79133fc341cc7926b4420 100644 (file)
@@ -271,28 +271,6 @@ class TwitterImport
             return false;
         }
 
-        // check for remote profile
-        $remote_pro = Remote_profile::getKV('uri', $profileurl);
-
-        if (!($remote_pro instanceof Remote_profile)) {
-            $remote_pro = new Remote_profile();
-            $remote_pro->id = $id;
-            $remote_pro->uri = $profileurl;
-            $remote_pro->created = common_sql_now();
-
-            try {
-                $rid = $remote_pro->insert();
-                if (empty($rid)) {
-                    throw new Exception('Failed insert');
-                }
-            } catch (Exception $e) {
-                common_log(LOG_WARNING, __METHOD__ . " Couldn't save remote profile: " . $e->getMessage());
-                common_log_db_error($profile, 'INSERT', __FILE__);
-                $profile->query("ROLLBACK");
-                return false;
-            }
-        }
-
         $profile->query("COMMIT");
         $this->updateAvatar($twuser, $profile);
         return $profile;
index eb0706f22f24299657e579954784ee97aeddbce7..35b835e4944ac435ac24cf6dd43d5090efaa4932 100644 (file)
@@ -52,11 +52,6 @@ function updateUserUrls()
 
                 updateProfileUrl($profile);
                 updateAvatarUrls($profile);
-
-                // Broadcast for remote users
-
-                common_broadcast_profile($profile);
-
             } catch (Exception $e) {
                 echo "Error updating URLs: " . $e->getMessage();
             }