Runs after NFO refresh during scheduled rescans. Renames folders that are missing a year (e.g. 'Naruto' → 'Naruto (1999)') using the year from the database record. Safety: _build_target_folder() always strips any existing year suffix first, preventing double/triple year accumulation like 'Naruto (1999) (1999) (1999)'. Changes: - New FolderNamingService (folder_naming_service.py) with safe target name construction, DB update, and in-memory cache update - New SchedulerConfig field: folder_naming_after_nfo_scan (default True) - Integrated as step 3 in scheduler _perform_rescan() after NFO scan - Runtime UI: existing 'folder-scan-enabled' checkbox in index.html now wired to toggle the feature (app.js + scheduler-config.js) - Setup screen: new checkbox in setup.html Scheduler Settings section - API: scheduler config endpoint returns all scan toggles - Tests: 39 unit tests covering static helpers, rename logic, safety guard, and integration cases (folder_naming_service.py) - Docs: testing guide updated with FolderNamingService examples
Aniworld Documentation
Overview
This directory contains all documentation for the Aniworld anime download manager project.
Documentation Structure
| Document | Purpose | Target Audience |
|---|---|---|
| ARCHITECTURE.md | System architecture and design decisions | Architects, Senior Developers |
| API.md | REST API reference and WebSocket documentation | Frontend Developers, API Consumers |
| DEVELOPMENT.md | Developer setup and contribution guide | All Developers |
| DEPLOYMENT.md | Deployment and operations guide | DevOps, System Administrators |
| DATABASE.md | Database schema and data models | Backend Developers |
| TESTING.md | Testing strategy and guidelines | QA Engineers, Developers |
| SECURITY.md | Security considerations and guidelines | Security Engineers, All Developers |
| CONFIGURATION.md | Configuration options reference | Operators, Developers |
| CHANGELOG.md | Version history and changes | All Stakeholders |
| TROUBLESHOOTING.md | Common issues and solutions | Support, Operators |
| features.md | Feature list and capabilities | Product Owners, Users |
| instructions.md | AI agent development instructions | AI Agents, Developers |
Documentation Standards
- All documentation uses Markdown format
- Keep documentation up-to-date with code changes
- Include code examples where applicable
- Use clear, concise language
- Include diagrams for complex concepts (use Mermaid syntax)
Contributing to Documentation
When adding or updating documentation:
- Follow the established format in each document
- Update the README.md if adding new documents
- Ensure cross-references are valid
- Review for spelling and grammar