X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=statusnet%2Fstatusnet.php;h=c5b62a5d43df3fed440f05441854210427d5e6a6;hb=6d23de1bdb6b53226006fa3d35849d45bc6bfec4;hp=7308f223de5ad70267e65f5e5339758c87a61ad0;hpb=2ae7e3a2ba7fc4f5cfc91f951e672a439c5e0928;p=friendica-addons.git diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index 7308f223..c5b62a5d 100644 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -33,18 +33,13 @@ * 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 Codebird\Codebird; +use CodebirdSN\CodebirdSN; use Friendica\App; use Friendica\Content\OEmbed; use Friendica\Content\Text\BBCode; @@ -59,94 +54,7 @@ use Friendica\Model\Item; 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; - } -} +use Friendica\Util\Temporal; function statusnet_install() { @@ -652,12 +560,7 @@ function statusnet_post_hook(App $a, &$b) $image = ""; if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) { - if ((strlen($msgarr["url"]) > 20) && - ((strlen($msg . " \n" . $msgarr["url"]) > $max_char))) { - $msg .= " \n" . Network::shortenUrl($msgarr["url"]); - } else { - $msg .= " \n" . $msgarr["url"]; - } + $msg .= " \n" . $msgarr["url"]; } elseif (isset($msgarr["image"]) && ($msgarr["type"] != "video")) { $image = $msgarr["image"]; } @@ -671,7 +574,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 +582,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); @@ -857,7 +760,7 @@ function statusnet_cron(App $a, $b) $abandon_days = 0; } - $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400); + $abandon_limit = date(Temporal::MYSQL, time() - $abandon_days * 86400); $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'statusnet' AND `k` = 'import' AND `v` ORDER BY RAND()"); if (count($r)) { @@ -1033,7 +936,7 @@ function statusnet_fetch_contact($uid, $contact, $create_user) `location`, `about`, `writable`, `blocked`, `readonly`, `pending` ) VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, 0, 0, 0 ) ", intval($uid), - dbesc(datetime_convert()), + dbesc(Temporal::convert()), dbesc($contact->statusnet_profile_url), dbesc(normalise_link($contact->statusnet_profile_url)), dbesc(statusnet_address($contact)), @@ -1074,13 +977,13 @@ function statusnet_fetch_contact($uid, $contact, $create_user) dbesc($photos[0]), dbesc($photos[1]), dbesc($photos[2]), - dbesc(datetime_convert()), + dbesc(Temporal::convert()), intval($contact_id) ); } else { // update profile photos once every two weeks as we have no notification of when they change. - //$update_photo = (($r[0]['avatar-date'] < datetime_convert('','','now -2 days')) ? true : false); - $update_photo = ($r[0]['avatar-date'] < datetime_convert('', '', 'now -12 hours')); + //$update_photo = (($r[0]['avatar-date'] < Temporal::convert('now -2 days', '', '', )) ? true : false); + $update_photo = ($r[0]['avatar-date'] < Temporal::convert('now -12 hours')); // check that we have all the photos, this has been known to fail on occasion if ((!$r[0]['photo']) || (!$r[0]['thumb']) || (!$r[0]['micro']) || ($update_photo)) { @@ -1105,9 +1008,9 @@ function statusnet_fetch_contact($uid, $contact, $create_user) dbesc($photos[0]), dbesc($photos[1]), dbesc($photos[2]), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(datetime_convert()), + dbesc(Temporal::convert()), + dbesc(Temporal::convert()), + dbesc(Temporal::convert()), dbesc($contact->statusnet_profile_url), dbesc(normalise_link($contact->statusnet_profile_url)), dbesc(statusnet_address($contact)), @@ -1131,9 +1034,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); @@ -1294,8 +1197,8 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $postarray['body'] = $converted["body"]; $postarray['tag'] = $converted["tags"]; - $postarray['created'] = datetime_convert('UTC', 'UTC', $content->created_at); - $postarray['edited'] = datetime_convert('UTC', 'UTC', $content->created_at); + $postarray['created'] = Temporal::convert($content->created_at); + $postarray['edited'] = Temporal::convert($content->created_at); if (is_string($content->place->name)) { $postarray["location"] = $content->place->name; @@ -1403,7 +1306,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 +1506,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 +1656,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