Commit Graph

54 Commits

Author SHA1 Message Date
root f13ad6abbd feat: Add advanced filtering, sorting, and grouping to downloads history
Implement a comprehensive download history management system with powerful filtering, sorting, and grouping capabilities.

New Features:
1. Statistics Dashboard
   - Real-time stats: total, downloading, paused, completed, failed
   - Color-coded badges for quick visual overview
   - Auto-updates every second with downloads

2. Advanced Filtering System
   - Filter by status: All, In Progress, Paused, Completed, Cancelled, Failed
   - Real-time search by filename or URL
   - Multiple filters can be combined

3. Multiple Sorting Options
   - Date (newest/oldest first)
   - Name (alphabetical A-Z / Z-A)
   - File size

4. Smart Grouping System
   - Group by Series: Automatically detects anime series names
     * Removes episode numbers, seasons, quality markers
     * Groups episodes of same anime together
   - Group by Status: Organizes by download state
   - Group by Day: Aujourd'hui, Hier, or specific date
   - Collapsible groups for cleaner UI

5. Bulk Actions
   - Clear all completed downloads with one click
   - Confirmation dialog to prevent accidents

UI Improvements:
- Modern filter controls with dark theme
- Responsive layout that works on all screen sizes
- Collapsible group headers with episode counts
- Empty state messages when no downloads match filters
- Visual indicators for each status type

Technical Details:
- extractSeriesName() function with regex patterns for:
  * Episode numbers (Ep, Episode, Épisode, SxxExx)
  * Quality markers (1080p, 720p, 480p)
  * Language tags (VOSTFR, VF, MULTI)
  * File extensions and brackets
- getDayString() for intelligent date grouping
- filterDownloads() for real-time filtering without API calls
- groupDownloads() for automatic series detection
- updateStats() for live statistics

User Experience:
- Filters persist during auto-refresh (every second)
- Group headers are clickable to toggle visibility
- Search works instantly as you type
- Statistics update in real-time
- Smooth animations and transitions

Example Use Cases:
- "Show me all completed One Piece episodes"
- "List all failed downloads from yesterday"
- "Find all Naruto episodes sorted by name"
- "Clean up all completed downloads at once"

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-23 10:39:49 +00:00
root 20cad0b4fe feat: Add anime metadata extraction and fix episode selection bug
Features:
- Added rich metadata extraction for all anime providers (Anime-Sama, Neko-Sama, Anime-Ultime, Vostfree)
- New AnimeMetadata model with synopsis, genres, rating, release year, studio, poster/banner images, episode count, and status
- New /api/anime/metadata endpoint for fetching metadata of specific anime
- Enhanced /api/anime/search endpoint with optional include_metadata parameter
- Updated web interface with metadata display (expandable synopsis, genres, rating, year)
- Added metadata toggle checkbox in search UI (disabled by default for performance)

Bug Fixes:
- Fixed episode selection bug where select would reset to default after any change
- Removed onchange event from select element that was causing unwanted reloads
- Fixed download button disappearing after episode download
- Episodes can now be downloaded multiple times without page refresh

Enhancements:
- Metadata displayed with icons (📅 year,  rating, 🏷️ genres, 📺 episodes, 📡 status)
- Expandable synopsis section for detailed descriptions
- Better visual organization of anime information
- Maintains backward compatibility (metadata is optional)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-23 09:36:59 +00:00
root 40977438ff feat: Add batch download for entire anime seasons
Add ability to download all episodes of a season with one click.

Backend changes:
- New POST /api/anime/download-season endpoint
- Retrieves all episodes and creates download tasks for each
- Returns list of task IDs and total episode count

Frontend changes:
- Add "Toute la saison" button next to episode selector
- Button shown immediately when episodes are loaded
- Confirmation dialog before starting batch download
- Success message showing number of episodes queued

Features:
- Respects max_parallel limit (default: 3 concurrent downloads)
- Proper episode naming (e.g., "Hells Paradise - Episode 01.mp4")
- Works with all anime providers (Anime-Sama, Anime-Ultime, etc.)

Example usage:
- Click "Toute la saison" button on any anime card
- Confirm the dialog
- All episodes are queued and download automatically

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-23 08:40:33 +00:00
root cb3ea8d926 feat: Add SendVid downloader support
Add complete support for SendVid video hosting service used by Anime-Sama
for anime series like Hell's Paradise.

Changes:
- Create SendVidDownloader class with proper headers to avoid 403 errors
- Add SendVid detection and handling in AnimeSamaDownloader
- Update download_manager to include SendVid-specific headers
- Support custom episode naming (e.g., "Hells Paradise - Episode 01.mp4")

Technical details:
- SendVid embed pages require User-Agent and Referer headers
- Direct MP4 URLs extracted from <source> tags with IP/time-based parameters
- Tested with Hell's Paradise Episode 01 (7MB, 24min, 1280x720)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-23 08:17:10 +00:00