Commit Graph

50 Commits

Author SHA1 Message Date
w33b d08e280ce0 refactor(episode): migrate episode upload to Livewire with real-time CDN verification
Replace the server-rendered episode upload form with a Livewire component,
introducing an interactive admin experience that validates the new episode's
stream path against all configured mirrors before saving. The controller-based
`store` method and its route are removed, and episode creation now flows
through the `AdminEpisodeForm` component with frontend upload handling and
dynamic quality checks.

Key changes:
- Add `AdminEpisodeForm` Livewire component with file uploads, tag handling,
  and debounced stream/base-url validation.
- Extend `CdnPathValidator::validateStream` to accept an episode number so the
  manifest path can point to the specific episode being added.
- Remove the `store` method from `EpisodeController` and its POST route.
- Delete the legacy `createEpisode` method from `EpisodeService`.
- Replace the Blade upload modal with the Livewire view, including progress
  indicators and validation badges.
- Add feature tests for the Livewire component and update unit tests for the
  CDN validator's episode-specific manifest check.
2026-08-08 14:29:05 +02:00
w33b 30a6b080eb feat(admin): rebuild release upload form with Livewire and CDN validation
Replace the server-rendered release upload form with a Livewire component,
introducing an interactive admin release form that supports dynamic episode
management, real‑time CDN path validation, and direct download file checks.

Key changes:
- New `AdminReleaseForm` Livewire component with dynamic episode fields,
  Tagify integration, and upload handling via Livewire's file uploads.
- Added `CdnPathValidator` service to verify download and stream paths across
  all configured mirrors, caching results and capturing file sizes.
- Extended `EpisodeService` and `GalleryService` to support array‑based data
  and temporary uploaded files from Livewire.
- Persist validated download sizes and store the validation timestamp on the
  `downloads` table via a new migration; also add a unique constraint on
  `hentais.slug` to prevent duplicates.
- Remove the old POST `/admin/release/upload` route and controller logic,
  along with the legacy `upload.js` script.
- Add comprehensive feature and unit tests covering the new component and the
  CDN validation service.
2026-08-08 13:18:57 +02:00
w33b 9dcf13a62e Update playlist sidebar to use livewire 2026-08-04 18:33:50 +02:00
w33b 7553b9f895 Update stats page design 2026-07-25 14:18:50 +02:00
w33b 5af1c3c447 Update profile pages design 2026-07-25 13:54:21 +02:00
w33b a5bf2ac245 Add video engagement tracking and heatmap 2026-07-19 20:13:55 +02:00
w33b 4f81164b44 Only track was watched if more than 10s is played #6 2026-07-19 16:10:24 +02:00
w33b f35d1a119e Add ability to edit the playlist name and visibility #5 2026-07-19 13:22:28 +02:00
w33b a04d58c60f Remove external subscription system 2026-07-18 14:03:03 +02:00
w33b bcd15d8569 Discord socialite: catch InvalidStateException 2026-06-15 21:14:35 +02:00
w33b a71b2976af Add ability for mods to edit episode & Refactor code 2026-05-26 13:45:13 +02:00
w33b 2151d69791 Add external subscription system 2026-05-04 19:12:21 +02:00
w33b 05d4ef1bdb Add Passkey Support & Pint 2026-04-21 15:56:46 +02:00
w33b 8ae9eaaadb Replace captcha package with own implementation 2026-04-20 21:36:02 +02:00
w33b f3e5100d5d Pint 2026-04-18 14:18:52 +02:00
w33b 564f816fb9 Add matrix nsfw rooms 2026-03-04 14:34:16 +01:00
w33b 3bb6af73c3 Add matrix 2026-02-18 12:34:10 +01:00
w33b ccfd5b996b Replace captcha system 2026-01-18 18:37:08 +01:00
w33b e5ef197ed6 Add user roles system 2026-01-16 23:14:47 +01:00
w33b 67e601d0c4 Add ability to properly set locale (session/account) 2026-01-11 16:33:13 +01:00
w33b 2aa76baafd Fix account deletion anonymizing comments 2026-01-10 22:35:21 +01:00
w33b cfd6af59fb Add Profile Comment Search (Livewire) 2026-01-10 18:55:47 +01:00
w33b c0b068de58 Misc changes 2026-01-09 13:01:53 +01:00
w33b 3d78f9e524 Optionally update discord avatar on login 2026-01-08 22:17:00 +01:00
w33b 2d28a37463 Don't set password on new account with oauth 2026-01-08 20:03:24 +01:00
w33b ac853920ee Fix delete account function & delete modal 2026-01-08 19:28:44 +01:00
w33b fb3722036a Add ability to set custom avatar 2026-01-08 18:47:31 +01:00
w33b 8f99718058 Allow changing email, username and password 2026-01-08 16:14:35 +01:00
w33b 2029af334c Fix Signup redirect 2026-01-08 16:13:54 +01:00
w33b b1c48830c4 Remove nickname 2026-01-08 16:13:43 +01:00
w33b e100f3bf23 Remove Public Profile Page (because usernames are not unique) 2026-01-07 20:28:40 +01:00
w33b c13d443696 Add discord patreon check 2026-01-07 19:04:51 +01:00
w33b 8e7a56f559 Add discord oauth 2026-01-07 18:17:46 +01:00
w33b 30777a6968 Login / Register Design 2026-01-07 17:03:57 +01:00
w33b 256af435ad Add Auth System (Breeze) 2026-01-07 16:04:23 +01:00
w33b e972f8db41 Rename column names 2026-01-07 12:54:10 +01:00
w33b 7eea8285ca Remove old breeze auth controllers 2026-01-07 12:10:49 +01:00
w33b 5461606857 DMCA 2025-12-19 22:13:50 +01:00
w33b 9ca2f73714 Admin: Add comments overview for moderation 2025-10-29 15:59:43 +01:00
w33b 36f0126a21 Only display last 28 days on stats page (excluding current day) 2025-10-23 21:13:07 +02:00
w33b 444feac1e0 Use redirect for random button to save database queries 2025-10-09 12:55:24 +02:00
w33b 9ad7c7afc2 Fix incorrect cache key 2025-10-08 19:50:55 +02:00
w33b 35a0d61437 Add censored discord notification 2025-10-08 18:32:08 +02:00
w33b 725a441d9e Add discord notification for v2 releases 2025-10-08 17:41:10 +02:00
w33b a6c47cf2e6 Remove unused Controller 2025-10-08 16:53:51 +02:00
w33b fffa320c08 Add monthly views chart 2025-10-08 16:52:40 +02:00
w33b 55739a21b5 Add hentai list api endoint 2025-10-02 21:26:09 +02:00
w33b bc193c7141 Remove torrents system 2025-09-22 13:34:52 +02:00
w33b 3f32c8a27a Add basic patreon filebrowser 2025-09-20 15:34:37 +02:00
w33b 2abba0c2b7 Init 2025-09-18 15:31:27 +02:00