Initial public release

This commit is contained in:
Harvey
2026-04-03 15:53:00 +01:00
commit a99c738164
679 changed files with 108326 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
from infrastructure.msgspec_fastapi import AppStruct
class LocalTrackInfo(AppStruct):
track_file_id: int
title: str
track_number: int
disc_number: int = 1
duration_seconds: float | None = None
size_bytes: int = 0
format: str = ""
bitrate: int | None = None
date_added: str | None = None
class LocalAlbumMatch(AppStruct):
found: bool
tracks: list[LocalTrackInfo] = []
total_size_bytes: int = 0
primary_format: str | None = None
class LocalAlbumSummary(AppStruct):
lidarr_album_id: int
musicbrainz_id: str
name: str
artist_name: str
artist_mbid: str | None = None
year: int | None = None
track_count: int = 0
total_size_bytes: int = 0
primary_format: str | None = None
cover_url: str | None = None
date_added: str | None = None
class LocalPaginatedResponse(AppStruct):
items: list[LocalAlbumSummary] = []
total: int = 0
offset: int = 0
limit: int = 50
class FormatInfo(AppStruct):
count: int = 0
size_bytes: int = 0
size_human: str = "0 B"
class LocalStorageStats(AppStruct):
total_tracks: int = 0
total_albums: int = 0
total_artists: int = 0
total_size_bytes: int = 0
total_size_human: str = "0 B"
disk_free_bytes: int = 0
disk_free_human: str = "0 B"
format_breakdown: dict[str, FormatInfo] = {}