mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-07 12:37:45 +00:00
## Java SDK Changes Detected:
* `plex-api.butler.startTask()`: * `request` **Changed** **Breaking** ⚠️ * `error` **Changed** **Breaking** ⚠️ * `plex-api.butler.stopTask()`: * `request` **Changed** **Breaking** ⚠️ * `error` **Changed** **Breaking** ⚠️ * `plex-api.updater.applyUpdates()`: * `request` **Changed** **Breaking** ⚠️ * `error` **Changed** **Breaking** ⚠️ * `plex-api.general.getServerInfo()`: **Added** * `plex-api.general.getIdentity()`: **Added** * `plex-api.general.getSourceConnectionInformation()`: **Added** * `plex-api.general.getTransientToken()`: **Added** * `plex-api.events.getNotifications()`: **Added** * `plex-api.events.connectWebSocket()`: **Added** * `plex-api.preferences.getAllPreferences()`: **Added** * `plex-api.preferences.setPreferences()`: **Added** * `plex-api.preferences.getPreference()`: **Added** * `plex-api.rate.setRating()`: **Added** * `plex-api.timeline.markPlayed()`: **Added** * `plex-api.timeline.report()`: **Added** * `plex-api.timeline.unscrobble()`: **Added** * `plex-api.activities.listActivities()`: **Added** * `plex-api.activities.cancelActivity()`: **Added** * `plex-api.butler.stopTasks()`: **Added** * `plex-api.butler.getTasks()`: **Added** * `plex-api.butler.startTasks()`: **Added** * `plex-api.downloadQueue.createDownloadQueue()`: **Added** * `plex-api.downloadQueue.getDownloadQueue()`: **Added** * `plex-api.downloadQueue.addDownloadQueueItems()`: **Added** * `plex-api.downloadQueue.listDownloadQueueItems()`: **Added** * `plex-api.downloadQueue.getItemDecision()`: **Added** * `plex-api.downloadQueue.getDownloadQueueMedia()`: **Added** * `plex-api.downloadQueue.removeDownloadQueueItems()`: **Added** * `plex-api.downloadQueue.getDownloadQueueItems()`: **Added** * `plex-api.downloadQueue.restartProcessingDownloadQueueItems()`: **Added** * `plex-api.hubs.getAllHubs()`: **Added** * `plex-api.hubs.getContinueWatching()`: **Added** * `plex-api.hubs.getHubItems()`: **Added** * `plex-api.hubs.getPromotedHubs()`: **Added** * `plex-api.hubs.getMetadataHubs()`: **Added** * `plex-api.hubs.getPostplayHubs()`: **Added** * `plex-api.hubs.getRelatedHubs()`: **Added** * `plex-api.hubs.getSectionHubs()`: **Added** * `plex-api.hubs.resetSectionDefaults()`: **Added** * `plex-api.hubs.listHubs()`: **Added** * `plex-api.hubs.createCustomHub()`: **Added** * `plex-api.hubs.moveHub()`: **Added** * `plex-api.hubs.deleteCustomHub()`: **Added** * `plex-api.hubs.updateHubVisibility()`: **Added** * `plex-api.search.searchHubs()`: **Added** * `plex-api.search.voiceSearchHubs()`: **Added** * `plex-api.library.getLibraryItems()`: **Added** * `plex-api.library.deleteCaches()`: **Added** * `plex-api.library.cleanBundles()`: **Added** * `plex-api.library.ingestTransientItem()`: **Added** * `plex-api.library.getLibraryMatches()`: **Added** * `plex-api.library.optimizeDatabase()`: **Added** * `plex-api.library.getRandomArtwork()`: **Added** * `plex-api.library.getSections()`: **Added** * `plex-api.library.addSection()`: **Added** * `plex-api.library.stopAllRefreshes()`: **Added** * `plex-api.library.getSectionsPrefs()`: **Added** * `plex-api.library.refreshSectionsMetadata()`: **Added** * `plex-api.library.getTags()`: **Added** * `plex-api.library.deleteMetadataItem()`: **Added** * `plex-api.library.editMetadataItem()`: **Added** * `plex-api.library.detectAds()`: **Added** * `plex-api.library.getAllItemLeaves()`: **Added** * `plex-api.library.analyzeMetadata()`: **Added** * `plex-api.library.generateThumbs()`: **Added** * `plex-api.library.detectCredits()`: **Added** * `plex-api.library.getExtras()`: **Added** * `plex-api.library.addExtras()`: **Added** * `plex-api.library.getFile()`: **Added** * `plex-api.library.startBifGeneration()`: **Added** * `plex-api.library.detectIntros()`: **Added** * `plex-api.library.createMarker()`: **Added** * `plex-api.library.matchItem()`: **Added** * `plex-api.library.listMatches()`: **Added** * `plex-api.library.mergeItems()`: **Added** * `plex-api.library.listSonicallySimilar()`: **Added** * `plex-api.library.setItemPreferences()`: **Added** * `plex-api.library.refreshItemsMetadata()`: **Added** * `plex-api.library.getRelatedItems()`: **Added** * `plex-api.library.listSimilar()`: **Added** * `plex-api.library.splitItem()`: **Added** * `plex-api.library.addSubtitles()`: **Added** * `plex-api.library.getItemTree()`: **Added** * `plex-api.library.unmatch()`: **Added** * `plex-api.library.listTopUsers()`: **Added** * `plex-api.library.detectVoiceActivity()`: **Added** * `plex-api.library.getAugmentationStatus()`: **Added** * `plex-api.library.setStreamSelection()`: **Added** * `plex-api.library.getPerson()`: **Added** * `plex-api.library.listPersonMedia()`: **Added** * `plex-api.library.deleteLibrarySection()`: **Added** * `plex-api.library.getLibraryDetails()`: **Added** * `plex-api.library.editSection()`: **Added** * `plex-api.library.updateItems()`: **Added** * `plex-api.library.startAnalysis()`: **Added** * `plex-api.library.autocomplete()`: **Added** * `plex-api.library.getCollections()`: **Added** * `plex-api.library.getCommon()`: **Added** * `plex-api.library.emptyTrash()`: **Added** * `plex-api.library.getSectionFilters()`: **Added** * `plex-api.library.getFirstCharacters()`: **Added** * `plex-api.library.deleteIndexes()`: **Added** * `plex-api.library.deleteIntros()`: **Added** * `plex-api.library.getSectionPreferences()`: **Added** * `plex-api.library.setSectionPreferences()`: **Added** * `plex-api.library.cancelRefresh()`: **Added** * `plex-api.library.refreshSection()`: **Added** * `plex-api.library.getAvailableSorts()`: **Added** * `plex-api.library.getStreamLevels()`: **Added** * `plex-api.library.getStreamLoudness()`: **Added** * `plex-api.library.getChapterImage()`: **Added** * `plex-api.library.setItemArtwork()`: **Added** * `plex-api.library.updateItemArtwork()`: **Added** * `plex-api.library.deleteMarker()`: **Added** * `plex-api.library.editMarker()`: **Added** * `plex-api.library.deleteMediaItem()`: **Added** * `plex-api.library.getPartIndex()`: **Added** * `plex-api.library.deleteCollection()`: **Added** * `plex-api.library.getSectionImage()`: **Added** * `plex-api.library.deleteStream()`: **Added** * `plex-api.library.getStream()`: **Added** * `plex-api.library.setStreamOffset()`: **Added** * `plex-api.library.getItemArtwork()`: **Added** * `plex-api.library.getMediaPart()`: **Added** * `plex-api.library.getImageFromBif()`: **Added** * `plex-api.collections.createCollection()`: **Added** * `plex-api.dvRs.listDvRs()`: **Added** * `plex-api.dvRs.createDvr()`: **Added** * `plex-api.dvRs.deleteDvr()`: **Added** * `plex-api.dvRs.getDvr()`: **Added** * `plex-api.dvRs.deleteLineup()`: **Added** * `plex-api.dvRs.addLineup()`: **Added** * `plex-api.dvRs.setDvrPreferences()`: **Added** * `plex-api.dvRs.stopDvrReload()`: **Added** * `plex-api.dvRs.reloadGuide()`: **Added** * `plex-api.dvRs.tuneChannel()`: **Added** * `plex-api.dvRs.removeDeviceFromDvr()`: **Added** * `plex-api.dvRs.addDeviceToDvr()`: **Added** * `plex-api.epg.computeChannelMap()`: **Added** * `plex-api.epg.getChannels()`: **Added** * `plex-api.epg.getCountries()`: **Added** * `plex-api.epg.getAllLanguages()`: **Added** * `plex-api.epg.getLineup()`: **Added** * `plex-api.epg.getLineupChannels()`: **Added** * `plex-api.epg.getCountriesLineups()`: **Added** * `plex-api.epg.getCountryRegions()`: **Added** * `plex-api.epg.listLineups()`: **Added** * `plex-api.liveTv.getSessions()`: **Added** * `plex-api.liveTv.getLiveTvSession()`: **Added** * `plex-api.liveTv.getSessionPlaylistIndex()`: **Added** * `plex-api.liveTv.getSessionSegment()`: **Added** * `plex-api.log.writeLog()`: **Added** * `plex-api.log.writeMessage()`: **Added** * `plex-api.log.enablePapertrail()`: **Added** * `plex-api.devices.getAvailableGrabbers()`: **Added** * `plex-api.devices.listDevices()`: **Added** * `plex-api.devices.addDevice()`: **Added** * `plex-api.devices.discoverDevices()`: **Added** * `plex-api.devices.removeDevice()`: **Added** * `plex-api.devices.getDeviceDetails()`: **Added** * `plex-api.devices.modifyDevice()`: **Added** * `plex-api.devices.setChannelmap()`: **Added** * `plex-api.devices.getDevicesChannels()`: **Added** * `plex-api.devices.setDevicePreferences()`: **Added** * `plex-api.devices.stopScan()`: **Added** * `plex-api.devices.scan()`: **Added** * `plex-api.devices.getThumb()`: **Added** * `plex-api.provider.listProviders()`: **Added** * `plex-api.provider.addProvider()`: **Added** * `plex-api.provider.refreshProviders()`: **Added** * `plex-api.provider.deleteMediaProvider()`: **Added** * `plex-api.subscriptions.getAllSubscriptions()`: **Added** * `plex-api.subscriptions.createSubscription()`: **Added** * `plex-api.subscriptions.processSubscriptions()`: **Added** * `plex-api.subscriptions.getScheduledRecordings()`: **Added** * `plex-api.subscriptions.getTemplate()`: **Added** * `plex-api.subscriptions.cancelGrab()`: **Added** * `plex-api.subscriptions.deleteSubscription()`: **Added** * `plex-api.subscriptions.getSubscription()`: **Added** * `plex-api.subscriptions.editSubscriptionPreferences()`: **Added** * `plex-api.subscriptions.reorderSubscription()`: **Added** * `plex-api.transcoder.transcodeImage()`: **Added** * `plex-api.transcoder.makeDecision()`: **Added** * `plex-api.transcoder.triggerFallback()`: **Added** * `plex-api.transcoder.transcodeSubtitles()`: **Added** * `plex-api.transcoder.startTranscodeSession()`: **Added** * `plex-api.playlist.listPlaylists()`: **Added** * `plex-api.playlist.getPlaylist()`: **Added** * `plex-api.playlist.getPlaylistItems()`: **Added** * `plex-api.libraryPlaylists.createPlaylist()`: **Added** * `plex-api.libraryPlaylists.uploadPlaylist()`: **Added** * `plex-api.libraryPlaylists.deletePlaylist()`: **Added** * `plex-api.libraryPlaylists.updatePlaylist()`: **Added** * `plex-api.libraryPlaylists.getPlaylistGenerators()`: **Added** * `plex-api.libraryPlaylists.clearPlaylistItems()`: **Added** * `plex-api.libraryPlaylists.addPlaylistItems()`: **Added** * `plex-api.libraryPlaylists.deletePlaylistItem()`: **Added** * `plex-api.libraryPlaylists.getPlaylistGenerator()`: **Added** * `plex-api.libraryPlaylists.getPlaylistGeneratorItems()`: **Added** * `plex-api.libraryPlaylists.movePlaylistItem()`: **Added** * `plex-api.libraryPlaylists.refreshPlaylist()`: **Added** * `plex-api.playQueue.createPlayQueue()`: **Added** * `plex-api.playQueue.getPlayQueue()`: **Added** * `plex-api.playQueue.addToPlayQueue()`: **Added** * `plex-api.playQueue.clearPlayQueue()`: **Added** * `plex-api.playQueue.resetPlayQueue()`: **Added** * `plex-api.playQueue.shuffle()`: **Added** * `plex-api.playQueue.unshuffle()`: **Added** * `plex-api.playQueue.deletePlayQueueItem()`: **Added** * `plex-api.playQueue.movePlayQueueItem()`: **Added** * `plex-api.ultraBlur.getColors()`: **Added** * `plex-api.ultraBlur.getImage()`: **Added** * `plex-api.status.listSessions()`: **Added** * `plex-api.status.getBackgroundTasks()`: **Added** * `plex-api.status.listPlaybackHistory()`: **Added** * `plex-api.status.terminateSession()`: **Added** * `plex-api.status.deleteHistory()`: **Added** * `plex-api.status.getHistoryItem()`: **Added** * `plex-api.updater.checkUpdates()`: **Added** * `plex-api.updater.getUpdatesStatus()`: **Added** * `plex-api.content.getCollectionItems()`: **Added** * `plex-api.content.getMetadataItem()`: **Added** * `plex-api.content.getAlbums()`: **Added** * `plex-api.content.listContent()`: **Added** * `plex-api.content.getAllLeaves()`: **Added** * `plex-api.content.getArts()`: **Added** * `plex-api.content.getCategories()`: **Added** * `plex-api.content.getCluster()`: **Added** * `plex-api.content.getSonicPath()`: **Added** * `plex-api.content.getFolders()`: **Added** * `plex-api.content.listMoments()`: **Added** * `plex-api.content.getSonicallySimilar()`: **Added** * `plex-api.content.getCollectionImage()`: **Added** * `plex-api.libraryCollections.addCollectionItems()`: **Added** * `plex-api.libraryCollections.deleteCollectionItem()`: **Added** * `plex-api.libraryCollections.moveCollectionItem()`: **Added** * `plex-api.server.getServerCapabilities()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getServerPreferences()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getAvailableClients()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getDevices()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getServerIdentity()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getMyPlexAccount()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getResizedPhoto()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getMediaProviders()`: **Deleted** **Breaking** ⚠️ * `plex-api.server.getServerList()`: **Deleted** **Breaking** ⚠️ * `plex-api.media.markPlayed()`: **Deleted** **Breaking** ⚠️ * `plex-api.media.markUnplayed()`: **Deleted** **Breaking** ⚠️ * `plex-api.media.updatePlayProgress()`: **Deleted** **Breaking** ⚠️ * `plex-api.media.getBannerImage()`: **Deleted** **Breaking** ⚠️ * `plex-api.media.getThumbImage()`: **Deleted** **Breaking** ⚠️ * `plex-api.video.getTimeline()`: **Deleted** **Breaking** ⚠️ * `plex-api.video.startUniversalTranscode()`: **Deleted** **Breaking** ⚠️ * `plex-api.activities.getServerActivities()`: **Deleted** **Breaking** ⚠️ * `plex-api.activities.cancelServerActivities()`: **Deleted** **Breaking** ⚠️ * `plex-api.butler.getButlerTasks()`: **Deleted** **Breaking** ⚠️ * `plex-api.butler.startAllTasks()`: **Deleted** **Breaking** ⚠️ * `plex-api.butler.stopAllTasks()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getCompanionsData()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getUserFriends()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getGeoData()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getHomeData()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getServerResources()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getPin()`: **Deleted** **Breaking** ⚠️ * `plex-api.plex.getTokenByPinId()`: **Deleted** **Breaking** ⚠️ * `plex-api.hubs.getGlobalHubs()`: **Deleted** **Breaking** ⚠️ * `plex-api.hubs.getRecentlyAdded()`: **Deleted** **Breaking** ⚠️ * `plex-api.hubs.getLibraryHubs()`: **Deleted** **Breaking** ⚠️ * `plex-api.search.performSearch()`: **Deleted** **Breaking** ⚠️ * `plex-api.search.performVoiceSearch()`: **Deleted** **Breaking** ⚠️ * `plex-api.search.getSearchResults()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getFileHash()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getRecentlyAddedLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getAllLibraries()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getLibraryDetails()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.deleteLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getLibraryItems()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getLibrarySectionsAll()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getRefreshLibraryMetadata()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getSearchLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getGenresLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getCountriesLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getActorsLibrary()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getSearchAllLibraries()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getMediaMetaData()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getMediaArts()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.postMediaArts()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getMediaPosters()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.postMediaPoster()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getMetadataChildren()`: **Deleted** **Breaking** ⚠️ * `plex-api.library.getTopWatchedContent()`: **Deleted** **Breaking** ⚠️ * `plex-api.watchlist.getWatchList()`: **Deleted** **Breaking** ⚠️ * `plex-api.log.logLine()`: **Deleted** **Breaking** ⚠️ * `plex-api.log.logMultiLine()`: **Deleted** **Breaking** ⚠️ * `plex-api.log.enablePaperTrail()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.createPlaylist()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.getPlaylists()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.getPlaylist()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.deletePlaylist()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.updatePlaylist()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.getPlaylistContents()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.clearPlaylistContents()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.addPlaylistContents()`: **Deleted** **Breaking** ⚠️ * `plex-api.playlists.uploadPlaylist()`: **Deleted** **Breaking** ⚠️ * `plex-api.authentication.getTransientToken()`: **Deleted** **Breaking** ⚠️ * `plex-api.authentication.getSourceConnectionInformation()`: **Deleted** **Breaking** ⚠️ * `plex-api.authentication.getTokenDetails()`: **Deleted** **Breaking** ⚠️ * `plex-api.authentication.postUsersSignInData()`: **Deleted** **Breaking** ⚠️ * `plex-api.statistics.getStatistics()`: **Deleted** **Breaking** ⚠️ * `plex-api.statistics.getResourcesStatistics()`: **Deleted** **Breaking** ⚠️ * `plex-api.statistics.getBandwidthStatistics()`: **Deleted** **Breaking** ⚠️ * `plex-api.sessions.getSessions()`: **Deleted** **Breaking** ⚠️ * `plex-api.sessions.getSessionHistory()`: **Deleted** **Breaking** ⚠️ * `plex-api.sessions.getTranscodeSessions()`: **Deleted** **Breaking** ⚠️ * `plex-api.sessions.stopTranscodeSession()`: **Deleted** **Breaking** ⚠️ * `plex-api.updater.getUpdateStatus()`: **Deleted** **Breaking** ⚠️ * `plex-api.updater.checkForUpdates()`: **Deleted** **Breaking** ⚠️ * `plex-api.users.getUsers()`: **Deleted** **Breaking** ⚠️
This commit is contained in:
@@ -3,16 +3,16 @@
|
||||
|
||||
## Overview
|
||||
|
||||
API Calls that perform search operations with Plex Media Server
|
||||
|
||||
The search feature within a media provider
|
||||
|
||||
### Available Operations
|
||||
|
||||
* [performSearch](#performsearch) - Perform a search
|
||||
* [performVoiceSearch](#performvoicesearch) - Perform a voice search
|
||||
* [getSearchResults](#getsearchresults) - Get Search Results
|
||||
* [searchHubs](#searchhubs) - Search Hub
|
||||
* [voiceSearchHubs](#voicesearchhubs) - Voice Search Hub
|
||||
|
||||
## performSearch
|
||||
## searchHubs
|
||||
|
||||
Perform a search and get the result as hubs
|
||||
|
||||
This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor).
|
||||
|
||||
@@ -30,138 +30,42 @@ This request is intended to be very fast, and called as the user types.
|
||||
|
||||
### Example Usage
|
||||
|
||||
<!-- UsageSnippet language="java" operationID="performSearch" method="get" path="/hubs/search" -->
|
||||
<!-- UsageSnippet language="java" operationID="searchHubs" method="get" path="/hubs/search" -->
|
||||
```java
|
||||
package hello.world;
|
||||
|
||||
import dev.plexapi.sdk.PlexAPI;
|
||||
import dev.plexapi.sdk.models.errors.PerformSearchBadRequest;
|
||||
import dev.plexapi.sdk.models.errors.PerformSearchUnauthorized;
|
||||
import dev.plexapi.sdk.models.operations.PerformSearchResponse;
|
||||
import dev.plexapi.sdk.models.operations.SearchHubsRequest;
|
||||
import dev.plexapi.sdk.models.operations.SearchHubsResponse;
|
||||
import dev.plexapi.sdk.models.shared.Accepts;
|
||||
import java.lang.Exception;
|
||||
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) throws PerformSearchBadRequest, PerformSearchUnauthorized, Exception {
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
PlexAPI sdk = PlexAPI.builder()
|
||||
.accessToken(System.getenv().getOrDefault("ACCESS_TOKEN", ""))
|
||||
.accepts(Accepts.APPLICATION_XML)
|
||||
.clientIdentifier("abc123")
|
||||
.product("Plex for Roku")
|
||||
.version("2.4.1")
|
||||
.platform("Roku")
|
||||
.platformVersion("4.3 build 1057")
|
||||
.device("Roku 3")
|
||||
.model("4200X")
|
||||
.deviceVendor("Roku")
|
||||
.deviceName("Living Room TV")
|
||||
.marketplace("googlePlay")
|
||||
.token(System.getenv().getOrDefault("TOKEN", ""))
|
||||
.build();
|
||||
|
||||
PerformSearchResponse res = sdk.search().performSearch()
|
||||
.query("arnold")
|
||||
.limit(5d)
|
||||
.call();
|
||||
SearchHubsRequest req = SearchHubsRequest.builder()
|
||||
.query("<value>")
|
||||
.sectionId(1L)
|
||||
.build();
|
||||
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
|
||||
| `query` | *String* | :heavy_check_mark: | The query term | arnold |
|
||||
| `sectionId` | *Optional\<Double>* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
|
||||
| `limit` | *Optional\<Double>* | :heavy_minus_sign: | The number of items to return per hub | 5 |
|
||||
|
||||
### Response
|
||||
|
||||
**[PerformSearchResponse](../../models/operations/PerformSearchResponse.md)**
|
||||
|
||||
### Errors
|
||||
|
||||
| Error Type | Status Code | Content Type |
|
||||
| --------------------------------------- | --------------------------------------- | --------------------------------------- |
|
||||
| models/errors/PerformSearchBadRequest | 400 | application/json |
|
||||
| models/errors/PerformSearchUnauthorized | 401 | application/json |
|
||||
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
||||
|
||||
## performVoiceSearch
|
||||
|
||||
This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint.
|
||||
It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint.
|
||||
Whenever possible, clients should limit the search to the appropriate type.
|
||||
Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality.
|
||||
|
||||
|
||||
### Example Usage
|
||||
|
||||
<!-- UsageSnippet language="java" operationID="performVoiceSearch" method="get" path="/hubs/search/voice" -->
|
||||
```java
|
||||
package hello.world;
|
||||
|
||||
import dev.plexapi.sdk.PlexAPI;
|
||||
import dev.plexapi.sdk.models.errors.PerformVoiceSearchBadRequest;
|
||||
import dev.plexapi.sdk.models.errors.PerformVoiceSearchUnauthorized;
|
||||
import dev.plexapi.sdk.models.operations.PerformVoiceSearchResponse;
|
||||
import java.lang.Exception;
|
||||
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) throws PerformVoiceSearchBadRequest, PerformVoiceSearchUnauthorized, Exception {
|
||||
|
||||
PlexAPI sdk = PlexAPI.builder()
|
||||
.accessToken(System.getenv().getOrDefault("ACCESS_TOKEN", ""))
|
||||
.build();
|
||||
|
||||
PerformVoiceSearchResponse res = sdk.search().performVoiceSearch()
|
||||
.query("dead+poop")
|
||||
.limit(5d)
|
||||
.call();
|
||||
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description | Example |
|
||||
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
|
||||
| `query` | *String* | :heavy_check_mark: | The query term | dead+poop |
|
||||
| `sectionId` | *Optional\<Double>* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
|
||||
| `limit` | *Optional\<Double>* | :heavy_minus_sign: | The number of items to return per hub | 5 |
|
||||
|
||||
### Response
|
||||
|
||||
**[PerformVoiceSearchResponse](../../models/operations/PerformVoiceSearchResponse.md)**
|
||||
|
||||
### Errors
|
||||
|
||||
| Error Type | Status Code | Content Type |
|
||||
| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
|
||||
| models/errors/PerformVoiceSearchBadRequest | 400 | application/json |
|
||||
| models/errors/PerformVoiceSearchUnauthorized | 401 | application/json |
|
||||
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
||||
|
||||
## getSearchResults
|
||||
|
||||
This will search the database for the string provided.
|
||||
|
||||
### Example Usage
|
||||
|
||||
<!-- UsageSnippet language="java" operationID="getSearchResults" method="get" path="/search" -->
|
||||
```java
|
||||
package hello.world;
|
||||
|
||||
import dev.plexapi.sdk.PlexAPI;
|
||||
import dev.plexapi.sdk.models.errors.GetSearchResultsBadRequest;
|
||||
import dev.plexapi.sdk.models.errors.GetSearchResultsUnauthorized;
|
||||
import dev.plexapi.sdk.models.operations.GetSearchResultsResponse;
|
||||
import java.lang.Exception;
|
||||
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) throws GetSearchResultsBadRequest, GetSearchResultsUnauthorized, Exception {
|
||||
|
||||
PlexAPI sdk = PlexAPI.builder()
|
||||
.accessToken(System.getenv().getOrDefault("ACCESS_TOKEN", ""))
|
||||
.build();
|
||||
|
||||
GetSearchResultsResponse res = sdk.search().getSearchResults()
|
||||
.query("110")
|
||||
SearchHubsResponse res = sdk.search().searchHubs()
|
||||
.request(req)
|
||||
.call();
|
||||
|
||||
if (res.object().isPresent()) {
|
||||
@@ -173,18 +77,87 @@ public class Application {
|
||||
|
||||
### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description | Example |
|
||||
| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
|
||||
| `query` | *String* | :heavy_check_mark: | The search query string to use | 110 |
|
||||
| Parameter | Type | Required | Description |
|
||||
| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| `request` | [SearchHubsRequest](../../models/operations/SearchHubsRequest.md) | :heavy_check_mark: | The request object to use for the request. |
|
||||
|
||||
### Response
|
||||
|
||||
**[GetSearchResultsResponse](../../models/operations/GetSearchResultsResponse.md)**
|
||||
**[SearchHubsResponse](../../models/operations/SearchHubsResponse.md)**
|
||||
|
||||
### Errors
|
||||
|
||||
| Error Type | Status Code | Content Type |
|
||||
| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
|
||||
| models/errors/GetSearchResultsBadRequest | 400 | application/json |
|
||||
| models/errors/GetSearchResultsUnauthorized | 401 | application/json |
|
||||
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
||||
| Error Type | Status Code | Content Type |
|
||||
| ---------------------- | ---------------------- | ---------------------- |
|
||||
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
||||
|
||||
## voiceSearchHubs
|
||||
|
||||
Perform a search tailored to voice input and get the result as hubs
|
||||
|
||||
This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. Whenever possible, clients should limit the search to the appropriate type.
|
||||
|
||||
Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality.
|
||||
|
||||
|
||||
### Example Usage
|
||||
|
||||
<!-- UsageSnippet language="java" operationID="voiceSearchHubs" method="get" path="/hubs/search/voice" -->
|
||||
```java
|
||||
package hello.world;
|
||||
|
||||
import dev.plexapi.sdk.PlexAPI;
|
||||
import dev.plexapi.sdk.models.operations.VoiceSearchHubsRequest;
|
||||
import dev.plexapi.sdk.models.operations.VoiceSearchHubsResponse;
|
||||
import dev.plexapi.sdk.models.shared.Accepts;
|
||||
import java.lang.Exception;
|
||||
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
PlexAPI sdk = PlexAPI.builder()
|
||||
.accepts(Accepts.APPLICATION_XML)
|
||||
.clientIdentifier("abc123")
|
||||
.product("Plex for Roku")
|
||||
.version("2.4.1")
|
||||
.platform("Roku")
|
||||
.platformVersion("4.3 build 1057")
|
||||
.device("Roku 3")
|
||||
.model("4200X")
|
||||
.deviceVendor("Roku")
|
||||
.deviceName("Living Room TV")
|
||||
.marketplace("googlePlay")
|
||||
.token(System.getenv().getOrDefault("TOKEN", ""))
|
||||
.build();
|
||||
|
||||
VoiceSearchHubsRequest req = VoiceSearchHubsRequest.builder()
|
||||
.query("<value>")
|
||||
.build();
|
||||
|
||||
VoiceSearchHubsResponse res = sdk.search().voiceSearchHubs()
|
||||
.request(req)
|
||||
.call();
|
||||
|
||||
if (res.object().isPresent()) {
|
||||
// handle response
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
||||
| `request` | [VoiceSearchHubsRequest](../../models/operations/VoiceSearchHubsRequest.md) | :heavy_check_mark: | The request object to use for the request. |
|
||||
|
||||
### Response
|
||||
|
||||
**[VoiceSearchHubsResponse](../../models/operations/VoiceSearchHubsResponse.md)**
|
||||
|
||||
### Errors
|
||||
|
||||
| Error Type | Status Code | Content Type |
|
||||
| ---------------------- | ---------------------- | ---------------------- |
|
||||
| models/errors/SDKError | 4XX, 5XX | \*/\* |
|
||||
Reference in New Issue
Block a user