78007461e1
Pluggable fetch source: ytmusicapi search + yt-dlp download (cookies-file guard), DownloadJob entity/repo + DownloadService, download_task worker with exponential-backoff retries, and wired /search, /sources/{source}/search, and /downloads endpoints. Adds youtube_enabled/cookies config, yt-dlp+ytmusicapi deps, and the download_jobs.track_id migration. Snapshot also bundles in-progress storage/tracks/acoustid edits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1018 B
Python
39 lines
1018 B
Python
"""Domain entities and value objects — pure, framework-free."""
|
|
|
|
from app.domain.entities.album import Album
|
|
from app.domain.entities.cover import CoverArt
|
|
from app.domain.entities.download import DownloadJob
|
|
from app.domain.entities.history import PlayHistoryEntry
|
|
from app.domain.entities.like import Like
|
|
from app.domain.entities.metadata import AudioTags, Fingerprint, RecordingMatch
|
|
from app.domain.entities.playlist import Playlist
|
|
from app.domain.entities.storage import (
|
|
DiskUsage,
|
|
FormatBreakdown,
|
|
LibraryStats,
|
|
ObjectStat,
|
|
)
|
|
from app.domain.entities.track import Artist, Track
|
|
from app.domain.entities.user import Credentials, SubsonicCredentials, User
|
|
|
|
__all__ = [
|
|
"Album",
|
|
"Artist",
|
|
"AudioTags",
|
|
"CoverArt",
|
|
"Credentials",
|
|
"DiskUsage",
|
|
"DownloadJob",
|
|
"Fingerprint",
|
|
"FormatBreakdown",
|
|
"LibraryStats",
|
|
"Like",
|
|
"ObjectStat",
|
|
"PlayHistoryEntry",
|
|
"Playlist",
|
|
"RecordingMatch",
|
|
"SubsonicCredentials",
|
|
"Track",
|
|
"User",
|
|
]
|