* 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 CodebirdSN\CodebirdSN;
use Friendica\App;
use Friendica\Content\OEmbed;
-use Friendica\Content\Text\BBCode;
+use Friendica\Content\Text\HTML;
use Friendica\Content\Text\Plaintext;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Model\GContact;
use Friendica\Model\Group;
use Friendica\Model\Item;
+use Friendica\Model\ItemContent;
use Friendica\Model\Photo;
use Friendica\Model\User;
+use Friendica\Util\DateTimeFormat;
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
return;
}
- require_once 'include/bbcode.php';
$dent = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
$max_char = $dent->get_maxlength(); // max. length for a dent
PConfig::set($b['uid'], 'statusnet', 'max_char', $max_char);
$tempfile = "";
- $msgarr = BBCode::toPlaintext($b, $max_char, true, 7);
+ $msgarr = ItemContent::getPlaintextPost($b, $max_char, true, 7);
$msg = $msgarr["text"];
if (($msg == "") && isset($msgarr["title"]))
$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"];
}
$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);
}
// New code that is able to post pictures
- require_once "addon/statusnet/codebird.php";
- $cb = \CodebirdSN\CodebirdSN::getInstance();
+ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . 'codebirdsn.php';
+ $cb = CodebirdSN::getInstance();
$cb->setAPIEndpoint($api);
$cb->setConsumerKey($ckey, $csecret);
$cb->setToken($otoken, $osecret);
logger('Send to GNU Social failed: "' . $result->error . '"');
} elseif ($iscomment) {
logger('statusnet_post: Update extid ' . $result->id . " for post id " . $b['id']);
- q("UPDATE `item` SET `extid` = '%s', `body` = '%s' WHERE `id` = %d",
- dbesc($hostname . "::" . $result->id),
- dbesc($result->text),
- intval($b['id'])
- );
+ Item::update(['extid' => $hostname . "::" . $result->id, 'body' => $result->text], ['id' => $b['id']]);
}
}
if ($tempfile != "") {
}
}
- $msgarr = BBCode::toPlaintext($item, $max_char, true, 7);
+ $msgarr = ItemContent::getPlaintextPost($item, $max_char, true, 7);
$msg = $msgarr["text"];
if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) {
$abandon_days = 0;
}
- $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400);
+ $abandon_limit = date(DateTimeFormat::MYSQL, time() - $abandon_days * 86400);
$r = q("SELECT * FROM `pconfig` WHERE `cat` = 'statusnet' AND `k` = 'import' AND `v` ORDER BY RAND()");
if (count($r)) {
`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(DateTimeFormat::utcNow()),
dbesc($contact->statusnet_profile_url),
dbesc(normalise_link($contact->statusnet_profile_url)),
dbesc(statusnet_address($contact)),
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
- dbesc(datetime_convert()),
+ dbesc(DateTimeFormat::utcNow()),
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'] < DateTimeFormat::convert('now -2 days', '', '', )) ? true : false);
+ $update_photo = ($r[0]['avatar-date'] < DateTimeFormat::utc('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)) {
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
+ dbesc(DateTimeFormat::utcNow()),
+ dbesc(DateTimeFormat::utcNow()),
+ dbesc(DateTimeFormat::utcNow()),
dbesc($contact->statusnet_profile_url),
dbesc(normalise_link($contact->statusnet_profile_url)),
dbesc(statusnet_address($contact)),
$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::getInstance();
$cb->setConsumerKey($ckey, $csecret);
$cb->setToken($otoken, $osecret);
function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_existing_contact)
{
- require_once "include/html2bbcode.php";
-
logger("statusnet_createpost: start", LOGGER_DEBUG);
$api = PConfig::get($uid, 'statusnet', 'baseapi');
$postarray['allow_cid'] = '<' . $self['id'] . '>';
}
- $postarray['body'] = html2bbcode($content->statusnet_html);
+ $postarray['body'] = HTML::toBBCode($content->statusnet_html);
$converted = statusnet_convertmsg($a, $postarray['body'], false);
$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'] = DateTimeFormat::utc($content->created_at);
+ $postarray['edited'] = DateTimeFormat::utc($content->created_at);
if (is_string($content->place->name)) {
$postarray["location"] = $content->place->name;
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);
$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;
$contact_id = 0;
if ($own_url == "") {
- require_once 'library/twitteroauth.php';
-
$connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret);
// Fetching user data