X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=statusnet%2Fstatusnet.php;h=5cb65b91fdb90d4ebec3c975d4a001086cefe3b5;hb=802c5ca87f5d851a9be776bfc6245c1606ff6c6e;hp=b2582b86e496dcf64b3cd98d8a93b60d9633fc0e;hpb=9acfdb409020ee678cfa07dc81a4f731ce5f17e0;p=friendica-addons.git diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index b2582b86..5cb65b91 100644 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -56,6 +56,7 @@ use Friendica\Model\Item; use Friendica\Model\Photo; use Friendica\Model\Post; use Friendica\Model\User; +use Friendica\Network\HTTPClient\Client\HttpClientAccept; use Friendica\Protocol\Activity; use Friendica\Util\DateTimeFormat; use Friendica\Util\Strings; @@ -73,29 +74,29 @@ function statusnet_install() Hook::register('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron'); Hook::register('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body'); Hook::register('check_item_notification', 'addon/statusnet/statusnet.php', 'statusnet_check_item_notification'); - Logger::notice("installed GNU Social"); + Logger::notice('installed GNU Social'); } function statusnet_check_item_notification(App $a, &$notification_data) { - if (DI::pConfig()->get($notification_data["uid"], 'statusnet', 'post')) { - $notification_data["profiles"][] = DI::pConfig()->get($notification_data["uid"], 'statusnet', 'own_url'); + if (DI::pConfig()->get($notification_data['uid'], 'statusnet', 'post')) { + $notification_data['profiles'][] = DI::pConfig()->get($notification_data['uid'], 'statusnet', 'own_url'); } } function statusnet_jot_nets(App $a, array &$jotnets_fields) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { return; } - if (DI::pConfig()->get(local_user(), 'statusnet', 'post')) { + if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post')) { $jotnets_fields[] = [ 'type' => 'checkbox', 'field' => [ 'statusnet_enable', DI::l10n()->t('Post to GNU Social'), - DI::pConfig()->get(local_user(), 'statusnet', 'post_by_default') + DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post_by_default') ] ]; } @@ -103,7 +104,7 @@ function statusnet_jot_nets(App $a, array &$jotnets_fields) function statusnet_settings_post(App $a, $post) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { return; } // don't check GNU Social settings if GNU Social submit button is not clicked @@ -115,18 +116,18 @@ function statusnet_settings_post(App $a, $post) /* * * * if the GNU Social-disconnect button is clicked, clear the GNU Social configuration */ - DI::pConfig()->delete(local_user(), 'statusnet', 'consumerkey'); - DI::pConfig()->delete(local_user(), 'statusnet', 'consumersecret'); - DI::pConfig()->delete(local_user(), 'statusnet', 'post'); - DI::pConfig()->delete(local_user(), 'statusnet', 'post_by_default'); - DI::pConfig()->delete(local_user(), 'statusnet', 'oauthtoken'); - DI::pConfig()->delete(local_user(), 'statusnet', 'oauthsecret'); - DI::pConfig()->delete(local_user(), 'statusnet', 'baseapi'); - DI::pConfig()->delete(local_user(), 'statusnet', 'lastid'); - DI::pConfig()->delete(local_user(), 'statusnet', 'mirror_posts'); - DI::pConfig()->delete(local_user(), 'statusnet', 'import'); - DI::pConfig()->delete(local_user(), 'statusnet', 'create_user'); - DI::pConfig()->delete(local_user(), 'statusnet', 'own_url'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'post'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'post_by_default'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthtoken'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthsecret'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'lastid'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'mirror_posts'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'import'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'create_user'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'own_url'); } else { if (isset($_POST['statusnet-preconf-apiurl'])) { /* * * @@ -140,12 +141,12 @@ function statusnet_settings_post(App $a, $post) $apibase = $asn['apiurl']; $c = DI::httpClient()->fetch($apibase . 'statusnet/version.xml'); if (strlen($c) > 0) { - DI::pConfig()->set(local_user(), 'statusnet', 'consumerkey', $asn['consumerkey']); - DI::pConfig()->set(local_user(), 'statusnet', 'consumersecret', $asn['consumersecret']); - DI::pConfig()->set(local_user(), 'statusnet', 'baseapi', $asn['apiurl']); - //DI::pConfig()->set(local_user(), 'statusnet', 'application_name', $asn['applicationname'] ); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey', $asn['consumerkey']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret', $asn['consumersecret']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi', $asn['apiurl']); + //DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'application_name', $asn['applicationname'] ); } else { - notice(DI::l10n()->t('Please contact your site administrator.
The provided API URL is not valid.') . EOL . $asn['apiurl'] . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('Please contact your site administrator.
The provided API URL is not valid.') . '
' . $asn['apiurl']); } } } @@ -158,52 +159,52 @@ function statusnet_settings_post(App $a, $post) $c = DI::httpClient()->fetch($apibase . 'statusnet/version.xml'); if (strlen($c) > 0) { // ok the API path is correct, let's save the settings - DI::pConfig()->set(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']); - DI::pConfig()->set(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']); - DI::pConfig()->set(local_user(), 'statusnet', 'baseapi', $apibase); - //DI::pConfig()->set(local_user(), 'statusnet', 'application_name', $_POST['statusnet-applicationname'] ); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi', $apibase); + //DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'application_name', $_POST['statusnet-applicationname'] ); } else { // the API path is not correct, maybe missing trailing / ? $apibase = $apibase . '/'; $c = DI::httpClient()->fetch($apibase . 'statusnet/version.xml'); if (strlen($c) > 0) { // ok the API path is now correct, let's save the settings - DI::pConfig()->set(local_user(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']); - DI::pConfig()->set(local_user(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']); - DI::pConfig()->set(local_user(), 'statusnet', 'baseapi', $apibase); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey', $_POST['statusnet-consumerkey']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret', $_POST['statusnet-consumersecret']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi', $apibase); } else { // still not the correct API base, let's do noting - notice(DI::l10n()->t('We could not contact the GNU Social API with the Path you entered.') . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('We could not contact the GNU Social API with the Path you entered.')); } } } else { if (isset($_POST['statusnet-pin'])) { // if the user supplied us with a PIN from GNU Social, let the magic of OAuth happen - $api = DI::pConfig()->get(local_user(), 'statusnet', 'baseapi'); - $ckey = DI::pConfig()->get(local_user(), 'statusnet', 'consumerkey'); - $csecret = DI::pConfig()->get(local_user(), 'statusnet', 'consumersecret'); + $api = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi'); + $ckey = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey'); + $csecret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret'); // the token and secret for which the PIN was generated were hidden in the settings // form as token and token2, we need a new connection to GNU Social using these token // and secret to request a Access Token with the PIN $connection = new StatusNetOAuth($api, $ckey, $csecret, $_POST['statusnet-token'], $_POST['statusnet-token2']); $token = $connection->getAccessToken($_POST['statusnet-pin']); // ok, now that we have the Access Token, save them in the user config - DI::pConfig()->set(local_user(), 'statusnet', 'oauthtoken', $token['oauth_token']); - DI::pConfig()->set(local_user(), 'statusnet', 'oauthsecret', $token['oauth_token_secret']); - DI::pConfig()->set(local_user(), 'statusnet', 'post', 1); - DI::pConfig()->set(local_user(), 'statusnet', 'post_taglinks', 1); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthtoken', $token['oauth_token']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthsecret', $token['oauth_token_secret']); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'post', 1); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'post_taglinks', 1); // reload the Addon Settings page, if we don't do it see Bug #42 } else { // if no PIN is supplied in the POST variables, the user has changed the setting // to post a dent for every new __public__ posting to the wall - DI::pConfig()->set(local_user(), 'statusnet', 'post', intval($_POST['statusnet-enable'])); - DI::pConfig()->set(local_user(), 'statusnet', 'post_by_default', intval($_POST['statusnet-default'])); - DI::pConfig()->set(local_user(), 'statusnet', 'mirror_posts', intval($_POST['statusnet-mirror'])); - DI::pConfig()->set(local_user(), 'statusnet', 'import', intval($_POST['statusnet-import'])); - DI::pConfig()->set(local_user(), 'statusnet', 'create_user', intval($_POST['statusnet-create_user'])); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'post', intval($_POST['statusnet-enable'])); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'post_by_default', intval($_POST['statusnet-default'])); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'mirror_posts', intval($_POST['statusnet-mirror'])); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'import', intval($_POST['statusnet-import'])); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'statusnet', 'create_user', intval($_POST['statusnet-create_user'])); if (!intval($_POST['statusnet-mirror'])) - DI::pConfig()->delete(local_user(), 'statusnet', 'lastid'); + DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'statusnet', 'lastid'); } } } @@ -212,7 +213,7 @@ function statusnet_settings_post(App $a, $post) function statusnet_settings(App $a, array &$data) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { return; } @@ -224,16 +225,16 @@ function statusnet_settings(App $a, array &$data) * allow the user to cancel the connection process at this step * 3) Checkbox for "Send public notices (respect size limitation) */ - $baseapi = DI::pConfig()->get(local_user(), 'statusnet', 'baseapi'); - $ckey = DI::pConfig()->get(local_user(), 'statusnet', 'consumerkey'); - $csecret = DI::pConfig()->get(local_user(), 'statusnet', 'consumersecret'); - $otoken = DI::pConfig()->get(local_user(), 'statusnet', 'oauthtoken'); - $osecret = DI::pConfig()->get(local_user(), 'statusnet', 'oauthsecret'); - $enabled = DI::pConfig()->get(local_user(), 'statusnet', 'post', false); - $def_enabled = DI::pConfig()->get(local_user(), 'statusnet', 'post_by_default', false); - $mirror_enabled = DI::pConfig()->get(local_user(), 'statusnet', 'mirror_posts', false); - $createuser_enabled = DI::pConfig()->get(local_user(), 'statusnet', 'create_user', false); - $import = DI::pConfig()->get(local_user(), 'statusnet', 'import'); + $baseapi = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'baseapi'); + $ckey = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'consumerkey'); + $csecret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'consumersecret'); + $otoken = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthtoken'); + $osecret = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'oauthsecret'); + $enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post', false); + $def_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post_by_default', false); + $mirror_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'mirror_posts', false); + $createuser_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'create_user', false); + $import = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'import'); // Radio button list to select existing application credentials $sites = array_map(function ($site) { @@ -255,7 +256,7 @@ function statusnet_settings(App $a, array &$data) $connected_account = DI::l10n()->t('Currently connected to: %s', $account->statusnet_profile_url, $account->screen_name); } - $user = User::getById(local_user()); + $user = User::getById(DI::userSession()->getLocalUserId()); if ($user['hidewall']) { $privacy_warning = DI::l10n()->t('Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to GNU Social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted.'); } @@ -365,28 +366,28 @@ function statusnet_hook_fork(App $a, array &$b) } } else { // Comments are never exported when we don't import the GNU Social timeline - if (!strstr($post['postopts'], 'statusnet') || ($post['parent'] != $post['id']) || $post['private']) { + if (strpos($post['postopts'] ?? '', 'statusnet') === false || ($post['parent'] != $post['id']) || $post['private']) { $b['execute'] = false; return; } } } -function statusnet_post_local(App $a, &$b) +function statusnet_post_local(App $a, array &$b) { if ($b['edit']) { return; } - if (!local_user() || (local_user() != $b['uid'])) { + if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) { return; } - $statusnet_post = DI::pConfig()->get(local_user(), 'statusnet', 'post'); + $statusnet_post = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post'); $statusnet_enable = (($statusnet_post && !empty($_REQUEST['statusnet_enable'])) ? intval($_REQUEST['statusnet_enable']) : 0); // if API is used, default to the chosen settings - if ($b['api_source'] && intval(DI::pConfig()->get(local_user(), 'statusnet', 'post_by_default'))) { + if ($b['api_source'] && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'post_by_default'))) { $statusnet_enable = 1; } @@ -411,67 +412,69 @@ function statusnet_action(App $a, $uid, $pid, $action) $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret); - Logger::debug("statusnet_action '" . $action . "' ID: " . $pid); + Logger::debug('statusnet_action "' . $action . '" ID: ' . $pid); switch ($action) { - case "delete": - $result = $connection->post("statuses/destroy/" . $pid); + case 'delete': + $result = $connection->post('statuses/destroy/' . $pid); break; - case "like": - $result = $connection->post("favorites/create/" . $pid); + + case 'like': + $result = $connection->post('favorites/create/' . $pid); break; - case "unlike": - $result = $connection->post("favorites/destroy/" . $pid); + + case 'unlike': + $result = $connection->post('favorites/destroy/' . $pid); break; } - Logger::info("statusnet_action '" . $action . "' send, result: " . print_r($result, true)); + Logger::info('statusnet_action "' . $action . '" send, result: ' . print_r($result, true)); } -function statusnet_post_hook(App $a, &$b) +function statusnet_post_hook(App $a, array &$b) { /** * Post to GNU Social */ - if (!DI::pConfig()->get($b["uid"], 'statusnet', 'import')) { + if (!DI::pConfig()->get($b['uid'], 'statusnet', 'import')) { if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) return; } - $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']); + $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], DI::contentItem()->addSharedPost($b)); - $api = DI::pConfig()->get($b["uid"], 'statusnet', 'baseapi'); + $api = DI::pConfig()->get($b['uid'], 'statusnet', 'baseapi'); $hostname = preg_replace("=https?://([\w\.]*)/.*=ism", "$1", $api); if ($b['parent'] != $b['id']) { - Logger::debug("statusnet_post_hook: parameter " . print_r($b, true)); + Logger::debug('statusnet_post_hook: parameter ', ['b' => $b]); // Looking if its a reply to a GNU Social post $hostlength = strlen($hostname) + 2; - if ((substr($b["parent-uri"], 0, $hostlength) != $hostname . "::") && (substr($b["extid"], 0, $hostlength) != $hostname . "::") && (substr($b["thr-parent"], 0, $hostlength) != $hostname . "::")) { - Logger::notice("statusnet_post_hook: no GNU Social post " . $b["parent"]); + if ((substr($b['parent-uri'], 0, $hostlength) != $hostname . '::') && (substr($b['extid'], 0, $hostlength) != $hostname . '::') && (substr($b['thr-parent'], 0, $hostlength) != $hostname . '::')) { + Logger::notice('statusnet_post_hook: no GNU Social post ' . $b['parent']); return; } - $condition = ['uri' => $b["thr-parent"], 'uid' => $b["uid"]]; + $condition = ['uri' => $b['thr-parent'], 'uid' => $b['uid']]; $orig_post = Post::selectFirst(['author-link', 'uri'], $condition); if (!DBA::isResult($orig_post)) { - Logger::notice("statusnet_post_hook: no parent found " . $b["thr-parent"]); + Logger::notice('statusnet_post_hook: no parent found ' . $b['thr-parent']); return; } else { $iscomment = true; } - $nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post["author-link"]); + $nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post['author-link']); - $nickname = "@[url=" . $orig_post["author-link"] . "]" . $nick . "[/url]"; - $nicknameplain = "@" . $nick; + $nickname = '@[url=' . $orig_post['author-link'] . ']' . $nick . '[/url]'; + $nicknameplain = '@' . $nick; - Logger::info("statusnet_post_hook: comparing " . $nickname . " and " . $nicknameplain . " with " . $b["body"]); - if ((strpos($b["body"], $nickname) === false) && (strpos($b["body"], $nicknameplain) === false)) { - $b["body"] = $nickname . " " . $b["body"]; + Logger::info('statusnet_post_hook: comparing ' . $nickname . ' and ' . $nicknameplain . ' with ' . $b['body']); + if ((strpos($b['body'], $nickname) === false) && (strpos($b['body'], $nicknameplain) === false)) { + $b['body'] = $nickname . ' ' . $b['body']; } - Logger::info("statusnet_post_hook: parent found " . print_r($orig_post, true)); + Logger::info('statusnet_post_hook: parent found ', ['orig_post' => $orig_post]); } else { $iscomment = false; @@ -488,15 +491,15 @@ function statusnet_post_hook(App $a, &$b) } if (($b['verb'] == Activity::POST) && $b['deleted']) { - statusnet_action($a, $b["uid"], substr($orig_post["uri"], $hostlength), "delete"); + statusnet_action($a, $b['uid'], substr($orig_post['uri'], $hostlength), 'delete'); } if ($b['verb'] == Activity::LIKE) { - Logger::info("statusnet_post_hook: parameter 2 " . substr($b["thr-parent"], $hostlength)); + Logger::info('statusnet_post_hook: parameter 2 ' . substr($b['thr-parent'], $hostlength)); if ($b['deleted']) - statusnet_action($a, $b["uid"], substr($b["thr-parent"], $hostlength), "unlike"); + statusnet_action($a, $b['uid'], substr($b['thr-parent'], $hostlength), 'unlike'); else - statusnet_action($a, $b["uid"], substr($b["thr-parent"], $hostlength), "like"); + statusnet_action($a, $b['uid'], substr($b['thr-parent'], $hostlength), 'like'); return; } @@ -509,7 +512,7 @@ function statusnet_post_hook(App $a, &$b) return; } - if ($b['app'] == "StatusNet") { + if ($b['app'] == 'StatusNet') { return; } @@ -534,34 +537,34 @@ function statusnet_post_hook(App $a, &$b) DI::pConfig()->set($b['uid'], 'statusnet', 'max_char', $max_char); - $tempfile = ""; + $tempfile = ''; $msgarr = Plaintext::getPost($b, $max_char, true, 7); - $msg = $msgarr["text"]; + $msg = $msgarr['text']; - if (($msg == "") && isset($msgarr["title"])) - $msg = Plaintext::shorten($msgarr["title"], $max_char - 50, $b['uid']); + if (($msg == '') && isset($msgarr['title'])) + $msg = Plaintext::shorten($msgarr['title'], $max_char - 50, $b['uid']); - $image = ""; + $image = ''; - if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) { - $msg .= " \n" . $msgarr["url"]; - } elseif (isset($msgarr["image"]) && ($msgarr["type"] != "video")) { - $image = $msgarr["image"]; + if (isset($msgarr['url']) && ($msgarr['type'] != 'photo')) { + $msg .= " \n" . $msgarr['url']; + } elseif (isset($msgarr['image']) && ($msgarr['type'] != 'video')) { + $image = $msgarr['image']; } - if ($image != "") { + if ($image != '') { $img_str = DI::httpClient()->fetch($image); - $tempfile = tempnam(System::getTempPath(), "cache"); + $tempfile = tempnam(System::getTempPath(), 'cache'); file_put_contents($tempfile, $img_str); - $postdata = ["status" => $msg, "media[]" => $tempfile]; + $postdata = ['status' => $msg, 'media[]' => $tempfile]; } else { - $postdata = ["status" => $msg]; + $postdata = ['status' => $msg]; } // and now send it :-) if (strlen($msg)) { if ($iscomment) { - $postdata["in_reply_to_status_id"] = substr($orig_post["uri"], $hostlength); + $postdata['in_reply_to_status_id'] = substr($orig_post['uri'], $hostlength); Logger::info('statusnet_post send reply ' . print_r($postdata, true)); } @@ -577,17 +580,17 @@ function statusnet_post_hook(App $a, &$b) "\nmessage: " . $msg . "\nOriginal post: " . print_r($b, true) . "\nPost Data: " . print_r($postdata, true)); if (!empty($result->source)) { - DI::pConfig()->set($b["uid"], "statusnet", "application_name", strip_tags($result->source)); + DI::pConfig()->set($b['uid'], 'statusnet', 'application_name', strip_tags($result->source)); } if (!empty($result->error)) { Logger::notice('Send to GNU Social failed: "' . $result->error . '"'); } elseif ($iscomment) { - Logger::notice('statusnet_post: Update extid ' . $result->id . " for post id " . $b['id']); - Item::update(['extid' => $hostname . "::" . $result->id, 'body' => $result->text], ['id' => $b['id']]); + Logger::notice('statusnet_post: Update extid ' . $result->id . ' for post id ' . $b['id']); + Item::update(['extid' => $hostname . '::' . $result->id, 'body' => $result->text], ['id' => $b['id']]); } } - if ($tempfile != "") { + if ($tempfile != '') { unlink($tempfile); } } @@ -606,10 +609,10 @@ function statusnet_addon_admin_post(App $a) $secret = trim($_POST['secret'][$id]); $key = trim($_POST['key'][$id]); //$applicationname = (!empty($_POST['applicationname']) ? Strings::escapeTags(trim($_POST['applicationname'][$id])):''); - if ($sitename != "" && - $apiurl != "" && - $secret != "" && - $key != "" && + if ($sitename != '' && + $apiurl != '' && + $secret != '' && + $key != '' && empty($_POST['delete'][$id])) { $sites[] = [ @@ -625,7 +628,7 @@ function statusnet_addon_admin_post(App $a) $sites = DI::config()->set('statusnet', 'sites', $sites); } -function statusnet_addon_admin(App $a, &$o) +function statusnet_addon_admin(App $a, string &$o) { $sites = DI::config()->get('statusnet', 'sites'); $sitesform = []; @@ -651,50 +654,50 @@ function statusnet_addon_admin(App $a, &$o) //'applicationname' => Array("applicationname[$id]", DI::l10n()->t("Application name"), "", ""), ]; - $t = Renderer::getMarkupTemplate("admin.tpl", "addon/statusnet/"); + $t = Renderer::getMarkupTemplate('admin.tpl', 'addon/statusnet/'); $o = Renderer::replaceMacros($t, [ '$submit' => DI::l10n()->t('Save Settings'), '$sites' => $sitesform, ]); } -function statusnet_prepare_body(App $a, &$b) +function statusnet_prepare_body(App $a, array &$b) { - if ($b["item"]["network"] != Protocol::STATUSNET) { + if ($b['item']['network'] != Protocol::STATUSNET) { return; } - if ($b["preview"]) { - $max_char = DI::pConfig()->get(local_user(), 'statusnet', 'max_char'); + if ($b['preview']) { + $max_char = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'statusnet', 'max_char'); if (intval($max_char) == 0) { $max_char = 140; } - $item = $b["item"]; - $item["plink"] = DI::baseUrl()->get() . "/display/" . $item["guid"]; + $item = $b['item']; + $item['plink'] = DI::baseUrl()->get() . '/display/' . $item['guid']; - $condition = ['uri' => $item["thr-parent"], 'uid' => local_user()]; + $condition = ['uri' => $item['thr-parent'], 'uid' => DI::userSession()->getLocalUserId()]; $orig_post = Post::selectFirst(['author-link', 'uri'], $condition); if (DBA::isResult($orig_post)) { - $nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post["author-link"]); + $nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post['author-link']); - $nickname = "@[url=" . $orig_post["author-link"] . "]" . $nick . "[/url]"; - $nicknameplain = "@" . $nick; + $nickname = '@[url=' . $orig_post['author-link'] . ']' . $nick . '[/url]'; + $nicknameplain = '@' . $nick; - if ((strpos($item["body"], $nickname) === false) && (strpos($item["body"], $nicknameplain) === false)) { - $item["body"] = $nickname . " " . $item["body"]; + if ((strpos($item['body'], $nickname) === false) && (strpos($item['body'], $nicknameplain) === false)) { + $item['body'] = $nickname . ' ' . $item['body']; } } $msgarr = Plaintext::getPost($item, $max_char, true, 7); - $msg = $msgarr["text"]; + $msg = $msgarr['text']; - if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) { - $msg .= " " . $msgarr["url"]; + if (isset($msgarr['url']) && ($msgarr['type'] != 'photo')) { + $msg .= ' ' . $msgarr['url']; } - if (isset($msgarr["image"])) { - $msg .= " " . $msgarr["image"]; + if (isset($msgarr['image'])) { + $msg .= ' ' . $msgarr['image']; } $b['html'] = nl2br(htmlspecialchars($msg)); @@ -742,7 +745,7 @@ function statusnet_cron(App $a, $b) } Logger::notice('statusnet: importing timeline from user ' . $rr['uid']); - statusnet_fetchhometimeline($a, $rr["uid"], $rr["v"]); + statusnet_fetchhometimeline($a, $rr['uid'], $rr['v']); } Logger::notice('statusnet: cron_end'); @@ -750,7 +753,7 @@ function statusnet_cron(App $a, $b) DI::config()->set('statusnet', 'last_poll', time()); } -function statusnet_fetchtimeline(App $a, $uid) +function statusnet_fetchtimeline(App $a, int $uid) { $ckey = DI::pConfig()->get($uid, 'statusnet', 'consumerkey'); $csecret = DI::pConfig()->get($uid, 'statusnet', 'consumersecret'); @@ -759,26 +762,30 @@ function statusnet_fetchtimeline(App $a, $uid) $osecret = DI::pConfig()->get($uid, 'statusnet', 'oauthsecret'); $lastid = DI::pConfig()->get($uid, 'statusnet', 'lastid'); - require_once 'mod/item.php'; // get the application name for the SN app // 1st try personal config, then system config and fallback to the // hostname of the node if neither one is set. $application_name = DI::pConfig()->get($uid, 'statusnet', 'application_name'); - if ($application_name == "") { + if ($application_name == '') { $application_name = DI::config()->get('statusnet', 'application_name'); } - if ($application_name == "") { + if ($application_name == '') { $application_name = DI::baseUrl()->getHostname(); } $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret); - $parameters = ["exclude_replies" => true, "trim_user" => true, "contributor_details" => false, "include_rts" => false]; + $parameters = [ + 'exclude_replies' => true, + 'trim_user' => true, + 'contributor_details' => false, + 'include_rts' => false, + ]; - $first_time = ($lastid == ""); + $first_time = ($lastid == ''); - if ($lastid <> "") { - $parameters["since_id"] = $lastid; + if ($lastid != '') { + $parameters['since_id'] = $lastid; } $items = $connection->get('statuses/user_timeline', $parameters); @@ -798,7 +805,7 @@ function statusnet_fetchtimeline(App $a, $uid) continue; } - if ($post->source == "activity") { + if ($post->source == 'activity') { continue; } @@ -806,51 +813,38 @@ function statusnet_fetchtimeline(App $a, $uid) continue; } - if ($post->in_reply_to_status_id != "") { + if ($post->in_reply_to_status_id != '') { continue; } if (!stristr($post->source, $application_name)) { - $_SESSION["authenticated"] = true; - $_SESSION["uid"] = $uid; - - unset($_REQUEST); - $_REQUEST["api_source"] = true; - $_REQUEST["profile_uid"] = $uid; - //$_REQUEST["source"] = "StatusNet"; - $_REQUEST["source"] = $post->source; - $_REQUEST["extid"] = Protocol::STATUSNET; - - if (isset($post->id)) { - $_REQUEST['message_id'] = Item::newURI($uid, Protocol::STATUSNET . ":" . $post->id); - } - - //$_REQUEST["date"] = $post->created_at; + $postarray['uid'] = $uid; + $postarray['app'] = $post->source; + $postarray['extid'] = Protocol::STATUSNET; - $_REQUEST["title"] = ""; + $postarray['title'] = ''; - $_REQUEST["body"] = $post->text; + $postarray['body'] = $post->text; if (is_string($post->place->name)) { - $_REQUEST["location"] = $post->place->name; + $postarray['location'] = $post->place->name; } if (is_string($post->place->full_name)) { - $_REQUEST["location"] = $post->place->full_name; + $postarray['location'] = $post->place->full_name; } if (is_array($post->geo->coordinates)) { - $_REQUEST["coord"] = $post->geo->coordinates[0] . " " . $post->geo->coordinates[1]; + $postarray['coord'] = $post->geo->coordinates[0] . ' ' . $post->geo->coordinates[1]; } if (is_array($post->coordinates->coordinates)) { - $_REQUEST["coord"] = $post->coordinates->coordinates[1] . " " . $post->coordinates->coordinates[0]; + $postarray['coord'] = $post->coordinates->coordinates[1] . ' ' . $post->coordinates->coordinates[0]; } - //print_r($_REQUEST); - if ($_REQUEST["body"] != "") { + if ($postarray['body'] != '') { Logger::notice('statusnet: posting for user ' . $uid); - item_post($a); + Item::insert($postarray, true); } } } @@ -865,7 +859,7 @@ function statusnet_address($contact) $hostname = preg_replace("=https?://([\w\.]*)/.*=ism", "$1", $contact->statusnet_profile_url); - $address = $contact->screen_name . "@" . $hostname; + $address = $contact->screen_name . '@' . $hostname; return $address; } @@ -883,8 +877,8 @@ function statusnet_fetch_contact($uid, $contact, $create_user) return 0; } - if (DBA::isResult($contact_record) && ($contact_record["readonly"] || $contact_record["blocked"])) { - Logger::info("statusnet_fetch_contact: Contact '" . $contact_record["nick"] . "' is blocked or readonly."); + if (DBA::isResult($contact_record) && ($contact_record['readonly'] || $contact_record['blocked'])) { + Logger::info('statusnet_fetch_contact: Contact "' . $contact_record['nick'] . '" is blocked or readonly.'); return -1; } @@ -937,7 +931,7 @@ function statusnet_fetch_contact($uid, $contact, $create_user) // check that we have all the photos, this has been known to fail on occasion if ((!$contact_record['photo']) || (!$contact_record['thumb']) || (!$contact_record['micro']) || ($update_photo)) { - Logger::info("statusnet_fetch_contact: Updating contact " . $contact->screen_name); + Logger::info('statusnet_fetch_contact: Updating contact ' . $contact->screen_name); $photos = Photo::importProfilePhoto($contact->profile_image_url, $uid, $contact_record['id']); @@ -959,10 +953,10 @@ function statusnet_fetch_contact($uid, $contact, $create_user) } } - return $contact_record["id"]; + return $contact_record['id']; } -function statusnet_fetchuser(App $a, $uid, $screen_name = "", $user_id = "") +function statusnet_fetchuser(App $a, $uid, $screen_name = '', $user_id = '') { $ckey = DI::pConfig()->get($uid, 'statusnet', 'consumerkey'); $csecret = DI::pConfig()->get($uid, 'statusnet', 'consumersecret'); @@ -983,12 +977,12 @@ function statusnet_fetchuser(App $a, $uid, $screen_name = "", $user_id = "") $parameters = []; - if ($screen_name != "") { - $parameters["screen_name"] = $screen_name; + if ($screen_name != '') { + $parameters['screen_name'] = $screen_name; } - if ($user_id != "") { - $parameters["user_id"] = $user_id; + if ($user_id != '') { + $parameters['user_id'] = $user_id; } // Fetching user data @@ -1003,9 +997,9 @@ function statusnet_fetchuser(App $a, $uid, $screen_name = "", $user_id = "") return $contact_id; } -function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_existing_contact) +function statusnet_createpost(App $a, int $uid, $post, $self, $create_user, bool $only_existing_contact) { - Logger::info("statusnet_createpost: start"); + Logger::info('statusnet_createpost: start'); $api = DI::pConfig()->get($uid, 'statusnet', 'baseapi'); $hostname = preg_replace("=https?://([\w\.]*)/.*=ism", "$1", $api); @@ -1022,16 +1016,16 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $content = $post; } - $postarray['uri'] = $hostname . "::" . $content->id; + $postarray['uri'] = $hostname . '::' . $content->id; if (Post::exists(['extid' => $postarray['uri'], 'uid' => $uid])) { return []; } - $contactid = 0; + $contactId = 0; if (!empty($content->in_reply_to_status_id)) { - $thr_parent = $hostname . "::" . $content->in_reply_to_status_id; + $thr_parent = $hostname . '::' . $content->in_reply_to_status_id; $item = Post::selectFirst(['uri'], ['uri' => $thr_parent, 'uid' => $uid]); if (!DBA::isResult($item)) { @@ -1049,13 +1043,13 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $own_url = DI::pConfig()->get($uid, 'statusnet', 'own_url'); if ($content->user->id == $own_url) { - $self = DBA::selectFirst([], ['self' => true, 'uid' => $uid]); + $self = DBA::selectFirst('contact', [], ['self' => true, 'uid' => $uid]); if (DBA::isResult($self)) { - $contactid = $self["id"]; + $contactId = $self['id']; - $postarray['owner-name'] = $self["name"]; - $postarray['owner-link'] = $self["url"]; - $postarray['owner-avatar'] = $self["photo"]; + $postarray['owner-name'] = $self['name']; + $postarray['owner-link'] = $self['url']; + $postarray['owner-avatar'] = $self['photo']; } else { return []; } @@ -1066,19 +1060,19 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $postarray['object-type'] = Activity\ObjectType::NOTE; } - if ($contactid == 0) { - $contactid = statusnet_fetch_contact($uid, $post->user, $create_user); + if ($contactId == 0) { + $contactId = statusnet_fetch_contact($uid, $post->user, $create_user); $postarray['owner-name'] = $post->user->name; $postarray['owner-link'] = $post->user->statusnet_profile_url; $postarray['owner-avatar'] = $post->user->profile_image_url; } - if (($contactid == 0) && !$only_existing_contact) { - $contactid = $self['id']; - } elseif ($contactid <= 0) { + if (($contactId == 0) && !$only_existing_contact) { + $contactId = $self['id']; + } elseif ($contactId <= 0) { return []; } - $postarray['contact-id'] = $contactid; + $postarray['contact-id'] = $contactId; $postarray['verb'] = Activity::POST; @@ -1087,7 +1081,7 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $postarray['author-avatar'] = $content->user->profile_image_url; // To-Do: Maybe unreliable? Can the api be entered without trailing "/"? - $hostname = str_replace("/api/", "/notice/", DI::pConfig()->get($uid, 'statusnet', 'baseapi')); + $hostname = str_replace('/api/', '/notice/', DI::pConfig()->get($uid, 'statusnet', 'baseapi')); $postarray['plink'] = $hostname . $content->id; $postarray['app'] = strip_tags($content->source); @@ -1105,22 +1099,22 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $postarray['edited'] = DateTimeFormat::utc($content->created_at); if (!empty($content->place->name)) { - $postarray["location"] = $content->place->name; + $postarray['location'] = $content->place->name; } if (!empty($content->place->full_name)) { - $postarray["location"] = $content->place->full_name; + $postarray['location'] = $content->place->full_name; } if (!empty($content->geo->coordinates)) { - $postarray["coord"] = $content->geo->coordinates[0] . " " . $content->geo->coordinates[1]; + $postarray['coord'] = $content->geo->coordinates[0] . ' ' . $content->geo->coordinates[1]; } if (!empty($content->coordinates->coordinates)) { - $postarray["coord"] = $content->coordinates->coordinates[1] . " " . $content->coordinates->coordinates[0]; + $postarray['coord'] = $content->coordinates->coordinates[1] . ' ' . $content->coordinates->coordinates[0]; } - Logger::info("statusnet_createpost: end"); + Logger::info('statusnet_createpost: end'); return $postarray; } @@ -1139,7 +1133,7 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) // "create_user" is deactivated, since currently you cannot add users manually by now $create_user = true; - Logger::info("statusnet_fetchhometimeline: Fetching for user " . $uid); + Logger::info('statusnet_fetchhometimeline: Fetching for user ' . $uid); $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret); @@ -1151,36 +1145,41 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) $contact = Contact::selectFirst([], ['id' => $own_contact, 'uid' => $uid]); if (DBA::isResult($contact)) { - $nick = $contact["nick"]; + $nick = $contact['nick']; } else { - Logger::info("statusnet_fetchhometimeline: Own GNU Social contact not found for user " . $uid); + Logger::info('statusnet_fetchhometimeline: Own GNU Social contact not found for user ' . $uid); return; } $self = Contact::selectFirst([], ['self' => true, 'uid' => $uid]); if (!DBA::isResult($self)) { - Logger::info("statusnet_fetchhometimeline: Own contact not found for user " . $uid); + Logger::info('statusnet_fetchhometimeline: Own contact not found for user ' . $uid); return; } $user = User::getById($uid); if (!DBA::isResult($user)) { - Logger::info("statusnet_fetchhometimeline: Own user not found for user " . $uid); + Logger::info('statusnet_fetchhometimeline: Own user not found for user ' . $uid); return; } - $parameters = ["exclude_replies" => false, "trim_user" => false, "contributor_details" => true, "include_rts" => true]; - //$parameters["count"] = 200; + $parameters = [ + 'exclude_replies' => false, + 'trim_user' => false, + 'contributor_details' => true, + 'include_rts' => true, + //'count' => 200, + ]; if ($mode == 1) { // Fetching timeline $lastid = DI::pConfig()->get($uid, 'statusnet', 'lasthometimelineid'); //$lastid = 1; - $first_time = ($lastid == ""); + $first_time = ($lastid == ''); - if ($lastid != "") { - $parameters["since_id"] = $lastid; + if ($lastid != '') { + $parameters['since_id'] = $lastid; } $items = $connection->get('statuses/home_timeline', $parameters); @@ -1193,16 +1192,16 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) } elseif (is_string($items) || is_float($items) || is_int($items)) { $errormsg = $items; } else { - $errormsg = "Unknown error"; + $errormsg = 'Unknown error'; } - Logger::info("statusnet_fetchhometimeline: Error fetching home timeline: " . $errormsg); + Logger::info('statusnet_fetchhometimeline: Error fetching home timeline: ' . $errormsg); return; } $posts = array_reverse($items); - Logger::info("statusnet_fetchhometimeline: Fetching timeline for user " . $uid . " " . sizeof($posts) . " items"); + Logger::info('statusnet_fetchhometimeline: Fetching timeline for user ' . $uid . ' ' . sizeof($posts) . ' items'); if (count($posts)) { foreach ($posts as $post) { @@ -1223,14 +1222,14 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) } else { $postarray = statusnet_createpost($a, $uid, $post, $self, $create_user, true); - if (trim($postarray['body']) == "") { + if (trim($postarray['body']) == '') { continue; } $item = Item::insert($postarray); - $postarray["id"] = $item; + $postarray['id'] = $item; - Logger::notice('statusnet_fetchhometimeline: User ' . $self["nick"] . ' posted home timeline item ' . $item); + Logger::notice('statusnet_fetchhometimeline: User ' . $self['nick'] . ' posted home timeline item ' . $item); } } } @@ -1239,22 +1238,22 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) // Fetching mentions $lastid = DI::pConfig()->get($uid, 'statusnet', 'lastmentionid'); - $first_time = ($lastid == ""); + $first_time = ($lastid == ''); - if ($lastid != "") { - $parameters["since_id"] = $lastid; + if ($lastid != '') { + $parameters['since_id'] = $lastid; } $items = $connection->get('statuses/mentions_timeline', $parameters); if (!is_array($items)) { - Logger::info("statusnet_fetchhometimeline: Error fetching mentions: " . print_r($items, true)); + Logger::info('statusnet_fetchhometimeline: Error fetching mentions: ' . print_r($items, true)); return; } $posts = array_reverse($items); - Logger::info("statusnet_fetchhometimeline: Fetching mentions for user " . $uid . " " . sizeof($posts) . " items"); + Logger::info('statusnet_fetchhometimeline: Fetching mentions for user ' . $uid . ' ' . sizeof($posts) . ' items'); if (count($posts)) { foreach ($posts as $post) { @@ -1274,13 +1273,13 @@ function statusnet_fetchhometimeline(App $a, $uid, $mode = 1) $conversations[$post->statusnet_conversation_id] = $post->statusnet_conversation_id; } } else { - if (trim($postarray['body']) == "") { + if (trim($postarray['body']) == '') { continue; } $item = Item::insert($postarray); - Logger::notice('statusnet_fetchhometimeline: User ' . $self["nick"] . ' posted mention timeline item ' . $item); + Logger::notice('statusnet_fetchhometimeline: User ' . $self['nick'] . ' posted mention timeline item ' . $item); } } } @@ -1299,7 +1298,7 @@ function statusnet_complete_conversation(App $a, $uid, $self, $create_user, $nic $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret); - $parameters["count"] = 200; + $parameters['count'] = 200; $items = $connection->get('statusnet/conversation/' . $conversation, $parameters); if (is_array($items)) { @@ -1313,9 +1312,9 @@ function statusnet_complete_conversation(App $a, $uid, $self, $create_user, $nic } $item = Item::insert($postarray); - $postarray["id"] = $item; + $postarray['id'] = $item; - Logger::notice('statusnet_complete_conversation: User ' . $self["nick"] . ' posted home timeline item ' . $item); + Logger::notice('statusnet_complete_conversation: User ' . $self['nick'] . ' posted home timeline item ' . $item); } } } @@ -1324,19 +1323,16 @@ function statusnet_convertmsg(App $a, $body) { $body = preg_replace("=\[url\=https?://([0-9]*).([0-9]*).([0-9]*).([0-9]*)/([0-9]*)\](.*?)\[\/url\]=ism", "$1.$2.$3.$4/$5", $body); - $URLSearchString = "^\[\]"; + $URLSearchString = '^\[\]'; $links = preg_match_all("/[^!#@]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", $body, $matches, PREG_SET_ORDER); - $footer = ""; - $footerurl = ""; - $footerlink = ""; - $type = ""; + $footer = $footerurl = $footerlink = $type = ''; if ($links) { foreach ($matches AS $match) { - $search = "[url=" . $match[1] . "]" . $match[2] . "[/url]"; + $search = '[url=' . $match[1] . ']' . $match[2] . '[/url]'; - Logger::info("statusnet_convertmsg: expanding url " . $match[1]); + Logger::info('statusnet_convertmsg: expanding url ' . $match[1]); try { $expanded_url = DI::httpClient()->finalUrl($match[1]); @@ -1345,56 +1341,56 @@ function statusnet_convertmsg(App $a, $body) $expanded_url = $match[1]; } - Logger::info("statusnet_convertmsg: fetching data for " . $expanded_url); + Logger::info('statusnet_convertmsg: fetching data for ' . $expanded_url); $oembed_data = OEmbed::fetchURL($expanded_url, true); - Logger::info("statusnet_convertmsg: fetching data: done"); + Logger::info('statusnet_convertmsg: fetching data: done'); - if ($type == "") { + if ($type == '') { $type = $oembed_data->type; } - if ($oembed_data->type == "video") { - //$body = str_replace($search, "[video]".$expanded_url."[/video]", $body); + if ($oembed_data->type == 'video') { + //$body = str_replace($search, '[video]'.$expanded_url.'[/video]', $body); $type = $oembed_data->type; $footerurl = $expanded_url; - $footerlink = "[url=" . $expanded_url . "]" . $expanded_url . "[/url]"; + $footerlink = '[url=' . $expanded_url . ']' . $expanded_url . '[/url]'; $body = str_replace($search, $footerlink, $body); - } elseif (($oembed_data->type == "photo") && isset($oembed_data->url)) { - $body = str_replace($search, "[url=" . $expanded_url . "][img]" . $oembed_data->url . "[/img][/url]", $body); - } elseif ($oembed_data->type != "link") { - $body = str_replace($search, "[url=" . $expanded_url . "]" . $expanded_url . "[/url]", $body); + } elseif (($oembed_data->type == 'photo') && isset($oembed_data->url)) { + $body = str_replace($search, '[url=' . $expanded_url . '][img]' . $oembed_data->url . '[/img][/url]', $body); + } elseif ($oembed_data->type != 'link') { + $body = str_replace($search, '[url=' . $expanded_url . ']' . $expanded_url . '[/url]', $body); } else { - $img_str = DI::httpClient()->fetch($expanded_url, 4); + $img_str = DI::httpClient()->fetch($expanded_url, HttpClientAccept::DEFAULT, 4); - $tempfile = tempnam(System::getTempPath(), "cache"); + $tempfile = tempnam(System::getTempPath(), 'cache'); file_put_contents($tempfile, $img_str); $mime = mime_content_type($tempfile); unlink($tempfile); - if (substr($mime, 0, 6) == "image/") { - $type = "photo"; - $body = str_replace($search, "[img]" . $expanded_url . "[/img]", $body); + if (substr($mime, 0, 6) == 'image/') { + $type = 'photo'; + $body = str_replace($search, '[img]' . $expanded_url . '[/img]', $body); } else { $type = $oembed_data->type; $footerurl = $expanded_url; - $footerlink = "[url=" . $expanded_url . "]" . $expanded_url . "[/url]"; + $footerlink = '[url=' . $expanded_url . ']' . $expanded_url . '[/url]'; $body = str_replace($search, $footerlink, $body); } } } - if ($footerurl != "") { + if ($footerurl != '') { $footer = "\n" . PageInfo::getFooterFromUrl($footerurl); } - if (($footerlink != "") && (trim($footer) != "")) { - $removedlink = trim(str_replace($footerlink, "", $body)); + if (($footerlink != '') && (trim($footer) != '')) { + $removedlink = trim(str_replace($footerlink, '', $body)); - if (($removedlink == "") || strstr($body, $removedlink)) { + if (($removedlink == '') || strstr($body, $removedlink)) { $body = $removedlink; } @@ -1405,7 +1401,7 @@ function statusnet_convertmsg(App $a, $body) return $body; } -function statusnet_fetch_own_contact(App $a, $uid) +function statusnet_fetch_own_contact(App $a, int $uid) { $ckey = DI::pConfig()->get($uid, 'statusnet', 'consumerkey'); $csecret = DI::pConfig()->get($uid, 'statusnet', 'consumersecret'); @@ -1416,7 +1412,7 @@ function statusnet_fetch_own_contact(App $a, $uid) $contact_id = 0; - if ($own_url == "") { + if ($own_url == '') { $connection = new StatusNetOAuth($api, $ckey, $csecret, $otoken, $osecret); // Fetching user data @@ -1432,7 +1428,7 @@ function statusnet_fetch_own_contact(App $a, $uid) } else { $contact = Contact::selectFirst([], ['uid' => $uid, 'alias' => $own_url]); if (DBA::isResult($contact)) { - $contact_id = $contact["id"]; + $contact_id = $contact['id']; } else { DI::pConfig()->delete($uid, 'statusnet', 'own_url'); } @@ -1440,18 +1436,18 @@ function statusnet_fetch_own_contact(App $a, $uid) return $contact_id; } -function statusnet_is_retweet(App $a, $uid, $body) +function statusnet_is_retweet(App $a, int $uid, string $body) { $body = trim($body); // Skip if it isn't a pure repeated messages // Does it start with a share? - if (strpos($body, "[share") > 0) { + if (strpos($body, '[share') > 0) { return false; } // Does it end with a share? - if (strlen($body) > (strrpos($body, "[/share]") + 8)) { + if (strlen($body) > (strrpos($body, '[/share]') + 8)) { return false; } @@ -1461,7 +1457,7 @@ function statusnet_is_retweet(App $a, $uid, $body) return false; } - $link = ""; + $link = ''; preg_match("/link='(.*?)'/ism", $attributes, $matches); if (!empty($matches[1])) { $link = $matches[1];