]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
Merge remote-tracking branch 'upstream/develop' into more-q
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index 1fe527f407be568ed0cd95a49ab9af44aa75539a..47ea6a1bde5db78b8626a3852012010de092ec3b 100644 (file)
@@ -90,7 +90,7 @@ class Processor
         *
         * @return string with replaced emojis
         */
-       private static function replaceEmojis($body, array $emojis)
+       private static function replaceEmojis(int $uri_id, $body, array $emojis)
        {
                $body = strtr($body,
                        array_combine(
@@ -101,6 +101,10 @@ class Processor
                        )
                );
 
+               // We store the emoji here to be able to avoid storing it in the media
+               foreach ($emojis as $emoji) {
+                       Post\Link::getByLink($uri_id, $emoji['href']);
+               }
                return $body;
        }
 
@@ -392,7 +396,7 @@ class Processor
         *
         * @param array $activity Activity array
         * @param array $item
-        * 
+        *
         * @return int event id
         * @throws \Exception
         */
@@ -456,7 +460,7 @@ class Processor
                }
 
                if (!empty($activity['emojis'])) {
-                       $content = self::replaceEmojis($content, $activity['emojis']);
+                       $content = self::replaceEmojis($item['uri-id'], $content, $activity['emojis']);
                }
 
                $content = self::addMentionLinks($content, $activity['tags']);
@@ -912,7 +916,7 @@ class Processor
                $cid = Contact::getIdForURL($activity['actor'], $uid);
                if (!empty($cid)) {
                        self::switchContact($cid);
-                       DBA::update('contact', ['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]);
+                       Contact::update(['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]);
                }
 
                $item = ['author-id' => Contact::getIdForURL($activity['actor']),
@@ -932,7 +936,7 @@ class Processor
                }
 
                if (empty($contact)) {
-                       DBA::update('contact', ['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]);
+                       Contact::update(['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]);
                }
 
                Logger::notice('Follow user ' . $uid . ' from contact ' . $cid . ' with id ' . $activity['id']);
@@ -1011,7 +1015,7 @@ class Processor
                }
 
                $condition = ['id' => $cid];
-               DBA::update('contact', $fields, $condition);
+               Contact::update($fields, $condition);
                Logger::info('Accept contact request', ['contact' => $cid, 'user' => $uid]);
        }
 
@@ -1037,9 +1041,12 @@ class Processor
 
                self::switchContact($cid);
 
-               if (DBA::exists('contact', ['id' => $cid, 'rel' => Contact::SHARING])) {
+               $contact = Contact::getById($cid, ['rel']);
+               if ($contact['rel'] == Contact::SHARING) {
                        Contact::remove($cid);
                        Logger::info('Rejected contact request - contact removed', ['contact' => $cid, 'user' => $uid]);
+               } elseif ($contact['rel'] == Contact::FRIEND) {
+                       Contact::update(['rel' => Contact::FOLLOWER], ['id' => $cid]);
                } else {
                        Logger::info('Rejected contact request', ['contact' => $cid, 'user' => $uid]);
                }