diff --git a/app/Http/Controllers/Admin/AdminSettingsController.php b/app/Http/Controllers/Admin/AdminSettingsController.php index a87499bc1..97304f9fa 100644 --- a/app/Http/Controllers/Admin/AdminSettingsController.php +++ b/app/Http/Controllers/Admin/AdminSettingsController.php @@ -36,16 +36,16 @@ trait AdminSettingsController public function settingsStorage(Request $request) { - $databaseSum = Cache::remember('admin:settings:storage:db:storageUsed', 360, function() { + $databaseSum = Cache::remember('admin:settings:storage:db:storageUsed', now()->addMinutes(360), function() { $q = 'SELECT sum(ROUND(((data_length + index_length)), 0)) AS size FROM information_schema.TABLES WHERE table_schema = ?'; $db = config('database.default'); $db = config("database.connections.{$db}.database"); return DB::select($q, [$db])[0]->size; }); - $mediaSum = Cache::remember('admin:settings:storage:media:storageUsed', 360, function() { + $mediaSum = Cache::remember('admin:settings:storage:media:storageUsed', now()->addMinutes(360), function() { return Media::sum('size'); }); - $backupSum = Cache::remember('admin:settings:storage:backups:storageUsed', 360, function() { + $backupSum = Cache::remember('admin:settings:storage:backups:storageUsed', now()->addMinutes(360), function() { $dir = storage_path('app/'.config('app.name')); $size = 0; foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $each) { diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index c0645ae55..019f7402a 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -44,7 +44,7 @@ class AdminController extends Controller public function home() { - $data = Cache::remember('admin:dashboard:home:data', 15, function() { + $data = Cache::remember('admin:dashboard:home:data', now()->addMinutes(15), function() { $day = config('database.default') == 'pgsql' ? 'DATE_PART(\'day\',' : 'day('; return [ 'failedjobs' => [ diff --git a/app/Http/Controllers/Api/BaseApiController.php b/app/Http/Controllers/Api/BaseApiController.php index 8b115b717..c3a72e153 100644 --- a/app/Http/Controllers/Api/BaseApiController.php +++ b/app/Http/Controllers/Api/BaseApiController.php @@ -57,7 +57,7 @@ class BaseApiController extends Controller { $pid = Auth::user()->profile->id; $page = $request->input('page') ?? 1; - $res = Cache::remember('profile:notifications:'.$pid.':page:'.$page, 5, function() use($pid) { + $res = Cache::remember('profile:notifications:'.$pid.':page:'.$page, now()->addMinutes(5), function() use($pid) { $timeago = Carbon::now()->subMonths(6); $notifications = Notification::whereHas('actor') ->whereProfileId($pid) diff --git a/app/Http/Controllers/Api/InstanceApiController.php b/app/Http/Controllers/Api/InstanceApiController.php index 1608dc4e5..9d078d64d 100644 --- a/app/Http/Controllers/Api/InstanceApiController.php +++ b/app/Http/Controllers/Api/InstanceApiController.php @@ -11,7 +11,7 @@ class InstanceApiController extends Controller { protected function getData() { - $contact = Cache::remember('api:v1:instance:contact', 1440, function() { + $contact = Cache::remember('api:v1:instance:contact', now()->addMinutes(1440), function() { $admin = User::whereIsAdmin(true)->first()->profile; return [ 'id' => $admin->id, @@ -56,7 +56,7 @@ class InstanceApiController extends Controller { public function instance() { - $res = Cache::remember('api:v1:instance', 60, function() { + $res = Cache::remember('api:v1:instance', now()->addMinutes(60), function() { return json_encode($this->getData()); }); diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index b6810f025..399d99a82 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -10,6 +10,7 @@ use Illuminate\Http\Request; class ApiController extends BaseApiController { + // todo: deprecate and remove public function hydrateLikes(Request $request) { $this->validate($request, [ @@ -18,7 +19,7 @@ class ApiController extends BaseApiController ]); $profile = Auth::user()->profile; - $res = Cache::remember('api:like-ids:user:'.$profile->id, 1440, function () use ($profile) { + $res = Cache::remember('api:like-ids:user:'.$profile->id, now()->addDays(1), function () use ($profile) { return Like::whereProfileId($profile->id) ->orderBy('id', 'desc') ->take(1000) diff --git a/app/Http/Controllers/FederationController.php b/app/Http/Controllers/FederationController.php index cc21e962c..9ff70c20b 100644 --- a/app/Http/Controllers/FederationController.php +++ b/app/Http/Controllers/FederationController.php @@ -80,7 +80,7 @@ class FederationController extends Controller public function nodeinfo() { - $res = Cache::remember('api:nodeinfo', 60, function () { + $res = Cache::remember('api:nodeinfo', now()->addHours(1), function () { return [ 'metadata' => [ 'nodeName' => config('app.name'), diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php index 8e41f9f30..c52e917dc 100644 --- a/app/Http/Controllers/InternalApiController.php +++ b/app/Http/Controllers/InternalApiController.php @@ -105,10 +105,10 @@ class InternalApiController extends Controller { $profile = Auth::user()->profile; $pid = $profile->id; - $following = Cache::remember('feature:discover:following:'.$pid, 60, function() use ($pid) { + $following = Cache::remember('feature:discover:following:'.$pid, now()->addMinutes(60), function() use ($pid) { return Follower::whereProfileId($pid)->pluck('following_id')->toArray(); }); - $filters = Cache::remember("user:filter:list:$pid", 60, function() use($pid) { + $filters = Cache::remember("user:filter:list:$pid", now()->addMinutes(60), function() use($pid) { return UserFilter::whereUserId($pid) ->whereFilterableType('App\Profile') ->whereIn('filter_type', ['mute', 'block']) @@ -161,10 +161,10 @@ class InternalApiController extends Controller { $profile = Auth::user()->profile; $pid = $profile->id; - $following = Cache::remember('feature:discover:following:'.$pid, 60, function() use ($pid) { + $following = Cache::remember('feature:discover:following:'.$pid, now()->addMinutes(60), function() use ($pid) { return Follower::whereProfileId($pid)->pluck('following_id')->toArray(); }); - $filters = Cache::remember("user:filter:list:$pid", 60, function() use($pid) { + $filters = Cache::remember("user:filter:list:$pid", now()->addMinutes(60), function() use($pid) { return UserFilter::whereUserId($pid) ->whereFilterableType('App\Profile') ->whereIn('filter_type', ['mute', 'block']) @@ -200,10 +200,10 @@ class InternalApiController extends Controller { $profile = Auth::user()->profile; $pid = $profile->id; - $following = Cache::remember('feature:discover:following:'.$pid, 15, function() use ($pid) { + $following = Cache::remember('feature:discover:following:'.$pid, now()->addMinutes(15), function() use ($pid) { return Follower::whereProfileId($pid)->pluck('following_id')->toArray(); }); - $filters = Cache::remember("user:filter:list:$pid", 15, function() use($pid) { + $filters = Cache::remember("user:filter:list:$pid", now()->addMinutes(15), function() use($pid) { $private = Profile::whereIsPrivate(true) ->orWhere('unlisted', true) ->orWhere('status', '!=', null) diff --git a/app/Http/Controllers/LikeController.php b/app/Http/Controllers/LikeController.php index ecb6b29d6..9ee452d32 100644 --- a/app/Http/Controllers/LikeController.php +++ b/app/Http/Controllers/LikeController.php @@ -48,7 +48,7 @@ class LikeController extends Controller ->take(1000) ->pluck('status_id'); - Cache::put('api:like-ids:user:'.$profile->id, $likes, 1440); + Cache::put('api:like-ids:user:'.$profile->id, $likes, now()->addMinutes(1440)); if ($request->ajax()) { $response = ['code' => 200, 'msg' => 'Like saved', 'count' => $count]; diff --git a/app/Http/Controllers/PublicApiController.php b/app/Http/Controllers/PublicApiController.php index 6bd1ef917..7917335c9 100644 --- a/app/Http/Controllers/PublicApiController.php +++ b/app/Http/Controllers/PublicApiController.php @@ -223,7 +223,7 @@ class PublicApiController extends Controller // $timeline = Timeline::build()->local(); $pid = Auth::user()->profile->id; - $private = Cache::remember('profiles:private', 1440, function() { + $private = Cache::remember('profiles:private', now()->addMinutes(1440), function() { return Profile::whereIsPrivate(true) ->orWhere('unlisted', true) ->orWhere('status', '!=', null) @@ -317,7 +317,7 @@ class PublicApiController extends Controller // $timeline = Timeline::build()->local(); $pid = Auth::user()->profile->id; - $following = Cache::remember('profile:following:'.$pid, 1440, function() use($pid) { + $following = Cache::remember('profile:following:'.$pid, now()->addMinutes(1440), function() use($pid) { $following = Follower::whereProfileId($pid)->pluck('following_id'); return $following->push($pid)->toArray(); }); diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 59cb65ccf..ea6c074a1 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -23,7 +23,7 @@ class SearchController extends Controller return; } $hash = hash('sha256', $tag); - $tokens = Cache::remember('api:search:tag:'.$hash, 5, function () use ($tag) { + $tokens = Cache::remember('api:search:tag:'.$hash, now()->addMinutes(5), function () use ($tag) { $tokens = collect([]); if(Helpers::validateUrl($tag)) { $remote = Helpers::fetchFromUrl($tag); @@ -85,6 +85,7 @@ class SearchController extends Controller 'value' => $item->username, 'tokens' => [$item->username], 'name' => $item->name, + 'id' => $item->id ]; }); $tokens->push($profiles); diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 6fdf858e8..3c3be8d83 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -74,7 +74,7 @@ class SettingsController extends Controller public function exportFollowing() { - $data = Cache::remember('account:export:profile:following:'.Auth::user()->profile->id, 1440, function() { + $data = Cache::remember('account:export:profile:following:'.Auth::user()->profile->id, now()->addMinutes(1440), function() { return Auth::user()->profile->following()->get()->map(function($i) { return $i->url(); }); @@ -86,7 +86,7 @@ class SettingsController extends Controller public function exportFollowers() { - $data = Cache::remember('account:export:profile:followers:'.Auth::user()->profile->id, 1440, function() { + $data = Cache::remember('account:export:profile:followers:'.Auth::user()->profile->id, now()->addMinutes(1440), function() { return Auth::user()->profile->followers()->get()->map(function($i) { return $i->url(); }); @@ -105,7 +105,7 @@ class SettingsController extends Controller if(!$exists) { return redirect()->back(); } - $data = Cache::remember('account:export:profile:muteblocklist:'.Auth::user()->profile->id, 1440, function() use($profile) { + $data = Cache::remember('account:export:profile:muteblocklist:'.Auth::user()->profile->id, now()->addMinutes(1440), function() use($profile) { return json_encode([ 'muted' => $profile->mutedProfileUrls(), 'blocked' => $profile->blockedProfileUrls() diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index a5a5f12ef..2134a9424 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -41,10 +41,10 @@ class SiteController extends Controller public function about() { - $res = Cache::remember('site:about', 120, function() { + $res = Cache::remember('site:about', now()->addMinutes(120), function() { $custom = Page::whereSlug('/site/about')->whereActive(true)->exists(); if($custom) { - $stats = Cache::remember('site:about:stats', 60, function() { + $stats = Cache::remember('site:about:stats', now()->addMinutes(60), function() { return [ 'posts' => Status::whereLocal(true)->count(), 'users' => User::count(), @@ -53,7 +53,7 @@ class SiteController extends Controller }); return View::make('site.about')->with('stats', $stats)->render(); } else { - $stats = Cache::remember('site:about:stats', 60, function() { + $stats = Cache::remember('site:about:stats', now()->addMinutes(60), function() { return [ 'posts' => Status::whereLocal(true)->count(), 'users' => User::count(), diff --git a/app/Profile.php b/app/Profile.php index 8cf7d1107..0eb8255f2 100644 --- a/app/Profile.php +++ b/app/Profile.php @@ -124,7 +124,7 @@ class Profile extends Model public function avatarUrl() { - $url = Cache::remember("avatar:{$this->id}", 1440, function () { + $url = Cache::remember("avatar:{$this->id}", now()->addDays(1), function () { $path = optional($this->avatar)->media_path; $version = hash('sha1', $this->avatar->updated_at); $path = "{$path}?v={$version}"; diff --git a/app/Status.php b/app/Status.php index 466ed410f..6d8defa25 100644 --- a/app/Status.php +++ b/app/Status.php @@ -2,11 +2,10 @@ namespace App; -use Auth, Cache; +use Auth, Cache, Hashids, Storage; use App\Http\Controllers\StatusController; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; -use Storage; class Status extends Model { @@ -77,7 +76,7 @@ class Status extends Model public function thumb($showNsfw = false) { - return Cache::remember('status:thumb:'.$this->id, 40320, function() use ($showNsfw) { + return Cache::remember('status:thumb:'.$this->id, now()->addMinutes(15), function() use ($showNsfw) { $type = $this->type ?? $this->setType(); $is_nsfw = !$showNsfw ? $this->is_nsfw : false; if ($this->media->count() == 0 || $is_nsfw || !in_array($type,['photo', 'photo:album'])) { diff --git a/app/Transformer/Api/StatusTransformer.php b/app/Transformer/Api/StatusTransformer.php index 198a098ff..9e09bd47e 100644 --- a/app/Transformer/Api/StatusTransformer.php +++ b/app/Transformer/Api/StatusTransformer.php @@ -62,7 +62,7 @@ class StatusTransformer extends Fractal\TransformerAbstract public function includeMediaAttachments(Status $status) { - return Cache::remember('status:transformer:media:attachments:'.$status->id, 1440, function() use($status) { + return Cache::remember('status:transformer:media:attachments:'.$status->id, now()->addMinutes(1440), function() use($status) { $media = $status->media()->orderBy('order')->get(); return $this->collection($media, new MediaTransformer()); });