2.0 KiB
2.0 KiB
AniWorld - Anime Download and Management System
A comprehensive anime download and management system with web interface and CLI support.
Project Structure
This project follows Clean Architecture principles with clear separation of concerns:
Core (src/server/core/)
- entities/: Domain entities (Series, Episodes, etc.)
- interfaces/: Domain interfaces and contracts
- use_cases/: Business use cases and logic
- exceptions/: Domain-specific exceptions
Infrastructure (src/server/infrastructure/)
- database/: Database layer and repositories
- providers/: Anime and streaming providers
- file_system/: File system operations
- external/: External integrations
- caching/: Caching implementations
- logging/: Logging infrastructure
Application (src/server/application/)
- services/: Application services
- dto/: Data Transfer Objects
- validators/: Input validation
- mappers/: Data mapping
Web (src/server/web/)
- controllers/: Flask blueprints and API endpoints
- middleware/: Web middleware
- templates/: Jinja2 templates
- static/: CSS, JavaScript, and images
Shared (src/server/shared/)
- constants/: Application constants
- utils/: Utility functions
- decorators/: Custom decorators
- middleware/: Shared middleware
Quick Start
-
Setup Environment:
conda activate AniWorld set ANIME_DIRECTORY="\\sshfs.r\ubuntu@192.168.178.43\media\serien\Serien" cd src\server -
Run the Web Application:
python app.py -
Run CLI Commands:
cd src python main.py
Development
- Documentation: See
docs/directory - Tests: See
tests/directory - Configuration: See
config/directory - Data: Application data in
data/directory
Architecture
The application uses Clean Architecture with dependency injection and clear layer boundaries. Each layer has specific responsibilities and depends only on inner layers.