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