Files
plexgo/pms
2023-08-10 21:24:37 -05:00
..
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00
2023-08-10 21:24:37 -05:00

Go API client for pms

An Open API Spec for interacting with Plex.tv and Plex Servers

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: 0.0.3
  • Package version: 1.1.6
  • Build package: org.openapitools.codegen.languages.GoClientCodegen For more information, please visit https://www.LukeHagar.com

Installation

Install the following dependencies:

go get github.com/stretchr/testify/assert
go get golang.org/x/net/context

Put the package under your project folder and add the following in import:

import pms "github.com/lukehagar/plexgo"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

Configuration of Server URL

Default configuration comes with Servers field that contains server objects as defined in the OpenAPI specification.

Select Server Configuration

For using other server than the one defined on index 0 set context value sw.ContextServerIndex of type int.

ctx := context.WithValue(context.Background(), pms.ContextServerIndex, 1)

Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value sw.ContextServerVariables of type map[string]string.

ctx := context.WithValue(context.Background(), pms.ContextServerVariables, map[string]string{
	"basePath": "v2",
})

Note, enum values are always validated and all unused variables are silently ignored.

URLs Configuration per Operation

Each operation can use different server URL defined using OperationServers map in the Configuration. An operation is uniquely identified by "{classname}Service.{nickname}" string. Similar rules for overriding default operation server index and variables applies by using sw.ContextOperationServerIndices and sw.ContextOperationServerVariables context maps.

ctx := context.WithValue(context.Background(), pms.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), pms.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})

Documentation for API Endpoints

All URIs are relative to http://10.10.10.47:32400

Class Method HTTP request Description
ActivitiesApi CancelServerActivities Delete /activities/{activityUUID} Cancel Server Activities
ActivitiesApi GetServerActivities Get /activities Get Server Activities
ButlerApi GetButlerTasks Get /butler Get Butler tasks
ButlerApi StartAllTasks Post /butler Start all Butler tasks
ButlerApi StartTask Post /butler/{taskName} Start a single Butler task
ButlerApi StopAllTasks Delete /butler Stop all Butler tasks
ButlerApi StopTask Delete /butler/{taskName} Stop a single Butler task
HubsApi GetGlobalHubs Get /hubs Get Global Hubs
HubsApi GetLibraryHubs Get /hubs/sections/{sectionId} Get library specific hubs
LibraryApi DeleteLibrary Delete /library/sections/{sectionId} Delete Library Section
LibraryApi GetCommonLibraryItems Get /library/sections/{sectionId}/common Get Common Library Items
LibraryApi GetFileHash Get /library/hashes Get Hash Value
LibraryApi GetLatestLibraryItems Get /library/sections/{sectionId}/latest Get Latest Library Items
LibraryApi GetLibraries Get /library/sections Get All Libraries
LibraryApi GetLibrary Get /library/sections/{sectionId} Get Library Details
LibraryApi GetLibraryItems Get /library/sections/{sectionId}/all Get Library Items
LibraryApi GetMetadata Get /library/metadata/{ratingKey} Get Items Metadata
LibraryApi GetMetadataChildren Get /library/metadata/{ratingKey}/children Get Items Children
LibraryApi GetOnDeck Get /library/onDeck Get On Deck
LibraryApi GetRecentlyAdded Get /library/recentlyAdded Get Recently Added
LibraryApi RefreshLibrary Get /library/sections/{sectionId}/refresh Refresh Library
LogApi EnablePaperTrail Get /log/networked Enabling Papertrail
LogApi LogLine Get /log Logging a single line message.
LogApi LogMultiLine Post /log Logging a multi-line message
MediaApi MarkPlayed Get /:/scrobble Mark Media Played
MediaApi MarkUnplayed Get /:/unscrobble Mark Media Unplayed
MediaApi UpdatePlayProgress Post /:/progress Update Media Play Progress
PlaylistsApi AddPlaylistContents Put /playlists/{playlistID}/items Adding to a Playlist
PlaylistsApi ClearPlaylistContents Delete /playlists/{playlistID}/items Delete Playlist Contents
PlaylistsApi CreatePlaylist Post /playlists Create a Playlist
PlaylistsApi DeletePlaylist Delete /playlists/{playlistID} Deletes a Playlist
PlaylistsApi GetPlaylist Get /playlists/{playlistID} Retrieve Playlist
PlaylistsApi GetPlaylistContents Get /playlists/{playlistID}/items Retrieve Playlist Contents
PlaylistsApi GetPlaylists Get /playlists/all Get All Playlists
PlaylistsApi UpdatePlaylist Put /playlists/{playlistID} Update a Playlist
PlaylistsApi UploadPlaylist Post /playlists/upload Upload Playlist
SearchApi GetSearchResults Get /search Get Search Results
SearchApi PerformSearch Get /hubs/search Perform a search
SearchApi PerformVoiceSearch Get /hubs/search/voice Perform a voice search
SecurityApi GetSourceConnectionInformation Get /security/resources Get Source Connection Information
SecurityApi GetTransientToken Get /security/token Get a Transient Token.
ServerApi GetAvailableClients Get /clients Get Available Clients
ServerApi GetDevices Get /devices Get Devices
ServerApi GetMyPlexAccount Get /myplex/account Get MyPlex Account
ServerApi GetResizedPhoto Get /photo/:/transcode Get a Resized Photo
ServerApi GetServerCapabilities Get / Server Capabilities
ServerApi GetServerIdentity Get /identity Get Server Identity
ServerApi GetServerList Get /servers Get Server List
ServerApi GetServerPreferences Get /:/prefs Get Server Preferences
SessionsApi GetSessionHistory Get /status/sessions/history/all Get Session History
SessionsApi GetSessions Get /status/sessions Get Active Sessions
SessionsApi GetTranscodeSessions Get /transcode/sessions Get Transcode Sessions
SessionsApi StopTranscodeSession Delete /transcode/sessions/{sessionKey} Stop a Transcode Session
UpdaterApi ApplyUpdates Put /updater/apply Apply Updates
UpdaterApi CheckForUpdates Put /updater/check Checking for updates
UpdaterApi GetUpdateStatus Get /updater/status Querying status of updates
VideoApi GetTimeline Get /:/timeline Get the timeline for a media item
VideoApi StartUniversalTranscode Get /video/:/transcode/universal/start.mpd Start Universal Transcode

Documentation For Models

Documentation For Authorization

accessToken

  • Type: API key
  • API key parameter name: X-Plex-Token
  • Location: HTTP header

Note, each API key must be added to a map of map[string]APIKey where the key is: X-Plex-Token and passed in as the auth context for each request.

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime

Author

Lukeslakemail@gmail.com