diff --git a/app/Http/Controllers/DownloadsController.php b/app/Http/Controllers/DownloadsController.php new file mode 100644 index 0000000..1cc068a --- /dev/null +++ b/app/Http/Controllers/DownloadsController.php @@ -0,0 +1,21 @@ +user(); + if (!$user->is_patreon) { + abort(404); + } + + return view('search.download-patreon'); + } +} diff --git a/app/Livewire/DownloadsPatreon.php b/app/Livewire/DownloadsPatreon.php new file mode 100644 index 0000000..cce068e --- /dev/null +++ b/app/Livewire/DownloadsPatreon.php @@ -0,0 +1,73 @@ + ['except' => '', 'as' => 'fS'], + 'order' => ['except' => '', 'as' => 'order'], + ]; + + public function updatingFileSearch() + { + $this->resetPage(); + } + + public function render() + { + $orderby = 'created_at'; + $orderdirection = 'desc'; + + switch ($this->order) { + case 'az': + $orderby = 'url'; + $orderdirection = 'asc'; + break; + case 'za': + $orderby = 'url'; + $orderdirection = 'desc'; + break; + case 'created_at_desc': + $orderby = 'created_at'; + $orderdirection = 'desc'; + break; + case 'created_at_asc': + $orderby = 'created_at'; + $orderdirection = 'asc'; + break; + case 'size_asc': + $orderby = 'size'; + $orderdirection = 'asc'; + break; + case 'size_desc': + $orderby = 'size'; + $orderdirection = 'desc'; + break; + default: + $orderby = 'created_at'; + $orderdirection = 'desc'; + } + + $downloads = Downloads::when($this->fileSearch != '', fn ($query) => $query->where('url', 'like', '%'.$this->fileSearch.'%')) + ->where('size', '>', 0) + ->where(fn ($q) => $q->where('type', '=', 'UHD')->orWhere('type', '=', 'UHDi')) + ->orderBy($orderby, $orderdirection) + ->paginate(20); + + return view('livewire.downloads-patreon', [ + 'downloads' => $downloads, + 'query' => $this->fileSearch, + ]); + } +} diff --git a/resources/views/livewire/downloads-patreon.blade.php b/resources/views/livewire/downloads-patreon.blade.php new file mode 100644 index 0000000..09b5827 --- /dev/null +++ b/resources/views/livewire/downloads-patreon.blade.php @@ -0,0 +1,141 @@ +