Project directory structure and data flow
mainUnderstanding the directory layout is essential for navigating the codebase:
cmd/: Main application entry points (executables).internal/: Private application code (encapsulated).internal/api/: External API communications (databases, streaming services).internal/player/: Core video player (platform-specific Unix/Windows).internal/models/: Core data structures (anime, skip times, URLs).internal/tracking/: Watch history and progress tracking.internal/discord/: Discord Rich Presence integration.internal/playback/: Media playback logic.internal/appflow/: Application workflow and data flow management.build/: Platform-specific build scripts.test/: Functional test suite.
Data Flow Pattern
The application typically follows this sequence:
- API Layer (
internal/api/) fetches data. - Models (
internal/models/) structure the data. - Appflow (
internal/appflow/) manages the flow. - Playback (
internal/playback/) handles media logic. - Player (
internal/player/) manages video playback. - Tracking (
internal/tracking/) records progress. - Discord (
internal/discord/) updates status.