]> git.mxchange.org Git - friendica.git/commitdiff
Remove /display/{nick}/{id} URL structure publishing
authorHypolite Petovan <hypolite@mrpetovan.com>
Mon, 29 Apr 2019 04:40:58 +0000 (00:40 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Thu, 2 May 2019 21:04:17 +0000 (17:04 -0400)
- Remove support for defunct Friendica F-Droid app

mod/notify.php
mod/ping.php
mod/subthread.php
mod/tagger.php
src/App.php
src/Model/Item.php
src/Protocol/DFRN.php

index 87035817841d637b957037051ca087b34a9551ba..7f9974d30a1e5737b1d61ddc4dd089a29641c70e 100644 (file)
@@ -26,18 +26,6 @@ function notify_init(App $a)
                $note = $nm->getByID($a->argv[2]);
                if ($note) {
                        $nm->setSeen($note);
-
-                       // The friendica client has problems with the GUID. this is some workaround
-                       if ($a->isFriendicaApp()) {
-                               require_once("include/items.php");
-                               $urldata = parse_url($note['link']);
-                               $guid = basename($urldata["path"]);
-                               $itemdata = Item::getIdAndNickByGuid($guid, local_user());
-                               if ($itemdata["id"] != 0) {
-                                       $note['link'] = System::baseUrl().'/display/'.$itemdata["nick"].'/'.$itemdata["id"];
-                               }
-                       }
-
                        System::externalRedirect($note['link']);
                }
 
index b89cb9246c29b45c5fe9656c0c569ee4b140d924..9b844cc48ddc02ad7ce52f3753e20f3d74cd08ce 100644 (file)
@@ -313,14 +313,7 @@ function ping_init(App $a)
                usort($notifs, $sort_function);
 
                if (DBA::isResult($notifs)) {
-                       // Are the nofications called from the regular process or via the friendica app?
-                       $regularnotifications = (!empty($_GET['uid']) && !empty($_GET['_']));
-
                        foreach ($notifs as $notif) {
-                               if ($a->isFriendicaApp() || !$regularnotifications) {
-                                       $notif['message'] = str_replace("{0}", $notif['name'], $notif['message']);
-                               }
-
                                $contact = Contact::getDetailsByURL($notif['url']);
                                if (isset($contact['micro'])) {
                                        $notif['photo'] = ProxyUtils::proxifyUrl($contact['micro'], false, ProxyUtils::SIZE_MICRO);
index 23ebf4fe4858f40a7f46f2bde0a6251852edb09d..9fa1a410d37130eff5ad646e84f840c0c1011ba5 100644 (file)
@@ -87,7 +87,7 @@ function subthread_content(App $a) {
 
        $post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status'));
        $objtype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE );
-       $link = XML::escape('<link rel="alternate" type="text/html" href="' . System::baseUrl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n");
+       $link = XML::escape('<link rel="alternate" type="text/html" href="' . System::baseUrl() . '/display/' . $item['guid'] . '" />' . "\n");
        $body = $item['body'];
 
        $obj = <<< EOT
@@ -128,7 +128,7 @@ EOT;
 
        $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
        $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
-       $plink = '[url=' . System::baseUrl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
+       $plink = '[url=' . System::baseUrl() . '/display/' . $item['guid'] . ']' . $post_type . '[/url]';
        $arr['body'] =  sprintf( $bodyverb, $ulink, $alink, $plink );
 
        $arr['verb'] = $activity;
index 7cb43e330c951989b94e61cb7375dfe9836e20f0..5d3d1923e4425958b4d53a00e3ea436cd8553c76 100644 (file)
@@ -40,14 +40,12 @@ function tagger_content(App $a) {
        }
 
        $owner_uid = $item['uid'];
-       $owner_nick = '';
        $blocktags = 0;
 
-       $r = q("select `nickname`,`blocktags` from user where uid = %d limit 1",
+       $r = q("select `blocktags` from user where uid = %d limit 1",
                intval($owner_uid)
        );
        if (DBA::isResult($r)) {
-               $owner_nick = $r[0]['nickname'];
                $blocktags = $r[0]['blocktags'];
        }
 
@@ -69,12 +67,7 @@ function tagger_content(App $a) {
        $xterm = XML::escape($term);
        $post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status'));
        $targettype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE );
-
-       if ($owner_nick) {
-               $href = System::baseUrl() . '/display/' . $owner_nick . '/' . $item['id'];
-       } else {
-               $href = System::baseUrl() . '/display/' . $item['guid'];
-       }
+       $href = System::baseUrl() . '/display/' . $item['guid'];
 
        $link = XML::escape('<link rel="alternate" type="text/html" href="'. $href . '" />' . "\n");
 
index e89f450ba6c6d49f99cd5872ffe559d83db0475f..50e4364fda379cfeb6e21c21932f3a24e4bb9150 100644 (file)
@@ -87,11 +87,6 @@ class App
         */
        private $baseURL;
 
-       /**
-        * @var bool true, if the call is from the Friendica APP, otherwise false
-        */
-       private $isFriendicaApp;
-
        /**
         * @var bool true, if the call is from an backend node (f.e. worker)
         */
@@ -257,8 +252,6 @@ class App
                $this->profiler = $profiler;
                $this->logger   = $logger;
 
-               $this->checkFriendicaApp();
-
                $this->profiler->reset();
 
                $this->reload();
@@ -601,28 +594,6 @@ class App
                        $this->getBaseURL();
        }
 
-       /**
-        * Checks, if the call is from the Friendica App
-        *
-        * Reason:
-        * The friendica client has problems with the GUID in the notify. this is some workaround
-        */
-       private function checkFriendicaApp()
-       {
-               // Friendica-Client
-               $this->isFriendicaApp = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)';
-       }
-
-       /**
-        *      Is the call via the Friendica app? (not a "normale" call)
-        *
-        * @return bool true if it's from the Friendica app
-        */
-       public function isFriendicaApp()
-       {
-               return $this->isFriendicaApp;
-       }
-
        /**
         * @brief Checks if the site is called via a backend process
         *
index d85ed414fbe6ccad83a3386de2081c0870dcb998..387014d4b93e55883b1c90e0a081d4bc961be060 100644 (file)
@@ -2508,62 +2508,6 @@ class Item extends BaseObject
                        }, $item["body"]);
        }
 
-       public static function getGuidById($id)
-       {
-               $item = self::selectFirst(['guid'], ['id' => $id]);
-               if (DBA::isResult($item)) {
-                       return $item['guid'];
-               } else {
-                       return '';
-               }
-       }
-
-       /**
-        * This function is only used for the old Friendica app on Android that doesn't like paths with guid
-        *
-        * @param string $guid item guid
-        * @param int    $uid  user id
-        * @return array with id and nick of the item with the given guid
-        * @throws \Exception
-        */
-       public static function getIdAndNickByGuid($guid, $uid = 0)
-       {
-               $nick = "";
-               $id = 0;
-
-               if ($uid == 0) {
-                       $uid = local_user();
-               }
-
-               // Does the given user have this item?
-               if ($uid) {
-                       $item = self::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]);
-                       if (DBA::isResult($item)) {
-                               $user = DBA::selectFirst('user', ['nickname'], ['uid' => $uid]);
-                               if (!DBA::isResult($user)) {
-                                       return;
-                               }
-                               $id = $item['id'];
-                               $nick = $user['nickname'];
-                       }
-               }
-
-               // Or is it anywhere on the server?
-               if ($nick == "") {
-                       $condition = ["`guid` = ? AND `uid` != 0", $guid];
-                       $item = self::selectFirst(['id', 'uid'], $condition);
-                       if (DBA::isResult($item)) {
-                               $user = DBA::selectFirst('user', ['nickname'], ['uid' => $item['uid']]);
-                               if (!DBA::isResult($user)) {
-                                       return;
-                               }
-                               $id = $item['id'];
-                               $nick = $user['nickname'];
-                       }
-               }
-               return ["nick" => $nick, "id" => $id];
-       }
-
        /**
         * look for mention tags and setup a second delivery chain for forum/community posts if appropriate
         *
index b6252655acf651560314ae32dbbe0b57bc3aff07..1ceab79f65c37aa5074b03987c81982a35bb08c9 100644 (file)
@@ -359,7 +359,7 @@ class DFRN
                $ret = Item::select(Item::DELIVER_FIELDLIST, $condition);
                $items = Item::inArray($ret);
                if (!DBA::isResult($items)) {
-                       exit();
+                       return '';
                }
 
                $item = $items[0];
@@ -367,7 +367,7 @@ class DFRN
                if ($item['uid'] != 0) {
                        $owner = User::getOwnerDataById($item['uid']);
                        if (!$owner) {
-                               exit();
+                               return '';
                        }
                } else {
                        $owner = ['uid' => 0, 'nick' => 'feed-item'];
@@ -400,7 +400,7 @@ class DFRN
                                }
                        }
                } else {
-                       $root = self::entry($doc, $type, $item, $owner, true, 0, true);
+                       self::entry($doc, $type, $item, $owner, true, 0, true);
                }
 
                $atom = trim($doc->saveXML());
@@ -987,7 +987,7 @@ class DFRN
                }
 
                // Add conversation data. This is used for OStatus
-               $conversation_href = System::baseUrl()."/display/".$owner["nick"]."/".$item["parent"];
+               $conversation_href = System::baseUrl()."/display/".$item["parent-guid"];
                $conversation_uri = $conversation_href;
 
                if (isset($parent_item)) {
@@ -2212,14 +2212,13 @@ class DFRN
        /**
         * @brief Send a "poke"
         *
-        * @param array $item      the new item record
+        * @param array $item      The new item record
         * @param array $importer  Record of the importer user mixed with contact of the content
-        * @param int   $posted_id The record number of item record that was just posted
         * @return void
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @todo  set proper type-hints (array?)
         */
-       private static function doPoke($item, $importer, $posted_id)
+       private static function doPoke(array $item, array $importer)
        {
                $verb = urldecode(substr($item["verb"], strpos($item["verb"], "#")+1));
                if (!$verb) {
@@ -2244,8 +2243,6 @@ class DFRN
                        if ($Blink && Strings::compareLink($Blink, System::baseUrl() . "/profile/" . $importer["nickname"])) {
                                $author = DBA::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item['author-id']]);
 
-                               $item['id'] = $posted_id;
-
                                $parent = Item::selectFirst(['id'], ['uri' => $item['parent-uri'], 'uid' => $importer["importer_uid"]]);
                                $item["parent"] = $parent['id'];
 
@@ -2259,7 +2256,7 @@ class DFRN
                                        "to_email"     => $importer["email"],
                                        "uid"          => $importer["importer_uid"],
                                        "item"         => $item,
-                                       "link"         => System::baseUrl()."/display/".urlencode(Item::getGuidById($posted_id)),
+                                       "link"         => System::baseUrl()."/display/".urlencode($item['guid']),
                                        "source_name"  => $author["name"],
                                        "source_link"  => $author["url"],
                                        "source_photo" => $author["thumb"],
@@ -2754,7 +2751,8 @@ class DFRN
                        }
 
                        if (stristr($item["verb"], ACTIVITY_POKE)) {
-                               self::doPoke($item, $importer, $posted_id);
+                               $item['id'] = $posted_id;
+                               self::doPoke($item, $importer);
                        }
                }
        }