Daniel Supernault 4 anni fa
parent
commit
86765001e6
1 ha cambiato i file con 23 aggiunte e 0 eliminazioni
  1. 23 0
      app/Util/ActivityPub/Inbox.php

+ 23 - 0
app/Util/ActivityPub/Inbox.php

@@ -213,6 +213,11 @@ class Inbox
         $msg = $activity['content'];
         $msg = $activity['content'];
         $msgText = strip_tags($activity['content']);
         $msgText = strip_tags($activity['content']);
 
 
+        if(Str::startsWith($msgText, '@' . $profile->username)) {
+            $len = strlen('@' . $profile->username);
+            $msgText = substr($msgText, $len + 1);
+        }
+
         if($profile->user->settings->public_dm == false || $profile->is_private) {
         if($profile->user->settings->public_dm == false || $profile->is_private) {
             if($profile->follows($actor) == true) {
             if($profile->follows($actor) == true) {
                 $hidden = false;
                 $hidden = false;
@@ -242,7 +247,10 @@ class Inbox
         $dm->save();
         $dm->save();
 
 
         if(count($activity['attachment'])) {
         if(count($activity['attachment'])) {
+            $photos = 0;
+            $videos = 0;
             $allowed = explode(',', config('pixelfed.media_types'));
             $allowed = explode(',', config('pixelfed.media_types'));
+            $activity['attachment'] = array_slice($activity['attachment'], 0, config('pixelfed.max_album_length'));
             foreach($activity['attachment'] as $a) {
             foreach($activity['attachment'] as $a) {
                 $type = $a['mediaType'];
                 $type = $a['mediaType'];
                 $url = $a['url'];
                 $url = $a['url'];
@@ -260,6 +268,21 @@ class Inbox
                 $media->remote_url = $url;
                 $media->remote_url = $url;
                 $media->mime = $type;
                 $media->mime = $type;
                 $media->save();
                 $media->save();
+                if(explode('/', $type)[0] == 'image') {
+                    $photos = $photos + 1;
+                }
+                if(explode('/', $type)[0] == 'video') {
+                    $videos = $videos + 1;
+                }
+            }
+
+            if($photos && $videos == 0) {
+                $dm->type = $photos == 1 ? 'photo' : 'photos';
+                $dm->save();
+            }
+            if($videos && $photos == 0) {
+                $dm->type = $videos == 1 ? 'video' : 'videos';
+                $dm->save();
             }
             }
         }
         }