jf-roku/source/api/sdk.bs
2023-05-05 13:19:15 -04:00

2171 lines
78 KiB
Plaintext

namespace api
namespace albums
' Creates an instant playlist based on a given album.
function GetInstantMix(id as string, params = {} as object)
req = APIRequest(Substitute("/albums/{0}/instantmix", id), params)
return getJson(req)
end function
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/albums/{0}/similar", id), params)
return getJson(req)
end function
end namespace
namespace artists
' Gets all artists from a given item, folder, or the entire library.
function Get(params = {} as object)
req = APIRequest("/artists", params)
return getJson(req)
end function
' Gets an artist by name.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/artists/{0}", name), params)
return getJson(req)
end function
' Gets all album artists from a given item, folder, or the entire library.
function GetAlbumArtists(params = {} as object)
req = APIRequest("/artists/albumartists", params)
return getJson(req)
end function
' Get artist image by name.
function GetImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/artists/{0}/images/{1}/{2}", name, imagetype, imageindex.ToStr()), params)
end function
' Get artist image by name.
function HeadImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/artists/{0}/images/{1}/{2}", name, imagetype, imageindex.ToStr()), params)
return headVoid(req)
end function
' Creates an instant playlist based on a given artist.
function GetInstantMix(id as string, params = {} as object)
req = APIRequest(Substitute("/artists/{0}/instantmix", id), params)
return getJson(req)
end function
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/artists/{0}/similar", id), params)
return getJson(req)
end function
end namespace
namespace audio
' Gets an audio stream.
function GetStreamURL(id as string, params = {} as object)
return buildURL(Substitute("Audio/{0}/stream", id), params)
end function
' Gets an audio stream.
function HeadStreamURL(id as string, params = {} as object)
req = APIRequest(Substitute("Audio/{0}/stream", id), params)
return headVoid(req)
end function
' Gets an audio stream.
function GetStreamURLWithContainer(id as string, container as string, params = {} as object)
return buildURL(Substitute("Audio/{0}/stream.{1}", id, container), params)
end function
' Gets an audio stream.
function HeadStreamURLWithContainer(id as string, container as string, params = {} as object)
req = APIRequest(Substitute("Audio/{0}/stream.{1}", id, container), params)
return headVoid(req)
end function
' Gets an audio stream.
function GetUniversalURL(id as string, params = {} as object)
return buildURL(Substitute("Audio/{0}/universal", id), params)
end function
' Gets an audio stream.
sub HeadUniversalURL()
throw "System.NotImplementedException: The function is not implemented."
end sub
end namespace
namespace auth
' Get all keys.
function GetKeys()
req = APIRequest("/auth/keys")
return getJson(req)
end function
' Create a new api key.
function PostKeys(params = {} as object)
req = APIRequest("/auth/keys", params)
return postVoid(req)
end function
' Remove an api key.
function DeleteKeys(key as string)
req = APIRequest(Substitute("/auth/keys/{0}", key))
return deleteVoid(req)
end function
' Get all password reset providers.
function GetPasswordResetProviders()
req = APIRequest("/auth/passwordresetproviders")
return getJson(req)
end function
' Get all auth providers.
function GetAuthProviders()
req = APIRequest("/auth/providers")
return getJson(req)
end function
end namespace
namespace branding
' Get user's splashscreen image
function GetSplashScreen(params = {} as object)
return buildURL("/branding/splashscreen", params)
end function
' Uploads a custom splashscreen.
sub PostSplashScreen()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Delete a custom splashscreen.
function DeleteSplashScreen()
req = APIRequest("/branding/splashscreen")
return deleteVoid(req)
end function
' Gets branding configuration.
function GetConfiguration()
req = APIRequest("/branding/configuration")
return getJson(req)
end function
' Gets branding css.
function GetCSS()
req = APIRequest("/branding/css")
return getJson(req)
end function
' Gets branding css.
function GetCSSWithExtension()
req = APIRequest("/branding/css.css")
return getJson(req)
end function
end namespace
namespace channels
' Gets available channels.
function Get(params = {} as object)
req = APIRequest("/channels", params)
return getJson(req)
end function
function GetFeatures(id as string)
req = APIRequest(Substitute("/channels/{0}/features", id))
return getJson(req)
end function
function GetItems(id as string, params = {} as object)
req = APIRequest(Substitute("/channels/{0}/items", id), params)
return getJson(req)
end function
function GetAllFeatures()
req = APIRequest("/channels/features")
return getJson(req)
end function
function GetLatestItems(params = {} as object)
req = APIRequest("/channels/items/latest", params)
return getJson(req)
end function
end namespace
namespace clientLog
sub Document()
throw "System.NotImplementedException: The function is not implemented."
end sub
end namespace
namespace collections
' Creates a new collection.
function Create(params = {} as object)
req = APIRequest("/collections", params)
return postJson(req)
end function
' Adds items to a collection.
function AddItems(id as string, params = {} as object)
req = APIRequest(Substitute("/collections/{0}/items", id), params)
return postVoid(req)
end function
' Removes items from a collection.
function DeleteItems(id as string, params = {} as object)
req = APIRequest(Substitute("/collections/{0}/items", id), params)
return deleteVoid(req)
end function
end namespace
namespace devices
' Get Devices.
function Get(params = {} as object)
req = APIRequest("/devices", params)
return getJson(req)
end function
function GetInfo(params = {} as object)
req = APIRequest("/devices/info", params)
return getJson(req)
end function
function GetOptions(params = {} as object)
req = APIRequest("/devices/options", params)
return getJson(req)
end function
function UpdateOptions(params = {} as object, body = {} as object)
req = APIRequest("/devices/options", params)
return postVoid(req, FormatJson(body))
end function
function Delete(params = {} as object)
req = APIRequest("/devices", params)
return deleteVoid(req)
end function
end namespace
namespace displayPreferences
' Get Display Preferences.
' m.api.displaypreferences.get("usersettings", {
' "userid": "bde7e54f2d7f45d79525265640239c03",
' "client": "roku"
'})
function Get(id as string, params = {} as object)
req = APIRequest(Substitute("/displaypreferences/{0}", id), params)
return getJson(req)
end function
function Update(id, params = {} as object, body = {} as object)
req = APIRequest(Substitute("/displaypreferences/{0}", id), params)
return postVoid(req, FormatJson(body))
end function
end namespace
namespace dlna
' Get profile infos.
function GetProfileInfos()
req = APIRequest("/dlna/profileinfos")
return getJson(req)
end function
' Creates a profile.
function CreateProfile(body = {} as object)
req = APIRequest("/dlna/profiles")
return postVoid(req, FormatJson(body))
end function
' Updates a profile.
sub UpdateProfile()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets a single profile.
function GetProfileByID(id as string)
req = APIRequest(Substitute("/dlna/profiles/{0}", id))
return getJson(req)
end function
' Deletes a profile.
function DeleteProfile(id as string)
req = APIRequest(Substitute("/dlna/profiles/{0}", id))
return deleteVoid(req)
end function
' Gets the default profile.
function GetDefaultProfile()
req = APIRequest("/dlna/profiles/default")
return getJson(req)
end function
end namespace
namespace environment
' Get Default directory browser.
function GetDefaultDirectoryBrowser()
req = APIRequest("/environment/defaultdirectorybrowser")
return getJson(req)
end function
' Gets the contents of a given directory in the file system.
function GetDirectoryContents(params = {} as object)
req = APIRequest("/environment/directorycontents", params)
return getJson(req)
end function
' Gets the parent path of a given path.
function GetParentPath(params = {} as object)
req = APIRequest("/environment/parentpath", params)
return getJson(req)
end function
' Gets available drives from the server's file system.
function GetDrives()
req = APIRequest("/environment/drives")
return getJson(req)
end function
' Validates path.
function ValidatePath(body = {} as object)
req = APIRequest("/environment/validatepath")
return postVoid(req, FormatJson(body))
end function
end namespace
namespace fallbackFont
' Gets a list of available fallback font files.
function GetFonts()
req = APIRequest("/fallbackfont/fonts")
return getJson(req)
end function
' Gets a fallback font file.
function GetFontURL(name as string)
return buildURL(Substitute("/fallbackfont/fonts/{0}", name))
end function
end namespace
namespace getUTCTime
' Get profile info.
function Get()
req = APIRequest("/getutctime")
return getJson(req)
end function
end namespace
namespace genres
' Gets all genres from a given item, folder, or the entire library.
function Get(params = {} as object)
req = APIRequest("/genres", params)
return getJson(req)
end function
' Gets a genre, by name.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/genres/{0}", name), params)
return getJson(req)
end function
' Get genre image by name.
function GetImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/genres/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
end function
' Get genre image by name.
function HeadImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/genres/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
end namespace
namespace images
' Get all general images.
function GetGeneral()
req = APIRequest("/images/general")
return getJson(req)
end function
' Get General Image.
function GetGeneralURLByName(name as string, imagetype = "primary" as string)
return buildURL(Substitute("/images/general/{0}/{1}", name, imagetype))
end function
' Get all media info images.
function GetMediaInfo()
req = APIRequest("/images/mediainfo")
return getJson(req)
end function
' Get media info image.
function GetMediaInfoURL(theme as string, name as string)
return buildURL(Substitute("/images/mediainfo/{0}/{1}", theme, name))
end function
' Get all general images.
function GetRatings()
req = APIRequest("/images/ratings")
return getJson(req)
end function
' Get rating image.
function GetRatingsURL(theme as string, name as string)
return buildURL(Substitute("/images/ratings/{0}/{1}", theme, name))
end function
end namespace
namespace items
' Gets legacy query filters.
function GetFilters(params = {} as object)
req = APIRequest("/items/filters", params)
return getJson(req)
end function
' Gets query filters.
function GetFilters2(params = {} as object)
req = APIRequest("/items/filters2", params)
return getJson(req)
end function
' Get item image infos.
function GetImages(id as string)
req = APIRequest(Substitute("/items/{0}/images", id))
return getJson(req)
end function
' Delete an item's image.
sub DeleteImage()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Set item image.
sub PostImage()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets the item's image.
function GetImageURL(id as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/items/{0}/images/{1}/{2}", id, imagetype, imageindex.toStr()), params)
end function
' Gets the item's image.
function HeadImageURLByName(id as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/items/{0}/images/{1}/{2}", id, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
' Delete an item's image.
sub DeleteImageByIndex()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Updates the index for an item image.
function UpdateImageIndex(id as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/items/{0}/images/{1}/{2}/index", id, imagetype, imageindex.toStr()), params)
return postVoid(req)
end function
' Creates an instant playlist based on a given item.
function GetInstantMix(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/instantmix", id), params)
return getJson(req)
end function
' Get the item's external id info.
function GetExternalIDInfos(id as string)
req = APIRequest(Substitute("/items/{0}/externalidinfos", id))
return getJson(req)
end function
' Applies search criteria to an item and refreshes metadata.
sub ApplySearchResult()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Get book remote search.
function GetBookRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/book")
return postJson(req, FormatJson(body))
end function
' Get box set remote search.
function GetBoxsetRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/boxset")
return postJson(req, FormatJson(body))
end function
' Get movie remote search.
function GetMovieRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/movie")
return postJson(req, FormatJson(body))
end function
' Get music album remote search.
function GetMusicAlbumRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/musicalbum")
return postJson(req, FormatJson(body))
end function
' Get music artist remote search.
function GetMusicArtistRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/musicartist")
return postJson(req, FormatJson(body))
end function
' Get music video remote search.
function GetMusicVideoRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/musicvideo")
return postJson(req, FormatJson(body))
end function
' Get person remote search.
function GetPersonRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/person")
return postJson(req, FormatJson(body))
end function
' Get series remote search.
function GetSeriesRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/series")
return postJson(req, FormatJson(body))
end function
' Get trailer remote search.
function GetTrailerRemoteSearch(body = {} as object)
req = APIRequest("/items/remotesearch/trailer")
return postJson(req, FormatJson(body))
end function
' Refreshes metadata for an item.
function RefreshMetaData(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/refresh", id), params)
return postVoid(req)
end function
' Gets items based on a query.
' requires userid passed in params
function GetByQuery(params = {} as object)
req = APIRequest("/items/", params)
return getJson(req)
end function
' Deletes items from the library and filesystem.
function Delete(params = {} as object)
req = APIRequest("/items/", params)
return deleteVoid(req)
end function
' Deletes an item from the library and filesystem.
function DeleteByID(id as string)
req = APIRequest(Substitute("/items/{0}", id))
return deleteVoid(req)
end function
' Gets all parents of an item.
function GetAncestors(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/ancestors", id), params)
return getJson(req)
end function
' Downloads item media.
sub GetDownload()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Get the original file of an item.
function GetOriginalFile(id as string)
return buildURL(Substitute("/items/{0}/file", id))
end function
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/similar", id), params)
return getJson(req)
end function
' Get theme songs and videos for an item.
function GetThemeMedia(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/thememedia", id), params)
return getJson(req)
end function
' Get theme songs for an item.
function GetThemeSongs(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/themesongs", id), params)
return getJson(req)
end function
' Get theme videos for an item.
function GetThemeVideos(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/themevideos", id), params)
return getJson(req)
end function
' Get item counts.
function GetCounts(params = {} as object)
req = APIRequest("/items/counts", params)
return getJson(req)
end function
' Updates an item.
function Update(id as string, body = {} as object)
req = APIRequest(Substitute("/items/{0}", id))
return postVoid(req, FormatJson(body))
end function
' Updates an item's content type.
function UpdateContentType(id as string, body = {} as object)
req = APIRequest(Substitute("/items/{0}/contenttype", id))
return postVoid(req, FormatJson(body))
end function
' Gets metadata editor info for an item.
function GetMedaDataEditor(id as string)
req = APIRequest(Substitute("/items/{0}/metadataeditor", id))
return getJson(req)
end function
' Gets live playback media info for an item.
function GetPlaybackInfo(id as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/playbackinfo", id), params)
return getJson(req)
end function
' Gets live playback media info for an item.
function PostPlayBackInfo(id as string, body = {} as object)
req = APIRequest(Substitute("/items/{0}/playbackinfo", id))
return postJson(req, FormatJson(body))
end function
' Gets available remote images for an item.
function GetRemoteImages(id as string)
req = APIRequest(Substitute("/items/{0}/remoteimages", id))
return getJson(req)
end function
' Gets available remote image providers for an item.
function GetRemoteImageProviders(id as string)
req = APIRequest(Substitute("/items/{0}/remoteimages/providers", id))
return getJson(req)
end function
' Downloads a remote image for an item.
sub DownloadRemoteImages()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Search remote subtitles.
function SearchRemoteSubtitles(id as string, language as string, params = {} as object)
req = APIRequest(Substitute("/items/{0}/remotesearch/subtitles/{1}", id, language), params)
return getJson(req)
end function
' Downloads a remote subtitle.
sub DownloadRemoteSubtitles()
throw "System.NotImplementedException: The function is not implemented."
end sub
end namespace
namespace libraries
' Gets the library options info.
function GetAvailableOptions(params = {} as object)
req = APIRequest("/libraries/availableoptions", params)
return getJson(req)
end function
end namespace
namespace library
' Reports that new movies have been added by an external source.
sub ReportMediaUpdated()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets all user media folders.
function GetMediaFolders(params = {} as object)
req = APIRequest("/library/mediafolders", params)
return getJson(req)
end function
' Reports that new movies have been added by an external source.
sub ReportMoviesAdded()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Reports that new movies have been added by an external source.
sub ReportMoviesUpdated()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets a list of physical paths from virtual folders.
function GetPhysicalPaths()
req = APIRequest("/library/physicalpaths")
return getJson(req)
end function
' Starts a library scan.
function Refresh()
req = APIRequest("/library/refresh")
return postVoid(req)
end function
' Reports that new episodes of a series have been added by an external source.
sub ReportTVSeriesAdded()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Reports that new episodes of a series have been added by an external source.
sub ReportTVSeriesUpdated()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets all virtual folders.
function GetVirtualFolders()
req = APIRequest("/library/virtualfolders")
return getJson(req)
end function
' Adds a virtual folder.
function AddVirtualFolder(params as object, body = {} as object)
req = APIRequest("/library/virtualfolders", params)
return postVoid(req, FormatJson(body))
end function
' Removes a virtual folder.
function DeleteVirtualFolder(params as object)
req = APIRequest("/library/virtualfolders", params)
return deleteVoid(req)
end function
' Update library options.
function UpdateOptions(body = {} as object)
req = APIRequest("/library/virtualfolders/libraryoptions")
return postVoid(req, FormatJson(body))
end function
' Renames a virtual folder.
function RenameVirtualFolder(params as object)
req = APIRequest("/library/virtualfolders/name", params)
return postVoid(req)
end function
' Add a media path to a library.
function AddPath(params as object, body = {} as object)
req = APIRequest("/library/virtualfolders/paths", params)
return postVoid(req, FormatJson(body))
end function
' Remove a media path.
function DeletePath(params as object)
req = APIRequest("/library/virtualfolders/paths", params)
return deleteVoid(req)
end function
' Updates a media path.
function UpdatePath(body = {} as object)
req = APIRequest("/library/virtualfolders/paths/update")
return postVoid(req, FormatJson(body))
end function
end namespace
namespace livestreams
' Opens a media source.
function Open(params = {} as object, body = {} as object)
req = APIRequest("/livestreams/open", params)
return postJson(req, FormatJson(body))
end function
' Closes a media source.
function Close(params = {} as object)
req = APIRequest("/livestreams/close", params)
return postVoid(req)
end function
end namespace
namespace liveTV
' Get channel mapping options
function GetChannelMappingOptions(params = {} as object)
req = APIRequest("/livetv/channelmappingoptions", params)
return getJson(req)
end function
' Set channel mappings
function SetChannelMappings(body = {} as object)
req = APIRequest("livetv/channelmappings")
return postJson(req, FormatJson(body))
end function
' Gets available live tv channels
function GetChannels(params = {} as object)
req = APIRequest("/livetv/channels", params)
return getJson(req)
end function
' Gets a live tv channel
function GetChannelByID(id as string, params = {} as object)
req = APIRequest(Substitute("/livetv/channels/{0}", id), params)
return getJson(req)
end function
' Get guide info.
function GetGuideInfo()
req = APIRequest("/livetv/guideinfo")
return getJson(req)
end function
' Gets available live tv services.
function GetInfo()
req = APIRequest("/livetv/info")
return getJson(req)
end function
' Adds a listings provider
function AddListingProvider(params = {} as object, body = {} as object)
req = APIRequest("/livetv/listingproviders", params)
return postJson(req, FormatJson(body))
end function
' Delete listing provider
function DeleteListingProvider(id as string)
req = APIRequest(Substitute("livetv/listingproviders", id))
return deleteVoid(req)
end function
' Gets default listings provider info.
function GetDefaultListingProvider()
req = APIRequest("/livetv/listingproviders/default")
return getJson(req)
end function
'Gets available lineups.
function GetLineups(params = {} as object)
req = APIRequest("/livetv/listingproviders/lineups", params)
return getJson(req)
end function
' Gets available countries.
function GetCountries()
req = APIRequest("/livetv/listingproviders/schedulesdirect/countries")
return getJson(req)
end function
' Gets a live tv recording stream.
function GetRecordingStream(id as string)
return buildURL(Substitute("/livetv/listingproviders/{0}/stream", id))
end function
' Gets a live tv channel stream.
function GetChannelStream(id as string, container as string)
return buildURL(Substitute("/livetv/livestreamfiles/{0}/stream.{1}", id, container))
end function
' Gets available live tv epgs.
function GetPrograms(params = {} as object)
req = APIRequest("/livetv/programs", params)
return getJson(req)
end function
' Gets available live tv epgs.
function PostPrograms(body = {} as object)
req = APIRequest("/livetv/programs")
return postJson(req, FormatJson(body))
end function
' Gets a live tv program.
function PostProgramByID(id as string, params = {} as object)
req = APIRequest(Substitute("/livetv/programs/{0}", id), params)
return getJson(req)
end function
' Gets recommended live tv epgs.
function GetRecommendedPrograms(params = {} as object)
req = APIRequest("/livetv/programs/recommended", params)
return getJson(req)
end function
' Gets live tv recordings.
function GetRecordings(params = {} as object)
req = APIRequest("/livetv/recordings", params)
return getJson(req)
end function
' Gets a live tv recording.
function GetRecordingByID(id as string, params = {} as object)
req = APIRequest(Substitute("/livetv/recordings/{0}", id), params)
return getJson(req)
end function
' Deletes a live tv recording.
function DeleteRecordingByID(id as string)
req = APIRequest(Substitute("/livetv/recordings/{0}", id))
return deleteVoid(req)
end function
' Gets recording folders.
function GetRecordingsFolders(params = {} as object)
req = APIRequest("/livetv/recordings/folders", params)
return getJson(req)
end function
' Gets live tv series timers.
function GetSeriesTimers(params = {} as object)
req = APIRequest("/livetv/seriestimers", params)
return getJson(req)
end function
' Creates a live tv series timer.
function CreateSeriesTimer(body = {} as object)
req = APIRequest("/livetv/seriestimers")
return postVoid(req, FormatJson(body))
end function
' Gets a live tv series timer.
function GetSeriesTimerByID(id as string)
req = APIRequest(Substitute("/livetv/seriestimers/{0}", id))
return getJson(req)
end function
' Cancels a live tv series timer.
function DeleteSeriesTimer(id as string)
req = APIRequest(Substitute("/livetv/seriestimers/{0}", id))
return deleteVoid(req)
end function
' Updates a live tv series timer.
function UpdateSeriesTimer(id as string, body = {} as object)
req = APIRequest(Substitute("/livetv/seriestimers/{0}", id))
return postVoid(req, FormatJson(body))
end function
' Gets the live tv timers.
function GetTimers(params = {} as object)
req = APIRequest("/livetv/timers", params)
return getJson(req)
end function
' Creates a live tv timer.
function CreateTimer(body = {} as object)
req = APIRequest("/livetv/timers")
return postVoid(req, FormatJson(body))
end function
' Gets a timer.
function GetTimerByID(id as string)
req = APIRequest(Substitute("/livetv/timers/{0}", id))
return getJson(req)
end function
' Cancels a live tv timer.
function DeleteTimer(id as string)
req = APIRequest(Substitute("/livetv/timers/{0}", id))
return deleteVoid(req)
end function
' Updates a live tv timer.
function UpdateTimer(id as string, body = {} as object)
req = APIRequest(Substitute("/livetv/timers/{0}", id))
return postVoid(req, FormatJson(body))
end function
' Gets the default values for a new timer.
function GetTimerDefaults()
req = APIRequest("/livetv/timers/defaults")
return getJson(req)
end function
' Adds a tuner host.
function AddTunerHost(body = {} as object)
req = APIRequest("/livetv/tunerhosts")
return postJson(req, FormatJson(body))
end function
' Deletes a tuner host.
function DeleteTunerHost(params = {} as object)
req = APIRequest("/livetv/tunerhosts", params)
return deleteVoid(req)
end function
' Get tuner host types.
function GetTunerHostTypes()
req = APIRequest("/livetv/tunerhosts/types")
return getJson(req)
end function
' Resets a tv tuner.
function ResetTunerHost(id as string)
req = APIRequest(Substitute("/livetv/tuners/{0}/reset", id))
return postVoid(req)
end function
' Discover tuners.
function GetTunersDiscover(params = {} as object)
req = APIRequest("/livetv/tuners/discover", params)
return getJson(req)
end function
' Discvover tuners :D
function GetTunersDiscvover(params = {} as object)
req = APIRequest("/livetv/tuners/discvover", params)
return getJson(req)
end function
end namespace
namespace localization
' Gets known countries.
function GetCountries()
req = APIRequest("/localization/countries")
return getJson(req)
end function
' Gets known cultures.
function GetCultures()
req = APIRequest("/localization/cultures")
return getJson(req)
end function
' Gets localization options.
function GetOptions()
req = APIRequest("/localization/options")
return getJson(req)
end function
' Gets known parental ratings.
function GetParentalRatings()
req = APIRequest("/localization/parentalratings")
return getJson(req)
end function
end namespace
namespace movies
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/movies/{0}/similar", id), params)
return getJson(req)
end function
' Gets movie recommendations.
' Requires userid passed in params
function GetRecommendations(params = {} as object)
req = APIRequest("/movies/recommendations", params)
return getJson(req)
end function
end namespace
namespace musicGenres
' Get music genre image by name.
function GetImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/musicgenres/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
end function
' Get music genre image by name.
function HeadImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/musicgenres/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
' Creates an instant playlist based on a given genre.
function GetInstantMix(params = {} as object)
req = APIRequest("/musicgenres/instantmix", params)
return getJson(req)
end function
' Gets a music genre, by name.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/musicgenres/{0}", name), params)
return getJson(req)
end function
end namespace
namespace notifications
' Gets a user's notifications.
function Get(id as string)
req = APIRequest(Substitute("/notifications/{0}", id))
return getJson(req)
end function
' Sets notifications as read.
function MarkRead(id as string)
req = APIRequest(Substitute("/notifications/{0}/read", id))
return postVoid(req)
end function
' Gets a user's notification summary.
function GetSummary(id as string)
req = APIRequest(Substitute("/notifications/{0}/summary", id))
return getJson(req)
end function
' Sets notifications as unread.
function MarkUnread(id as string)
req = APIRequest(Substitute("/notifications/{0}/unread", id))
return postVoid(req)
end function
' Sends a notification to all admins.
function NotifyAdmins(body = {} as object)
req = APIRequest("/notifications/admin")
return postVoid(req, FormatJson(body))
end function
' Gets notification services.
function GetServices()
req = APIRequest("/notifications/services")
return getJson(req)
end function
' Gets notification types.
function GetTypes()
req = APIRequest("/notifications/types")
return getJson(req)
end function
end namespace
namespace packages
' Gets available packages.
function Get()
req = APIRequest("/packages")
return getJson(req)
end function
' Gets a package by name or assembly GUID.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/packages/{0}", name), params)
return getJson(req)
end function
' Installs a package.
function Install(name as string, params = {} as object)
req = APIRequest(Substitute("/packages/installed/{0}", name), params)
return postVoid(req)
end function
' Cancels a package installation.
function CancelInstall(id as string)
req = APIRequest(Substitute("/packages/installing/{0}", id))
return deleteVoid(req)
end function
end namespace
namespace persons
' Get person image by name.
function GetImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/persons/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
end function
' Get person image by name.
function HeadImageURLByName(name as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/persons/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
' Gets all persons.
function Get(params = {} as object)
req = APIRequest("/persons", params)
return getJson(req)
end function
' Get person by name.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/persons/{0}", name), params)
return getJson(req)
end function
end namespace
namespace playback
' Tests the network with a request with the size of the bitrate.
function BitrateTest(params = {} as object)
req = APIRequest("/playback/bitratetest", params)
return getVoid(req)
end function
end namespace
namespace playlists
' Creates an instant playlist based on a given playlist.
function GetInstantMix(id as string, params = {} as object)
req = APIRequest(Substitute("/playlists/{0}/instantmix", id), params)
return getJson(req)
end function
' Creates a new playlist.
function Create(body = {} as object)
req = APIRequest("/playlists")
return postJson(req, FormatJson(body))
end function
' Adds items to a playlist.
function Add(id as string, params = {} as object)
req = APIRequest(Substitute("/playlists/{0}/items", id), params)
return postVoid(req)
end function
' Removes items from a playlist.
function Remove(id as string, params = {} as object)
req = APIRequest(Substitute("/playlists/{0}/items", id), params)
return deleteVoid(req)
end function
' Gets the original items of a playlist.
function GetItems(id as string, params = {} as object)
req = APIRequest(Substitute("/playlists/{0}/items", id), params)
return getJson(req)
end function
' Moves a playlist item.
function Move(playlistid as string, itemid as string, newindex as integer)
req = APIRequest(Substitute("/playlists/{0}/items/{1}/move/{2}", playlistid, itemid, newindex))
return postVoid(req)
end function
end namespace
namespace plugins
' Gets a list of currently installed plugins.
function Get()
req = APIRequest("/plugins")
return getJson(req)
end function
' Uninstalls a plugin by version.
sub Uninstall()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Disable a plugin.
function Disable(id as string, version as string)
req = APIRequest(Substitute("/plugins/{0}/{1}/disable", id, version))
return postVoid(req)
end function
' Enables a disabled plugin.
function Enable(id as string, version as string)
req = APIRequest(Substitute("/plugins/{0}/{1}/enable", id, version))
return postVoid(req)
end function
' Gets a plugin's image.
function GetImage(id as string, version as string)
return buildURL(Substitute("/plugins/{0}/{1}/image", id, version))
end function
' Gets plugin configuration.
function GetConfiguration(id as string)
req = APIRequest(Substitute("/plugins/{0}/configuration", id))
return getJson(req)
end function
' Updates plugin configuration.
function UpdateConfiguration(id as string, body = {} as object)
req = APIRequest(Substitute("/plugins/{0}/configuration", id))
return postVoid(req, FormatJson(body))
end function
' Gets a plugin's manifest.
function GetManifest(id as string)
req = APIRequest(Substitute("/plugins/{0}/manifest", id))
return postJson(req)
end function
end namespace
namespace providers
' Gets the remote subtitles.
function GetRemoteSubtitles(id as string)
req = APIRequest(Substitute("/providers/subtitles/subtitles/{0}", id))
return getJson(req)
end function
end namespace
namespace quickConnect
' Authorizes a pending quick connect request.
function Authorize(params = {} as object)
req = APIRequest("/quickconnect/authorize", params)
return postString(req)
end function
' Attempts to retrieve authentication information.
function Connect()
req = APIRequest("/quickconnect/connect")
return getJson(req)
end function
' Gets the current quick connect state.
function IsEnabled()
req = APIRequest("/quickconnect/enabled")
return getString(req)
end function
' Initiate a new quick connect request.
function Initiate()
req = APIRequest("/quickconnect/initiate")
return getJson(req)
end function
end namespace
namespace repositories
' Gets all package repositories.
function Get()
req = APIRequest("/repositories")
return getJson(req)
end function
' Sets the enabled and existing package repositories.
function Set(body = {} as object)
req = APIRequest("/repositories")
return postVoid(req, FormatJson(body))
end function
end namespace
namespace scheduledTasks
' Get tasks.
function Get(params = {} as object)
req = APIRequest("/scheduledtasks", params)
return getJson(req)
end function
' Get task by id.
function GetByID(id as string)
req = APIRequest(Substitute("/scheduledtasks/{0}", id))
return getJson(req)
end function
' Update specified task triggers.
function UpdateTriggers(id as string, body = {} as object)
req = APIRequest(Substitute("/scheduledtasks/{0}/triggers", id))
return postVoid(req, FormatJson(body))
end function
' Start specified task.
function Start(id as string)
req = APIRequest(Substitute("/scheduledtasks/running/{0}", id))
return postVoid(req)
end function
' Stop specified task.
function stop(id as string)
req = APIRequest(Substitute("/scheduledtasks/running/{0}", id))
return deleteVoid(req)
end function
end namespace
namespace search
' Gets the search hint result.
function GetHints(params = {} as object)
req = APIRequest("/search/hints", params)
return getJson(req)
end function
end namespace
namespace sessions
' Reports playback has started within a session.
function Playing(body = {} as object)
req = APIRequest("/sessions/playing")
return postVoid(req, FormatJson(body))
end function
' Pings a playback session.
function Ping(params = {} as object)
req = APIRequest("/sessions/playing/ping", params)
return postVoid(req)
end function
' Reports playback progress within a session.
function PostProgress(body = {} as object)
req = APIRequest("/sessions/playing/progress")
return postVoid(req, FormatJson(body))
end function
' Reports playback has stopped within a session.
function PostStopped(body = {} as object)
req = APIRequest("/sessions/playing/stopped")
return postVoid(req, FormatJson(body))
end function
' Gets a list of sessions.
function Get(params = {} as object)
req = APIRequest("/sessions", params)
return getJson(req)
end function
' Issues a full general command to a client.
function PostFullCommand(id as string, body = {} as object)
req = APIRequest(Substitute("/sessions/{0}/command", id))
return postVoid(req, FormatJson(body))
end function
' Issues a general command to a client.
function PostCommand(id as string, command as string)
req = APIRequest(Substitute("/sessions/{0}/command/{1}", id, command))
return postVoid(req)
end function
' Issues a command to a client to display a message to the user.
function PostMessage(id as string, body = {} as object)
req = APIRequest(Substitute("/sessions/{0}/message", id))
return postVoid(req, FormatJson(body))
end function
' Instructs a session to play an item.
function Play(id as string, params = {} as object)
req = APIRequest(Substitute("/sessions/{0}/playing", id), params)
return postVoid(req)
end function
' Issues a playstate command to a client.
function PlayCommand(id as string, command as string)
req = APIRequest(Substitute("/sessions/{0}/playing/{1}", id, command))
return postVoid(req)
end function
' Issues a system command to a client.
function SystemCommand(id as string, command as string)
req = APIRequest(Substitute("/sessions/{0}/system/{1}", id, command))
return postVoid(req)
end function
' Adds an additional user to a session.
function AddUser(id as string, userid as string)
req = APIRequest(Substitute("/sessions/{0}/user/{1}", id, userid))
return postVoid(req)
end function
' Removes an additional user from a session.
function RemoveUser(id as string, userid as string)
req = APIRequest(Substitute("/sessions/{0}/user/{1}", id, userid))
return deleteVoid(req)
end function
' Instructs a session to browse to an item or view.
function BrowseTo(id as string, params = {} as object)
req = APIRequest(Substitute("/sessions/{0}/viewing", id), params)
return postVoid(req)
end function
' Updates capabilities for a device.
function PostCapabilities(params = {} as object)
req = APIRequest("/sessions/capabilities", params)
return postVoid(req)
end function
' Updates capabilities for a device.
function PostFullCapabilities(params = {} as object, body = {} as object)
req = APIRequest("/sessions/capabilities/full", params)
return postVoid(req, FormatJson(body))
end function
' Reports that a session has ended.
function Logout()
req = APIRequest("/sessions/logout")
return postVoid(req)
end function
' Reports that a session is viewing an item.
function PostViewing(params = {} as object)
req = APIRequest("/sessions/viewing", params)
return postVoid(req)
end function
end namespace
namespace shows
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/shows/{0}/similar", id), params)
return getJson(req)
end function
' Gets episodes for a tv season.
function GetEpisodes(id as string, params = {} as object)
req = APIRequest(Substitute("/shows/{0}/episodes", id), params)
return getJson(req)
end function
' Gets seasons for a tv series.
function GetSeasons(id as string, params = {} as object)
req = APIRequest(Substitute("/shows/{0}/seasons", id), params)
return getJson(req)
end function
' Gets a list of next up episodes.
function GetNextUp(params = {} as object)
req = APIRequest("/shows/nextup", params)
return getJson(req)
end function
' Gets a list of upcoming episodes.
function GetUpcoming(params = {} as object)
req = APIRequest("/shows/upcoming", params)
return getJson(req)
end function
end namespace
namespace songs
' Creates an instant playlist based on a given song.
function GetInstantMix(id as string, params = {} as object)
req = APIRequest(Substitute("/songs/{0}/instantmix", id), params)
return getJson(req)
end function
end namespace
namespace startup
' Completes the startup wizard.
function Complete()
req = APIRequest("/startup/complete")
return postVoid(req)
end function
' Gets the initial startup wizard configuration.
function GetConfiguration()
req = APIRequest("/startup/configuration")
return getJson(req)
end function
' Sets the initial startup wizard configuration.
function PostConfiguration(body = {} as object)
req = APIRequest("/startup/configuration")
return postVoid(req, FormatJson(body))
end function
' Gets the first user.
function GetFirstUser()
req = APIRequest("/startup/firstuser")
return getJson(req)
end function
' Sets remote access and UPnP.
function PostRemoteAccess(body = {} as object)
req = APIRequest("/startup/remoteaccess")
return postVoid(req, FormatJson(body))
end function
' Gets the first user.
function GetUser()
req = APIRequest("/startup/user")
return getJson(req)
end function
' Sets the user name and password.
function PostUser(body = {} as object)
req = APIRequest("/startup/user")
return postVoid(req, FormatJson(body))
end function
end namespace
namespace studios
' Gets all studios from a given item, folder, or the entire library.
function Get(params = {} as object)
req = APIRequest("/studios", params)
return getJson(req)
end function
' Gets a studio by name.
function GetByName(name as string, params = {} as object)
req = APIRequest(Substitute("/studios/{0}", name), params)
return getJson(req)
end function
' Get studio image by name.
function GetImageURLByName(name as string, imagetype = "thumb" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/studios/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
end function
' Get studio image by name.
function HeadImageURLByName(name as string, imagetype = "thumb" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/studios/{0}/images/{1}/{2}", name, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
end namespace
namespace syncPlay
' Notify SyncPlay group that member is buffering.
function Buffering(body = {} as object)
req = APIRequest("/syncplay/buffering")
return postVoid(req, FormatJson(body))
end function
' Join an existing SyncPlay group.
function Join(body = {} as object)
req = APIRequest("/syncplay/join")
return postVoid(req, FormatJson(body))
end function
' Leave the joined SyncPlay group.
function Leave(body = {} as object)
req = APIRequest("/syncplay/leave")
return postVoid(req, FormatJson(body))
end function
' Gets all SyncPlay groups.
function GetList()
req = APIRequest("/syncplay/list")
return getJson(req)
end function
' Request to move an item in the playlist in SyncPlay group.
function MovePlaylistItem(body = {} as object)
req = APIRequest("/syncplay/moveplaylistitem")
return postVoid(req, FormatJson(body))
end function
' Create a new SyncPlay group.
function New(body = {} as object)
req = APIRequest("/syncplay/new")
return postVoid(req, FormatJson(body))
end function
' Request next item in SyncPlay group.
function NextItem(body = {} as object)
req = APIRequest("/syncplay/nextitem")
return postVoid(req, FormatJson(body))
end function
' Request next item in SyncPlay group.
function Pause()
req = APIRequest("/syncplay/pause")
return postVoid(req)
end function
' Update session ping.
function Ping(body = {} as object)
req = APIRequest("/syncplay/ping")
return postVoid(req, FormatJson(body))
end function
' Request previous item in SyncPlay group.
function Previous(body = {} as object)
req = APIRequest("/syncplay/previousitem")
return postVoid(req, FormatJson(body))
end function
' Request to queue items to the playlist of a SyncPlay group.
function Queue(body = {} as object)
req = APIRequest("/syncplay/queue")
return postVoid(req, FormatJson(body))
end function
' Notify SyncPlay group that member is ready for playback.
function Ready(body = {} as object)
req = APIRequest("/syncplay/ready")
return postVoid(req, FormatJson(body))
end function
' Request to remove items from the playlist in SyncPlay group.
function RemoveFromPlaylist(body = {} as object)
req = APIRequest("/syncplay/removefromplaylist")
return postVoid(req, FormatJson(body))
end function
' Request seek in SyncPlay group.
function Seek(body = {} as object)
req = APIRequest("/syncplay/seek")
return postVoid(req, FormatJson(body))
end function
' Request SyncPlay group to ignore member during group-wait.
function SetIgnoreWait(body = {} as object)
req = APIRequest("/syncplay/setignorewait")
return postVoid(req, FormatJson(body))
end function
' Request to set new playlist in SyncPlay group.
function SetNewQueue(body = {} as object)
req = APIRequest("/syncplay/setnewqueue")
return postVoid(req, FormatJson(body))
end function
' Request to change playlist item in SyncPlay group.
function SetPlaylistItem(body = {} as object)
req = APIRequest("/syncplay/setplaylistitem")
return postVoid(req, FormatJson(body))
end function
' Request to set repeat mode in SyncPlay group.
function SetRepeatMode(body = {} as object)
req = APIRequest("/syncplay/setrepeatmode")
return postVoid(req, FormatJson(body))
end function
' Request to set shuffle mode in SyncPlay group.
function SetShuffleMode(body = {} as object)
req = APIRequest("/syncplay/setshufflemode")
return postVoid(req, FormatJson(body))
end function
' Request stop in SyncPlay group.
function stop()
req = APIRequest("/syncplay/stop")
return postVoid(req)
end function
' Request unpause in SyncPlay group.
function Unpause()
req = APIRequest("/syncplay/unpause")
return postVoid(req)
end function
end namespace
namespace system
' Gets activity log entries.
function GetActivityLogEntries(params = {} as object)
req = APIRequest("/system/activitylog/entries", params)
return getJson(req)
end function
' Gets application configuration.
function GetConfiguration()
req = APIRequest("/system/configuration")
return getJson(req)
end function
' Updates application configuration.
function UpdateConfiguration(body = {} as object)
req = APIRequest("/system/configuration")
return postVoid(req, FormatJson(body))
end function
' Gets a named configuration.
function GetConfigurationByName(name as string)
req = APIRequest(Substitute("/system/configuration/{0}", name))
return getJson(req)
end function
' Updates named configuration.
sub UpdateConfigurationByName()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets a default MetadataOptions object.
function GetDefaultMetaDataOptions()
req = APIRequest("/system/configuration/metadataoptions/default")
return getJson(req)
end function
' Updates the path to the media encoder.
sub UpdateMediaEncoderPath()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets information about the request endpoint.
function GetEndpoint()
req = APIRequest("/system/endpoint")
return getJson(req)
end function
' Gets information about the server.
function GetInfo()
req = APIRequest("/system/info")
return getJson(req)
end function
' Gets public information about the server.
function GetPublicInfo()
req = APIRequest("/system/info/public")
return getJson(req)
end function
' Gets a list of available server log files.
function GetLogs()
req = APIRequest("/system/logs")
return getJson(req)
end function
' Gets a log file.
function GetLog(params = {} as object)
req = APIRequest("/system/logs/log", params)
return getString(req)
end function
' Pings the system.
function GetPing()
req = APIRequest("/system/ping")
return getString(req)
end function
' Pings the system.
function PostPing()
req = APIRequest("/system/ping")
return postString(req)
end function
' Restarts the application.
function Restart()
req = APIRequest("/system/restart")
return postVoid(req)
end function
' Shuts down the application.
function Shutdown()
req = APIRequest("/system/shutdown")
return postVoid(req)
end function
end namespace
namespace tmdb
' Gets the TMDb image configuration options.
function GetClientConfiguration()
req = APIRequest("/tmdb/clientconfiguration")
return getJson(req)
end function
end namespace
namespace trailers
' Gets similar items.
function GetSimilar(id as string, params = {} as object)
req = APIRequest(Substitute("/trailers/{0}/similar", id), params)
return getJson(req)
end function
' Finds movies and trailers similar to a given trailer.
function Get(params = {} as object)
req = APIRequest("/trailers/", params)
return getJson(req)
end function
end namespace
namespace users
' Gets a list of users.
' If id is passed, gets a user by Id.
function Get(id = "")
url = "/users"
if id <> ""
url = url + "/" + id
end if
req = APIRequest(url)
return getJson(req)
end function
' Gets the user based on auth token.
function GetMe()
req = APIRequest("/users/me")
return getJson(req)
end function
' Gets a list of publicly visible users for display on a login screen.
function GetPublic()
resp = APIRequest("/users/public")
return getJson(resp)
end function
' Creates a user.
function Create(body = {} as object)
req = APIRequest("/users/new")
return postJson(req, FormatJson(body))
end function
' Deletes a user.
function Delete(id)
req = APIRequest(Substitute("/users/{0}", id))
return deleteVoid(req)
end function
' Updates a user.
function Update(id, body = {} as object)
req = APIRequest(Substitute("/users/{0}", id))
return postVoid(req, FormatJson(body))
end function
' Updates a user configuration.
function UpdateConfiguration(id, body = {} as object)
req = APIRequest(Substitute("/users/{0}/configuration", id))
return postVoid(req, FormatJson(body))
end function
' Updates a user's easy password.
function UpdateEasyPassword(id, body = {} as object)
req = APIRequest(Substitute("/users/{0}/easypassword", id))
return postVoid(req, FormatJson(body))
end function
' Updates a user's password.
function UpdatePassword(id, body = {} as object)
req = APIRequest(Substitute("/users/{0}/password", id))
return postVoid(req, FormatJson(body))
end function
' Updates a user's policy.
function UpdatePolicy(id, body = {} as object)
req = APIRequest(Substitute("/users/{0}/policy", id))
return postVoid(req, FormatJson(body))
end function
' Authenticates a user.
function AuthenticateByName(body = {} as object)
req = APIRequest("users/authenticatebyname")
json = postJson(req, FormatJson(body))
return json
end function
' Authenticates a user with quick connect.
sub AuthenticateWithQuickConnect()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Initiates the forgot password process for a local user.
function ForgotPassword(body = {} as object)
req = APIRequest("users/forgotpassword")
json = postJson(req, FormatJson(body))
return json
end function
' Redeems a forgot password pin.
function ForgotPasswordPin(body = {} as object)
req = APIRequest("users/forgotpassword/pin")
json = postJson(req, FormatJson(body))
return json
end function
' Sets the user image.
sub UpdateImage()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Delete the user's image.
sub DeleteImage()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Get user profile image.
function GetImageURL(id as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
return buildURL(Substitute("/users/{0}/images/{1}/{2}", id, imagetype, imageindex.toStr()), params)
end function
' Get music genre image by name.
function HeadImageURL(id as string, imagetype = "primary" as string, imageindex = 0 as integer, params = {} as object)
req = APIRequest(Substitute("/users/{0}/images/{1}/{2}", id, imagetype, imageindex.toStr()), params)
return headVoid(req)
end function
' Gets items based on a query.
function GetItemsByQuery(id as string, params = {} as object)
req = APIRequest(Substitute("/users/{0}/items", id), params)
return getJson(req)
end function
' Gets items based on a query.
function GetResumeItemsByQuery(id as string, params = {} as object)
req = APIRequest(Substitute("/users/{0}/items/resume", id), params)
return getJson(req)
end function
' Gets suggestions.
function GetSuggestions(id as string, params = {} as object)
resp = APIRequest(Substitute("/users/{0}/suggestions", id), params)
return getJson(resp)
end function
' Get user view grouping options.
function GetGroupingOptions(id as string)
resp = APIRequest(Substitute("/users/{0}/groupingoptions", id))
return getJson(resp)
end function
' Get user views.
function GetViews(id as string, params = {} as object)
resp = APIRequest(Substitute("/users/{0}/views", id), params)
return getJson(resp)
end function
' Marks an item as a favorite.
function MarkFavorite(userid as string, itemid as string)
req = APIRequest(Substitute("users/{0}/favoriteitems/{1}", userid, itemid))
json = postJson(req)
return json
end function
' Unmarks item as a favorite.
function UnmarkFavorite(userid as string, itemid as string)
req = APIRequest(Substitute("users/{0}/favoriteitems/{1}", userid, itemid))
json = deleteVoid(req)
return json
end function
' Gets an item from a user's library.
function GetItem(userid as string, itemid as string)
resp = APIRequest(Substitute("/users/{0}/items/{1}", userid, itemid))
return getJson(resp)
end function
' Gets intros to play before the main media item plays.
function GetIntros(userid as string, itemid as string)
resp = APIRequest(Substitute("/users/{0}/items/{1}/intros", userid, itemid))
return getJson(resp)
end function
' Gets local trailers for an item.
function GetLocalTrailers(userid as string, itemid as string)
resp = APIRequest(Substitute("/users/{0}/items/{1}/localtrailers", userid, itemid))
return getJson(resp)
end function
' Deletes a user's saved personal rating for an item.
function DeleteRating(userid as string, itemid as string)
req = APIRequest(Substitute("users/{0}/items/{1}/rating", userid, itemid))
json = deleteVoid(req)
return json
end function
' Updates a user's rating for an item.
function UpdateRating(userid as string, itemid as string, params = {} as object)
req = APIRequest(Substitute("users/{0}/items/{1}/rating", userid, itemid), params)
json = postJson(req)
return json
end function
' Gets special features for an item.
function GetSpecialFeatures(userid as string, itemid as string)
resp = APIRequest(Substitute("/users/{0}/items/{1}/specialfeatures", userid, itemid))
return getJson(resp)
end function
' Gets latest media.
function GetLatestMedia(userid as string, params = {} as object)
resp = APIRequest(Substitute("/users/{0}/items/latest", userid), params)
return getJson(resp)
end function
' Gets the root folder from a user's library.
function GetRoot(userid as string)
resp = APIRequest(Substitute("/users/{0}/items/root", userid))
return getJson(resp)
end function
' Marks an item as played for user.
function MarkPlayed(userid as string, itemid as string, params = {} as object)
req = APIRequest(Substitute("users/{0}/playeditems/{1}", userid, itemid), params)
return postJson(req)
end function
' Marks an item as unplayed for user.
function UnmarkPlayed(userid as string, itemid as string)
req = APIRequest(Substitute("users/{0}/playeditems/{1}", userid, itemid))
return deleteVoid(req)
end function
' Reports that a user has begun playing an item.
function MarkPlaying(userid as string, itemid as string, params = {} as object)
req = APIRequest(Substitute("users/{0}/playingitems/{1}", userid, itemid), params)
return postJson(req)
end function
' Reports that a user has stopped playing an item.
function MarkStoppedPlaying(userid as string, itemid as string, params = {} as object)
req = APIRequest(Substitute("users/{0}/playingitems/{1}", userid, itemid), params)
return deleteVoid(req)
end function
' Reports a user's playback progress.
function ReportPlayProgress(userid as string, itemid as string, params = {} as object)
req = APIRequest(Substitute("users/{0}/playingitems/{1}/progress", userid, itemid), params)
return postJson(req)
end function
end namespace
namespace videos
' Gets additional parts for a video.
function GetAdditionalParts(id as string, params = {} as object)
req = APIRequest(Substitute("/videos/{0}/additionalparts", id), params)
return getJson(req)
end function
' Removes alternate video sources.
sub DeleteAdditionalParts()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets a video stream.
function GetStreamURL(id as string, params = {} as object)
return buildURL(Substitute("/videos/{0}/stream", id), params)
end function
' Gets a video stream.
function HeadStreamURL(id as string, params = {} as object)
req = APIRequest(Substitute("videos/{0}/stream", id), params)
return headVoid(req)
end function
' Gets an video stream.
function GetStreamURLWithContainer(id as string, container as string, params = {} as object)
return buildURL(Substitute("videos/{0}/stream.{1}", id, container), params)
end function
' Gets an video stream.
function HeadStreamURLWithContainer(id as string, container as string, params = {} as object)
req = APIRequest(Substitute("videos/{0}/stream.{1}", id, container), params)
return headVoid(req)
end function
' Merges videos into a single record.
function MergeVersions(params = {} as object)
req = APIRequest("videos/mergeversions", params)
return postVoid(req)
end function
' Get video attachment.
sub GetAttachments()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets an HLS subtitle playlist.
function GetHLSSubtitlePlaylistURL(id as string, streamindex as integer, mediasourceid as string, params = {} as object)
return buildURL(Substitute("/videos/{0}/{1}/subtitles/{2}/subtitles.m3u8", id, streamindex, mediasourceid), params)
end function
' Upload an external subtitle file.
sub UploadSubtitle()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Deletes an external subtitle file.
sub DeleteSubtitle()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets subtitles in a specified format.
function GetSubtitlesWithStartPosition(routeitemid as string, routemediasourceid as string, routeindex as integer, routestartpositionticks as integer, routeformat as string, params = {} as object)
' We maxed out params for substitute() so we must manually add the routeformat value
return buildURL(Substitute("/videos/{0}/{1}/subtitles/{2}/{3}/stream." + routeformat, routeitemid, routemediasourceid, routeindex, routestartpositionticks), params)
end function
' Gets subtitles in a specified format.
function GetSubtitles(routeitemid as string, routemediasourceid as string, routeindex as integer, routestartpositionticks as integer, routeformat as string, params = {} as object)
return buildURL(Substitute("/videos/{0}/{1}/subtitles/{2}/{3}/stream.{4}" + routeformat, routeitemid, routemediasourceid, routeindex, routestartpositionticks, routeformat), params)
end function
end namespace
namespace web
' Gets a dashboard configuration page.
sub GetConfigurationPage()
throw "System.NotImplementedException: The function is not implemented."
end sub
' Gets the configuration pages.
function GetConfigurationPages()
req = APIRequest("/web/configurationpages")
return getJson(req)
end function
end namespace
namespace years
' Gets years
function Get(params = {} as object)
req = APIRequest("/years", params)
return getJson(req)
end function
' Gets a year.
function GetYear(year as string, params = {} as object)
req = APIRequest(Substitute("/years/{0}", year), params)
return getJson(req)
end function
end namespace
'
' 3rd Party Plugin Support
'
namespace introSkipper
' Get intro skipper plugin data
function Get(id as string)
req = APIRequest(Substitute("/episode/{0}/introtimestamps/v1", id))
return getJson(req)
end function
end namespace
namespace jellyScrub
' Get jelly scrub plugin data
function Get(id as string)
return buildURL(Substitute("/Trickplay/{0}/320/GetBIF?apikey={1}", id, get_user_setting("token")))
end function
end namespace
end namespace