Files
sublime-music/sublime/server/api_objects.py
2020-05-08 11:30:23 -06:00

937 lines
26 KiB
Python

"""
WARNING: AUTOGENERATED FILE
This file was generated by the api_object_generator.py
script. Do not modify this file directly, rather modify the
script or run it on a new API version.
"""
from dataclasses import dataclass, field
from datetime import datetime
from enum import Enum
from typing import Any, List, Optional
from sublime.server.api_object import APIObject
@dataclass(frozen=True)
class AlbumInfo(APIObject):
notes: List[str] = field(default_factory=list)
musicBrainzId: List[str] = field(default_factory=list)
lastFmUrl: List[str] = field(default_factory=list)
smallImageUrl: List[str] = field(default_factory=list)
mediumImageUrl: List[str] = field(default_factory=list)
largeImageUrl: List[str] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class AverageRating(APIObject, float):
pass
class MediaType(APIObject, Enum):
MUSIC = "music"
PODCAST = "podcast"
AUDIOBOOK = "audiobook"
VIDEO = "video"
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class UserRating(APIObject, int):
pass
@dataclass(frozen=True)
class Child(APIObject):
id: str
isDir: bool
title: str
value: Optional[str] = None
parent: Optional[str] = None
album: Optional[str] = None
artist: Optional[str] = None
track: Optional[int] = None
year: Optional[int] = None
genre: Optional[str] = None
coverArt: Optional[str] = None
size: Optional[int] = None
contentType: Optional[str] = None
suffix: Optional[str] = None
transcodedContentType: Optional[str] = None
transcodedSuffix: Optional[str] = None
duration: Optional[int] = None
bitRate: Optional[int] = None
path: Optional[str] = None
isVideo: Optional[bool] = None
userRating: Optional[UserRating] = None
averageRating: Optional[AverageRating] = None
playCount: Optional[int] = None
discNumber: Optional[int] = None
created: Optional[datetime] = None
starred: Optional[datetime] = None
albumId: Optional[str] = None
artistId: Optional[str] = None
type: Optional[MediaType] = None
bookmarkPosition: Optional[int] = None
originalWidth: Optional[int] = None
originalHeight: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class AlbumList(APIObject):
album: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class AlbumID3(APIObject):
id: str
name: str
songCount: int
duration: int
created: datetime
value: Optional[str] = None
artist: Optional[str] = None
artistId: Optional[str] = None
coverArt: Optional[str] = None
playCount: Optional[int] = None
starred: Optional[datetime] = None
year: Optional[int] = None
genre: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class AlbumList2(APIObject):
album: List[AlbumID3] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class AlbumWithSongsID3(APIObject):
id: str
name: str
songCount: int
duration: int
created: datetime
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
artist: Optional[str] = None
artistId: Optional[str] = None
coverArt: Optional[str] = None
playCount: Optional[int] = None
starred: Optional[datetime] = None
year: Optional[int] = None
genre: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Artist(APIObject):
id: str
name: str
value: Optional[str] = None
artistImageUrl: Optional[str] = None
starred: Optional[datetime] = None
userRating: Optional[UserRating] = None
averageRating: Optional[AverageRating] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistInfoBase(APIObject):
biography: List[str] = field(default_factory=list)
musicBrainzId: List[str] = field(default_factory=list)
lastFmUrl: List[str] = field(default_factory=list)
smallImageUrl: List[str] = field(default_factory=list)
mediumImageUrl: List[str] = field(default_factory=list)
largeImageUrl: List[str] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistInfo(APIObject):
similarArtist: List[Artist] = field(default_factory=list)
value: Optional[str] = None
biography: List[str] = field(default_factory=list)
musicBrainzId: List[str] = field(default_factory=list)
lastFmUrl: List[str] = field(default_factory=list)
smallImageUrl: List[str] = field(default_factory=list)
mediumImageUrl: List[str] = field(default_factory=list)
largeImageUrl: List[str] = field(default_factory=list)
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistID3(APIObject):
id: str
name: str
albumCount: int
value: Optional[str] = None
coverArt: Optional[str] = None
artistImageUrl: Optional[str] = None
starred: Optional[datetime] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistInfo2(APIObject):
similarArtist: List[ArtistID3] = field(default_factory=list)
value: Optional[str] = None
biography: List[str] = field(default_factory=list)
musicBrainzId: List[str] = field(default_factory=list)
lastFmUrl: List[str] = field(default_factory=list)
smallImageUrl: List[str] = field(default_factory=list)
mediumImageUrl: List[str] = field(default_factory=list)
largeImageUrl: List[str] = field(default_factory=list)
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistWithAlbumsID3(APIObject):
id: str
name: str
albumCount: int
album: List[AlbumID3] = field(default_factory=list)
value: Optional[str] = None
coverArt: Optional[str] = None
artistImageUrl: Optional[str] = None
starred: Optional[datetime] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class IndexID3(APIObject):
name: str
artist: List[ArtistID3] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ArtistsID3(APIObject):
ignoredArticles: str
index: List[IndexID3] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Bookmark(APIObject):
position: int
username: str
created: datetime
changed: datetime
entry: List[Child] = field(default_factory=list)
value: Optional[str] = None
comment: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Bookmarks(APIObject):
bookmark: List[Bookmark] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ChatMessage(APIObject):
username: str
time: int
message: str
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ChatMessages(APIObject):
chatMessage: List[ChatMessage] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Directory(APIObject):
id: str
name: str
child: List[Child] = field(default_factory=list)
value: Optional[str] = None
parent: Optional[str] = None
starred: Optional[datetime] = None
userRating: Optional[UserRating] = None
averageRating: Optional[AverageRating] = None
playCount: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Error(APIObject):
code: int
value: Optional[str] = None
message: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Genre(APIObject):
songCount: int
albumCount: int
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Genres(APIObject):
genre: List[Genre] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Index(APIObject):
name: str
artist: List[Artist] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Indexes(APIObject):
lastModified: int
ignoredArticles: str
shortcut: List[Artist] = field(default_factory=list)
index: List[Index] = field(default_factory=list)
child: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class InternetRadioStation(APIObject):
id: str
name: str
streamUrl: str
value: Optional[str] = None
homePageUrl: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class InternetRadioStations(APIObject):
internetRadioStation: List[InternetRadioStation] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class JukeboxStatus(APIObject):
currentIndex: int
playing: bool
gain: float
value: Optional[str] = None
position: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class JukeboxPlaylist(APIObject):
currentIndex: int
playing: bool
gain: float
entry: List[Child] = field(default_factory=list)
value: Optional[str] = None
position: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class License(APIObject):
valid: bool
value: Optional[str] = None
email: Optional[str] = None
licenseExpires: Optional[datetime] = None
trialExpires: Optional[datetime] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Lyrics(APIObject):
artist: Optional[str] = None
value: Optional[str] = None
title: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class MusicFolder(APIObject):
id: int
value: Optional[str] = None
name: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class MusicFolders(APIObject):
musicFolder: List[MusicFolder] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
class PodcastStatus(APIObject, Enum):
NEW = "new"
DOWNLOADING = "downloading"
COMPLETED = "completed"
ERROR = "error"
DELETED = "deleted"
SKIPPED = "skipped"
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class PodcastEpisode(APIObject):
channelId: str
status: PodcastStatus
id: str
isDir: bool
title: str
streamId: Optional[str] = None
description: Optional[str] = None
publishDate: Optional[datetime] = None
value: Optional[str] = None
parent: Optional[str] = None
album: Optional[str] = None
artist: Optional[str] = None
track: Optional[int] = None
year: Optional[int] = None
genre: Optional[str] = None
coverArt: Optional[str] = None
size: Optional[int] = None
contentType: Optional[str] = None
suffix: Optional[str] = None
transcodedContentType: Optional[str] = None
transcodedSuffix: Optional[str] = None
duration: Optional[int] = None
bitRate: Optional[int] = None
path: Optional[str] = None
isVideo: Optional[bool] = None
userRating: Optional[UserRating] = None
averageRating: Optional[AverageRating] = None
playCount: Optional[int] = None
discNumber: Optional[int] = None
created: Optional[datetime] = None
starred: Optional[datetime] = None
albumId: Optional[str] = None
artistId: Optional[str] = None
type: Optional[MediaType] = None
bookmarkPosition: Optional[int] = None
originalWidth: Optional[int] = None
originalHeight: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class NewestPodcasts(APIObject):
episode: List[PodcastEpisode] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class NowPlayingEntry(APIObject):
username: str
minutesAgo: int
playerId: int
id: str
isDir: bool
title: str
playerName: Optional[str] = None
value: Optional[str] = None
parent: Optional[str] = None
album: Optional[str] = None
artist: Optional[str] = None
track: Optional[int] = None
year: Optional[int] = None
genre: Optional[str] = None
coverArt: Optional[str] = None
size: Optional[int] = None
contentType: Optional[str] = None
suffix: Optional[str] = None
transcodedContentType: Optional[str] = None
transcodedSuffix: Optional[str] = None
duration: Optional[int] = None
bitRate: Optional[int] = None
path: Optional[str] = None
isVideo: Optional[bool] = None
userRating: Optional[UserRating] = None
averageRating: Optional[AverageRating] = None
playCount: Optional[int] = None
discNumber: Optional[int] = None
created: Optional[datetime] = None
starred: Optional[datetime] = None
albumId: Optional[str] = None
artistId: Optional[str] = None
type: Optional[MediaType] = None
bookmarkPosition: Optional[int] = None
originalWidth: Optional[int] = None
originalHeight: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class NowPlaying(APIObject):
entry: List[NowPlayingEntry] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class PlayQueue(APIObject):
username: str
changed: datetime
changedBy: str
entry: List[Child] = field(default_factory=list)
value: Optional[str] = None
current: Optional[int] = None
position: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Playlist(APIObject):
id: str
name: str
songCount: int
duration: int
created: datetime
changed: datetime
allowedUser: List[str] = field(default_factory=list)
value: Optional[str] = None
comment: Optional[str] = None
owner: Optional[str] = None
public: Optional[bool] = None
coverArt: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class PlaylistWithSongs(APIObject):
id: str
name: str
songCount: int
duration: int
created: datetime
changed: datetime
entry: List[Child] = field(default_factory=list)
value: Optional[str] = None
allowedUser: List[str] = field(default_factory=list)
comment: Optional[str] = None
owner: Optional[str] = None
public: Optional[bool] = None
coverArt: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Playlists(APIObject):
playlist: List[Playlist] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class PodcastChannel(APIObject):
id: str
url: str
status: PodcastStatus
episode: List[PodcastEpisode] = field(default_factory=list)
value: Optional[str] = None
title: Optional[str] = None
description: Optional[str] = None
coverArt: Optional[str] = None
originalImageUrl: Optional[str] = None
errorMessage: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Podcasts(APIObject):
channel: List[PodcastChannel] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
class ResponseStatus(APIObject, Enum):
OK = "ok"
FAILED = "failed"
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class ScanStatus(APIObject):
scanning: bool
value: Optional[str] = None
count: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class SearchResult(APIObject):
offset: int
totalHits: int
match: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class SearchResult2(APIObject):
artist: List[Artist] = field(default_factory=list)
album: List[Child] = field(default_factory=list)
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class SearchResult3(APIObject):
artist: List[ArtistID3] = field(default_factory=list)
album: List[AlbumID3] = field(default_factory=list)
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Share(APIObject):
id: str
url: str
username: str
created: datetime
visitCount: int
entry: List[Child] = field(default_factory=list)
value: Optional[str] = None
description: Optional[str] = None
expires: Optional[datetime] = None
lastVisited: Optional[datetime] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Shares(APIObject):
share: List[Share] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class SimilarSongs(APIObject):
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class SimilarSongs2(APIObject):
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Songs(APIObject):
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Starred(APIObject):
artist: List[Artist] = field(default_factory=list)
album: List[Child] = field(default_factory=list)
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Starred2(APIObject):
artist: List[ArtistID3] = field(default_factory=list)
album: List[AlbumID3] = field(default_factory=list)
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class TopSongs(APIObject):
song: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class User(APIObject):
username: str
scrobblingEnabled: bool
adminRole: bool
settingsRole: bool
downloadRole: bool
uploadRole: bool
playlistRole: bool
coverArtRole: bool
commentRole: bool
podcastRole: bool
streamRole: bool
jukeboxRole: bool
shareRole: bool
videoConversionRole: bool
folder: List[int] = field(default_factory=list)
value: Optional[str] = None
email: Optional[str] = None
maxBitRate: Optional[int] = None
avatarLastChanged: Optional[datetime] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Users(APIObject):
user: List[User] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Version(APIObject, str):
pass
@dataclass(frozen=True)
class AudioTrack(APIObject):
id: str
value: Optional[str] = None
name: Optional[str] = None
languageCode: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Captions(APIObject):
id: str
value: Optional[str] = None
name: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class VideoConversion(APIObject):
id: str
value: Optional[str] = None
bitRate: Optional[int] = None
audioTrackId: Optional[int] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class VideoInfo(APIObject):
id: str
captions: List[Captions] = field(default_factory=list)
audioTrack: List[AudioTrack] = field(default_factory=list)
conversion: List[VideoConversion] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Videos(APIObject):
video: List[Child] = field(default_factory=list)
value: Optional[str] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)
@dataclass(frozen=True)
class Response(APIObject):
musicFolders: Optional[MusicFolders] = None
indexes: Optional[Indexes] = None
directory: Optional[Directory] = None
genres: Optional[Genres] = None
artists: Optional[ArtistsID3] = None
artist: Optional[ArtistWithAlbumsID3] = None
album: Optional[AlbumWithSongsID3] = None
song: Optional[Child] = None
videos: Optional[Videos] = None
videoInfo: Optional[VideoInfo] = None
nowPlaying: Optional[NowPlaying] = None
searchResult: Optional[SearchResult] = None
searchResult2: Optional[SearchResult2] = None
searchResult3: Optional[SearchResult3] = None
playlists: Optional[Playlists] = None
playlist: Optional[PlaylistWithSongs] = None
jukeboxStatus: Optional[JukeboxStatus] = None
jukeboxPlaylist: Optional[JukeboxPlaylist] = None
license: Optional[License] = None
users: Optional[Users] = None
user: Optional[User] = None
chatMessages: Optional[ChatMessages] = None
albumList: Optional[AlbumList] = None
albumList2: Optional[AlbumList2] = None
randomSongs: Optional[Songs] = None
songsByGenre: Optional[Songs] = None
lyrics: Optional[Lyrics] = None
podcasts: Optional[Podcasts] = None
newestPodcasts: Optional[NewestPodcasts] = None
internetRadioStations: Optional[InternetRadioStations] = None
bookmarks: Optional[Bookmarks] = None
playQueue: Optional[PlayQueue] = None
shares: Optional[Shares] = None
starred: Optional[Starred] = None
starred2: Optional[Starred2] = None
albumInfo: Optional[AlbumInfo] = None
artistInfo: Optional[ArtistInfo] = None
artistInfo2: Optional[ArtistInfo2] = None
similarSongs: Optional[SimilarSongs] = None
similarSongs2: Optional[SimilarSongs2] = None
topSongs: Optional[TopSongs] = None
scanStatus: Optional[ScanStatus] = None
error: Optional[Error] = None
value: Optional[str] = None
status: Optional[ResponseStatus] = None
version: Optional[Version] = None
def get(self, key: str, default: Any = None) -> Any:
return getattr(self, key, default)