Remove torrents system
This commit is contained in:
@@ -1,40 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\Torrents;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class TorrentController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display Add Torrent Page.
|
|
||||||
*/
|
|
||||||
public function index(int $hentai_id): \Illuminate\View\View
|
|
||||||
{
|
|
||||||
return view('admin.add-torrent', [
|
|
||||||
'hentai_id' => $hentai_id
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add Torrent.
|
|
||||||
*/
|
|
||||||
public function store(Request $request): \Illuminate\Http\RedirectResponse
|
|
||||||
{
|
|
||||||
$validated = $request->validate([
|
|
||||||
'hentai_id' => 'required|exists:hentais,id',
|
|
||||||
'torrent_url' => 'required|string|max:256',
|
|
||||||
'torrent_episodes' => 'required|string|max:8',
|
|
||||||
]);
|
|
||||||
|
|
||||||
Torrents::create([
|
|
||||||
'hentai_id' => $request->hentai_id,
|
|
||||||
'torrent_url' => $request->torrent_url,
|
|
||||||
'episodes' => $request->torrent_episodes,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return to_route('download.search');
|
|
||||||
}
|
|
||||||
}
|
|
@@ -32,11 +32,6 @@ class Hentai extends Model implements Sitemapable
|
|||||||
return $this->hasMany(Episode::class, 'hentai_id');
|
return $this->hasMany(Episode::class, 'hentai_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function torrents()
|
|
||||||
{
|
|
||||||
return $this->hasMany(Torrents::class, 'hentai_id');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function title(): String
|
public function title(): String
|
||||||
{
|
{
|
||||||
return $this->episodes->first()->title;
|
return $this->episodes->first()->title;
|
||||||
|
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
class Torrents extends Model
|
|
||||||
{
|
|
||||||
use HasFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that are mass assignable.
|
|
||||||
*
|
|
||||||
* @var string[]
|
|
||||||
*/
|
|
||||||
protected $fillable = [
|
|
||||||
'hentai_id',
|
|
||||||
'torrent_url',
|
|
||||||
'episodes',
|
|
||||||
];
|
|
||||||
}
|
|
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('torrents');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
// Not reversible
|
||||||
|
}
|
||||||
|
};
|
@@ -1,32 +0,0 @@
|
|||||||
<x-app-layout>
|
|
||||||
<div class="p-5">
|
|
||||||
<div class="w-[50%] mx-auto sm:px-6 lg:px-8 text-gray-800 dark:text-gray-200 bg-white dark:bg-neutral-950 rounded-lg">
|
|
||||||
<div class="relative p-4">
|
|
||||||
<form method="POST" action="{{ route('admin.add.torrent') }}">
|
|
||||||
@csrf
|
|
||||||
|
|
||||||
<div class="p-4">
|
|
||||||
<label class="mb-2 leading-tight text-gray-800 dark:text-gray-200 w-full" for="name">Hentai ID:</label>
|
|
||||||
<input id="hentai_id" name="hentai_id" class="block w-full p-4 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-rose-800 focus:border-rose-900 dark:bg-neutral-900 dark:border-neutral-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-rose-800 dark:focus:border-rose-900" value="{{ $hentai_id }}" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="p-4">
|
|
||||||
<label class="mb-2 leading-tight text-gray-800 dark:text-gray-200 w-full" for="name">Torrent URL:</label>
|
|
||||||
<input id="torrent_url" name="torrent_url" class="block w-full p-4 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-rose-800 focus:border-rose-900 dark:bg-neutral-900 dark:border-neutral-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-rose-800 dark:focus:border-rose-900" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="p-4">
|
|
||||||
<label class="mb-2 leading-tight text-gray-800 dark:text-gray-200 w-full" for="name">Episodes (e.g. "01-02" or "01"):</label>
|
|
||||||
<input id="torrent_episodes" name="torrent_episodes" class="block w-full p-4 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-rose-800 focus:border-rose-900 dark:bg-neutral-900 dark:border-neutral-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-rose-800 dark:focus:border-rose-900" required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-shrink-0 flex-wrap items-center justify-end rounded-b-md p-4">
|
|
||||||
<button type="submit" class="ml-1 inline-block rounded bg-rose-600 px-6 pb-2 pt-2.5 text-xs font-medium uppercase leading-normal text-white transition duration-150 ease-in-out hover:bg-rose-700 focus:bg-rose-600" data-te-ripple-init data-te-ripple-color="light">
|
|
||||||
Create
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</x-app-layout>
|
|
@@ -1,25 +0,0 @@
|
|||||||
@forelse ($hentai->torrents as $torrent)
|
|
||||||
<a href="{{ $torrent->torrent_url }}" target="_blank">
|
|
||||||
<button class="group rounded-md shadow bg-primary-600 text-white cursor-pointer flex justify-between items-center overflow-hidden transition-all hover:glow m-1 w-[150px]">
|
|
||||||
<div class="relative w-12 h-12 bg-white bg-opacity-20 text-white flex justify-center items-center transition-all">
|
|
||||||
<i id="arrow" class="fa-solid fa-magnet transition-all group-hover:-translate-y-1"></i>
|
|
||||||
<div id="progress" class="absolute w-full h-0 bg-white bg-opacity-20 top-0 duration-200"></div>
|
|
||||||
</div>
|
|
||||||
<div class="w-32 text-center">
|
|
||||||
<p class="text-sm">Episode {{ $torrent->episodes }}</p>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
@empty
|
|
||||||
<a>
|
|
||||||
<button class="group rounded-md shadow bg-gray-600 text-white cursor-pointer flex justify-between items-center overflow-hidden transition-all hover:glow m-1 w-[150px]">
|
|
||||||
<div class="relative w-12 h-12 bg-white bg-opacity-20 text-white flex justify-center items-center transition-all">
|
|
||||||
<i id="arrow" class="fa-solid fa-magnet transition-all group-hover:-translate-y-1"></i>
|
|
||||||
<div id="progress" class="absolute w-full h-0 bg-white bg-opacity-20 top-0 duration-200"></div>
|
|
||||||
</div>
|
|
||||||
<div class="w-32 text-center">
|
|
||||||
<p class="text-sm">Torrent not available</p>
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
@endforelse
|
|
@@ -13,8 +13,6 @@
|
|||||||
@foreach ($dlList as $hdl)
|
@foreach ($dlList as $hdl)
|
||||||
@include('modals.partials.download-button')
|
@include('modals.partials.download-button')
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
@include('livewire.partials.torrent-button', ['hentai' => $episode->hentai])
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include('modals.partials.download-backup')
|
@include('modals.partials.download-backup')
|
||||||
|
@@ -123,10 +123,6 @@ Route::group(['middleware' => ['auth', 'auth.admin']], function () {
|
|||||||
Route::get('/admin/tags/{episode_id}', [AdminApiController::class, 'getEpisodeTags'])->name('admin.tags.episode');
|
Route::get('/admin/tags/{episode_id}', [AdminApiController::class, 'getEpisodeTags'])->name('admin.tags.episode');
|
||||||
Route::get('/admin/studio/{episode_id}', [AdminApiController::class, 'getEpisodeStudio'])->name('admin.studio.episode');
|
Route::get('/admin/studio/{episode_id}', [AdminApiController::class, 'getEpisodeStudio'])->name('admin.studio.episode');
|
||||||
|
|
||||||
// Torrents
|
|
||||||
Route::get('/admin/add-torrent/{hentai_id}', [App\Http\Controllers\Admin\TorrentController::class, 'index'])->name('admin.add.torrentpage');
|
|
||||||
Route::post('/admin/add-torrent', [App\Http\Controllers\Admin\TorrentController::class, 'store'])->name('admin.add.torrent');
|
|
||||||
|
|
||||||
// Subtitles
|
// Subtitles
|
||||||
Route::get('/admin/subtitles/{episode_id}', [AdminApiController::class, 'getSubtitles'])->name('admin.subtitles');
|
Route::get('/admin/subtitles/{episode_id}', [AdminApiController::class, 'getSubtitles'])->name('admin.subtitles');
|
||||||
Route::post('/admin/add-new-subtitle', [App\Http\Controllers\Admin\SubtitleController::class, 'store'])->name('admin.add.new.subtitle');
|
Route::post('/admin/add-new-subtitle', [App\Http\Controllers\Admin\SubtitleController::class, 'store'])->name('admin.add.new.subtitle');
|
||||||
|
Reference in New Issue
Block a user