]> git.mxchange.org Git - friendica.git/commitdiff
Replaced all preg calls in the calls with the new function
authorMichael <heluecht@pirati.ca>
Thu, 5 Dec 2019 06:42:10 +0000 (06:42 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 5 Dec 2019 06:42:10 +0000 (06:42 +0000)
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/Diaspora.php
src/Protocol/OStatus.php

index a9f5ed20a1976bab6ae936c52d6da951c2023603..5bb03a8517138f752194171a9aecf487cbd3adf2 100644 (file)
@@ -1401,23 +1401,12 @@ class Transmitter
         */
        public static function getAnnounceArray($item)
        {
-               if (!preg_match("/(.*?)\[share(.*?)\]\s?.*?\s?\[\/share\]\s?/ism", $item['body'], $matches)) {
+               $reshared = Item::getShareArray($item);
+               if (empty($reshared['guid'])) {
                        return [];
                }
 
-               $attributes = $matches[2];
-               $comment = $matches[1];
-
-               preg_match("/guid='(.*?)'/ism", $attributes, $matches);
-               if (empty($matches[1])) {
-                       preg_match('/guid="(.*?)"/ism', $attributes, $matches);
-               }
-
-               if (empty($matches[1])) {
-                       return [];
-               }
-
-               $reshared_item = Item::selectFirst([], ['guid' => $matches[1]]);
+               $reshared_item = Item::selectFirst([], ['guid' => $reshared['guid']]);
                if (!DBA::isResult($reshared_item)) {
                        return [];
                }
@@ -1431,7 +1420,7 @@ class Transmitter
                        return [];
                }
 
-               return ['object' => $reshared_item, 'actor' => $profile, 'comment' => trim($comment)];
+               return ['object' => $reshared_item, 'actor' => $profile, 'comment' => $reshared['comment']];
        }
 
        /**
index cf53d2fc26d6b42c7acdbee67047290c24d71c37..c52213972e1947063b38b581aea4709aa6abe876 100644 (file)
@@ -3391,69 +3391,37 @@ class Diaspora
        {
                $body = trim($body);
 
-               // Skip if it isn't a pure repeated messages
-               // Does it start with a share?
-               if ((strpos($body, "[share") > 0) && $complete) {
-                       return false;
-               }
-
-               // Does it end with a share?
-               if (strlen($body) > (strrpos($body, "[/share]") + 8)) {
+               $reshared = Item::getShareArray(['body' => $body]);
+               if (empty($reshared)) {
                        return false;
                }
 
-               $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism", "$1", $body);
-               // Skip if there is no shared message in there
-               if ($body == $attributes) {
+               // Skip if it isn't a pure repeated messages
+               // Does it start with a share?
+               if (!empty($reshared['comment']) && $complete) {
                        return false;
                }
 
-               // If we don't do the complete check we quit here
-
-               $guid = "";
-               preg_match("/guid='(.*?)'/ism", $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $guid = $matches[1];
-               }
-
-               preg_match('/guid="(.*?)"/ism', $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $guid = $matches[1];
-               }
-
-               if (($guid != "") && $complete) {
-                       $condition = ['guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
+               if (!empty($reshared['guid']) && $complete) {
+                       $condition = ['guid' => $reshared['guid'], 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
                        $item = Item::selectFirst(['contact-id'], $condition);
                        if (DBA::isResult($item)) {
                                $ret = [];
                                $ret["root_handle"] = self::handleFromContact($item["contact-id"]);
-                               $ret["root_guid"] = $guid;
+                               $ret["root_guid"] = $reshared['guid'];
                                return $ret;
                        } elseif ($complete) {
                                // We are resharing something that isn't a DFRN or Diaspora post.
                                // So we have to return "false" on "$complete" to not trigger a reshare.
                                return false;
                        }
-               } elseif (($guid == "") && $complete) {
+               } elseif (empty($reshared['guid']) && $complete) {
                        return false;
                }
 
-               $ret["root_guid"] = $guid;
-
-               $profile = "";
-               preg_match("/profile='(.*?)'/ism", $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $profile = $matches[1];
-               }
-
-               preg_match('/profile="(.*?)"/ism', $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $profile = $matches[1];
-               }
-
                $ret = [];
 
-               if (!empty($profile) && ($cid = Contact::getIdForURL($profile))) {
+               if (!empty($reshared['profile']) && ($cid = Contact::getIdForURL($reshared['profile']))) {
                        $contact = DBA::selectFirst('contact', ['addr'], ['id' => $cid]);
                        if (!empty($contact['addr'])) {
                                $ret['root_handle'] = $contact['addr'];
index 597645a8ec2bf556d6a556bb9ac258c917e61ac8..a63b12731dd3556cb56dcf3650b3cd76d7aca244 100644 (file)
@@ -1199,37 +1199,12 @@ class OStatus
         */
        private static function getResharedGuid(array $item)
        {
-               $body = trim($item["body"]);
-
-               // Skip if it isn't a pure repeated messages
-               // Does it start with a share?
-               if (strpos($body, "[share") > 0) {
-                       return "";
-               }
-
-               // Does it end with a share?
-               if (strlen($body) > (strrpos($body, "[/share]") + 8)) {
-                       return "";
-               }
-
-               $attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism", "$1", $body);
-               // Skip if there is no shared message in there
-               if ($body == $attributes) {
-                       return false;
-               }
-
-               $guid = "";
-               preg_match("/guid='(.*?)'/ism", $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $guid = $matches[1];
-               }
-
-               preg_match('/guid="(.*?)"/ism', $attributes, $matches);
-               if (!empty($matches[1])) {
-                       $guid = $matches[1];
+               $reshared = Item::getShareArray($item);
+               if (empty($reshared['guid']) || !empty($reshared['comment'])) {
+                       return '';
                }
 
-               return $guid;
+               return $reshared['guid'];
        }
 
        /**