/
/
/
1"""Constants for the Jellyfin integration."""
2
3from typing import Final
4
5from aiojellyfin import ImageType as JellyImageType
6from aiojellyfin import ItemFields
7from music_assistant_models.enums import ImageType
8
9DOMAIN: Final = "jellyfin"
10
11COLLECTION_TYPE_MUSIC: Final = "music"
12COLLECTION_TYPE_PLAYLISTS: Final = "playlists"
13
14ITEM_KEY_COLLECTION_TYPE: Final = "CollectionType"
15ITEM_KEY_ID: Final = "Id"
16ITEM_KEY_IMAGE_TAGS: Final = "ImageTags"
17ITEM_KEY_INDEX_NUMBER: Final = "IndexNumber"
18ITEM_KEY_MEDIA_SOURCES: Final = "MediaSources"
19ITEM_KEY_MEDIA_TYPE: Final = "MediaType"
20ITEM_KEY_MEDIA_STREAMS: Final = "MediaStreams"
21ITEM_KEY_MEDIA_CHANNELS: Final = "Channels"
22ITEM_KEY_MEDIA_CODEC: Final = "Codec"
23ITEM_KEY_MEDIA_STREAM_TYPE: Final = "Type"
24ITEM_KEY_CONTAINER: Final = "Container"
25ITEM_KEY_NAME: Final = "Name"
26ITEM_KEY_PROVIDER_IDS: Final = "ProviderIds"
27ITEM_KEY_PRODUCTION_YEAR: Final = "ProductionYear"
28ITEM_KEY_OVERVIEW: Final = "Overview"
29ITEM_KEY_MUSICBRAINZ_RELEASE_GROUP: Final = "MusicBrainzReleaseGroup"
30ITEM_KEY_MUSICBRAINZ_ARTIST: Final = "MusicBrainzArtist"
31ITEM_KEY_MUSICBRAINZ_ALBUM: Final = "MusicBrainzAlbum"
32ITEM_KEY_MUSICBRAINZ_TRACK: Final = "MusicBrainzTrack"
33ITEM_KEY_SORT_NAME: Final = "SortName"
34ITEM_KEY_ALBUM_ARTIST: Final = "AlbumArtist"
35ITEM_KEY_ALBUM_ARTISTS: Final = "AlbumArtists"
36ITEM_KEY_ALBUM: Final = "Album"
37ITEM_KEY_ALBUM_ID: Final = "AlbumId"
38ITEM_KEY_ARTIST_ITEMS: Final = "ArtistItems"
39ITEM_KEY_CAN_DOWNLOAD: Final = "CanDownload"
40ITEM_KEY_PARENT_INDEX_NUM: Final = "ParentIndexNumber"
41ITEM_KEY_RUNTIME_TICKS: Final = "RunTimeTicks"
42ITEM_KEY_USER_DATA: Final = "UserData"
43
44USER_DATA_KEY_IS_FAVORITE: Final = "IsFavorite"
45
46MEDIA_TYPE_AUDIO: Final = "Audio"
47
48SUPPORTED_CONTAINER_FORMATS: Final = "ogg,flac,mp3,aac,mpeg,alac,wav,aiff,wma,m4a,m4b,dsf,opus,wv"
49
50ARTIST_FIELDS: Final = [
51 ItemFields.Overview,
52 ItemFields.ProviderIds,
53 ItemFields.SortName,
54]
55ALBUM_FIELDS: Final = [
56 ItemFields.Overview,
57 ItemFields.ProviderIds,
58 ItemFields.SortName,
59]
60TRACK_FIELDS: Final = [
61 ItemFields.ProviderIds,
62 ItemFields.CanDownload,
63 ItemFields.SortName,
64 ItemFields.MediaSources,
65 ItemFields.MediaStreams,
66]
67
68USER_APP_NAME: Final = "Music Assistant"
69
70MEDIA_IMAGE_TYPES: Final = {
71 JellyImageType.Primary: ImageType.THUMB,
72 JellyImageType.Logo: ImageType.LOGO,
73}
74