belongsTo(Status::class); } public function profile() { return $this->belongsTo(Profile::class); } public function url() { if(!empty($this->remote_media) && $this->remote_url) { //$url = \App\Services\MediaProxyService::get($this->remote_url, $this->mime); $url = $this->remote_url; } else { $path = $this->media_path; $url = $this->cdn_url ?? config('app.url') . Storage::url($path); } return $url; } public function thumbnailUrl() { if($this->remote_media == true) { return $this->remote_url; } else { $path = $this->thumbnail_path ?? 'public/no-preview.png'; return url(Storage::url($path)); } } public function thumb() { return $this->thumbnailUrl(); } public function mimeType() { return explode('/', $this->mime)[0]; } public function activityVerb() { $verb = 'Image'; switch ($this->mimeType()) { case 'audio': $verb = 'Audio'; break; case 'image': $verb = 'Image'; break; case 'video': $verb = 'Video'; break; default: $verb = 'Document'; break; } return $verb; } public function getMetadata() { return json_decode($this->metadata, true, 3); } public function getModel() { if(empty($this->metadata)) { return false; } $meta = $this->getMetadata(); if($meta && isset($meta['Model'])) { return $meta['Model']; } } }