Aniworld/README.md

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.