From cdb30c8e278018a7977d81e5ca659a1ab035dad0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 24 Nov 2018 22:52:46 -0700 Subject: [PATCH 1/2] Fixes #583 --- resources/views/settings/home.blade.php | 88 ++++++++++--------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/resources/views/settings/home.blade.php b/resources/views/settings/home.blade.php index f8050ca00..b54e9bf2b 100644 --- a/resources/views/settings/home.blade.php +++ b/resources/views/settings/home.blade.php @@ -72,41 +72,6 @@ @push('scripts') From fa99ab79c3825db754b35fd1bba4edc8318f85bf Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 24 Nov 2018 23:15:32 -0700 Subject: [PATCH 2/2] Update Status model, cache view type and thumbnail methods --- app/Status.php | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/app/Status.php b/app/Status.php index e41a60e38..12800213a 100644 --- a/app/Status.php +++ b/app/Status.php @@ -2,7 +2,7 @@ namespace App; -use Auth; +use Auth, Cache; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Storage; @@ -37,26 +37,29 @@ class Status extends Model public function viewType() { - $media = $this->firstMedia(); - $mime = explode('/', $media->mime)[0]; - $count = $this->media()->count(); - $type = ($mime == 'image') ? 'image' : 'video'; - if($count > 1) { - $type = ($type == 'image') ? 'album' : 'video-album'; - } - - return $type; + return Cache::remember('status:view-type:'.$this->id, 40320, function() { + $media = $this->firstMedia(); + $mime = explode('/', $media->mime)[0]; + $count = $this->media()->count(); + $type = ($mime == 'image') ? 'image' : 'video'; + if($count > 1) { + $type = ($type == 'image') ? 'album' : 'video-album'; + } + return $type; + }); } public function thumb($showNsfw = false) { - $type = $this->viewType(); - $is_nsfw = !$showNsfw ? $this->is_nsfw : false; - if ($this->media->count() == 0 || $is_nsfw || !in_array($type,['image', 'album', 'video'])) { - return 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='; - } + return Cache::remember('status:thumb:'.$this->id, 40320, function() use ($showNsfw) { + $type = $this->viewType(); + $is_nsfw = !$showNsfw ? $this->is_nsfw : false; + if ($this->media->count() == 0 || $is_nsfw || !in_array($type,['image', 'album', 'video'])) { + return 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='; + } - return url(Storage::url($this->firstMedia()->thumbnail_path)); + return url(Storage::url($this->firstMedia()->thumbnail_path)); + }); } public function url()