1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2025-01-20 14:02:20 +00:00

Update Status model, cache view type and thumbnail methods

This commit is contained in:
Daniel Supernault 2018-11-24 23:15:32 -07:00
parent cdb30c8e27
commit fa99ab79c3
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -2,7 +2,7 @@
namespace App; namespace App;
use Auth; use Auth, Cache;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Storage; use Storage;
@ -37,6 +37,7 @@ class Status extends Model
public function viewType() public function viewType()
{ {
return Cache::remember('status:view-type:'.$this->id, 40320, function() {
$media = $this->firstMedia(); $media = $this->firstMedia();
$mime = explode('/', $media->mime)[0]; $mime = explode('/', $media->mime)[0];
$count = $this->media()->count(); $count = $this->media()->count();
@ -44,12 +45,13 @@ class Status extends Model
if($count > 1) { if($count > 1) {
$type = ($type == 'image') ? 'album' : 'video-album'; $type = ($type == 'image') ? 'album' : 'video-album';
} }
return $type; return $type;
});
} }
public function thumb($showNsfw = false) public function thumb($showNsfw = false)
{ {
return Cache::remember('status:thumb:'.$this->id, 40320, function() use ($showNsfw) {
$type = $this->viewType(); $type = $this->viewType();
$is_nsfw = !$showNsfw ? $this->is_nsfw : false; $is_nsfw = !$showNsfw ? $this->is_nsfw : false;
if ($this->media->count() == 0 || $is_nsfw || !in_array($type,['image', 'album', 'video'])) { if ($this->media->count() == 0 || $is_nsfw || !in_array($type,['image', 'album', 'video'])) {
@ -57,6 +59,7 @@ class Status extends Model
} }
return url(Storage::url($this->firstMedia()->thumbnail_path)); return url(Storage::url($this->firstMedia()->thumbnail_path));
});
} }
public function url() public function url()