Hello community, here is the log from the commit of package php5-pear-Horde_Service_Twitter for openSUSE:Factory checked in at 2015-01-20 19:02:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/php5-pear-Horde_Service_Twitter (Old) and /work/SRC/openSUSE:Factory/.php5-pear-Horde_Service_Twitter.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5-pear-Horde_Service_Twitter" Changes: -------- --- /work/SRC/openSUSE:Factory/php5-pear-Horde_Service_Twitter/php5-pear-Horde_Service_Twitter.changes 2012-11-28 14:54:52.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.php5-pear-Horde_Service_Twitter.new/php5-pear-Horde_Service_Twitter.changes 2015-01-20 19:02:51.000000000 +0100 @@ -1,0 +2,38 @@ +Sun Jan 18 11:42:17 UTC 2015 - Ralf Lang <l...@b1-systems.de> + +- Version 2.1.2 + +- [jan] Add Composer definition. + +------------------------------------------------------------------- +Tue Jul 16 21:14:07 UTC 2013 - Ralf Lang <l...@b1-systems.de> + +- Version 2.1.1 +- [mjr] Fix fetching user mentions. + +------------------------------------------------------------------- +Wed Jul 3 11:33:32 UTC 2013 - Ralf Lang <l...@b1-systems.de> + +- Version 2.1.0 +- [mjr] Use API version 1.1 +- [mjr] Add support for favorites. + +------------------------------------------------------------------- +Thu May 2 07:03:05 UTC 2013 - Ralf Lang <l...@b1-systems.de> + +- Version 2.0.3 +- [mjr] Fix initial authentication for recently changed Twitter API requirements (Bug #12165). + +------------------------------------------------------------------- +Tue Mar 5 19:52:52 UTC 2013 - Ralf Lang <l...@b1-systems.de> + +- Version 2.0.2 +- [jan] Fix examples location. + +------------------------------------------------------------------- +Wed Jan 9 17:11:51 UTC 2013 - Ralf Lang <l...@b1-systems.de> + +- Version 2.0.1 +- [jan] Re-packaged 2.0.0 release. + +------------------------------------------------------------------- Old: ---- Horde_Service_Twitter-2.0.0.tgz New: ---- Horde_Service_Twitter-2.1.2.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ php5-pear-Horde_Service_Twitter.spec ++++++ --- /var/tmp/diff_new_pack.U9YjwP/_old 2015-01-20 19:02:52.000000000 +0100 +++ /var/tmp/diff_new_pack.U9YjwP/_new 2015-01-20 19:02:52.000000000 +0100 @@ -24,7 +24,7 @@ Group: Development/Libraries/PHP Name: php5-pear-Horde_Service_Twitter -Version: 2.0.0 +Version: 2.1.2 Release: 0 Source0: http://pear.horde.org/get/Horde_Service_Twitter-%{version}.tgz BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ Horde_Service_Twitter-2.0.0.tgz -> Horde_Service_Twitter-2.1.2.tgz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING --- old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/COPYING 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,24 @@ + Copyright 1999-2015 Horde LLC. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HORDE PROJECT +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php --- old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_browser.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,84 @@ +<?php +/** + * Callback page for Twitter integration. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Jan Schneider <j...@horde.org> + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ + +require_once __DIR__ . '/../lib/base.php'; + +/* Keys - these are obtained when registering for the service */ +$consumer_key = '********'; +$consumer_secret = '*********'; + +/* Used to obtain an unprivileged request token */ +$token_url = 'http://twitter.com/oauth/request_token'; + +/* Used for allowing the user to allow/deny access to the application */ +// (User is redirected to this URL if needed). +$auth_url = 'http://twitter.com/oauth/authorize'; + +// Used to obtain an access token after user authorizes the application +$accessToken_url = 'http://twitter.com/oauth/access_token'; + +/* Parameters required for the Horde_Oauth_Consumer */ +$params = array('key' => $consumer_key, + 'secret' => $consumer_secret, + 'requestTokenUrl' => $token_url, + 'authorizeTokenUrl' => $auth_url, + 'accessTokenUrl' => $accessToken_url, + 'signatureMethod' => new Horde_Oauth_SignatureMethod_HmacSha1()); + +/* Create the Consumer */ +$oauth = new Horde_Oauth_Consumer($params); + +/* Create the Twitter client */ +$twitter = new Horde_Service_Twitter(array('oauth' => $oauth, + 'request' => new Horde_Controller_Request_Http())); +/* At this point we would check for an existing, valid authorization token */ +// $auth_token should be a Horde_Oauth_Token object +// $auth_token = getTokenFromStorage(); + +// Do we have a good auth token? Keep in mind this is example code, and in a true +// callback page we probably wouldn't be doing anything if we already have a token, +// but for testing purposes.... +if (!empty($auth_token)) { + /* Have a token, tell the Twitter client about it */ + $twitter->auth->setToken($auth_token); + + // Do something cool.... + // $twitter->statuses->update('Testing Horde/Twitter integration'); + +} elseif (!empty($_SESSION['twitter_request_secret'])) { + /* No existing auth token, maybe we are in the process of getting it? */ + $a_token = $twitter->auth->getAccessToken(new Horde_Controller_Request_Http(), + $_SESSION['twitter_request_secret']); + + // Clear the request secret from the session now that we're done with it, + // again, using _SESSION for simplicity for this example + $_SESSION['twitter_request_secret'] = ''; + + if ($a_token === false || empty($a_token)) { + // We had a request secret, but something went wrong. maybe navigated + // back here between requests? + echo 'error'; + die; + } else { + // We have a good token, save it to DB etc.... + var_dump($a_token); + die; + } +} + +// No auth token, not in the process of getting one...ask user to verify +$results = $twitter->auth->getRequestToken(); +$_SESSION['twitter_request_secret'] = $results->secret; + +// Redirect to auth url +Horde::externalUrl($twitter->auth->getUserAuthorizationUrl($results), false)->redirect(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php --- old/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/doc/Horde/Service/Twitter/examples/twitter_cli.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,36 @@ +#!/usr/bin/env php +<?php +/** + * Simple Twitter client. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Jan Schneider <j...@horde.org> + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ + +/* Keys - these are obtained when registering for the service */ +$keys = array( + 'consumer_key' => '*****', + 'consumer_secret' => '*****', + 'access_token' => '*****-*****', + 'access_token_secret' => '*****' +); + +/* Enable autoloading. */ +require 'Horde/Autoloader/Default.php'; + +/* Create the Twitter client */ +$twitter = Horde_Service_Twitter::create(array('oauth' => $keys)); + +/* Do something cool.... */ +try { + $result = $twitter->statuses->update('Testing Horde/Twitter integration 2'); + print_r(Horde_Serialize::unserialize($result, Horde_Serialize::JSON)); +} catch (Horde_Service_Twitter_Exception $e) { + $error = Horde_Serialize::unserialize($e->getMessage(), Horde_Serialize::JSON); + echo "$error->error\n"; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Account.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,105 @@ +<?php +/** + * Horde_Service_Twitter_Account class for calling account methods + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Account +{ + /** + * Twitter endpoint for account api calls + * + * @var string + */ + protected $_endpoint = 'https://api.twitter.com/1.1/account/'; + + /** + * The request/response format to use, xml or json. + * + * @var string + */ + protected $_format = 'json'; + + /** + * + * @param Horde_Service_Twitter $twitter + */ + public function __construct($twitter) + { + $this->_twitter = $twitter; + } + + /** + * Used to verify current credentials, and obtain some basic profile + * information about the current user. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0verify_credentials + * + * @return string JSON reprentation of profile. + * @throws Horde_Service_Twitter_Exception + */ + public function verifyCredentials() + { + $url = $this->_endpoint . 'verify_credentials.' . $this->_format; + return $this->_twitter->request->get($url); + } + + /** + * Obtain the current user's (if authenticated) or IP address' (if not + * authenticated) remaining number of requests left for the hour. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0rate_limit_status + * + * @return string JSON representation of result object. + */ + public function rateLimitStatus() + { + $url = $this->_endpoint . 'rate_limit_status.' . $this->_format; + return $this->_twitter->request->get($url); + } + + /** + * Ends the current session, invalidates the current auth token if using + * OAuth. + * + * @return string + */ + public function endSession() + { + $url = $this->_endpoint . 'end_session.' . $this->_format; + return $this->_twitter->request->post($url); + } + + /** + * Update/reset where twitter sends automatic updates to + * (im/sms etc...) + * + * @TODO + * @param string $device + * + * @return void + */ + public function updateDeliveryDevice($device = '') + { + } + + /** + * Update user's profile data. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0update_profile + * + * @TODO + * @param array $profile Profile data see API docs for key-values + * + * @return string JSON representation of user's updated profile data + */ + public function updateProfile($profile) + { + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth/Oauth.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,96 @@ +<?php +/** + * Horde_Service_Twitter_Auth class to abstract all auth related tasks + * + * Basically implements Horde_Oauth_Client and passes the calls along to the + * protected oauth object. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Auth_Oauth extends Horde_Service_Twitter_Auth +{ + /** + * + * @var Horde_OAuth_Token + */ + protected $_token; + + public function __construct(Horde_OAuth_Consumer $oauth) + { + $this->_config['oauth'] = $oauth; + } + + /** + * Obtain the URL used to get an authorization token. + * + * @param Horde_Oauth_Token $requestToken The request token + * + * @return string The Url + */ + public function getUserAuthorizationUrl($requestToken) + { + return $this->oauth->getUserAuthorizationUrl($requestToken); + } + + /** + * Set the access token + * + * @param Horde_OAuth_Token $token + */ + public function setToken(Horde_OAuth_Token $token) + { + $this->_token = $token; + } + + /** + * Obtain the access token. This is the token that should be persisted to + * storage. + * + * @param Horde_Controller_Request_Http Http request object + * @param string $requestSecret The token secret returned by + * Twitter after the user authorizes + * the application. + * @return Horde_Oauth_Token + * @throws Horde_Service_Twitter_Exception + */ + public function getAccessToken(Horde_Controller_Request_Http $request, $requestSecret = null) + { + if (!empty($this->_token)) { + return $this->_token; + } + + $params = $request->getGetVars(); + if (empty($params['oauth_token'])) { + return false; + } + $token = new Horde_Oauth_Token($params['oauth_token'], $requestSecret); + try { + return $this->oauth->getAccessToken($token, array('oauth_verifier' => $requestSecret)); + } catch (Horde_Oauth_Exception $e) { + throw new Horde_Service_Twitter_Exception($e->getMessage()); + } + } + + /** + * Obtain the OAuth request token + * + * @param array $params + * + * @return Horde_OAuth_Token The request token + * @throws Horde_Service_Twitter_Exception + */ + public function getRequestToken($params = array()) + { + try { + return $this->oauth->getRequestToken($params); + } catch (Horde_Oauth_Exception $e) { + throw new Horde_Service_Twitter_Exception($e->getMessage()); + } + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Auth.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,51 @@ +<?php +/** + * Horde_Service_Twitter_Auth_* classes to abstract all auth related tasks for + * various auth mechanisms. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +abstract class Horde_Service_Twitter_Auth +{ + /** + * + * @var Horde_Service_Twitter + */ + protected $_twitter; + + /** + * Configuration parameters + * + * @param array + */ + protected $_config; + + + public function setTwitter(Horde_Service_Twitter $twitter) + { + $this->_twitter = $twitter; + } + + /** + * Getter + * + * @param string $value + * + * @return mixed The value of the requested property. + * @throws Horde_Service_Twitter_Exception + */ + public function __get($value) + { + if (!empty($this->_config[$value])) { + return $this->_config[$value]; + } + + throw new Horde_Service_Twitter_Exception(sprintf("The property %s does not exist", $value)); + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Exception.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,13 @@ +<?php +/** + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Exception extends Horde_Exception_Wrapped +{ +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Favorites.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,75 @@ +<?php +/** + * Horde_Service_Twitter_Favorites class for updating favorite tweets. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Favorites +{ + /** + * Endpoint for status api requests + * + * @var string + */ + private $_endpoint = 'https://api.twitter.com/1.1/favorites/'; + + /** + * Format to use json or xml + * + * @var string + */ + private $_format = 'json'; + + /** + * Constructor + * + * @param Horde_Service_Twitter $twitter + */ + public function __construct($twitter) + { + $this->_twitter = $twitter; + } + + /** + * Obtain the requested status + * + * @return string The method call results. + */ + public function get() + { + $url = $this->_endpoint . 'list.' . $this->_format; + return $this->_twitter->request->post($url); + } + + /** + * Destroy the specified favorite. + * + * @param string $id The status id + * + * @return string + */ + public function destroy($id) + { + $url = $this->_endpoint . 'destroy.' . $this->_format; + return $this->_twitter->request->post($url, array('id' => $id)); + } + + /** + * Add a new favorite + * + * @param string $id The status id + * + * @return string The favorited tweet. + */ + public function create($id) + { + $url = $this->_endpoint . 'create.' . $this->_format; + return $this->_twitter->request->post($url, array('id' => $id)); + } + +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request/Oauth.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,84 @@ +<?php +/** + * Horde_Service_Twitter_Request_Oauth class wraps sending requests to Twitter's + * REST API using OAuth authentication. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Request_Oauth extends Horde_Service_Twitter_Request +{ + /** + * Perform a GET request with OAuth authorization. + * + * @param mixed (string | Horde_Url) $url The url to request. + * @param array $params URL parameters. + * + * @return string Call results. + * @throws Horde_Service_Twitter_Exception + */ + public function get($url, array $params = array()) + { + $key = md5($url . 'get' . serialize($params) . serialize($this->_twitter->auth->getAccessToken($this->_request))); + $cache = $this->_twitter->responseCache; + if (!empty($cache) && $results = $cache->get($key, $this->_twitter->cacheLifetime)) { + return $results; + } + $request = new Horde_Oauth_Request($url, $params, 'GET'); + $request->sign($this->_twitter->auth->oauth->signatureMethod, + $this->_twitter->auth->oauth, + $this->_twitter->auth->getAccessToken($this->_request)); + $url = ($url instanceof Horde_Url) ? $url : new Horde_Url($url); + $url->add($params); + try { + $response = $this->_twitter->getHttpClient()->get($url->setRaw(true), array('Authorization' => $request->buildAuthorizationHeader('Twitter API'))); + } catch (Horde_Http_Exception $e) { + throw new Horde_Service_Twitter_Exception($e); + } + + // Looks like some of the http clients (like Fopen) will thrown an + // exception if we try to read an empty stream. Ignore this. + try { + $body = $response->getBody(); + if ($response->code >= 400 && $response->code <= 500) { + throw new Horde_Service_Twitter_Exception($body); + } + } catch (Horde_Http_Exception $e) {} + + if (!empty($cache)) { + $cache->set($key, $body); + } + + return $body; + } + + /** + * Send a POST request to the twitter API. Purposely do not cache results + * from these since POST requests alter data on the server. + * + * @see self::get + */ + public function post($url, array $params = array()) + { + $request = new Horde_Oauth_Request($url, $params); + $request->sign($this->_twitter->auth->oauth->signatureMethod, + $this->_twitter->auth->oauth, + $this->_twitter->auth->getAccessToken($this->_request)); + $url = ($url instanceof Horde_Url) ? $url : new Horde_Url($url); + try { + $response = $this->_twitter->getHttpClient()->post($url->setRaw(true), $params, array('Authorization' => $request->buildAuthorizationHeader('Twitter API'))); + } catch (Horde_Http_Exception $e) { + throw new Horde_Service_Twitter_Exception($e); + } + + if ($response->code >= 400 && $response->code <= 500) { + throw new Horde_Service_Twitter_Exception($response->getBody()); + } + return $response->getBody(); + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Request.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,40 @@ +<?php +/** + * Horde_Service_Twitter_Request_* classes wrap sending requests to Twitter's + * REST API using various authentication mechanisms. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +abstract class Horde_Service_Twitter_Request +{ + /** + * + * @var Horde_Service_Twitter + */ + protected $_twitter; + + /** + * + * @var Horde_Controller_Request_Http + */ + protected $_request; + + public function __construct(Horde_Controller_Request_Http $request) + { + $this->_request = $request; + } + + public function setTwitter(Horde_Service_Twitter $twitter) + { + $this->_twitter = $twitter; + } + + abstract public function get($url, array $params = array()); + abstract public function post($url, array $params = array()); + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter/Statuses.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,329 @@ +<?php +/** + * Horde_Service_Twitter_Statuses class for updating, retrieving user statuses. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter_Statuses +{ + /** + * Endpoint for status api requests + * + * @var string + */ + private $_endpoint = 'https://api.twitter.com/1.1/statuses/'; + + /** + * Format to use json or xml + * + * @var string + */ + private $_format = 'json'; + + /** + * Constructor + * + * @param Horde_Service_Twitter $twitter + */ + public function __construct($twitter) + { + $this->_twitter = $twitter; + } + + /** + * Obtain the requested status + * + * @return string The method call results. + */ + public function show($id) + { + $url = $this->_endpoint . 'show.' . $this->_format; + return $this->_twitter->request->post($url, array('id' => $id)); + } + + /** + * Destroy the specified status update, obviously only if the current user + * is the author of the update. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0destroy + * + * @param string $id The status id + * + * @return string + */ + public function destroy($id) + { + $url = $this->_endpoint . 'destroy.' . $this->_format; + return $this->_twitter->request->post($url, array('id' => $id)); + } + + /** + * Update the current user's status. + * + * @param string $status The new status text. + * @param array $params Any additional parameters. + * <pre> + * in_reply_to_status_id - the status id this tweet is in response to. + * </pre> + * + * @return string + */ + public function update($status, $params = array()) + { + $url = $this->_endpoint . 'update.' . $this->_format; + $params['status'] = $status; + + return $this->_twitter->request->post($url, $params); + } + + /** + * Obtain the friendsTimeline. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-friends_timeline + * + * NOTE: According to the API docs, this method is deprecated and will be + * going away in a future version of the API. This is to be replaced by + * home_timeline. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are + * pagination limits) + * include_rts - Include retweets + * include_entities - Include twitter entities (will be mandatory in + * future twitter api release). + * </pre> + * + * @return string + */ + public function friendsTimeline($params = array()) + { + $url = $this->_endpoint . 'friends_timeline.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns the 20 most recent statuses, including retweets, posted by the + * authenticating user and that user's friends. This is the equivalent of + * /timeline/home on the Web. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function homeTimeline($params = array()) + { + $url = $this->_endpoint . 'home_timeline.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns the 20 most recent retweets posted by the authenticating user. + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function retweetedByMe($params = array()) + { + $url = $this->_endpoint . 'retweeted_by_me.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns the 20 most recent retweets posted by the authenticating user's + * friends. + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function retweetedToMe($params = array()) + { + $url = $this->_endpoint . 'retweetedToMe.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns the 20 most recent tweets of the authenticated user that have + * been retweeted by others. + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function retweetsOfMe($params = array()) + { + $url = $this->_endpoint . 'retweets_of_me.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Retweets a tweet. Requires the id parameter of the tweet you are + * retweeting. Request must be a POST or PUT. + * Returns the original tweet with retweet details embedded. + * + * @params string id The id for the tweet that is being retweeted. + * + * @return string + */ + public function retweet($id) + { + $url = $this->_endpoint . 'retweet/' . $id . '.' . $this->_format; + + return $this->_twitter->request->post($url, array()); + } + + /** + * Obtain the last 20 tweets from the public timeline. This is cached every + * 60 seconds on Twitter's servers so we should eventually ensure this is + * only actually requested every 60 seconds or greater. + * + * @return string + */ + public function publicTimeline() + { + $url = $this->_endpoint . 'public_timeline.' . $this->_format; + return $this->_twitter->request->get($url); + } + + /** + * Obtain the friendsTimeline. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_timeline + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * id - For this user id or screen name. + * Current user if left out. + * user_id - Specfies the ID of the user for whom to return the + * user_timeline. Helpful for disambiguating when a valid + * user ID is also a valid screen name. + * screen_id - Specfies the screen name of the user for whom to return + * the user_timeline. Helpful for disambiguating when a + * valid screen name is also a user ID. + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function userTimeline($params = array()) + { + $url = $this->_endpoint . 'user_timeline.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Obtain most recent 'mentions' for the current user. (i.e. all messages + * that contain @username in the text). + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-mentions + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * since_id - Only tweets more recent the indicated tweet id + * max_id - Only tweets older then the indeicated tweet id + * count - Only return this many tweets (twitter limit = 200) + * page - The page number to return (note there are pagination limits) + * </pre> + * + * @return string + */ + public function mentions($params = array()) + { + $url = $this->_endpoint . 'mentions_timeline.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns a user's friends, each with current status inline. They are + * ordered by the order in which they were added as friends, 100 at a time. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * id - For this user id or screen name. + * Current user if left out. + * user_id - Specfies the ID of the user for whom to return the + * user_timeline. Helpful for disambiguating when a valid + * user ID is also a valid screen name. + * screen_id - Specfies the screen name of the user for whom to return + * the user_timeline. Helpful for disambiguating when a + * valid screen name is also a user ID. + * page - The page number to return (note there are pagination limits) + * </pre> + * @return unknown_type + */ + public function friends($params = array()) + { + $url = $this->_endpoint . 'friends.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + + /** + * Returns a user's followers, each with current status inline. They are + * ordered by the order in which they were added as friends, 100 at a time. + * + * http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends + * + * @param array $params Parameters for the friends_timeline call + * <pre> + * id - For this user id or screen name. + * Current user if left out. + * user_id - Specfies the ID of the user for whom to return the + * user_timeline. Helpful for disambiguating when a valid + * user ID is also a valid screen name. + * screen_id - Specfies the screen name of the user for whom to return + * the user_timeline. Helpful for disambiguating when a + * valid screen name is also a user ID. + * page - The page number to return (note there are pagination limits) + * </pre> + * @return unknown_type + */ + public function followers($params = array()) + { + $url = $this->_endpoint . 'followers.' . $this->_format; + return $this->_twitter->request->get($url, $params); + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php --- old/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php 1970-01-01 01:00:00.000000000 +0100 +++ new/Horde_Service_Twitter-2.1.2/lib/Horde/Service/Twitter.php 2015-01-09 12:30:55.000000000 +0100 @@ -0,0 +1,227 @@ +<?php +/** + * Horde_Service_Twitter class abstracts communication with Twitter's + * rest interface. + * + * Copyright 2009-2015 Horde LLC (http://www.horde.org/) + * + * @property-read Horde_Service_Twitter_Account $account + * The twitter account object for calling account methods. + * @property-read Horde_Service_Twitter_Statuses $statuses + * The twitter status object for updating and retrieving user + * statuses. + * @property-read Horde_Service_Twitter_Auth $auth + * The twitter authentication object. + * @property-read Horde_Service_Twitter_Request $request + * The twitter request object that wraps sending requests to + * Twitter's REST API. + * @property-read Horde_Cache $responseCache + * The cache object. + * @property-read integer $cacheLifetime + * The default cache lifetime. + * + * @author Michael J. Rubinsky <mrubi...@horde.org> + * @license http://www.horde.org/licenses/bsd BSD + * @category Horde + * @package Service_Twitter + */ +class Horde_Service_Twitter +{ + /* Constants */ + const REQUEST_TOKEN_URL = 'https://api.twitter.com/oauth/request_token'; + const USER_AUTHORIZE_URL = 'https://api.twitter.com/oauth/authorize'; + const ACCESS_TOKEN_URL = 'https://api.twitter.com/oauth/access_token'; + + /** + * Cache for the various objects we lazy load in __get() + * + * @var hash of Horde_Service_Twitter_* objects + */ + protected $_objCache = array(); + + /** + * (Optional) Cache object. + * + * @var Horde_Cache + */ + protected $_responseCache; + + /** + * Default cache lifetime. + * + * @var integer + */ + protected $_cacheLifetime = 300; + + /** + * Optional logger. + * + * @var Horde_Log_Logger + */ + protected $_logger; + + /** + * Can't lazy load the auth or request class since we need to know early if + * we are OAuth or Basic + * + * @var Horde_Service_Twitter_Auth + */ + protected $_auth; + + /** + * The twitter request object. + * + * @var Horde_Service_Twitter_Request + */ + protected $_request; + + /** + * The http client. + * + * @var Horde_Http_Client + */ + protected $_httpClient; + + /** + * Constructor. + * + * @param Horde_Service_Twitter_Auth $auth An authentication object + * @param Horde_Service_Twitter_Request $request A request object. + */ + public function __construct(Horde_Service_Twitter_Auth $auth, + Horde_Service_Twitter_Request $request) + { + $this->_auth = $auth; + $this->_auth->setTwitter($this); + $this->_request = $request; + $this->_request->setTwitter($this); + } + + /** + * Factory method to easily build a working Twitter client object. + * + * @param array $params Configuration parameters, with the following keys: + * - 'oauth' (required): + * - 'consumer_key' (required): The application's + * consumer key + * - 'consumer_secret' (required): The application's + * consumer secret + * - 'access_token' (optional): The user's access + * token + * - 'access_token_secret' (optional): The user's + * access token secret. + * - 'http' (optional): any configuration parameters + * for Horde_Http_Client, e.g. proxy settings. + * + * @return Horde_Service_Twitter A twitter object that can be used + * immediately to update and receive + * statuses etc. + */ + public static function create($params) + { + if (!isset($params['oauth'])) { + throw new Horde_Service_Twitter_Exception('Only OAuth authentication is supported.'); + } + + /* Parameters required for the Horde_Oauth_Consumer */ + $consumer_params = array( + 'key' => $params['oauth']['consumer_key'], + 'secret' => $params['oauth']['consumer_secret'], + 'requestTokenUrl' => self::REQUEST_TOKEN_URL, + 'authorizeTokenUrl' => self::USER_AUTHORIZE_URL, + 'accessTokenUrl' => self::ACCESS_TOKEN_URL, + 'signatureMethod' => new Horde_Oauth_SignatureMethod_HmacSha1()); + + /* Create the Consumer */ + $oauth = new Horde_Oauth_Consumer($consumer_params); + + /* Create the Twitter client */ + $twitter = new Horde_Service_Twitter( + new Horde_Service_Twitter_Auth_Oauth($oauth), + new Horde_Service_Twitter_Request_Oauth( + new Horde_Controller_Request_Http())); + + /* Create HTTP client. */ + $http_params = isset($params['http']) ? $params['http'] : array(); + $twitter->setHttpClient(new Horde_Http_Client($http_params)); + + /* Check for an existing token */ + if (!empty($params['oauth']['access_token']) && + !empty($params['oauth']['access_token_secret'])) { + $auth_token = new Horde_Oauth_Token( + $params['oauth']['access_token'], + $params['oauth']['access_token_secret']); + $twitter->auth->setToken($auth_token); + } + + return $twitter; + } + + public function setCache(Horde_Cache $cache) + { + $this->_responseCache = $cache; + } + + public function setLogger(Horde_Log_Logger $logger) + { + $this->_logger = $logger; + } + + /** + * Set the http client. + * + * @param Horde_Http_Client $client The http client + */ + public function setHttpClient(Horde_Http_Client $client) + { + $this->_httpClient = $client; + } + + /** + * Get the http client. + * + * @return Horde_Http_Client + */ + public function getHttpClient() + { + return $this->_httpClient; + } + + /** + * Lazy load the twitter classes. + * + * @param string $value The lowercase representation of the subclass. + * + * @throws Horde_Service_Twitter_Exception + * @return Horde_Service_Twitter_* object. + */ + public function __get($value) + { + // First, see if it's an allowed protected value. + switch ($value) { + case 'auth': + return $this->_auth; + case 'request': + return $this->_request; + case 'responseCache': + return $this->_responseCache; + case 'cacheLifetime': + return $this->_cacheLifetime; + } + + // If not, assume it's a method/action class... + $class = 'Horde_Service_Twitter_' . ucfirst($value); + if (!empty($this->_objCache[$class])) { + return $this->_objCache[$class]; + } + + if (!class_exists($class)) { + throw new Horde_Service_Twitter_Exception(sprintf("%s class not found", $class)); + } + + + $this->_objCache[$class] = new $class($this); + return $this->_objCache[$class]; + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/package.xml new/package.xml --- old/package.xml 2012-10-30 19:48:21.000000000 +0100 +++ new/package.xml 2015-01-09 12:30:55.000000000 +0100 @@ -10,11 +10,11 @@ <email>mrubi...@horde.org</email> <active>yes</active> </lead> - <date>2012-10-30</date> - <time>19:48:21</time> + <date>2015-01-09</date> + <time>12:30:55</time> <version> - <release>2.0.0</release> - <api>1.1.0</api> + <release>2.1.2</release> + <api>2.1.0</api> </version> <stability> <release>stable</release> @@ -22,27 +22,30 @@ </stability> <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> <notes> -* First stable release for Horde 5. +* [jan] Add Composer definition. </notes> <contents> <dir baseinstalldir="/" name="/"> - <file baseinstalldir="/" md5sum="03dc05714e363d71bd24f3fae5ed5903" name="doc/Horde/Service/Twitter/COPYING" role="doc" /> - <file baseinstalldir="/" md5sum="36a54bf1f734b55ec37fe5c7a1c3264b" name="doc/Horde/Service/Twitter/twitter_browser.php" role="doc" /> - <file baseinstalldir="/" md5sum="eb0c932990582434abb5824f0d67ae83" name="doc/Horde/Service/Twitter/twitter_cli.php" role="doc" /> - <file baseinstalldir="/" md5sum="2964669068a91b0f544946159f013d5a" name="lib/Horde/Service/Twitter/Auth/Oauth.php" role="php" /> - <file baseinstalldir="/" md5sum="f4a1d265e2c785856a0d1394d63aa3f9" name="lib/Horde/Service/Twitter/Request/Oauth.php" role="php" /> - <file baseinstalldir="/" md5sum="6517c39b0917fdef6bc0dd6a4bb2c947" name="lib/Horde/Service/Twitter/Account.php" role="php" /> - <file baseinstalldir="/" md5sum="9695ebc63f23ccbb46ec54e7671e2602" name="lib/Horde/Service/Twitter/Auth.php" role="php" /> - <file baseinstalldir="/" md5sum="f0e0a4b35735d315280f94dfaf582778" name="lib/Horde/Service/Twitter/Exception.php" role="php" /> - <file baseinstalldir="/" md5sum="02e5951910d6b2a9799990a629234933" name="lib/Horde/Service/Twitter/Request.php" role="php" /> - <file baseinstalldir="/" md5sum="04f22391e23f285b4bf0b9c9e2b9fb0f" name="lib/Horde/Service/Twitter/Statuses.php" role="php" /> - <file baseinstalldir="/" md5sum="7400263d0d76ebe280ccec6f52616a97" name="lib/Horde/Service/Twitter.php" role="php" /> + <file baseinstalldir="/" md5sum="e2b30d99b3092722430a6aeb457c4db8" name="doc/Horde/Service/Twitter/examples/twitter_browser.php" role="doc" /> + <file baseinstalldir="/" md5sum="25d8c3e777c081e59d18c67f49e4441d" name="doc/Horde/Service/Twitter/examples/twitter_cli.php" role="doc" /> + <file baseinstalldir="/" md5sum="5dee577470a920508ad14b3458db79a5" name="doc/Horde/Service/Twitter/COPYING" role="doc" /> + <file baseinstalldir="/" md5sum="21129453441dabde840f3d0fc9cebdc2" name="lib/Horde/Service/Twitter/Auth/Oauth.php" role="php" /> + <file baseinstalldir="/" md5sum="587ba0f88b5fc75e405bda90ba9c9c15" name="lib/Horde/Service/Twitter/Request/Oauth.php" role="php" /> + <file baseinstalldir="/" md5sum="89c024bd61c5c8b634f34d79d08f3e82" name="lib/Horde/Service/Twitter/Account.php" role="php" /> + <file baseinstalldir="/" md5sum="209f8a549ea475f0276937a51ae0e94f" name="lib/Horde/Service/Twitter/Auth.php" role="php" /> + <file baseinstalldir="/" md5sum="19c08960305ea86765f7dcd108792656" name="lib/Horde/Service/Twitter/Exception.php" role="php" /> + <file baseinstalldir="/" md5sum="b7077c9f73bf652df414e21ad7c52481" name="lib/Horde/Service/Twitter/Favorites.php" role="php" /> + <file baseinstalldir="/" md5sum="774a51f134443de3394e2ce1ca75aaaf" name="lib/Horde/Service/Twitter/Request.php" role="php" /> + <file baseinstalldir="/" md5sum="0bab0cd07162e392ed20c5b409deca6a" name="lib/Horde/Service/Twitter/Statuses.php" role="php" /> + <file baseinstalldir="/" md5sum="61e7c053aa74562aa02065b0d62e72e2" name="lib/Horde/Service/Twitter.php" role="php" /> </dir> </contents> <dependencies> <required> <php> <min>5.3.0</min> + <max>6.0.0alpha1</max> + <exclude>6.0.0alpha1</exclude> </php> <pearinstaller> <min>1.7.0</min> @@ -87,12 +90,13 @@ <phprelease> <filelist> <install as="COPYING" name="doc/Horde/Service/Twitter/COPYING" /> - <install as="twitter_browser.php" name="doc/Horde/Service/Twitter/twitter_browser.php" /> - <install as="twitter_cli.php" name="doc/Horde/Service/Twitter/twitter_cli.php" /> + <install as="examples/twitter_browser.php" name="doc/Horde/Service/Twitter/examples/twitter_browser.php" /> + <install as="examples/twitter_cli.php" name="doc/Horde/Service/Twitter/examples/twitter_cli.php" /> <install as="Horde/Service/Twitter.php" name="lib/Horde/Service/Twitter.php" /> <install as="Horde/Service/Twitter/Account.php" name="lib/Horde/Service/Twitter/Account.php" /> <install as="Horde/Service/Twitter/Auth.php" name="lib/Horde/Service/Twitter/Auth.php" /> <install as="Horde/Service/Twitter/Exception.php" name="lib/Horde/Service/Twitter/Exception.php" /> + <install as="Horde/Service/Twitter/Favorites.php" name="lib/Horde/Service/Twitter/Favorites.php" /> <install as="Horde/Service/Twitter/Request.php" name="lib/Horde/Service/Twitter/Request.php" /> <install as="Horde/Service/Twitter/Statuses.php" name="lib/Horde/Service/Twitter/Statuses.php" /> <install as="Horde/Service/Twitter/Auth/Oauth.php" name="lib/Horde/Service/Twitter/Auth/Oauth.php" /> @@ -297,5 +301,96 @@ * First stable release for Horde 5. </notes> </release> + <release> + <version> + <release>2.0.1</release> + <api>1.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2012-11-22</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [jan] Re-packaged 2.0.0 release. + </notes> + </release> + <release> + <version> + <release>2.0.2</release> + <api>1.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2013-03-05</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [jan] Fix examples location. + </notes> + </release> + <release> + <version> + <release>2.0.3</release> + <api>1.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2013-03-05</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [mjr] Fix initial authentication for recently changed Twitter API requirements (Bug #12165). + </notes> + </release> + <release> + <version> + <release>2.1.0</release> + <api>2.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2013-06-17</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [mjr] Use API version 1.1 +* [mjr] Add support for favorites. + </notes> + </release> + <release> + <version> + <release>2.1.1</release> + <api>2.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2013-07-07</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [mjr] Fix fetching user mentions. + </notes> + </release> + <release> + <version> + <release>2.1.2</release> + <api>2.1.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <date>2015-01-09</date> + <license uri="http://www.horde.org/licenses/bsd">BSD-2-Clause</license> + <notes> +* [jan] Add Composer definition. + </notes> + </release> </changelog> </package> -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org