Aniworld/README.md

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

  1. Setup Environment:

    conda activate AniWorld
    set ANIME_DIRECTORY="\\sshfs.r\ubuntu@192.168.178.43\media\serien\Serien"
    cd src\server
    
  2. Run the Web Application:

    python app.py
    
  3. 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.