]> git.mxchange.org Git - friendica-addons.git/blobdiff - statusnet/statusnet.php
Update .drone.yml
[friendica-addons.git] / statusnet / statusnet.php
index 7708e3f4e2d6cdebec1514b0091068d8e74ce58d..bb51e24ba6287bc2822a032ea0d4f8076cd44b43 100644 (file)
@@ -52,8 +52,8 @@ 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;
@@ -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')) {
@@ -420,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;
@@ -499,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);
 
@@ -513,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;
@@ -595,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"]))
@@ -734,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"]);
 
@@ -746,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")) {
@@ -894,7 +878,7 @@ function statusnet_fetchtimeline(App $a, $uid)
 
                                $_REQUEST["title"] = "";
 
-                               $_REQUEST["body"] = PageInfo::searchAndAppendToBody($post->text, true);
+                               $_REQUEST["body"] = $post->text;
                                if (is_string($post->place->name)) {
                                        $_REQUEST["location"] = $post->place->name;
                                }
@@ -1115,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;
                }
 
@@ -1163,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;
        }
 
@@ -1471,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 = DI::httpRequest()->fetch($expanded_url, true, 4);
+                               $img_str = DI::httpRequest()->fetch($expanded_url, 4);
 
                                $tempfile = tempnam(get_temppath(), "cache");
                                file_put_contents($tempfile, $img_str);