فهرست منبع

Update MediaStorageService, fix reremote avatar bug

Daniel Supernault 3 سال پیش
والد
کامیت
1c20d6960a
3فایلهای تغییر یافته به همراه27 افزوده شده و 26 حذف شده
  1. 6 10
      app/Jobs/StatusPipeline/StatusDelete.php
  2. 5 9
      app/Jobs/StatusPipeline/StatusEntityLexer.php
  3. 16 7
      app/Services/MediaStorageService.php

+ 6 - 10
app/Jobs/StatusPipeline/StatusDelete.php

@@ -61,16 +61,12 @@ class StatusDelete implements ShouldQueue
 		$status = $this->status;
 		$profile = $this->status->profile;
 
-		StatusService::del($status->id);
-		$count = $profile->statuses()
-		->getQuery()
-		->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
-		->whereNull('in_reply_to_id')
-		->whereNull('reblog_of_id')
-		->count();
-
-		$profile->status_count = ($count - 1);
-		$profile->save();
+		StatusService::del($status->id, true);
+
+		if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) {
+			$profile->status_count = $profile->status_count - 1;
+			$profile->save();
+		}
 
 		if(config_cache('federation.activitypub.enabled') == true) {
 			$this->fanoutDelete($status);

+ 5 - 9
app/Jobs/StatusPipeline/StatusEntityLexer.php

@@ -52,16 +52,12 @@ class StatusEntityLexer implements ShouldQueue
 	public function handle()
 	{
 		$profile = $this->status->profile;
+		$status = $this->status;
 
-		$count = $profile->statuses()
-		->getQuery()
-		->whereIn('type', ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])
-		->whereNull('in_reply_to_id')
-		->whereNull('reblog_of_id')
-		->count();
-
-		$profile->status_count = $count;
-		$profile->save();
+		if(in_array($status->type, ['photo', 'photo:album', 'video', 'video:album', 'photo:video:album'])) {
+			$profile->status_count = $profile->status_count + 1;
+			$profile->save();
+		}
 
 		if($profile->no_autolink == false) {
 			$this->parseEntities();

+ 16 - 7
app/Services/MediaStorageService.php

@@ -43,16 +43,25 @@ class MediaStorageService {
 
 		$h = $r->getHeaders();
 
-		if (isset($h['Content-Length'], $h['Content-Type']) == false) {
-			return false;
-		}
+		if (isset($h['content-length']) && isset($h['content-type'])) {
+			if(empty($h['content-length']) || empty($h['content-type'])) {
+				return false;
+			}
+			$len = is_array($h['content-length']) ? $h['content-length'][0] : $h['content-length'];
+			$mime = is_array($h['content-type']) ? $h['content-type'][0] : $h['content-type'];
+		} else {
+			if (isset($h['Content-Length'], $h['Content-Type']) == false) {
+				return false;
+			}
 
-		if(empty($h['Content-Length']) || empty($h['Content-Type']) ) {
-			return false;
+			if(empty($h['Content-Length']) || empty($h['Content-Type']) ) {
+				return false;
+			}
+
+			$len = is_array($h['Content-Length']) ? $h['Content-Length'][0] : $h['Content-Length'];
+			$mime = is_array($h['Content-Type']) ? $h['Content-Type'][0] : $h['Content-Type'];
 		}
 
-		$len = is_array($h['Content-Length']) ? $h['Content-Length'][0] : $h['Content-Length'];
-		$mime = is_array($h['Content-Type']) ? $h['Content-Type'][0] : $h['Content-Type'];
 
 		if($len < 10 || $len > ((config_cache('pixelfed.max_photo_size') * 1000))) {
 			return false;