70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# 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
|
|
|
|
1. **Setup Environment:**
|
|
```bash
|
|
conda activate AniWorld
|
|
set ANIME_DIRECTORY="\\sshfs.r\ubuntu@192.168.178.43\media\serien\Serien"
|
|
cd src\server
|
|
```
|
|
|
|
2. **Run the Web Application:**
|
|
```bash
|
|
python app.py
|
|
```
|
|
|
|
3. **Run CLI Commands:**
|
|
```bash
|
|
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. |