Commit Graph

55 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 7f9573fe0f Update playlist design 2026-08-04 15:29:39 +02:00
w33b 5af1c3c447 Update profile pages design 2026-07-25 13:54:21 +02:00
w33b 2b1a967065 Update nav live search design 2026-07-25 12:38:00 +02:00
w33b 859a35847a Improve admin user & comment moderation page 2026-07-19 15:10:20 +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 133a069890 Fix attempt to read property on null on playlist page 2026-06-15 20:51:07 +02:00
w33b 5dc1bff60c Add an indicator for v2 releases in the download popup #7 2026-05-26 14:36:21 +02:00
w33b bb53e06c69 Smaller style fix 2026-05-24 21:39:46 +02:00
w33b 3574d20fae Update hentai info design & Remove livewire view count 2026-05-24 15:52:22 +02:00
w33b 9fc9e8ed10 Update comments design 2026-05-24 14:49:46 +02:00
w33b 64a621173c Fix hover to preview once and for all 2026-05-23 14:48:25 +02:00
w33b 112cf9433e Make background darker 2026-05-23 14:00:11 +02:00
w33b d4c90976f8 Fix janky loading icon & weird offset of modal 2026-05-23 10:29:07 +02:00
w33b 6d3de59929 Update search filter design 2026-05-22 23:20:00 +02:00
w33b 4928733383 Refactor by using app layout 2026-05-22 22:34:03 +02:00
w33b 6340302ac6 Update Cover & Thumbnail Design & Refactor 2026-05-22 22:16:31 +02:00
w33b 09c08f3fea Add comment restore button 2026-05-06 21:15:15 +02:00
w33b fdf26604f3 Add ability to delete comments by moderators 2026-05-06 19:02:50 +02:00
w33b 62647be75c Fix active status not showing immediatly (livewire) 2026-05-05 16:02:00 +02:00
w33b 2151d69791 Add external subscription system 2026-05-04 19:12:21 +02:00
w33b 2480c5b309 Redo user comments list 2026-04-18 16:28:50 +02:00
w33b 5b4d3d435e Display the correct file extension on download button 2026-03-06 22:06:20 +01:00
w33b e5ef197ed6 Add user roles system 2026-01-16 23:14:47 +01:00
w33b 1e9e95f35f Fix admin comment moderation 2026-01-10 22:35:35 +01:00
w33b 81038b6c26 Add id to comment, so it can autoscroll to that notification 2026-01-10 21:59:08 +01:00
w33b 819e2fde27 Misc changes 2026-01-10 20:33:35 +01:00
w33b b133db0573 Add likes to comments 2026-01-10 19:41:23 +01:00
w33b 41c34e6d89 Fix style 2026-01-10 19:15:32 +01:00
w33b 13b70fdf23 Misc changes 2026-01-10 18:55:53 +01:00
w33b cfd6af59fb Add Profile Comment Search (Livewire) 2026-01-10 18:55:47 +01:00
w33b 6ce0255764 Remove ring offset 2026-01-10 15:45:52 +01:00
w33b a3b66b483b Add admin and donator badge 2026-01-10 15:34:05 +01:00
w33b 4c2a6024d7 Add dark mode 2026-01-10 15:27:37 +01:00
w33b 5f575024e2 Add Livewire comment system 2026-01-10 15:02:14 +01:00
w33b 58426b6e4e Add studio filter on download page closes #1 2026-01-09 22:51:15 +01:00
w33b fb3722036a Add ability to set custom avatar 2026-01-08 18:47:31 +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 e972f8db41 Rename column names 2026-01-07 12:54:10 +01:00
w33b 9ca2f73714 Admin: Add comments overview for moderation 2025-10-29 15:59:43 +01:00
w33b 59d63abd79 Admin: Add ability to delete all coments from user 2025-10-28 16:20:40 +01:00
w33b efb3e4197b Use cached values for view and like count in nav search 2025-10-26 21:25:50 +01:00
w33b 7e382ffe1d Redesign nav search 2025-10-23 15:39:07 +02:00
w33b 71bcf277f6 Add type icons to downloads search page 2025-10-15 19:33:37 +02:00
w33b 6c44d83e6b Add type filter to download search page 2025-10-15 18:50:49 +02:00
w33b 2880547f3e Fix mobile offset episode thumbnail / cover 2025-10-08 13:00:16 +02:00