X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=statusnet%2Fstatusnet.php;h=bb51e24ba6287bc2822a032ea0d4f8076cd44b43;hb=f4f61aa1518857247f012f27e28e45a9d0813090;hp=f75d23460ac8679d3c04d89f0d0587371fd88f3d;hpb=cf6bf67fd8dc1e756fa3bfc30d4e1e7cb0cbde51;p=friendica-addons.git diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index f75d2346..bb51e24b 100644 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -40,6 +40,7 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR . ' use CodebirdSN\CodebirdSN; use Friendica\App; use Friendica\Content\OEmbed; +use Friendica\Content\PageInfo; use Friendica\Content\Text\HTML; use Friendica\Content\Text\Plaintext; use Friendica\Core\Hook; @@ -51,12 +52,11 @@ use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\Group; use Friendica\Model\Item; -use Friendica\Model\ItemContent; use Friendica\Model\Photo; +use Friendica\Model\Post; use Friendica\Model\User; use Friendica\Protocol\Activity; use Friendica\Util\DateTimeFormat; -use Friendica\Util\Network; use Friendica\Util\Strings; function statusnet_install() @@ -74,24 +74,6 @@ function statusnet_install() Logger::log("installed GNU Social"); } -function statusnet_uninstall() -{ - Hook::unregister('connector_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings'); - Hook::unregister('connector_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post'); - Hook::unregister('notifier_normal', 'addon/statusnet/statusnet.php', 'statusnet_post_hook'); - Hook::unregister('hook_fork', 'addon/statusnet/statusnet.php', 'statusnet_hook_fork'); - Hook::unregister('post_local', 'addon/statusnet/statusnet.php', 'statusnet_post_local'); - Hook::unregister('jot_networks', 'addon/statusnet/statusnet.php', 'statusnet_jot_nets'); - Hook::unregister('cron', 'addon/statusnet/statusnet.php', 'statusnet_cron'); - Hook::unregister('prepare_body', 'addon/statusnet/statusnet.php', 'statusnet_prepare_body'); - Hook::unregister('check_item_notification', 'addon/statusnet/statusnet.php', 'statusnet_check_item_notification'); - - // old setting - remove only - Hook::unregister('post_local_end', 'addon/statusnet/statusnet.php', 'statusnet_post_hook'); - Hook::unregister('addon_settings', 'addon/statusnet/statusnet.php', 'statusnet_settings'); - Hook::unregister('addon_settings_post', 'addon/statusnet/statusnet.php', 'statusnet_settings_post'); -} - function statusnet_check_item_notification(App $a, &$notification_data) { if (DI::pConfig()->get($notification_data["uid"], 'statusnet', 'post')) { @@ -154,7 +136,7 @@ function statusnet_settings_post(App $a, $post) foreach ($globalsn as $asn) { if ($asn['apiurl'] == $_POST['statusnet-preconf-apiurl']) { $apibase = $asn['apiurl']; - $c = Network::fetchUrl($apibase . 'statusnet/version.xml'); + $c = DI::httpRequest()->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']); @@ -172,7 +154,7 @@ function statusnet_settings_post(App $a, $post) // we'll check the API Version for that, if we don't get one we'll try to fix the path but will // resign quickly after this one try to fix the path ;-) $apibase = $_POST['statusnet-baseapi']; - $c = Network::fetchUrl($apibase . 'statusnet/version.xml'); + $c = DI::httpRequest()->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']); @@ -182,7 +164,7 @@ function statusnet_settings_post(App $a, $post) } else { // the API path is not correct, maybe missing trailing / ? $apibase = $apibase . '/'; - $c = Network::fetchUrl($apibase . 'statusnet/version.xml'); + $c = DI::httpRequest()->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']); @@ -223,8 +205,6 @@ function statusnet_settings_post(App $a, $post) if (!intval($_POST['statusnet-mirror'])) DI::pConfig()->delete(local_user(), 'statusnet', 'lastid'); - - info(DI::l10n()->t('GNU Social settings updated.') . EOL); } } } @@ -422,7 +402,7 @@ function statusnet_hook_fork(App $a, array &$b) if (DI::pConfig()->get($post['uid'], 'statusnet', 'import')) { // Don't fork if it isn't a reply to a GNU Social post - if (($post['parent'] != $post['id']) && !Item::exists(['id' => $post['parent'], 'network' => Protocol::STATUSNET])) { + if (($post['parent'] != $post['id']) && !Post::exists(['id' => $post['parent'], 'network' => Protocol::STATUSNET])) { Logger::log('No GNU Social parent found for item ' . $post['id']); $b['execute'] = false; return; @@ -501,6 +481,8 @@ function statusnet_post_hook(App $a, &$b) return; } + $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']); + $api = DI::pConfig()->get($b["uid"], 'statusnet', 'baseapi'); $hostname = preg_replace("=https?://([\w\.]*)/.*=ism", "$1", $api); @@ -515,7 +497,7 @@ function statusnet_post_hook(App $a, &$b) } $condition = ['uri' => $b["thr-parent"], 'uid' => $b["uid"]]; - $orig_post = Item::selectFirst(['author-link', 'uri'], $condition); + $orig_post = Post::selectFirst(['author-link', 'uri'], $condition); if (!DBA::isResult($orig_post)) { Logger::log("statusnet_post_hook: no parent found " . $b["thr-parent"]); return; @@ -597,7 +579,7 @@ function statusnet_post_hook(App $a, &$b) DI::pConfig()->set($b['uid'], 'statusnet', 'max_char', $max_char); $tempfile = ""; - $msgarr = ItemContent::getPlaintextPost($b, $max_char, true, 7); + $msgarr = Plaintext::getPost($b, $max_char, true, 7); $msg = $msgarr["text"]; if (($msg == "") && isset($msgarr["title"])) @@ -612,7 +594,7 @@ function statusnet_post_hook(App $a, &$b) } if ($image != "") { - $img_str = Network::fetchUrl($image); + $img_str = DI::httpRequest()->fetch($image); $tempfile = tempnam(get_temppath(), "cache"); file_put_contents($tempfile, $img_str); $postdata = ["status" => $msg, "media[]" => $tempfile]; @@ -736,7 +718,7 @@ function statusnet_prepare_body(App $a, &$b) $item["plink"] = DI::baseUrl()->get() . "/display/" . $item["guid"]; $condition = ['uri' => $item["thr-parent"], 'uid' => local_user()]; - $orig_post = Item::selectFirst(['author-link', 'uri'], $condition); + $orig_post = Post::selectFirst(['author-link', 'uri'], $condition); if (DBA::isResult($orig_post)) { $nick = preg_replace("=https?://(.*)/(.*)=ism", "$2", $orig_post["author-link"]); @@ -748,7 +730,7 @@ function statusnet_prepare_body(App $a, &$b) } } - $msgarr = ItemContent::getPlaintextPost($item, $max_char, true, 7); + $msgarr = Plaintext::getPost($item, $max_char, true, 7); $msg = $msgarr["text"]; if (isset($msgarr["url"]) && ($msgarr["type"] != "photo")) { @@ -896,7 +878,7 @@ function statusnet_fetchtimeline(App $a, $uid) $_REQUEST["title"] = ""; - $_REQUEST["body"] = add_page_info_to_body($post->text, true); + $_REQUEST["body"] = $post->text; if (is_string($post->place->name)) { $_REQUEST["location"] = $post->place->name; } @@ -1117,31 +1099,24 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex $postarray['uri'] = $hostname . "::" . $content->id; - if (Item::exists(['extid' => $postarray['uri'], 'uid' => $uid])) { + if (Post::exists(['extid' => $postarray['uri'], 'uid' => $uid])) { return []; } $contactid = 0; if (!empty($content->in_reply_to_status_id)) { + $thr_parent = $hostname . "::" . $content->in_reply_to_status_id; - $parent = $hostname . "::" . $content->in_reply_to_status_id; - - $fields = ['uri', 'parent-uri', 'parent']; - $item = Item::selectFirst($fields, ['uri' => $parent, 'uid' => $uid]); - + $item = Post::selectFirst(['uri'], ['uri' => $thr_parent, 'uid' => $uid]); if (!DBA::isResult($item)) { - $item = Item::selectFirst($fields, ['extid' => $parent, 'uid' => $uid]); + $item = Post::selectFirst(['uri'], ['extid' => $thr_parent, 'uid' => $uid]); } if (DBA::isResult($item)) { $postarray['thr-parent'] = $item['uri']; - $postarray['parent-uri'] = $item['parent-uri']; - $postarray['parent'] = $item['parent']; $postarray['object-type'] = Activity\ObjectType::COMMENT; } else { - $postarray['thr-parent'] = $postarray['uri']; - $postarray['parent-uri'] = $postarray['uri']; $postarray['object-type'] = Activity\ObjectType::NOTE; } @@ -1165,7 +1140,6 @@ function statusnet_createpost(App $a, $uid, $post, $self, $create_user, $only_ex // Don't create accounts of people who just comment something $create_user = false; } else { - $postarray['parent-uri'] = $postarray['uri']; $postarray['object-type'] = Activity\ObjectType::NOTE; } @@ -1449,7 +1423,7 @@ function statusnet_convertmsg(App $a, $body) Logger::log("statusnet_convertmsg: expanding url " . $match[1], Logger::DEBUG); - $expanded_url = Network::finalUrl($match[1]); + $expanded_url = DI::httpRequest()->finalUrl($match[1]); Logger::log("statusnet_convertmsg: fetching data for " . $expanded_url, Logger::DEBUG); @@ -1473,7 +1447,7 @@ function statusnet_convertmsg(App $a, $body) } elseif ($oembed_data->type != "link") { $body = str_replace($search, "[url=" . $expanded_url . "]" . $expanded_url . "[/url]", $body); } else { - $img_str = Network::fetchUrl($expanded_url, true, 4); + $img_str = DI::httpRequest()->fetch($expanded_url, 4); $tempfile = tempnam(get_temppath(), "cache"); file_put_contents($tempfile, $img_str); @@ -1494,7 +1468,7 @@ function statusnet_convertmsg(App $a, $body) } if ($footerurl != "") { - $footer = add_page_info($footerurl); + $footer = "\n" . PageInfo::getFooterFromUrl($footerurl); } if (($footerlink != "") && (trim($footer) != "")) {