Move StatusNet addon dependencies in own library subfolder

- Move CodebirdSN to library/codebirdsn.php
- Move StatusNetOAuth class to library/statusnetoauth.php
- Copy TwitterOAuth to library/twitteroauth.php
- Copy OAuth1 to library/OAuth1.php
This commit is contained in:
Hypolite Petovan 2018-01-28 14:33:47 -05:00
parent ffa36da2c9
commit 7afef6b87f
5 changed files with 1280 additions and 105 deletions

View file

@ -33,16 +33,9 @@
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*
* We have to alter the TwitterOAuth class a little bit to work with any GNU Social
* installation abroad. Basically it's only make the API path variable and be happy.
*
* Thank you guys for the Twitter compatible API!
*/
define('STATUSNET_DEFAULT_POLL_INTERVAL', 5); // given in minutes
require_once 'library/twitteroauth.php';
require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'statusnetoauth.php';
require_once 'include/enotify.php';
use Friendica\App;
@ -60,94 +53,6 @@ use Friendica\Model\Photo;
use Friendica\Model\User;
use Friendica\Util\Network;
class StatusNetOAuth extends TwitterOAuth
{
function get_maxlength()
{
$config = $this->get($this->host . 'statusnet/config.json');
return $config->site->textlimit;
}
function accessTokenURL()
{
return $this->host . 'oauth/access_token';
}
function authenticateURL()
{
return $this->host . 'oauth/authenticate';
}
function authorizeURL()
{
return $this->host . 'oauth/authorize';
}
function requestTokenURL()
{
return $this->host . 'oauth/request_token';
}
function __construct($apipath, $consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL)
{
parent::__construct($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$this->host = $apipath;
}
/**
* Make an HTTP request
*
* @return API results
*
* Copied here from the twitteroauth library and complemented by applying the proxy settings of friendica
*/
function http($url, $method, $postfields = NULL)
{
$this->http_info = [];
$ci = curl_init();
/* Curl settings */
$prx = Config::get('system', 'proxy');
if (strlen($prx)) {
curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ci, CURLOPT_PROXY, $prx);
$prxusr = Config::get('system', 'proxyuser');
if (strlen($prxusr)) {
curl_setopt($ci, CURLOPT_PROXYUSERPWD, $prxusr);
}
}
curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_HTTPHEADER, ['Expect:']);
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
curl_setopt($ci, CURLOPT_HEADERFUNCTION, [$this, 'getHeader']);
curl_setopt($ci, CURLOPT_HEADER, FALSE);
switch ($method) {
case 'POST':
curl_setopt($ci, CURLOPT_POST, TRUE);
if (!empty($postfields)) {
curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
}
break;
case 'DELETE':
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
if (!empty($postfields)) {
$url = "{$url}?{$postfields}";
}
}
curl_setopt($ci, CURLOPT_URL, $url);
$response = curl_exec($ci);
$this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
$this->http_info = array_merge($this->http_info, curl_getinfo($ci));
$this->url = $url;
curl_close($ci);
return $response;
}
}
function statusnet_install()
{
// we need some hooks, for the configuration and for sending tweets
@ -671,7 +576,7 @@ function statusnet_post_hook(App $a, &$b)
$postdata = ["status" => $msg];
}
// and now dent it :-)
// and now send it :-)
if (strlen($msg)) {
if ($iscomment) {
$postdata["in_reply_to_status_id"] = substr($orig_post["uri"], $hostlength);
@ -679,7 +584,7 @@ function statusnet_post_hook(App $a, &$b)
}
// New code that is able to post pictures
require_once "addon/statusnet/codebird.php";
require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'codebirdsn.php';
$cb = \CodebirdSN\CodebirdSN::getInstance();
$cb->setAPIEndpoint($api);
$cb->setConsumerKey($ckey, $csecret);
@ -1131,9 +1036,9 @@ function statusnet_fetchuser(App $a, $uid, $screen_name = "", $user_id = "")
$otoken = PConfig::get($uid, 'statusnet', 'oauthtoken');
$osecret = PConfig::get($uid, 'statusnet', 'oauthsecret');
require_once "addon/statusnet/codebird.php";
require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'codebirdsn.php';
$cb = \Codebird\Codebird::getInstance();
$cb = \CodebirdSN\CodebirdSN::getInstance();
$cb->setConsumerKey($ckey, $csecret);
$cb->setToken($otoken, $osecret);
@ -1403,7 +1308,6 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1)
logger("statusnet_fetchhometimeline: Fetching for user " . $uid, LOGGER_DEBUG);
require_once 'library/twitteroauth.php';
require_once 'include/items.php';
$connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
@ -1604,8 +1508,6 @@ function statusnet_complete_conversation(App $a, $uid, $self, $create_user, $nic
$osecret = PConfig::get($uid, 'statusnet', 'oauthsecret');
$own_url = PConfig::get($uid, 'statusnet', 'own_url');
require_once 'library/twitteroauth.php';
$connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
$parameters["count"] = 200;
@ -1756,8 +1658,6 @@ function statusnet_fetch_own_contact(App $a, $uid)
$contact_id = 0;
if ($own_url == "") {
require_once 'library/twitteroauth.php';
$connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
// Fetching user data