Aniworld/instruction.md

99 lines
4.1 KiB
Markdown

Write a App in python with Flask. Make sure that you do not override the existing main.py
Use existing classes but if a chnae is needed make sure main.py works as before. Look at Main.py to understand the function.
Write all files in folder src/server/
Use the checklist to write the app. start on the first task. make sure each task is finished.
mark a finished task with x, and save it.
Stop if all Task are finshed
AniWorld Web App Feature Checklist
[x] Anime Search
[x] Implement search bar UI (auto-suggest, clear button)
[x] Connect search to backend loader
[x] Display search results (name, link, cover)
[x] Add anime from search results to global list
[x] Global Series List
[x] Display all series in a card/grid layout
[x] Show missing episodes per series
[x] Show cover, name, folder, and quick actions
[x] Multi-select series with checkboxes
[x] Select all series option
[x] Download Management
[x] Start download for selected series
[x] Show overall and per-episode progress bars
[x] Status indicators (downloading, finished, error)
[x] Pause, resume, cancel actions
[x] Reinit/Rescan Functionality
[x] UI button for rescan/reinit
[x] Show scanning progress modal
[x] Live updates during scan
[x] Update global series list after scan
[x] Status & Feedback
[x] Real-time status updates for scanning/downloading
[x] Snackbar/toast notifications for actions
[x] Centralized error dialog (friendly messages)
[x] Configuration & Environment
[x] Read base directory from environment variable
[x] UI for changing directory (if needed)
[x] Display current config (read-only)
[x] Security
[x] Validate all user inputs
[x] Do not expose internal errors or stack traces
[x] Modern GUI Concepts
[x] Fluent UI design (Windows 11 iconography, shapes, typography)
[x] Responsive design for desktop/mobile
[x] Dark and light mode support
[x] Localization-ready (resource files for text)
[x] Effortless, calm, and familiar user experience
[] Authentication & Security
[] Implement login page with master password authentication
[] Add password configuration option in config file
[] Add session management for authenticated users
[] Implement fail2ban compatible logging for failed login attempts
[] Use standard fail2ban log format: "authentication failure for [IP] user [attempt]"
[] Enhanced Anime Display
[] Modify main anime list to show animes with missing episodes first
[] Add filter toggle to show only animes with missing episodes
[] Implement alphabetical sorting option for anime names
[] Make only animes with missing episodes selectable for download
[] Add visual indicators for animes with/without missing episodes
[] Download Queue Management
[] Create dedicated download queue page showing active downloads
[] Display current download progress with episode name and download speed
[] Show download queue with pending items
[] Implement download queue status indicators (queued, downloading, completed, failed)
[] Add download queue statistics (total items, ETA, current speed)
[] Process Locking System
[] Implement rescan process lock (only one rescan at a time)
[] Add UI feedback when rescan is already running
[] Disable rescan button when process is active
[] Implement download queue lock (only one download process)
[] Prevent duplicate episodes in download queue
[] Add queue deduplication logic
[] Scheduled Operations
[] Add configuration option for scheduled rescan time (HH:MM format)
[] Implement daily automatic rescan at configured time
[] Auto-start download of missing episodes after scheduled rescan
[] Add UI to configure/view scheduled rescan settings
[] Show next scheduled rescan time in UI
[] Enhanced Logging
[] Configure console logging to show only essential information
[] Remove progress bars from console output
[] Implement structured logging for web interface
[] Add authentication failure logging in fail2ban format
[] Separate download progress logging from console output
[] Add log level configuration (INFO, WARNING, ERROR)