mirror of
https://github.com/LukeHagar/plexgo.git
synced 2025-12-10 12:37:45 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6db5d8fb30 | ||
|
|
89fbd6238e | ||
|
|
7af7441ac7 | ||
|
|
d1945b544b | ||
|
|
16bb49d558 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
|
.speakeasy/reports
|
||||||
# .gitignore
|
# .gitignore
|
||||||
|
|||||||
1497
.speakeasy/gen.lock
1497
.speakeasy/gen.lock
File diff suppressed because one or more lines are too long
@@ -13,7 +13,7 @@ generation:
|
|||||||
oAuth2ClientCredentialsEnabled: true
|
oAuth2ClientCredentialsEnabled: true
|
||||||
oAuth2PasswordEnabled: false
|
oAuth2PasswordEnabled: false
|
||||||
go:
|
go:
|
||||||
version: 0.16.1
|
version: 0.17.4
|
||||||
additionalDependencies: {}
|
additionalDependencies: {}
|
||||||
allowUnknownFieldsInWeakUnions: false
|
allowUnknownFieldsInWeakUnions: false
|
||||||
clientServerStatusCodesAsErrors: true
|
clientServerStatusCodesAsErrors: true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
speakeasyVersion: 1.438.3
|
speakeasyVersion: 1.484.1
|
||||||
sources:
|
sources:
|
||||||
my-source:
|
my-source:
|
||||||
sourceNamespace: my-source
|
sourceNamespace: my-source
|
||||||
@@ -9,19 +9,19 @@ sources:
|
|||||||
- main
|
- main
|
||||||
plexapi:
|
plexapi:
|
||||||
sourceNamespace: plexapi
|
sourceNamespace: plexapi
|
||||||
sourceRevisionDigest: sha256:37c6bfb15f4154eb89b112465107f20757411f22bd1cc7d0a04335df7127fcb4
|
sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10
|
||||||
sourceBlobDigest: sha256:290473ebc909cada80ff428c685b897f4621cf121397e1417355e06d334e7206
|
sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55
|
||||||
tags:
|
tags:
|
||||||
- latest
|
- latest
|
||||||
- main
|
- speakeasy-sdk-regen-1738800558
|
||||||
targets:
|
targets:
|
||||||
plexgo:
|
plexgo:
|
||||||
source: plexapi
|
source: plexapi
|
||||||
sourceNamespace: plexapi
|
sourceNamespace: plexapi
|
||||||
sourceRevisionDigest: sha256:37c6bfb15f4154eb89b112465107f20757411f22bd1cc7d0a04335df7127fcb4
|
sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10
|
||||||
sourceBlobDigest: sha256:290473ebc909cada80ff428c685b897f4621cf121397e1417355e06d334e7206
|
sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55
|
||||||
codeSamplesNamespace: code-samples-go-plexgo
|
codeSamplesNamespace: code-samples-go-plexgo
|
||||||
codeSamplesRevisionDigest: sha256:3d3923d5080a3df76181c5e2c153e6f9c88470f8366cbdea5628bb47fd67fd1b
|
codeSamplesRevisionDigest: sha256:56fbdcee207bdfb0340ee02eaeacfb389357affe2899881837f41fa2b7b5b043
|
||||||
workflow:
|
workflow:
|
||||||
workflowVersion: 1.0.0
|
workflowVersion: 1.0.0
|
||||||
speakeasyVersion: latest
|
speakeasyVersion: latest
|
||||||
|
|||||||
84
README.md
84
README.md
@@ -40,16 +40,24 @@ The following SDKs are generated from the OpenAPI Specification. They are automa
|
|||||||
|
|
||||||
<!-- Start Table of Contents [toc] -->
|
<!-- Start Table of Contents [toc] -->
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
<!-- $toc-max-depth=2 -->
|
||||||
|
* [github.com/LukeHagar/plexgo](#githubcomlukehagarplexgo)
|
||||||
|
* [Plex Media Server OpenAPI Specification](#plex-media-server-openapi-specification)
|
||||||
|
* [Documentation](#documentation)
|
||||||
|
* [SDKs](#sdks)
|
||||||
|
* [SDK Installation](#sdk-installation)
|
||||||
|
* [SDK Example Usage](#sdk-example-usage)
|
||||||
|
* [Available Resources and Operations](#available-resources-and-operations)
|
||||||
|
* [Retries](#retries)
|
||||||
|
* [Error Handling](#error-handling)
|
||||||
|
* [Server Selection](#server-selection)
|
||||||
|
* [Custom HTTP Client](#custom-http-client)
|
||||||
|
* [Authentication](#authentication)
|
||||||
|
* [Special Types](#special-types)
|
||||||
|
* [Development](#development)
|
||||||
|
* [Maturity](#maturity)
|
||||||
|
* [Contributions](#contributions)
|
||||||
|
|
||||||
* [SDK Installation](#sdk-installation)
|
|
||||||
* [SDK Example Usage](#sdk-example-usage)
|
|
||||||
* [Available Resources and Operations](#available-resources-and-operations)
|
|
||||||
* [Retries](#retries)
|
|
||||||
* [Error Handling](#error-handling)
|
|
||||||
* [Server Selection](#server-selection)
|
|
||||||
* [Custom HTTP Client](#custom-http-client)
|
|
||||||
* [Authentication](#authentication)
|
|
||||||
* [Special Types](#special-types)
|
|
||||||
<!-- End Table of Contents [toc] -->
|
<!-- End Table of Contents [toc] -->
|
||||||
|
|
||||||
<!-- Start SDK Installation [installation] -->
|
<!-- Start SDK Installation [installation] -->
|
||||||
@@ -76,16 +84,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -140,6 +144,8 @@ func main() {
|
|||||||
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
|
* [GetLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
|
||||||
* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
* [GetRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
||||||
* [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
|
* [GetSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library
|
||||||
|
* [GetGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media
|
||||||
|
* [GetCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media
|
||||||
* [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
|
* [GetSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries
|
||||||
* [GetMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey
|
* [GetMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey
|
||||||
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
|
* [GetMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
|
||||||
@@ -250,16 +256,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx, operations.WithRetries(
|
res, err := s.Server.GetServerCapabilities(ctx, operations.WithRetries(
|
||||||
retry.Config{
|
retry.Config{
|
||||||
Strategy: "backoff",
|
Strategy: "backoff",
|
||||||
@@ -293,6 +295,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithRetryConfig(
|
plexgo.WithRetryConfig(
|
||||||
retry.Config{
|
retry.Config{
|
||||||
@@ -306,14 +310,8 @@ func main() {
|
|||||||
RetryConnectionErrors: false,
|
RetryConnectionErrors: false,
|
||||||
}),
|
}),
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -355,16 +353,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
||||||
@@ -414,17 +408,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithServerURL("https://10.10.10.47:32400"),
|
plexgo.WithServerURL("https://10.10.10.47:32400"),
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -450,16 +440,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Plex.GetCompanionsData(ctx, operations.WithServerURL("https://plex.tv/api/v2"))
|
res, err := s.Plex.GetCompanionsData(ctx, operations.WithServerURL("https://plex.tv/api/v2"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -523,16 +509,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
50
RELEASES.md
50
RELEASES.md
@@ -973,3 +973,53 @@ Based on:
|
|||||||
- [go v0.16.1] .
|
- [go v0.16.1] .
|
||||||
### Releases
|
### Releases
|
||||||
- [Go v0.16.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.16.1 - .
|
- [Go v0.16.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.16.1 - .
|
||||||
|
|
||||||
|
## 2024-12-21 00:09:02
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.459.2 (2.483.1) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.17.0] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.17.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.17.0 - .
|
||||||
|
|
||||||
|
## 2024-12-23 00:09:31
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.459.2 (2.483.1) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.17.1] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.17.1] https://github.com/LukeHagar/plexgo/releases/tag/v0.17.1 - .
|
||||||
|
|
||||||
|
## 2025-01-25 00:08:47
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.476.0 (2.496.0) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.17.2] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.17.2] https://github.com/LukeHagar/plexgo/releases/tag/v0.17.2 - .
|
||||||
|
|
||||||
|
## 2025-01-28 00:08:53
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.476.2 (2.495.1) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.17.3] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.17.3] https://github.com/LukeHagar/plexgo/releases/tag/v0.17.3 - .
|
||||||
|
|
||||||
|
## 2025-02-06 00:09:00
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc
|
||||||
|
- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.17.4] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.17.4] https://github.com/LukeHagar/plexgo/releases/tag/v0.17.4 - .
|
||||||
8
USAGE.md
8
USAGE.md
@@ -9,16 +9,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -54,7 +54,12 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/activities")
|
opURL, err := url.JoinPath(baseURL, "/activities")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -82,6 +87,10 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -112,7 +121,11 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -240,7 +253,11 @@ func (s *Activities) GetServerActivities(ctx context.Context, opts ...operations
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -285,7 +302,12 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/activities/{activityUUID}", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/activities/{activityUUID}", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -313,6 +335,10 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -343,7 +369,11 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -451,7 +481,11 @@ func (s *Activities) CancelServerActivities(ctx context.Context, activityUUID st
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -53,7 +53,12 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/security/token")
|
opURL, err := url.JoinPath(baseURL, "/security/token")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -85,6 +90,10 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -115,7 +124,11 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -223,7 +236,11 @@ func (s *Authentication) GetTransientToken(ctx context.Context, type_ operations
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -269,7 +286,12 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/security/resources")
|
opURL, err := url.JoinPath(baseURL, "/security/resources")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -301,6 +323,10 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -331,7 +357,11 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -439,7 +469,11 @@ func (s *Authentication) GetSourceConnectionInformation(ctx context.Context, sou
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -470,7 +504,6 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
|
|||||||
|
|
||||||
o := operations.Options{}
|
o := operations.Options{}
|
||||||
supportedOptions := []string{
|
supportedOptions := []string{
|
||||||
operations.SupportedOptionServerURL,
|
|
||||||
operations.SupportedOptionRetries,
|
operations.SupportedOptionRetries,
|
||||||
operations.SupportedOptionTimeout,
|
operations.SupportedOptionTimeout,
|
||||||
}
|
}
|
||||||
@@ -513,6 +546,10 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -543,7 +580,11 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -671,7 +712,11 @@ func (s *Authentication) GetTokenDetails(ctx context.Context, opts ...operations
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -700,17 +745,8 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
|
|||||||
SecuritySource: nil,
|
SecuritySource: nil,
|
||||||
}
|
}
|
||||||
|
|
||||||
globals := operations.PostUsersSignInDataGlobals{
|
|
||||||
ClientID: s.sdkConfiguration.Globals.ClientID,
|
|
||||||
ClientName: s.sdkConfiguration.Globals.ClientName,
|
|
||||||
DeviceNickname: s.sdkConfiguration.Globals.DeviceNickname,
|
|
||||||
ClientVersion: s.sdkConfiguration.Globals.ClientVersion,
|
|
||||||
Platform: s.sdkConfiguration.Globals.Platform,
|
|
||||||
}
|
|
||||||
|
|
||||||
o := operations.Options{}
|
o := operations.Options{}
|
||||||
supportedOptions := []string{
|
supportedOptions := []string{
|
||||||
operations.SupportedOptionServerURL,
|
|
||||||
operations.SupportedOptionRetries,
|
operations.SupportedOptionRetries,
|
||||||
operations.SupportedOptionTimeout,
|
operations.SupportedOptionTimeout,
|
||||||
}
|
}
|
||||||
@@ -753,9 +789,15 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
|
|||||||
}
|
}
|
||||||
req.Header.Set("Accept", "application/json")
|
req.Header.Set("Accept", "application/json")
|
||||||
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
||||||
|
if reqContentType != "" {
|
||||||
req.Header.Set("Content-Type", reqContentType)
|
req.Header.Set("Content-Type", reqContentType)
|
||||||
|
}
|
||||||
|
|
||||||
utils.PopulateHeaders(ctx, req, request, globals)
|
utils.PopulateHeaders(ctx, req, request, nil)
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
@@ -787,7 +829,11 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -915,7 +961,11 @@ func (s *Authentication) PostUsersSignInData(ctx context.Context, request operat
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
117
butler.go
117
butler.go
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -48,7 +48,12 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/butler")
|
opURL, err := url.JoinPath(baseURL, "/butler")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -76,6 +81,10 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -106,7 +115,11 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -234,7 +247,11 @@ func (s *Butler) GetButlerTasks(ctx context.Context, opts ...operations.Option)
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -279,7 +296,12 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/butler")
|
opURL, err := url.JoinPath(baseURL, "/butler")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -307,6 +329,10 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -337,7 +363,11 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -445,7 +475,11 @@ func (s *Butler) StartAllTasks(ctx context.Context, opts ...operations.Option) (
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -486,7 +520,12 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/butler")
|
opURL, err := url.JoinPath(baseURL, "/butler")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -514,6 +553,10 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -544,7 +587,11 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -652,7 +699,11 @@ func (s *Butler) StopAllTasks(ctx context.Context, opts ...operations.Option) (*
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -701,7 +752,12 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/butler/{taskName}", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/butler/{taskName}", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -729,6 +785,10 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -759,7 +819,11 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -869,7 +933,11 @@ func (s *Butler) StartTask(ctx context.Context, taskName operations.TaskName, op
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -914,7 +982,12 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/butler/{taskName}", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/butler/{taskName}", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -942,6 +1015,10 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -972,7 +1049,11 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -1082,7 +1163,11 @@ func (s *Butler) StopTask(ctx context.Context, taskName operations.PathParamTask
|
|||||||
case httpRes.StatusCode == 404:
|
case httpRes.StatusCode == 404:
|
||||||
fallthrough
|
fallthrough
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
2351
codeSamples.yaml
2351
codeSamples.yaml
File diff suppressed because it is too large
Load Diff
11
docs/models/operations/enablecreditsmarkergeneration.md
Normal file
11
docs/models/operations/enablecreditsmarkergeneration.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# EnableCreditsMarkerGeneration
|
||||||
|
|
||||||
|
Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| --------------------------------------------- | --------------------------------------------- |
|
||||||
|
| `EnableCreditsMarkerGenerationLibraryDefault` | -1 |
|
||||||
|
| `EnableCreditsMarkerGenerationDisabled` | 0 |
|
||||||
12
docs/models/operations/episodesort.md
Normal file
12
docs/models/operations/episodesort.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# EpisodeSort
|
||||||
|
|
||||||
|
Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| --------------------------- | --------------------------- |
|
||||||
|
| `EpisodeSortLibraryDefault` | -1 |
|
||||||
|
| `EpisodeSortOldestFirst` | 0 |
|
||||||
|
| `EpisodeSortNewestFirst` | 1 |
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
# FlattenSeasons
|
# FlattenSeasons
|
||||||
|
|
||||||
|
Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
|
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| --------------------- | --------------------- |
|
| ------------------------------ | ------------------------------ |
|
||||||
| `FlattenSeasonsFalse` | 0 |
|
| `FlattenSeasonsLibraryDefault` | -1 |
|
||||||
| `FlattenSeasonsTrue` | 1 |
|
| `FlattenSeasonsHide` | 0 |
|
||||||
|
| `FlattenSeasonsShow` | 1 |
|
||||||
10
docs/models/operations/getcountrieslibrarydirectory.md
Normal file
10
docs/models/operations/getcountrieslibrarydirectory.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetCountriesLibraryDirectory
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- |
|
||||||
|
| `FastKey` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?country=15491 |
|
||||||
|
| `Key` | *string* | :heavy_check_mark: | N/A | 15491 |
|
||||||
|
| `Title` | *string* | :heavy_check_mark: | N/A | Japan |
|
||||||
22
docs/models/operations/getcountrieslibrarymediacontainer.md
Normal file
22
docs/models/operations/getcountrieslibrarymediacontainer.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# GetCountriesLibraryMediaContainer
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||||
|
| `Size` | *float64* | :heavy_check_mark: | N/A | 50 |
|
||||||
|
| `Offset` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `TotalSize` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library |
|
||||||
|
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false |
|
||||||
|
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg |
|
||||||
|
| `Content` | *string* | :heavy_check_mark: | N/A | secondary |
|
||||||
|
| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ |
|
||||||
|
| `MediaTagVersion` | *int64* | :heavy_check_mark: | N/A | 1734362201 |
|
||||||
|
| `Nocache` | *bool* | :heavy_check_mark: | N/A | true |
|
||||||
|
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/show.png |
|
||||||
|
| `Title1` | *string* | :heavy_check_mark: | N/A | TV Series |
|
||||||
|
| `Title2` | *string* | :heavy_check_mark: | N/A | By Country |
|
||||||
|
| `ViewGroup` | *string* | :heavy_check_mark: | N/A | secondary |
|
||||||
|
| `Directory` | [][operations.GetCountriesLibraryDirectory](../../models/operations/getcountrieslibrarydirectory.md) | :heavy_minus_sign: | N/A | |
|
||||||
8
docs/models/operations/getcountrieslibraryrequest.md
Normal file
8
docs/models/operations/getcountrieslibraryrequest.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# GetCountriesLibraryRequest
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||||
|
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||||
11
docs/models/operations/getcountrieslibraryresponse.md
Normal file
11
docs/models/operations/getcountrieslibraryresponse.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetCountriesLibraryResponse
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||||
|
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||||
|
| `Object` | [*operations.GetCountriesLibraryResponseBody](../../models/operations/getcountrieslibraryresponsebody.md) | :heavy_minus_sign: | Successful response containing media container data. |
|
||||||
10
docs/models/operations/getcountrieslibraryresponsebody.md
Normal file
10
docs/models/operations/getcountrieslibraryresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetCountriesLibraryResponseBody
|
||||||
|
|
||||||
|
Successful response containing media container data.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `MediaContainer` | [*operations.GetCountriesLibraryMediaContainer](../../models/operations/getcountrieslibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||||
11
docs/models/operations/getgenreslibrarydirectory.md
Normal file
11
docs/models/operations/getgenreslibrarydirectory.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetGenresLibraryDirectory
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- |
|
||||||
|
| `FastKey` | *string* | :heavy_check_mark: | N/A | /library/sections/10/all?genre=89 |
|
||||||
|
| `Key` | *string* | :heavy_check_mark: | N/A | 89 |
|
||||||
|
| `Title` | *string* | :heavy_check_mark: | N/A | Action |
|
||||||
|
| `Type` | *string* | :heavy_check_mark: | N/A | genre |
|
||||||
22
docs/models/operations/getgenreslibrarymediacontainer.md
Normal file
22
docs/models/operations/getgenreslibrarymediacontainer.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# GetGenresLibraryMediaContainer
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||||
|
| `Size` | *float64* | :heavy_check_mark: | N/A | 50 |
|
||||||
|
| `Offset` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `TotalSize` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library |
|
||||||
|
| `AllowSync` | *bool* | :heavy_check_mark: | N/A | false |
|
||||||
|
| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg |
|
||||||
|
| `Content` | *string* | :heavy_check_mark: | N/A | secondary |
|
||||||
|
| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ |
|
||||||
|
| `MediaTagVersion` | *int64* | :heavy_check_mark: | N/A | 1734362201 |
|
||||||
|
| `Nocache` | *bool* | :heavy_check_mark: | N/A | true |
|
||||||
|
| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/show.png |
|
||||||
|
| `Title1` | *string* | :heavy_check_mark: | N/A | TV Shows (Reality) |
|
||||||
|
| `Title2` | *string* | :heavy_check_mark: | N/A | By Genre |
|
||||||
|
| `ViewGroup` | *string* | :heavy_check_mark: | N/A | secondary |
|
||||||
|
| `Directory` | [][operations.GetGenresLibraryDirectory](../../models/operations/getgenreslibrarydirectory.md) | :heavy_minus_sign: | N/A | |
|
||||||
8
docs/models/operations/getgenreslibraryrequest.md
Normal file
8
docs/models/operations/getgenreslibraryrequest.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# GetGenresLibraryRequest
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||||
|
| `SectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||||
11
docs/models/operations/getgenreslibraryresponse.md
Normal file
11
docs/models/operations/getgenreslibraryresponse.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetGenresLibraryResponse
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
||||||
|
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||||
|
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||||
|
| `Object` | [*operations.GetGenresLibraryResponseBody](../../models/operations/getgenreslibraryresponsebody.md) | :heavy_minus_sign: | Successful response containing media container data. |
|
||||||
10
docs/models/operations/getgenreslibraryresponsebody.md
Normal file
10
docs/models/operations/getgenreslibraryresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetGenresLibraryResponseBody
|
||||||
|
|
||||||
|
Successful response containing media container data.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `MediaContainer` | [*operations.GetGenresLibraryMediaContainer](../../models/operations/getgenreslibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# GetLibraryItemsEnableCreditsMarkerGeneration
|
||||||
|
|
||||||
|
Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||||
|
| `GetLibraryItemsEnableCreditsMarkerGenerationLibraryDefault` | -1 |
|
||||||
|
| `GetLibraryItemsEnableCreditsMarkerGenerationDisabled` | 0 |
|
||||||
12
docs/models/operations/getlibraryitemsepisodesort.md
Normal file
12
docs/models/operations/getlibraryitemsepisodesort.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# GetLibraryItemsEpisodeSort
|
||||||
|
|
||||||
|
Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| ------------------------------------------ | ------------------------------------------ |
|
||||||
|
| `GetLibraryItemsEpisodeSortLibraryDefault` | -1 |
|
||||||
|
| `GetLibraryItemsEpisodeSortOldestFirst` | 0 |
|
||||||
|
| `GetLibraryItemsEpisodeSortNewestFirst` | 1 |
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
# GetLibraryItemsFlattenSeasons
|
# GetLibraryItemsFlattenSeasons
|
||||||
|
|
||||||
|
Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
|
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| ------------------------------------ | ------------------------------------ |
|
| --------------------------------------------- | --------------------------------------------- |
|
||||||
| `GetLibraryItemsFlattenSeasonsFalse` | 0 |
|
| `GetLibraryItemsFlattenSeasonsLibraryDefault` | -1 |
|
||||||
| `GetLibraryItemsFlattenSeasonsTrue` | 1 |
|
| `GetLibraryItemsFlattenSeasonsHide` | 0 |
|
||||||
|
| `GetLibraryItemsFlattenSeasonsShow` | 1 |
|
||||||
@@ -23,8 +23,10 @@
|
|||||||
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
||||||
| `FlattenSeasons` | [*operations.GetLibraryItemsFlattenSeasons](../../models/operations/getlibraryitemsflattenseasons.md) | :heavy_minus_sign: | N/A | 1 |
|
| `FlattenSeasons` | [*operations.GetLibraryItemsFlattenSeasons](../../models/operations/getlibraryitemsflattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 |
|
||||||
| `ShowOrdering` | [*operations.GetLibraryItemsShowOrdering](../../models/operations/getlibraryitemsshowordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show <br/>None = Library default, <br/>tmdbAiring = The Movie Database (Aired), <br/>aired = TheTVDB (Aired), <br/>dvd = TheTVDB (DVD), <br/>absolute = TheTVDB (Absolute)).<br/> | dvd |
|
| `EpisodeSort` | [*operations.GetLibraryItemsEpisodeSort](../../models/operations/getlibraryitemsepisodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 |
|
||||||
|
| `EnableCreditsMarkerGeneration` | [*operations.GetLibraryItemsEnableCreditsMarkerGeneration](../../models/operations/getlibraryitemsenablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 |
|
||||||
|
| `ShowOrdering` | [*operations.GetLibraryItemsShowOrdering](../../models/operations/getlibraryitemsshowordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.<br/>None = Library default,<br/>tmdbAiring = The Movie Database (Aired),<br/>aired = TheTVDB (Aired),<br/>dvd = TheTVDB (DVD),<br/>absolute = TheTVDB (Absolute)).<br/> | absolute |
|
||||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
||||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
||||||
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `GetLibraryItemsQueryParamTypeSeason` | 3 |
|
| `GetLibraryItemsQueryParamTypeSeason` | 3 |
|
||||||
| `GetLibraryItemsQueryParamTypeEpisode` | 4 |
|
| `GetLibraryItemsQueryParamTypeEpisode` | 4 |
|
||||||
| `GetLibraryItemsQueryParamTypeAudio` | 8 |
|
| `GetLibraryItemsQueryParamTypeAudio` | 8 |
|
||||||
|
| `GetLibraryItemsQueryParamTypeAlbum` | 9 |
|
||||||
|
| `GetLibraryItemsQueryParamTypeTrack` | 10 |
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# GetLibraryItemsShowOrdering
|
# GetLibraryItemsShowOrdering
|
||||||
|
|
||||||
Setting that indicates the episode ordering for the show
|
Setting that indicates the episode ordering for the show.
|
||||||
None = Library default,
|
None = Library default,
|
||||||
tmdbAiring = The Movie Database (Aired),
|
tmdbAiring = The Movie Database (Aired),
|
||||||
aired = TheTVDB (Aired),
|
aired = TheTVDB (Aired),
|
||||||
@@ -12,9 +12,9 @@ absolute = TheTVDB (Absolute)).
|
|||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| --------------------------------------- | --------------------------------------- |
|
| ----------------------------------------- | ----------------------------------------- |
|
||||||
| `GetLibraryItemsShowOrderingNone` | None |
|
| `GetLibraryItemsShowOrderingNone` | None |
|
||||||
| `GetLibraryItemsShowOrderingTmdbAiring` | tmdbAiring |
|
| `GetLibraryItemsShowOrderingTmdbAiring` | tmdbAiring |
|
||||||
| `GetLibraryItemsShowOrderingAired` | aired |
|
| `GetLibraryItemsShowOrderingTvdbAired` | aired |
|
||||||
| `GetLibraryItemsShowOrderingDvd` | dvd |
|
| `GetLibraryItemsShowOrderingTvdbDvd` | dvd |
|
||||||
| `GetLibraryItemsShowOrderingAbsolute` | absolute |
|
| `GetLibraryItemsShowOrderingTvdbAbsolute` | absolute |
|
||||||
@@ -14,6 +14,11 @@
|
|||||||
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
|
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||||
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
| `LibrarySectionID` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||||
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 |
|
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1 |
|
||||||
|
| `GrandparentTitle` | **string* | :heavy_minus_sign: | The name of the album artist for the track when audio, and the name of the TV show for the episode when video. | |
|
||||||
|
| `ParentTitle` | **string* | :heavy_minus_sign: | The name of the album for the track when audio, and the name of the season for the episode when TV show. | |
|
||||||
|
| `OriginalTitle` | **string* | :heavy_minus_sign: | The orginal untranslated name of the media item when non-english. | |
|
||||||
|
| `Index` | **int64* | :heavy_minus_sign: | The index starting from 0 of this media item in the MetaData array. | |
|
||||||
|
| `ParentIndex` | **int64* | :heavy_minus_sign: | The parent index starting from 0 of this media item in the parent MetaData array. | |
|
||||||
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |
|
| `ContentRating` | **string* | :heavy_minus_sign: | N/A | PG-13 |
|
||||||
| `Summary` | **string* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. |
|
| `Summary` | **string* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. |
|
||||||
| `Rating` | **float64* | :heavy_minus_sign: | N/A | 8.2 |
|
| `Rating` | **float64* | :heavy_minus_sign: | N/A | 8.2 |
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
# GetPinGlobals
|
|
||||||
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
|
||||||
| `Platform` | **string* | :heavy_minus_sign: | The platform of the client application. | Roku |
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
|
| `Strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call<br/>Strong codes are used for Pin authentication flows<br/>Non-Strong codes are used for `Plex.tv/link`<br/> | |
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `GetPlaylistContentsQueryParamTypeSeason` | 3 |
|
| `GetPlaylistContentsQueryParamTypeSeason` | 3 |
|
||||||
| `GetPlaylistContentsQueryParamTypeEpisode` | 4 |
|
| `GetPlaylistContentsQueryParamTypeEpisode` | 4 |
|
||||||
| `GetPlaylistContentsQueryParamTypeAudio` | 8 |
|
| `GetPlaylistContentsQueryParamTypeAudio` | 8 |
|
||||||
|
| `GetPlaylistContentsQueryParamTypeAlbum` | 9 |
|
||||||
|
| `GetPlaylistContentsQueryParamTypeTrack` | 10 |
|
||||||
@@ -9,6 +9,6 @@
|
|||||||
| `Offset` | **int* | :heavy_minus_sign: | N/A | |
|
| `Offset` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
| `TotalSize` | **int* | :heavy_minus_sign: | N/A | |
|
| `TotalSize` | **int* | :heavy_minus_sign: | N/A | |
|
||||||
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
| `Identifier` | **string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
|
||||||
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | |
|
| `AllowSync` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
| `Meta` | [*operations.Meta](../../models/operations/meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
|
| `Meta` | [*operations.Meta](../../models/operations/meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.<br/> | |
|
||||||
| `Metadata` | [][operations.GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md) | :heavy_minus_sign: | N/A | |
|
| `Metadata` | [][operations.GetRecentlyAddedMetadata](../../models/operations/getrecentlyaddedmetadata.md) | :heavy_minus_sign: | N/A | |
|
||||||
@@ -23,8 +23,10 @@
|
|||||||
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
||||||
| `FlattenSeasons` | [*operations.FlattenSeasons](../../models/operations/flattenseasons.md) | :heavy_minus_sign: | N/A | 1 |
|
| `FlattenSeasons` | [*operations.FlattenSeasons](../../models/operations/flattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 |
|
||||||
| `ShowOrdering` | [*operations.ShowOrdering](../../models/operations/showordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show <br/>None = Library default, <br/>tmdbAiring = The Movie Database (Aired), <br/>aired = TheTVDB (Aired), <br/>dvd = TheTVDB (DVD), <br/>absolute = TheTVDB (Absolute)).<br/> | dvd |
|
| `EpisodeSort` | [*operations.EpisodeSort](../../models/operations/episodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 |
|
||||||
|
| `EnableCreditsMarkerGeneration` | [*operations.EnableCreditsMarkerGeneration](../../models/operations/enablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 |
|
||||||
|
| `ShowOrdering` | [*operations.ShowOrdering](../../models/operations/showordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.<br/>None = Library default,<br/>tmdbAiring = The Movie Database (Aired),<br/>aired = TheTVDB (Aired),<br/>dvd = TheTVDB (DVD),<br/>absolute = TheTVDB (Absolute)).<br/> | absolute |
|
||||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
||||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
||||||
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# GetSearchAllLibrariesEnableCreditsMarkerGeneration
|
||||||
|
|
||||||
|
Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| ------------------------------------------------------------------ | ------------------------------------------------------------------ |
|
||||||
|
| `GetSearchAllLibrariesEnableCreditsMarkerGenerationLibraryDefault` | -1 |
|
||||||
|
| `GetSearchAllLibrariesEnableCreditsMarkerGenerationDisabled` | 0 |
|
||||||
12
docs/models/operations/getsearchalllibrariesepisodesort.md
Normal file
12
docs/models/operations/getsearchalllibrariesepisodesort.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# GetSearchAllLibrariesEpisodeSort
|
||||||
|
|
||||||
|
Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| ------------------------------------------------ | ------------------------------------------------ |
|
||||||
|
| `GetSearchAllLibrariesEpisodeSortLibraryDefault` | -1 |
|
||||||
|
| `GetSearchAllLibrariesEpisodeSortOldestFirst` | 0 |
|
||||||
|
| `GetSearchAllLibrariesEpisodeSortNewestFirst` | 1 |
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
# GetSearchAllLibrariesFlattenSeasons
|
# GetSearchAllLibrariesFlattenSeasons
|
||||||
|
|
||||||
|
Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
|
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| ------------------------------------------ | ------------------------------------------ |
|
| --------------------------------------------------- | --------------------------------------------------- |
|
||||||
| `GetSearchAllLibrariesFlattenSeasonsFalse` | 0 |
|
| `GetSearchAllLibrariesFlattenSeasonsLibraryDefault` | -1 |
|
||||||
| `GetSearchAllLibrariesFlattenSeasonsTrue` | 1 |
|
| `GetSearchAllLibrariesFlattenSeasonsHide` | 0 |
|
||||||
|
| `GetSearchAllLibrariesFlattenSeasonsShow` | 1 |
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# GetSearchAllLibrariesGlobals
|
|
||||||
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
@@ -23,8 +23,10 @@
|
|||||||
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `Year` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
| `SeasonCount` | **int* | :heavy_minus_sign: | N/A | 2022 |
|
||||||
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
| `Tagline` | **string* | :heavy_minus_sign: | N/A | Return to Pandora. |
|
||||||
| `FlattenSeasons` | [*operations.GetSearchAllLibrariesFlattenSeasons](../../models/operations/getsearchalllibrariesflattenseasons.md) | :heavy_minus_sign: | N/A | 1 |
|
| `FlattenSeasons` | [*operations.GetSearchAllLibrariesFlattenSeasons](../../models/operations/getsearchalllibrariesflattenseasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 |
|
||||||
| `ShowOrdering` | [*operations.GetSearchAllLibrariesShowOrdering](../../models/operations/getsearchalllibrariesshowordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show <br/>None = Library default, <br/>tmdbAiring = The Movie Database (Aired), <br/>aired = TheTVDB (Aired), <br/>dvd = TheTVDB (DVD), <br/>absolute = TheTVDB (Absolute)).<br/> | dvd |
|
| `EpisodeSort` | [*operations.GetSearchAllLibrariesEpisodeSort](../../models/operations/getsearchalllibrariesepisodesort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 |
|
||||||
|
| `EnableCreditsMarkerGeneration` | [*operations.GetSearchAllLibrariesEnableCreditsMarkerGeneration](../../models/operations/getsearchalllibrariesenablecreditsmarkergeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 |
|
||||||
|
| `ShowOrdering` | [*operations.GetSearchAllLibrariesShowOrdering](../../models/operations/getsearchalllibrariesshowordering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.<br/>None = Library default,<br/>tmdbAiring = The Movie Database (Aired),<br/>aired = TheTVDB (Aired),<br/>dvd = TheTVDB (DVD),<br/>absolute = TheTVDB (Absolute)).<br/> | absolute |
|
||||||
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
| `Thumb` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
|
||||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
|
||||||
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
| `Banner` | **string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 |
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||||
| `Query` | *string* | :heavy_check_mark: | The search query term. | |
|
| `Query` | *string* | :heavy_check_mark: | The search query term. | |
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
| `Limit` | **int64* | :heavy_minus_sign: | Limit the number of results returned. | |
|
| `Limit` | **int64* | :heavy_minus_sign: | Limit the number of results returned. | |
|
||||||
| `SearchTypes` | [][operations.SearchTypes](../../models/operations/searchtypes.md) | :heavy_minus_sign: | A comma-separated list of search types to include. Valid values are: movies, music, otherVideos, people, tv.<br/> | movies,music,otherVideos,people,tv |
|
| `SearchTypes` | [][operations.SearchTypes](../../models/operations/searchtypes.md) | :heavy_minus_sign: | A comma-separated list of search types to include. Valid values are: movies, music, otherVideos, people, tv.<br/> | movies,music,otherVideos,people,tv |
|
||||||
| `IncludeCollections` | [*operations.QueryParamIncludeCollections](../../models/operations/queryparamincludecollections.md) | :heavy_minus_sign: | Whether to include collections in the search results. | 1 |
|
| `IncludeCollections` | [*operations.QueryParamIncludeCollections](../../models/operations/queryparamincludecollections.md) | :heavy_minus_sign: | Whether to include collections in the search results. | 1 |
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# GetSearchAllLibrariesShowOrdering
|
# GetSearchAllLibrariesShowOrdering
|
||||||
|
|
||||||
Setting that indicates the episode ordering for the show
|
Setting that indicates the episode ordering for the show.
|
||||||
None = Library default,
|
None = Library default,
|
||||||
tmdbAiring = The Movie Database (Aired),
|
tmdbAiring = The Movie Database (Aired),
|
||||||
aired = TheTVDB (Aired),
|
aired = TheTVDB (Aired),
|
||||||
@@ -12,9 +12,9 @@ absolute = TheTVDB (Absolute)).
|
|||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| --------------------------------------------- | --------------------------------------------- |
|
| ----------------------------------------------- | ----------------------------------------------- |
|
||||||
| `GetSearchAllLibrariesShowOrderingNone` | None |
|
| `GetSearchAllLibrariesShowOrderingNone` | None |
|
||||||
| `GetSearchAllLibrariesShowOrderingTmdbAiring` | tmdbAiring |
|
| `GetSearchAllLibrariesShowOrderingTmdbAiring` | tmdbAiring |
|
||||||
| `GetSearchAllLibrariesShowOrderingAired` | aired |
|
| `GetSearchAllLibrariesShowOrderingTvdbAired` | aired |
|
||||||
| `GetSearchAllLibrariesShowOrderingDvd` | dvd |
|
| `GetSearchAllLibrariesShowOrderingTvdbDvd` | dvd |
|
||||||
| `GetSearchAllLibrariesShowOrderingAbsolute` | absolute |
|
| `GetSearchAllLibrariesShowOrderingTvdbAbsolute` | absolute |
|
||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `GetSearchLibraryQueryParamTypeSeason` | 3 |
|
| `GetSearchLibraryQueryParamTypeSeason` | 3 |
|
||||||
| `GetSearchLibraryQueryParamTypeEpisode` | 4 |
|
| `GetSearchLibraryQueryParamTypeEpisode` | 4 |
|
||||||
| `GetSearchLibraryQueryParamTypeAudio` | 8 |
|
| `GetSearchLibraryQueryParamTypeAudio` | 8 |
|
||||||
|
| `GetSearchLibraryQueryParamTypeAlbum` | 9 |
|
||||||
|
| `GetSearchLibraryQueryParamTypeTrack` | 10 |
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# GetServerResourcesGlobals
|
|
||||||
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
@@ -8,4 +8,4 @@
|
|||||||
| `IncludeHTTPS` | [*operations.IncludeHTTPS](../../models/operations/includehttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 |
|
| `IncludeHTTPS` | [*operations.IncludeHTTPS](../../models/operations/includehttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 |
|
||||||
| `IncludeRelay` | [*operations.IncludeRelay](../../models/operations/includerelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 |
|
| `IncludeRelay` | [*operations.IncludeRelay](../../models/operations/includerelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 |
|
||||||
| `IncludeIPv6` | [*operations.IncludeIPv6](../../models/operations/includeipv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 |
|
| `IncludeIPv6` | [*operations.IncludeIPv6](../../models/operations/includeipv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 |
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
## Fields
|
## Fields
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `AddedAt` | **int* | :heavy_minus_sign: | N/A | 1705543312 |
|
| `AddedAt` | **int* | :heavy_minus_sign: | N/A | 1705543312 |
|
||||||
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
|
| `Art` | **string* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
|
||||||
| `Duration` | **int* | :heavy_minus_sign: | N/A | 186240 |
|
| `Duration` | **int* | :heavy_minus_sign: | N/A | 186240 |
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/3 |
|
| `LibrarySectionKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/3 |
|
||||||
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Music |
|
| `LibrarySectionTitle` | **string* | :heavy_minus_sign: | N/A | Music |
|
||||||
| `MusicAnalysisVersion` | **string* | :heavy_minus_sign: | N/A | 1 |
|
| `MusicAnalysisVersion` | **string* | :heavy_minus_sign: | N/A | 1 |
|
||||||
|
| `OriginalTitle` | **string* | :heavy_minus_sign: | The original untranslated name of the media item when non-english, or the track artist if an audio Item has an album artist | The American Dream Is Killing Me |
|
||||||
| `ParentGUID` | **string* | :heavy_minus_sign: | N/A | plex://album/65394d6d472b8ab03ef47f12 |
|
| `ParentGUID` | **string* | :heavy_minus_sign: | N/A | plex://album/65394d6d472b8ab03ef47f12 |
|
||||||
| `ParentIndex` | **int* | :heavy_minus_sign: | N/A | 1 |
|
| `ParentIndex` | **int* | :heavy_minus_sign: | N/A | 1 |
|
||||||
| `ParentKey` | **string* | :heavy_minus_sign: | N/A | /library/metadata/67084 |
|
| `ParentKey` | **string* | :heavy_minus_sign: | N/A | /library/metadata/67084 |
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
# GetTokenByPinIDGlobals
|
|
||||||
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
|
||||||
| `Platform` | **string* | :heavy_minus_sign: | The platform of the client application. | Roku |
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||||
| `PinID` | *int64* | :heavy_check_mark: | The PinID to retrieve an access token for | |
|
| `PinID` | *int64* | :heavy_check_mark: | The PinID to retrieve an access token for | |
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `GetTopWatchedContentQueryParamTypeSeason` | 3 |
|
| `GetTopWatchedContentQueryParamTypeSeason` | 3 |
|
||||||
| `GetTopWatchedContentQueryParamTypeEpisode` | 4 |
|
| `GetTopWatchedContentQueryParamTypeEpisode` | 4 |
|
||||||
| `GetTopWatchedContentQueryParamTypeAudio` | 8 |
|
| `GetTopWatchedContentQueryParamTypeAudio` | 8 |
|
||||||
|
| `GetTopWatchedContentQueryParamTypeAlbum` | 9 |
|
||||||
|
| `GetTopWatchedContentQueryParamTypeTrack` | 10 |
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# PostUsersSignInDataGlobals
|
|
||||||
|
|
||||||
|
|
||||||
## Fields
|
|
||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
|
||||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
|
||||||
| `Platform` | **string* | :heavy_minus_sign: | The platform of the client application. | Roku |
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||||
| `ClientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
| `ClientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
| `ClientName` | **string* | :heavy_minus_sign: | The name of the client application. (Plex Web, Plex Media Server, etc.) | Plex for Roku |
|
||||||
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
| `DeviceNickname` | **string* | :heavy_minus_sign: | A relatively friendly name for the client device | Roku 3 |
|
||||||
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
| `ClientVersion` | **string* | :heavy_minus_sign: | The version of the client application. | 2.4.1 |
|
||||||
|
|||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `QueryParamTypeSeason` | 3 |
|
| `QueryParamTypeSeason` | 3 |
|
||||||
| `QueryParamTypeEpisode` | 4 |
|
| `QueryParamTypeEpisode` | 4 |
|
||||||
| `QueryParamTypeAudio` | 8 |
|
| `QueryParamTypeAudio` | 8 |
|
||||||
|
| `QueryParamTypeAlbum` | 9 |
|
||||||
|
| `QueryParamTypeTrack` | 10 |
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# ShowOrdering
|
# ShowOrdering
|
||||||
|
|
||||||
Setting that indicates the episode ordering for the show
|
Setting that indicates the episode ordering for the show.
|
||||||
None = Library default,
|
None = Library default,
|
||||||
tmdbAiring = The Movie Database (Aired),
|
tmdbAiring = The Movie Database (Aired),
|
||||||
aired = TheTVDB (Aired),
|
aired = TheTVDB (Aired),
|
||||||
@@ -12,9 +12,9 @@ absolute = TheTVDB (Absolute)).
|
|||||||
## Values
|
## Values
|
||||||
|
|
||||||
| Name | Value |
|
| Name | Value |
|
||||||
| ------------------------ | ------------------------ |
|
| -------------------------- | -------------------------- |
|
||||||
| `ShowOrderingNone` | None |
|
| `ShowOrderingNone` | None |
|
||||||
| `ShowOrderingTmdbAiring` | tmdbAiring |
|
| `ShowOrderingTmdbAiring` | tmdbAiring |
|
||||||
| `ShowOrderingAired` | aired |
|
| `ShowOrderingTvdbAired` | aired |
|
||||||
| `ShowOrderingDvd` | dvd |
|
| `ShowOrderingTvdbDvd` | dvd |
|
||||||
| `ShowOrderingAbsolute` | absolute |
|
| `ShowOrderingTvdbAbsolute` | absolute |
|
||||||
@@ -26,3 +26,4 @@ A key representing a specific tag within the section.
|
|||||||
| `TagResolution` | resolution |
|
| `TagResolution` | resolution |
|
||||||
| `TagFirstCharacter` | firstCharacter |
|
| `TagFirstCharacter` | firstCharacter |
|
||||||
| `TagFolder` | folder |
|
| `TagFolder` | folder |
|
||||||
|
| `TagAlbums` | albums |
|
||||||
@@ -18,3 +18,5 @@ E.g. A movie library will not return anything with type 3 as there are no season
|
|||||||
| `TypeSeason` | 3 |
|
| `TypeSeason` | 3 |
|
||||||
| `TypeEpisode` | 4 |
|
| `TypeEpisode` | 4 |
|
||||||
| `TypeAudio` | 8 |
|
| `TypeAudio` | 8 |
|
||||||
|
| `TypeAlbum` | 9 |
|
||||||
|
| `TypeTrack` | 10 |
|
||||||
11
docs/models/sdkerrors/getcountrieslibrarybadrequest.md
Normal file
11
docs/models/sdkerrors/getcountrieslibrarybadrequest.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetCountriesLibraryBadRequest
|
||||||
|
|
||||||
|
Bad Request - A parameter was not specified, or was specified incorrectly.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
||||||
|
| `Errors` | [][sdkerrors.GetCountriesLibraryErrors](../../models/sdkerrors/getcountrieslibraryerrors.md) | :heavy_minus_sign: | N/A |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
|
||||||
10
docs/models/sdkerrors/getcountrieslibraryerrors.md
Normal file
10
docs/models/sdkerrors/getcountrieslibraryerrors.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetCountriesLibraryErrors
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
|
||||||
|
| `Code` | **int* | :heavy_minus_sign: | N/A | 1000 |
|
||||||
|
| `Message` | **string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
|
||||||
|
| `Status` | **int* | :heavy_minus_sign: | N/A | 400 |
|
||||||
10
docs/models/sdkerrors/getcountrieslibrarylibraryerrors.md
Normal file
10
docs/models/sdkerrors/getcountrieslibrarylibraryerrors.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetCountriesLibraryLibraryErrors
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
|
||||||
|
| `Code` | **int* | :heavy_minus_sign: | N/A | 1001 |
|
||||||
|
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
|
||||||
|
| `Status` | **int* | :heavy_minus_sign: | N/A | 401 |
|
||||||
11
docs/models/sdkerrors/getcountrieslibraryunauthorized.md
Normal file
11
docs/models/sdkerrors/getcountrieslibraryunauthorized.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetCountriesLibraryUnauthorized
|
||||||
|
|
||||||
|
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `Errors` | [][sdkerrors.GetCountriesLibraryLibraryErrors](../../models/sdkerrors/getcountrieslibrarylibraryerrors.md) | :heavy_minus_sign: | N/A |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
|
||||||
11
docs/models/sdkerrors/getgenreslibrarybadrequest.md
Normal file
11
docs/models/sdkerrors/getgenreslibrarybadrequest.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetGenresLibraryBadRequest
|
||||||
|
|
||||||
|
Bad Request - A parameter was not specified, or was specified incorrectly.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||||
|
| `Errors` | [][sdkerrors.GetGenresLibraryErrors](../../models/sdkerrors/getgenreslibraryerrors.md) | :heavy_minus_sign: | N/A |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
|
||||||
10
docs/models/sdkerrors/getgenreslibraryerrors.md
Normal file
10
docs/models/sdkerrors/getgenreslibraryerrors.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetGenresLibraryErrors
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
|
||||||
|
| `Code` | **int* | :heavy_minus_sign: | N/A | 1000 |
|
||||||
|
| `Message` | **string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
|
||||||
|
| `Status` | **int* | :heavy_minus_sign: | N/A | 400 |
|
||||||
10
docs/models/sdkerrors/getgenreslibrarylibraryerrors.md
Normal file
10
docs/models/sdkerrors/getgenreslibrarylibraryerrors.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetGenresLibraryLibraryErrors
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
|
||||||
|
| `Code` | **int* | :heavy_minus_sign: | N/A | 1001 |
|
||||||
|
| `Message` | **string* | :heavy_minus_sign: | N/A | User could not be authenticated |
|
||||||
|
| `Status` | **int* | :heavy_minus_sign: | N/A | 401 |
|
||||||
11
docs/models/sdkerrors/getgenreslibraryunauthorized.md
Normal file
11
docs/models/sdkerrors/getgenreslibraryunauthorized.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# GetGenresLibraryUnauthorized
|
||||||
|
|
||||||
|
Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||||
|
| `Errors` | [][sdkerrors.GetGenresLibraryLibraryErrors](../../models/sdkerrors/getgenreslibrarylibraryerrors.md) | :heavy_minus_sign: | N/A |
|
||||||
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
|
||||||
@@ -27,22 +27,18 @@ Get Server Activities
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Activities.GetServerActivities(ctx)
|
res, err := s.Activities.GetServerActivities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -82,22 +78,18 @@ Cancel Server Activities
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Activities.CancelServerActivities(ctx, "25b71ed5-0f9d-461c-baa7-d404e9e10d3e")
|
res, err := s.Activities.CancelServerActivities(ctx, "25b71ed5-0f9d-461c-baa7-d404e9e10d3e")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -24,23 +24,19 @@ This endpoint provides the caller with a temporary token with the same access le
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Authentication.GetTransientToken(ctx, operations.GetTransientTokenQueryParamTypeDelegation, operations.ScopeAll)
|
res, err := s.Authentication.GetTransientToken(ctx, operations.GetTransientTokenQueryParamTypeDelegation, operations.ScopeAll)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -84,22 +80,18 @@ Note: requires Plex Media Server >= 1.15.4.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Authentication.GetSourceConnectionInformation(ctx, "provider://provider-identifier")
|
res, err := s.Authentication.GetSourceConnectionInformation(ctx, "provider://provider-identifier")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -140,22 +132,18 @@ Get the User data from the provided X-Plex-Token
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Authentication.GetTokenDetails(ctx)
|
res, err := s.Authentication.GetTokenDetails(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -195,23 +183,23 @@ Sign in user with username and password and return user data with Plex authentic
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := plexgo.New(
|
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New()
|
||||||
|
|
||||||
res, err := s.Authentication.PostUsersSignInData(ctx, operations.PostUsersSignInDataRequest{
|
res, err := s.Authentication.PostUsersSignInData(ctx, operations.PostUsersSignInDataRequest{
|
||||||
|
ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
|
||||||
|
ClientName: plexgo.String("Plex for Roku"),
|
||||||
|
DeviceNickname: plexgo.String("Roku 3"),
|
||||||
|
ClientVersion: plexgo.String("2.4.1"),
|
||||||
|
Platform: plexgo.String("Roku"),
|
||||||
RequestBody: &operations.PostUsersSignInDataRequestBody{
|
RequestBody: &operations.PostUsersSignInDataRequestBody{
|
||||||
Login: "username@email.com",
|
Login: "username@email.com",
|
||||||
Password: "password123",
|
Password: "password123",
|
||||||
|
|||||||
@@ -24,22 +24,18 @@ Returns a list of butler tasks
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Butler.GetButlerTasks(ctx)
|
res, err := s.Butler.GetButlerTasks(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -84,22 +80,18 @@ This endpoint will attempt to start all Butler tasks that are enabled in the set
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Butler.StartAllTasks(ctx)
|
res, err := s.Butler.StartAllTasks(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -140,22 +132,18 @@ This endpoint will stop all currently running tasks and remove any scheduled tas
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Butler.StopAllTasks(ctx)
|
res, err := s.Butler.StopAllTasks(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -200,23 +188,19 @@ This endpoint will attempt to start a single Butler task that is enabled in the
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Butler.StartTask(ctx, operations.TaskNameCleanOldBundles)
|
res, err := s.Butler.StartTask(ctx, operations.TaskNameCleanOldBundles)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -258,23 +242,19 @@ This endpoint will stop a currently running task by name, or remove it from the
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Butler.StopTask(ctx, operations.PathParamTaskNameBackupDatabase)
|
res, err := s.Butler.StopTask(ctx, operations.PathParamTaskNameBackupDatabase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -22,22 +22,18 @@ Get Global Hubs filtered by the parameters provided.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Hubs.GetGlobalHubs(ctx, nil, nil)
|
res, err := s.Hubs.GetGlobalHubs(ctx, nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -80,30 +76,23 @@ This endpoint will return the recently added content.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Hubs.GetRecentlyAdded(ctx, operations.GetRecentlyAddedRequest{
|
res, err := s.Hubs.GetRecentlyAdded(ctx, operations.GetRecentlyAddedRequest{
|
||||||
ContentDirectoryID: 470161,
|
ContentDirectoryID: 470161,
|
||||||
SectionID: plexgo.Int64(2),
|
SectionID: plexgo.Int64(2),
|
||||||
Type: operations.TypeTvShow,
|
Type: operations.TypeTvShow,
|
||||||
IncludeMeta: operations.IncludeMetaEnable.ToPointer(),
|
|
||||||
XPlexContainerStart: plexgo.Int(0),
|
|
||||||
XPlexContainerSize: plexgo.Int(50),
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -143,22 +132,18 @@ This endpoint will return a list of library specific hubs
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Hubs.GetLibraryHubs(ctx, 6728.76, nil, nil)
|
res, err := s.Hubs.GetLibraryHubs(ctx, 6728.76, nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ API Calls interacting with Plex Media Server Libraries
|
|||||||
* [GetLibraryItems](#getlibraryitems) - Get Library Items
|
* [GetLibraryItems](#getlibraryitems) - Get Library Items
|
||||||
* [GetRefreshLibraryMetadata](#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
* [GetRefreshLibraryMetadata](#getrefreshlibrarymetadata) - Refresh Metadata Of The Library
|
||||||
* [GetSearchLibrary](#getsearchlibrary) - Search Library
|
* [GetSearchLibrary](#getsearchlibrary) - Search Library
|
||||||
|
* [GetGenresLibrary](#getgenreslibrary) - Get Genres of library media
|
||||||
|
* [GetCountriesLibrary](#getcountrieslibrary) - Get Countries of library media
|
||||||
* [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries
|
* [GetSearchAllLibraries](#getsearchalllibraries) - Search All Libraries
|
||||||
* [GetMetaDataByRatingKey](#getmetadatabyratingkey) - Get Metadata by RatingKey
|
* [GetMetaDataByRatingKey](#getmetadatabyratingkey) - Get Metadata by RatingKey
|
||||||
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children
|
* [GetMetadataChildren](#getmetadatachildren) - Get Items Children
|
||||||
@@ -32,22 +34,18 @@ This resource returns hash values for local files
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetFileHash(ctx, "file://C:\Image.png&type=13", nil)
|
res, err := s.Library.GetFileHash(ctx, "file://C:\Image.png&type=13", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -90,23 +88,19 @@ This endpoint will return the recently added content.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetRecentlyAddedLibrary(ctx, operations.GetRecentlyAddedLibraryRequest{
|
res, err := s.Library.GetRecentlyAddedLibrary(ctx, operations.GetRecentlyAddedLibraryRequest{
|
||||||
ContentDirectoryID: plexgo.Int64(2),
|
ContentDirectoryID: plexgo.Int64(2),
|
||||||
PinnedContentDirectoryID: []int64{
|
PinnedContentDirectoryID: []int64{
|
||||||
@@ -125,9 +119,6 @@ func main() {
|
|||||||
},
|
},
|
||||||
SectionID: plexgo.Int64(2),
|
SectionID: plexgo.Int64(2),
|
||||||
Type: operations.QueryParamTypeTvShow,
|
Type: operations.QueryParamTypeTvShow,
|
||||||
IncludeMeta: operations.QueryParamIncludeMetaEnable.ToPointer(),
|
|
||||||
XPlexContainerStart: plexgo.Int(0),
|
|
||||||
XPlexContainerSize: plexgo.Int(50),
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -174,22 +165,18 @@ This allows a client to provide a rich interface around the media (e.g. allow so
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetAllLibraries(ctx)
|
res, err := s.Library.GetAllLibraries(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -268,22 +255,18 @@ Each type in the library comes with a set of filters and sorts, aiding in buildi
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetLibraryDetails(ctx, 9518, nil)
|
res, err := s.Library.GetLibraryDetails(ctx, 9518, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -325,22 +308,18 @@ Delete a library using a specific section id
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.DeleteLibrary(ctx, 9518)
|
res, err := s.Library.DeleteLibrary(ctx, 9518)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -393,6 +372,7 @@ Fetches details from a specific section of the library identified by a section k
|
|||||||
- `resolution`: Items categorized by resolution.
|
- `resolution`: Items categorized by resolution.
|
||||||
- `firstCharacter`: Items categorized by the first letter.
|
- `firstCharacter`: Items categorized by the first letter.
|
||||||
- `folder`: Items categorized by folder.
|
- `folder`: Items categorized by folder.
|
||||||
|
- `albums`: Items categorized by album.
|
||||||
|
|
||||||
|
|
||||||
### Example Usage
|
### Example Usage
|
||||||
@@ -401,31 +381,23 @@ Fetches details from a specific section of the library identified by a section k
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetLibraryItems(ctx, operations.GetLibraryItemsRequest{
|
res, err := s.Library.GetLibraryItems(ctx, operations.GetLibraryItemsRequest{
|
||||||
Tag: operations.TagEdition,
|
Tag: operations.TagEdition,
|
||||||
IncludeGuids: operations.IncludeGuidsEnable.ToPointer(),
|
|
||||||
Type: operations.GetLibraryItemsQueryParamTypeTvShow.ToPointer(),
|
Type: operations.GetLibraryItemsQueryParamTypeTvShow.ToPointer(),
|
||||||
SectionKey: 9518,
|
SectionKey: 9518,
|
||||||
IncludeMeta: operations.GetLibraryItemsQueryParamIncludeMetaEnable.ToPointer(),
|
|
||||||
XPlexContainerStart: plexgo.Int(0),
|
|
||||||
XPlexContainerSize: plexgo.Int(50),
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -467,23 +439,19 @@ This endpoint Refreshes all the Metadata of the library.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetRefreshLibraryMetadata(ctx, 9518, operations.ForceOne.ToPointer())
|
res, err := s.Library.GetRefreshLibraryMetadata(ctx, 9518, operations.ForceOne.ToPointer())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -543,23 +511,19 @@ Each type in the library comes with a set of filters and sorts, aiding in buildi
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetSearchLibrary(ctx, 9518, operations.GetSearchLibraryQueryParamTypeTvShow)
|
res, err := s.Library.GetSearchLibrary(ctx, 9518, operations.GetSearchLibraryQueryParamTypeTvShow)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -591,6 +555,112 @@ func main() {
|
|||||||
| sdkerrors.GetSearchLibraryUnauthorized | 401 | application/json |
|
| sdkerrors.GetSearchLibraryUnauthorized | 401 | application/json |
|
||||||
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
|
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
|
||||||
|
|
||||||
|
## GetGenresLibrary
|
||||||
|
|
||||||
|
Retrieves a list of all the genres that are found for the media in this library.
|
||||||
|
|
||||||
|
|
||||||
|
### Example Usage
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import(
|
||||||
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New(
|
||||||
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
|
)
|
||||||
|
|
||||||
|
res, err := s.Library.GetGenresLibrary(ctx, 9518)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if res.Object != nil {
|
||||||
|
// handle response
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Required | Description | Example |
|
||||||
|
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||||
|
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
|
||||||
|
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||||
|
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
|
||||||
|
|
||||||
|
### Response
|
||||||
|
|
||||||
|
**[*operations.GetGenresLibraryResponse](../../models/operations/getgenreslibraryresponse.md), error**
|
||||||
|
|
||||||
|
### Errors
|
||||||
|
|
||||||
|
| Error Type | Status Code | Content Type |
|
||||||
|
| -------------------------------------- | -------------------------------------- | -------------------------------------- |
|
||||||
|
| sdkerrors.GetGenresLibraryBadRequest | 400 | application/json |
|
||||||
|
| sdkerrors.GetGenresLibraryUnauthorized | 401 | application/json |
|
||||||
|
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
|
||||||
|
|
||||||
|
## GetCountriesLibrary
|
||||||
|
|
||||||
|
Retrieves a list of all the countries that are found for the media in this library.
|
||||||
|
|
||||||
|
|
||||||
|
### Example Usage
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import(
|
||||||
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New(
|
||||||
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
|
)
|
||||||
|
|
||||||
|
res, err := s.Library.GetCountriesLibrary(ctx, 9518)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if res.Object != nil {
|
||||||
|
// handle response
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Required | Description | Example |
|
||||||
|
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||||
|
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
|
||||||
|
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
|
||||||
|
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
|
||||||
|
|
||||||
|
### Response
|
||||||
|
|
||||||
|
**[*operations.GetCountriesLibraryResponse](../../models/operations/getcountrieslibraryresponse.md), error**
|
||||||
|
|
||||||
|
### Errors
|
||||||
|
|
||||||
|
| Error Type | Status Code | Content Type |
|
||||||
|
| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
|
||||||
|
| sdkerrors.GetCountriesLibraryBadRequest | 400 | application/json |
|
||||||
|
| sdkerrors.GetCountriesLibraryUnauthorized | 401 | application/json |
|
||||||
|
| sdkerrors.SDKError | 4XX, 5XX | \*/\* |
|
||||||
|
|
||||||
## GetSearchAllLibraries
|
## GetSearchAllLibraries
|
||||||
|
|
||||||
Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type.
|
Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type.
|
||||||
@@ -602,30 +672,25 @@ Search the provided query across all library sections, or a single section, and
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetSearchAllLibraries(ctx, operations.GetSearchAllLibrariesRequest{
|
res, err := s.Library.GetSearchAllLibraries(ctx, operations.GetSearchAllLibrariesRequest{
|
||||||
Query: "<value>",
|
Query: "<value>",
|
||||||
|
ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
|
||||||
SearchTypes: []operations.SearchTypes{
|
SearchTypes: []operations.SearchTypes{
|
||||||
operations.SearchTypesPeople,
|
operations.SearchTypesPeople,
|
||||||
},
|
},
|
||||||
IncludeCollections: operations.QueryParamIncludeCollectionsEnable.ToPointer(),
|
|
||||||
IncludeExternalMedia: operations.QueryParamIncludeExternalMediaEnable.ToPointer(),
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -667,22 +732,18 @@ This endpoint will return the metadata of a library item specified with the rati
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetMetaDataByRatingKey(ctx, 9518)
|
res, err := s.Library.GetMetaDataByRatingKey(ctx, 9518)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -724,22 +785,18 @@ This endpoint will return the children of of a library item specified with the r
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetMetadataChildren(ctx, 1539.14, plexgo.String("Stream"))
|
res, err := s.Library.GetMetadataChildren(ctx, 1539.14, plexgo.String("Stream"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -782,23 +839,19 @@ This endpoint will return the top watched content from libraries of a certain ty
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetTopWatchedContent(ctx, operations.GetTopWatchedContentQueryParamTypeTvShow, plexgo.Int64(1))
|
res, err := s.Library.GetTopWatchedContent(ctx, operations.GetTopWatchedContentQueryParamTypeTvShow, plexgo.Int64(1))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -841,22 +894,18 @@ This endpoint will return the on deck content.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Library.GetOnDeck(ctx)
|
res, err := s.Library.GetOnDeck(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -23,23 +23,19 @@ This endpoint will write a single-line log message, including a level and source
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Log.LogLine(ctx, operations.LevelThree, "Test log message", "Postman")
|
res, err := s.Log.LogLine(ctx, operations.LevelThree, "Test log message", "Postman")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -103,22 +99,18 @@ Ensure each parameter is properly URL-encoded to avoid interpretation issues.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Log.LogMultiLine(ctx, "level=4&message=Test%20message%201&source=postman\n" +
|
res, err := s.Log.LogMultiLine(ctx, "level=4&message=Test%20message%201&source=postman\n" +
|
||||||
"level=3&message=Test%20message%202&source=postman\n" +
|
"level=3&message=Test%20message%202&source=postman\n" +
|
||||||
"level=1&message=Test%20message%203&source=postman")
|
"level=1&message=Test%20message%203&source=postman")
|
||||||
@@ -162,22 +154,18 @@ This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Log.EnablePaperTrail(ctx)
|
res, err := s.Log.EnablePaperTrail(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -24,22 +24,18 @@ This will mark the provided media key as Played.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Media.MarkPlayed(ctx, 59398)
|
res, err := s.Media.MarkPlayed(ctx, 59398)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -80,22 +76,18 @@ This will mark the provided media key as Unplayed.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Media.MarkUnplayed(ctx, 59398)
|
res, err := s.Media.MarkUnplayed(ctx, 59398)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -137,22 +129,18 @@ This API command can be used to update the play progress of a media item.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Media.UpdatePlayProgress(ctx, "<key>", 90000, "played")
|
res, err := s.Media.UpdatePlayProgress(ctx, "<key>", 90000, "played")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -195,23 +183,19 @@ Gets the banner image of the media item
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Media.GetBannerImage(ctx, operations.GetBannerImageRequest{
|
res, err := s.Media.GetBannerImage(ctx, operations.GetBannerImageRequest{
|
||||||
RatingKey: 9518,
|
RatingKey: 9518,
|
||||||
Width: 396,
|
Width: 396,
|
||||||
@@ -259,23 +243,19 @@ Gets the thumbnail image of the media item
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Media.GetThumbImage(ctx, operations.GetThumbImageRequest{
|
res, err := s.Media.GetThumbImage(ctx, operations.GetThumbImageRequest{
|
||||||
RatingKey: 9518,
|
RatingKey: 9518,
|
||||||
Width: 396,
|
Width: 396,
|
||||||
|
|||||||
@@ -34,28 +34,24 @@ Create a new playlist. By default the playlist is blank. To create a playlist al
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.CreatePlaylist(ctx, operations.CreatePlaylistRequest{
|
res, err := s.Playlists.CreatePlaylist(ctx, operations.CreatePlaylistRequest{
|
||||||
Title: "<value>",
|
Title: "<value>",
|
||||||
Type: operations.CreatePlaylistQueryParamTypePhoto,
|
Type: operations.CreatePlaylistQueryParamTypePhoto,
|
||||||
Smart: operations.SmartOne,
|
Smart: operations.SmartOne,
|
||||||
URI: "https://inborn-brochure.biz",
|
URI: "https://hoarse-testing.info/",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -96,22 +92,18 @@ Get All Playlists given the specified filters.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.GetPlaylists(ctx, nil, nil)
|
res, err := s.Playlists.GetPlaylists(ctx, nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -155,22 +147,18 @@ Smart playlist details contain the `content` attribute. This is the content URI
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.GetPlaylist(ctx, 4109.48)
|
res, err := s.Playlists.GetPlaylist(ctx, 4109.48)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -212,22 +200,18 @@ This endpoint will delete a playlist
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.DeletePlaylist(ctx, 216.22)
|
res, err := s.Playlists.DeletePlaylist(ctx, 216.22)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -269,22 +253,18 @@ From PMS version 1.9.1 clients can also edit playlist metadata using this endpoi
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.UpdatePlaylist(ctx, 3915, nil, nil)
|
res, err := s.Playlists.UpdatePlaylist(ctx, 3915, nil, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -331,23 +311,19 @@ Note that for dumb playlists, items have a `playlistItemID` attribute which is u
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.GetPlaylistContents(ctx, 5004.46, operations.GetPlaylistContentsQueryParamTypeTvShow)
|
res, err := s.Playlists.GetPlaylistContents(ctx, 5004.46, operations.GetPlaylistContentsQueryParamTypeTvShow)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -390,22 +366,18 @@ Clears a playlist, only works with dumb playlists. Returns the playlist.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.ClearPlaylistContents(ctx, 1893.18)
|
res, err := s.Playlists.ClearPlaylistContents(ctx, 1893.18)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -448,22 +420,18 @@ With a smart playlist, passing a new `uri` parameter replaces the rules for the
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.AddPlaylistContents(ctx, 8502.01, "server://12345/com.plexapp.plugins.library/library/metadata/1", plexgo.Float64(123))
|
res, err := s.Playlists.AddPlaylistContents(ctx, 8502.01, "server://12345/com.plexapp.plugins.library/library/metadata/1", plexgo.Float64(123))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -507,23 +475,19 @@ Imports m3u playlists by passing a path on the server to scan for m3u-formatted
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Playlists.UploadPlaylist(ctx, "/home/barkley/playlist.m3u", operations.QueryParamForceZero, 1)
|
res, err := s.Playlists.UploadPlaylist(ctx, "/home/barkley/playlist.m3u", operations.QueryParamForceZero, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -26,22 +26,18 @@ Get Companions Data
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Plex.GetCompanionsData(ctx)
|
res, err := s.Plex.GetCompanionsData(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -81,22 +77,18 @@ Get friends of provided auth token.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Plex.GetUserFriends(ctx)
|
res, err := s.Plex.GetUserFriends(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -136,21 +128,16 @@ Returns the geolocation and locale data of the caller
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := plexgo.New(
|
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New()
|
||||||
|
|
||||||
res, err := s.Plex.GetGeoData(ctx)
|
res, err := s.Plex.GetGeoData(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -190,22 +177,18 @@ Retrieves the home data for the authenticated user, including details like home
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Plex.GetHomeData(ctx)
|
res, err := s.Plex.GetHomeData(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -245,24 +228,19 @@ Get Plex server access tokens and server connections
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
res, err := s.Plex.GetServerResources(ctx, "3381b62b-9ab7-4e37-827b-203e9809eb58", nil, nil, nil)
|
||||||
res, err := s.Plex.GetServerResources(ctx, operations.IncludeHTTPSEnable.ToPointer(), operations.IncludeRelayEnable.ToPointer(), operations.IncludeIPv6Enable.ToPointer(), plexgo.String("3381b62b-9ab7-4e37-827b-203e9809eb58"))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -277,10 +255,10 @@ func main() {
|
|||||||
| Parameter | Type | Required | Description | Example |
|
| Parameter | Type | Required | Description | Example |
|
||||||
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
|
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
|
||||||
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
|
| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | |
|
||||||
|
| `clientID` | *string* | :heavy_check_mark: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
||||||
| `includeHTTPS` | [*operations.IncludeHTTPS](../../models/operations/includehttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 |
|
| `includeHTTPS` | [*operations.IncludeHTTPS](../../models/operations/includehttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 |
|
||||||
| `includeRelay` | [*operations.IncludeRelay](../../models/operations/includerelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 |
|
| `includeRelay` | [*operations.IncludeRelay](../../models/operations/includerelay.md) | :heavy_minus_sign: | Include Relay addresses in the results <br/>E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400<br/> | 1 |
|
||||||
| `includeIPv6` | [*operations.IncludeIPv6](../../models/operations/includeipv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 |
|
| `includeIPv6` | [*operations.IncludeIPv6](../../models/operations/includeipv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 |
|
||||||
| `clientID` | **string* | :heavy_minus_sign: | An opaque identifier unique to the client (UUID, serial number, or other unique device ID) | 3381b62b-9ab7-4e37-827b-203e9809eb58 |
|
|
||||||
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
|
| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | |
|
||||||
|
|
||||||
### Response
|
### Response
|
||||||
@@ -305,23 +283,24 @@ Retrieve a Pin ID from Plex.tv to use for authentication flows
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := plexgo.New(
|
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
res, err := s.Plex.GetPin(ctx, operations.GetPinRequest{})
|
|
||||||
|
s := plexgo.New()
|
||||||
|
|
||||||
|
res, err := s.Plex.GetPin(ctx, operations.GetPinRequest{
|
||||||
|
ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
|
||||||
|
ClientName: plexgo.String("Plex for Roku"),
|
||||||
|
DeviceNickname: plexgo.String("Roku 3"),
|
||||||
|
ClientVersion: plexgo.String("2.4.1"),
|
||||||
|
Platform: plexgo.String("Roku"),
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -360,24 +339,24 @@ Retrieve an Access Token from Plex.tv after the Pin has been authenticated
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := plexgo.New(
|
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New()
|
||||||
|
|
||||||
res, err := s.Plex.GetTokenByPinID(ctx, operations.GetTokenByPinIDRequest{
|
res, err := s.Plex.GetTokenByPinID(ctx, operations.GetTokenByPinIDRequest{
|
||||||
PinID: 408895,
|
PinID: 408895,
|
||||||
|
ClientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
|
||||||
|
ClientName: plexgo.String("Plex for Roku"),
|
||||||
|
DeviceNickname: plexgo.String("Roku 3"),
|
||||||
|
ClientVersion: plexgo.String("2.4.1"),
|
||||||
|
Platform: plexgo.String("Roku"),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -26,3 +26,6 @@ The following SDKs are generated from the OpenAPI Specification. They are automa
|
|||||||
| PHP | [GitHub](https://github.com/LukeHagar/plexphp) | [Releases](https://github.com/LukeHagar/plexphp/releases) | - |
|
| PHP | [GitHub](https://github.com/LukeHagar/plexphp) | [Releases](https://github.com/LukeHagar/plexphp/releases) | - |
|
||||||
| Java | [GitHub](https://github.com/LukeHagar/plexjava) | [Releases](https://github.com/LukeHagar/plexjava/releases) | - |
|
| Java | [GitHub](https://github.com/LukeHagar/plexjava) | [Releases](https://github.com/LukeHagar/plexjava/releases) | - |
|
||||||
| C# | [GitHub](https://github.com/LukeHagar/plexcsharp) | [Releases](https://github.com/LukeHagar/plexcsharp/releases) | -
|
| C# | [GitHub](https://github.com/LukeHagar/plexcsharp) | [Releases](https://github.com/LukeHagar/plexcsharp/releases) | -
|
||||||
|
|
||||||
|
|
||||||
|
### Available Operations
|
||||||
|
|||||||
@@ -34,23 +34,19 @@ This request is intended to be very fast, and called as the user types.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
res, err := s.Search.PerformSearch(ctx, "dylan", nil, nil)
|
||||||
res, err := s.Search.PerformSearch(ctx, "dylan", nil, plexgo.Float64(5))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -96,23 +92,19 @@ Results, as well as their containing per-type hubs, contain a `distance` attribu
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
res, err := s.Search.PerformVoiceSearch(ctx, "dead+poop", nil, nil)
|
||||||
res, err := s.Search.PerformVoiceSearch(ctx, "dead+poop", nil, plexgo.Float64(5))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -154,22 +146,18 @@ This will search the database for the string provided.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Search.GetSearchResults(ctx, "110")
|
res, err := s.Search.GetSearchResults(ctx, "110")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -28,22 +28,18 @@ Get Server Capabilities
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerCapabilities(ctx)
|
res, err := s.Server.GetServerCapabilities(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -83,22 +79,18 @@ Get Server Preferences
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerPreferences(ctx)
|
res, err := s.Server.GetServerPreferences(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -138,22 +130,18 @@ Get Available Clients
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetAvailableClients(ctx)
|
res, err := s.Server.GetAvailableClients(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -193,22 +181,18 @@ Get Devices
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetDevices(ctx)
|
res, err := s.Server.GetDevices(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -248,21 +232,16 @@ This request is useful to determine if the server is online or offline
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := plexgo.New(
|
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
s := plexgo.New()
|
||||||
|
|
||||||
res, err := s.Server.GetServerIdentity(ctx)
|
res, err := s.Server.GetServerIdentity(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -301,22 +280,18 @@ Returns MyPlex Account Information
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetMyPlexAccount(ctx)
|
res, err := s.Server.GetMyPlexAccount(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -357,23 +332,19 @@ Plex's Photo transcoder is used throughout the service to serve images at specif
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetResizedPhoto(ctx, operations.GetResizedPhotoRequest{
|
res, err := s.Server.GetResizedPhoto(ctx, operations.GetResizedPhotoRequest{
|
||||||
Width: 110,
|
Width: 110,
|
||||||
Height: 165,
|
Height: 165,
|
||||||
@@ -422,22 +393,18 @@ Retrieves media providers and their features from the Plex server.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetMediaProviders(ctx, "CV5xoxjTpFKUzBTShsaf")
|
res, err := s.Server.GetMediaProviders(ctx, "CV5xoxjTpFKUzBTShsaf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -478,22 +445,18 @@ Get Server List
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Server.GetServerList(ctx)
|
res, err := s.Server.GetServerList(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -23,22 +23,18 @@ This will retrieve the "Now Playing" Information of the PMS.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Sessions.GetSessions(ctx)
|
res, err := s.Sessions.GetSessions(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -78,23 +74,19 @@ This will Retrieve a listing of all history views.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Sessions.GetSessionHistory(ctx, plexgo.String("viewedAt:desc"), plexgo.Int64(1), &operations.QueryParamFilter{}, plexgo.Int64(12))
|
res, err := s.Sessions.GetSessionHistory(ctx, plexgo.String("viewedAt:desc"), plexgo.Int64(1), &operations.QueryParamFilter{}, plexgo.Int64(12))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -138,22 +130,18 @@ Get Transcode Sessions
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Sessions.GetTranscodeSessions(ctx)
|
res, err := s.Sessions.GetTranscodeSessions(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -193,22 +181,18 @@ Stop a Transcode Session
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Sessions.StopTranscodeSession(ctx, "zz7llzqlx8w9vnrsbnwhbmep")
|
res, err := s.Sessions.StopTranscodeSession(ctx, "zz7llzqlx8w9vnrsbnwhbmep")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -22,22 +22,18 @@ This will return the media statistics for the server
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Statistics.GetStatistics(ctx, plexgo.Int64(4))
|
res, err := s.Statistics.GetStatistics(ctx, plexgo.Int64(4))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -78,22 +74,18 @@ This will return the resources for the server
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Statistics.GetResourcesStatistics(ctx, plexgo.Int64(4))
|
res, err := s.Statistics.GetResourcesStatistics(ctx, plexgo.Int64(4))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -134,22 +126,18 @@ This will return the bandwidth statistics for the server
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Statistics.GetBandwidthStatistics(ctx, plexgo.Int64(4))
|
res, err := s.Statistics.GetBandwidthStatistics(ctx, plexgo.Int64(4))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -23,22 +23,18 @@ Querying status of updates
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Updater.GetUpdateStatus(ctx)
|
res, err := s.Updater.GetUpdateStatus(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -78,23 +74,19 @@ Checking for updates
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Updater.CheckForUpdates(ctx, operations.DownloadOne.ToPointer())
|
res, err := s.Updater.CheckForUpdates(ctx, operations.DownloadOne.ToPointer())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -136,23 +128,19 @@ Note that these two parameters are effectively mutually exclusive. The `tonight`
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Updater.ApplyUpdates(ctx, operations.TonightOne.ToPointer(), operations.SkipOne.ToPointer())
|
res, err := s.Updater.ApplyUpdates(ctx, operations.TonightOne.ToPointer(), operations.SkipOne.ToPointer())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
|||||||
@@ -21,23 +21,19 @@ Get the timeline for a media item
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Video.GetTimeline(ctx, operations.GetTimelineRequest{
|
res, err := s.Video.GetTimeline(ctx, operations.GetTimelineRequest{
|
||||||
RatingKey: 23409,
|
RatingKey: 23409,
|
||||||
Key: "/library/metadata/23409",
|
Key: "/library/metadata/23409",
|
||||||
@@ -89,23 +85,19 @@ Begin a Universal Transcode Session
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Video.StartUniversalTranscode(ctx, operations.StartUniversalTranscodeRequest{
|
res, err := s.Video.StartUniversalTranscode(ctx, operations.StartUniversalTranscodeRequest{
|
||||||
HasMDE: 1,
|
HasMDE: 1,
|
||||||
Path: "/library/metadata/23409",
|
Path: "/library/metadata/23409",
|
||||||
|
|||||||
@@ -20,27 +20,21 @@ Get User Watchlist
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import(
|
import(
|
||||||
"github.com/LukeHagar/plexgo"
|
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/LukeHagar/plexgo"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
s := plexgo.New(
|
s := plexgo.New(
|
||||||
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
|
||||||
plexgo.WithClientID("3381b62b-9ab7-4e37-827b-203e9809eb58"),
|
|
||||||
plexgo.WithClientName("Plex for Roku"),
|
|
||||||
plexgo.WithClientVersion("2.4.1"),
|
|
||||||
plexgo.WithPlatform("Roku"),
|
|
||||||
plexgo.WithDeviceNickname("Roku 3"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
res, err := s.Watchlist.GetWatchList(ctx, operations.GetWatchListRequest{
|
res, err := s.Watchlist.GetWatchList(ctx, operations.GetWatchListRequest{
|
||||||
Filter: operations.FilterAvailable,
|
Filter: operations.FilterAvailable,
|
||||||
XPlexContainerStart: plexgo.Int(0),
|
|
||||||
XPlexContainerSize: plexgo.Int(50),
|
|
||||||
XPlexToken: "CV5xoxjTpFKUzBTShsaf",
|
XPlexToken: "CV5xoxjTpFKUzBTShsaf",
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
5
go.mod
5
go.mod
@@ -2,7 +2,4 @@ module github.com/LukeHagar/plexgo
|
|||||||
|
|
||||||
go 1.20
|
go 1.20
|
||||||
|
|
||||||
require (
|
require github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05
|
||||||
github.com/cenkalti/backoff/v4 v4.2.0
|
|
||||||
github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05
|
|
||||||
)
|
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -1,4 +1,2 @@
|
|||||||
github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4=
|
|
||||||
github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
|
||||||
github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05 h1:S92OBrGuLLZsyM5ybUzgc/mPjIYk2AZqufieooe98uw=
|
github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05 h1:S92OBrGuLLZsyM5ybUzgc/mPjIYk2AZqufieooe98uw=
|
||||||
github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05/go.mod h1:M9R1FoZ3y//hwwnJtO51ypFGwm8ZfpxPT/ZLtO1mcgQ=
|
github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05/go.mod h1:M9R1FoZ3y//hwwnJtO51ypFGwm8ZfpxPT/ZLtO1mcgQ=
|
||||||
|
|||||||
71
hubs.go
71
hubs.go
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -53,7 +53,12 @@ func (s *Hubs) GetGlobalHubs(ctx context.Context, count *float64, onlyTransient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/hubs")
|
opURL, err := url.JoinPath(baseURL, "/hubs")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -85,6 +90,10 @@ func (s *Hubs) GetGlobalHubs(ctx context.Context, count *float64, onlyTransient
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -115,7 +124,11 @@ func (s *Hubs) GetGlobalHubs(ctx context.Context, count *float64, onlyTransient
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -243,7 +256,11 @@ func (s *Hubs) GetGlobalHubs(ctx context.Context, count *float64, onlyTransient
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -284,7 +301,12 @@ func (s *Hubs) GetRecentlyAdded(ctx context.Context, request operations.GetRecen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/hubs/home/recentlyAdded")
|
opURL, err := url.JoinPath(baseURL, "/hubs/home/recentlyAdded")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -316,6 +338,10 @@ func (s *Hubs) GetRecentlyAdded(ctx context.Context, request operations.GetRecen
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -346,7 +372,11 @@ func (s *Hubs) GetRecentlyAdded(ctx context.Context, request operations.GetRecen
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -434,7 +464,11 @@ func (s *Hubs) GetRecentlyAdded(ctx context.Context, request operations.GetRecen
|
|||||||
case httpRes.StatusCode == 401:
|
case httpRes.StatusCode == 401:
|
||||||
fallthrough
|
fallthrough
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -481,7 +515,12 @@ func (s *Hubs) GetLibraryHubs(ctx context.Context, sectionID float64, count *flo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/hubs/sections/{sectionId}", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/hubs/sections/{sectionId}", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -513,6 +552,10 @@ func (s *Hubs) GetLibraryHubs(ctx context.Context, sectionID float64, count *flo
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -543,7 +586,11 @@ func (s *Hubs) GetLibraryHubs(ctx context.Context, sectionID float64, count *flo
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -671,7 +718,11 @@ func (s *Hubs) GetLibraryHubs(ctx context.Context, sectionID float64, count *flo
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
||||||
|
|
||||||
package globals
|
|
||||||
|
|
||||||
type Globals struct {
|
|
||||||
// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
|
|
||||||
ClientID *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
|
|
||||||
// The name of the client application. (Plex Web, Plex Media Server, etc.)
|
|
||||||
ClientName *string `header:"style=simple,explode=false,name=X-Plex-Product"`
|
|
||||||
// The version of the client application.
|
|
||||||
ClientVersion *string `header:"style=simple,explode=false,name=X-Plex-Version"`
|
|
||||||
// The platform of the client application.
|
|
||||||
Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"`
|
|
||||||
// A relatively friendly name for the client device
|
|
||||||
DeviceNickname *string `header:"style=simple,explode=false,name=X-Plex-Device"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Globals) GetClientID() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Globals) GetClientName() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientName
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Globals) GetClientVersion() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Globals) GetPlatform() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.Platform
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Globals) GetDeviceNickname() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.DeviceNickname
|
|
||||||
}
|
|
||||||
16
internal/utils/env.go
Normal file
16
internal/utils/env.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||||
|
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetEnv returns the value of the environment variable named by the key or the defaultValue if the environment variable is not set.
|
||||||
|
func GetEnv(name, defaultValue string) string {
|
||||||
|
value := os.Getenv(name)
|
||||||
|
if value == "" {
|
||||||
|
return defaultValue
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
@@ -214,7 +214,11 @@ func populateDeepObjectParamsStruct(qsValues url.Values, priorScope string, stru
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
scope := priorScope + "[" + qpTag.ParamName + "]"
|
scope := priorScope
|
||||||
|
|
||||||
|
if !qpTag.Inline {
|
||||||
|
scope = priorScope + "[" + qpTag.ParamName + "]"
|
||||||
|
}
|
||||||
|
|
||||||
switch fieldValue.Kind() {
|
switch fieldValue.Kind() {
|
||||||
case reflect.Array, reflect.Slice:
|
case reflect.Array, reflect.Slice:
|
||||||
@@ -252,6 +256,13 @@ type paramTag struct {
|
|||||||
Explode bool
|
Explode bool
|
||||||
ParamName string
|
ParamName string
|
||||||
Serialization string
|
Serialization string
|
||||||
|
|
||||||
|
// Inline is a special case for union/oneOf. When a wrapper struct type is
|
||||||
|
// used, each union/oneOf value field should be inlined (e.g. not appended
|
||||||
|
// in deepObject style with the name) as if the value was directly on the
|
||||||
|
// parent struct field. Without this annotation, the value would not be
|
||||||
|
// encoded by downstream logic that requires the struct field tag.
|
||||||
|
Inline bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseQueryParamTag(field reflect.StructField) *paramTag {
|
func parseQueryParamTag(field reflect.StructField) *paramTag {
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ func encodeMultipartFormData(w io.Writer, data interface{}) (string, error) {
|
|||||||
|
|
||||||
tag := parseMultipartFormTag(field)
|
tag := parseMultipartFormTag(field)
|
||||||
if tag.File {
|
if tag.File {
|
||||||
if err := encodeMultipartFormDataFile(writer, fieldType, valType); err != nil {
|
if err := encodeMultipartFormDataFile(writer, tag.Name, fieldType, valType); err != nil {
|
||||||
writer.Close()
|
writer.Close()
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -211,12 +211,11 @@ func encodeMultipartFormData(w io.Writer, data interface{}) (string, error) {
|
|||||||
return writer.FormDataContentType(), nil
|
return writer.FormDataContentType(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func encodeMultipartFormDataFile(w *multipart.Writer, fieldType reflect.Type, valType reflect.Value) error {
|
func encodeMultipartFormDataFile(w *multipart.Writer, fieldName string, fieldType reflect.Type, valType reflect.Value) error {
|
||||||
if fieldType.Kind() != reflect.Struct {
|
if fieldType.Kind() != reflect.Struct {
|
||||||
return fmt.Errorf("invalid type %s for multipart/form-data file", valType.Type())
|
return fmt.Errorf("invalid type %s for multipart/form-data file", valType.Type())
|
||||||
}
|
}
|
||||||
|
|
||||||
var fieldName string
|
|
||||||
var fileName string
|
var fileName string
|
||||||
var reader io.Reader
|
var reader io.Reader
|
||||||
|
|
||||||
@@ -236,12 +235,11 @@ func encodeMultipartFormDataFile(w *multipart.Writer, fieldType reflect.Type, va
|
|||||||
reader = val.Interface().(io.Reader)
|
reader = val.Interface().(io.Reader)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fieldName = tag.Name
|
|
||||||
fileName = val.String()
|
fileName = val.String()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if fieldName == "" || fileName == "" || reader == nil {
|
if fileName == "" || reader == nil {
|
||||||
return fmt.Errorf("invalid multipart/form-data file")
|
return fmt.Errorf("invalid multipart/form-data file")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/LukeHagar/plexgo/retry"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"math"
|
||||||
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -15,8 +16,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
var errRequestFailed = errors.New("request failed")
|
|
||||||
|
|
||||||
// Deprecated: Use retry.BackoffStrategy instead.
|
// Deprecated: Use retry.BackoffStrategy instead.
|
||||||
type BackoffStrategy = retry.BackoffStrategy
|
type BackoffStrategy = retry.BackoffStrategy
|
||||||
|
|
||||||
@@ -28,34 +27,27 @@ type Retries struct {
|
|||||||
StatusCodes []string
|
StatusCodes []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)) (*http.Response, error) {
|
func Retry(ctx context.Context, r Retries, operation func() (*http.Response, error)) (*http.Response, error) {
|
||||||
switch r.Config.Strategy {
|
switch r.Config.Strategy {
|
||||||
case "backoff":
|
case "backoff":
|
||||||
if r.Config.Backoff == nil {
|
if r.Config.Backoff == nil {
|
||||||
return action()
|
return operation()
|
||||||
}
|
}
|
||||||
|
|
||||||
config := backoff.NewExponentialBackOff()
|
|
||||||
config.InitialInterval = time.Duration(r.Config.Backoff.InitialInterval) * time.Millisecond
|
|
||||||
config.MaxInterval = time.Duration(r.Config.Backoff.MaxInterval) * time.Millisecond
|
|
||||||
config.Multiplier = r.Config.Backoff.Exponent
|
|
||||||
config.MaxElapsedTime = time.Duration(r.Config.Backoff.MaxElapsedTime) * time.Millisecond
|
|
||||||
config.Reset()
|
|
||||||
|
|
||||||
var resp *http.Response
|
var resp *http.Response
|
||||||
|
|
||||||
err := backoff.Retry(func() error {
|
err := retryWithBackoff(ctx, r.Config.Backoff, func() error {
|
||||||
if resp != nil {
|
if resp != nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return backoff.Permanent(ctx.Err())
|
return retry.Permanent(ctx.Err())
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
|
||||||
res, err := action()
|
res, err := operation()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
urlError := new(url.Error)
|
urlError := new(url.Error)
|
||||||
if errors.As(err, &urlError) {
|
if errors.As(err, &urlError) {
|
||||||
@@ -64,7 +56,7 @@ func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return backoff.Permanent(err)
|
return retry.Permanent(err)
|
||||||
}
|
}
|
||||||
resp = res
|
resp = res
|
||||||
if res == nil {
|
if res == nil {
|
||||||
@@ -81,7 +73,7 @@ func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)
|
|||||||
s := res.StatusCode / 100
|
s := res.StatusCode / 100
|
||||||
|
|
||||||
if s >= codeRange && s < codeRange+1 {
|
if s >= codeRange && s < codeRange+1 {
|
||||||
return errRequestFailed
|
return retry.TemporaryFromResponse("request failed", res)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
parsedCode, err := strconv.Atoi(code)
|
parsedCode, err := strconv.Atoi(code)
|
||||||
@@ -90,7 +82,7 @@ func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if res.StatusCode == parsedCode {
|
if res.StatusCode == parsedCode {
|
||||||
return errRequestFailed
|
return retry.TemporaryFromResponse("request failed", res)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -98,13 +90,131 @@ func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)
|
|||||||
resp = res
|
resp = res
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}, config)
|
})
|
||||||
if err != nil && !errors.Is(err, errRequestFailed) {
|
|
||||||
|
var tempErr *retry.TemporaryError
|
||||||
|
if err != nil && !errors.As(err, &tempErr) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return resp, nil
|
return resp, nil
|
||||||
default:
|
default:
|
||||||
return action()
|
return operation()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func retryWithBackoff(ctx context.Context, s *retry.BackoffStrategy, operation func() error) error {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
next time.Duration
|
||||||
|
attempt int
|
||||||
|
start = time.Now()
|
||||||
|
maxElapsedTime = time.Duration(s.MaxElapsedTime) * time.Millisecond
|
||||||
|
)
|
||||||
|
|
||||||
|
timer := &defaultTimer{}
|
||||||
|
defer func() {
|
||||||
|
timer.Stop()
|
||||||
|
}()
|
||||||
|
|
||||||
|
for {
|
||||||
|
err = operation()
|
||||||
|
if err == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var permanent *retry.PermanentError
|
||||||
|
if errors.As(err, &permanent) {
|
||||||
|
return permanent.Unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
if time.Since(start) >= maxElapsedTime {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var temporary *retry.TemporaryError
|
||||||
|
if errors.As(err, &temporary) {
|
||||||
|
next = temporary.RetryAfter()
|
||||||
|
}
|
||||||
|
|
||||||
|
if next <= 0 {
|
||||||
|
next = nextInterval(s, attempt)
|
||||||
|
}
|
||||||
|
|
||||||
|
timer.Start(next)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return ctx.Err()
|
||||||
|
case <-timer.C():
|
||||||
|
}
|
||||||
|
|
||||||
|
attempt += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timer interface {
|
||||||
|
Start(duration time.Duration)
|
||||||
|
Stop()
|
||||||
|
C() <-chan time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
// defaultTimer implements Timer interface using time.Timer
|
||||||
|
type defaultTimer struct {
|
||||||
|
timer *time.Timer
|
||||||
|
}
|
||||||
|
|
||||||
|
// C returns the timers channel which receives the current time when the timer fires.
|
||||||
|
func (t *defaultTimer) C() <-chan time.Time {
|
||||||
|
return t.timer.C
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start starts the timer to fire after the given duration
|
||||||
|
func (t *defaultTimer) Start(duration time.Duration) {
|
||||||
|
if t.timer == nil {
|
||||||
|
t.timer = time.NewTimer(duration)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !t.timer.Stop() {
|
||||||
|
select {
|
||||||
|
case <-t.timer.C:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
t.timer.Reset(duration)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop is called when the timer is not used anymore and resources may be freed.
|
||||||
|
func (t *defaultTimer) Stop() {
|
||||||
|
if t.timer != nil {
|
||||||
|
t.timer.Stop()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func nextInterval(s *retry.BackoffStrategy, attempt int) time.Duration {
|
||||||
|
initialInterval := float64(time.Duration(s.InitialInterval) * time.Millisecond)
|
||||||
|
maxInterval := float64(time.Duration(s.MaxInterval) * time.Millisecond)
|
||||||
|
exponent := s.Exponent
|
||||||
|
jitterFactor := float64(0.25)
|
||||||
|
|
||||||
|
interval := initialInterval * math.Pow(float64(attempt+1), exponent)
|
||||||
|
|
||||||
|
jitter := rand.Float64() * jitterFactor * interval
|
||||||
|
if rand.Float64() < 0.5 {
|
||||||
|
jitter = -1 * jitter
|
||||||
|
}
|
||||||
|
|
||||||
|
interval = interval + jitter
|
||||||
|
|
||||||
|
if interval <= 0 {
|
||||||
|
interval = initialInterval
|
||||||
|
}
|
||||||
|
|
||||||
|
if interval > maxInterval {
|
||||||
|
interval = maxInterval
|
||||||
|
}
|
||||||
|
|
||||||
|
return time.Duration(interval)
|
||||||
|
}
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ func parseStructTag(tagKey string, field reflect.StructField) map[string]string
|
|||||||
|
|
||||||
func parseParamTag(tagKey string, field reflect.StructField, defaultStyle string, defaultExplode bool) *paramTag {
|
func parseParamTag(tagKey string, field reflect.StructField, defaultStyle string, defaultExplode bool) *paramTag {
|
||||||
// example `{tagKey}:"style=simple,explode=false,name=apiID"`
|
// example `{tagKey}:"style=simple,explode=false,name=apiID"`
|
||||||
|
// example `{tagKey}:"inline"`
|
||||||
values := parseStructTag(tagKey, field)
|
values := parseStructTag(tagKey, field)
|
||||||
if values == nil {
|
if values == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -140,6 +141,8 @@ func parseParamTag(tagKey string, field reflect.StructField, defaultStyle string
|
|||||||
|
|
||||||
for k, v := range values {
|
for k, v := range values {
|
||||||
switch k {
|
switch k {
|
||||||
|
case "inline":
|
||||||
|
tag.Inline = v == "true"
|
||||||
case "style":
|
case "style":
|
||||||
tag.Style = v
|
tag.Style = v
|
||||||
case "explode":
|
case "explode":
|
||||||
|
|||||||
824
library.go
824
library.go
File diff suppressed because it is too large
Load Diff
73
log.go
73
log.go
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -54,7 +54,12 @@ func (s *Log) LogLine(ctx context.Context, level operations.Level, message strin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/log")
|
opURL, err := url.JoinPath(baseURL, "/log")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -86,6 +91,10 @@ func (s *Log) LogLine(ctx context.Context, level operations.Level, message strin
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -116,7 +125,11 @@ func (s *Log) LogLine(ctx context.Context, level operations.Level, message strin
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -224,7 +237,11 @@ func (s *Log) LogLine(ctx context.Context, level operations.Level, message strin
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -285,7 +302,12 @@ func (s *Log) LogMultiLine(ctx context.Context, request string, opts ...operatio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/log")
|
opURL, err := url.JoinPath(baseURL, "/log")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -313,12 +335,18 @@ func (s *Log) LogMultiLine(ctx context.Context, request string, opts ...operatio
|
|||||||
}
|
}
|
||||||
req.Header.Set("Accept", "application/json")
|
req.Header.Set("Accept", "application/json")
|
||||||
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
|
||||||
|
if reqContentType != "" {
|
||||||
req.Header.Set("Content-Type", reqContentType)
|
req.Header.Set("Content-Type", reqContentType)
|
||||||
|
}
|
||||||
|
|
||||||
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
|
if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -349,7 +377,11 @@ func (s *Log) LogMultiLine(ctx context.Context, request string, opts ...operatio
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -457,7 +489,11 @@ func (s *Log) LogMultiLine(ctx context.Context, request string, opts ...operatio
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -498,7 +534,12 @@ func (s *Log) EnablePaperTrail(ctx context.Context, opts ...operations.Option) (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/log/networked")
|
opURL, err := url.JoinPath(baseURL, "/log/networked")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -526,6 +567,10 @@ func (s *Log) EnablePaperTrail(ctx context.Context, opts ...operations.Option) (
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -556,7 +601,11 @@ func (s *Log) EnablePaperTrail(ctx context.Context, opts ...operations.Option) (
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -666,7 +715,11 @@ func (s *Log) EnablePaperTrail(ctx context.Context, opts ...operations.Option) (
|
|||||||
case httpRes.StatusCode == 403:
|
case httpRes.StatusCode == 403:
|
||||||
fallthrough
|
fallthrough
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
117
media.go
117
media.go
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/LukeHagar/plexgo/internal/utils"
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"github.com/LukeHagar/plexgo/models/operations"
|
"github.com/LukeHagar/plexgo/models/operations"
|
||||||
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
"github.com/LukeHagar/plexgo/models/sdkerrors"
|
||||||
"github.com/cenkalti/backoff/v4"
|
"github.com/LukeHagar/plexgo/retry"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
)
|
)
|
||||||
@@ -52,7 +52,12 @@ func (s *Media) MarkPlayed(ctx context.Context, key float64, opts ...operations.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/:/scrobble")
|
opURL, err := url.JoinPath(baseURL, "/:/scrobble")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -84,6 +89,10 @@ func (s *Media) MarkPlayed(ctx context.Context, key float64, opts ...operations.
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -114,7 +123,11 @@ func (s *Media) MarkPlayed(ctx context.Context, key float64, opts ...operations.
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -222,7 +235,11 @@ func (s *Media) MarkPlayed(ctx context.Context, key float64, opts ...operations.
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -267,7 +284,12 @@ func (s *Media) MarkUnplayed(ctx context.Context, key float64, opts ...operation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/:/unscrobble")
|
opURL, err := url.JoinPath(baseURL, "/:/unscrobble")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -299,6 +321,10 @@ func (s *Media) MarkUnplayed(ctx context.Context, key float64, opts ...operation
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -329,7 +355,11 @@ func (s *Media) MarkUnplayed(ctx context.Context, key float64, opts ...operation
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -437,7 +467,11 @@ func (s *Media) MarkUnplayed(ctx context.Context, key float64, opts ...operation
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -484,7 +518,12 @@ func (s *Media) UpdatePlayProgress(ctx context.Context, key string, time float64
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := url.JoinPath(baseURL, "/:/progress")
|
opURL, err := url.JoinPath(baseURL, "/:/progress")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -516,6 +555,10 @@ func (s *Media) UpdatePlayProgress(ctx context.Context, key string, time float64
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -546,7 +589,11 @@ func (s *Media) UpdatePlayProgress(ctx context.Context, key string, time float64
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -654,7 +701,11 @@ func (s *Media) UpdatePlayProgress(ctx context.Context, key string, time float64
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -695,7 +746,12 @@ func (s *Media) GetBannerImage(ctx context.Context, request operations.GetBanner
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/banner", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/banner", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -729,6 +785,10 @@ func (s *Media) GetBannerImage(ctx context.Context, request operations.GetBanner
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -759,7 +819,11 @@ func (s *Media) GetBannerImage(ctx context.Context, request operations.GetBanner
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -881,7 +945,11 @@ func (s *Media) GetBannerImage(ctx context.Context, request operations.GetBanner
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -922,7 +990,12 @@ func (s *Media) GetThumbImage(ctx context.Context, request operations.GetThumbIm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
var baseURL string
|
||||||
|
if o.ServerURL == nil {
|
||||||
|
baseURL = utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
|
||||||
|
} else {
|
||||||
|
baseURL = *o.ServerURL
|
||||||
|
}
|
||||||
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/thumb", request, nil)
|
opURL, err := utils.GenerateURL(ctx, baseURL, "/library/metadata/{ratingKey}/thumb", request, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error generating URL: %w", err)
|
return nil, fmt.Errorf("error generating URL: %w", err)
|
||||||
@@ -956,6 +1029,10 @@ func (s *Media) GetThumbImage(ctx context.Context, request operations.GetThumbIm
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for k, v := range o.SetHeaders {
|
||||||
|
req.Header.Set(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
globalRetryConfig := s.sdkConfiguration.RetryConfig
|
||||||
retryConfig := o.Retries
|
retryConfig := o.Retries
|
||||||
if retryConfig == nil {
|
if retryConfig == nil {
|
||||||
@@ -986,7 +1063,11 @@ func (s *Media) GetThumbImage(ctx context.Context, request operations.GetThumbIm
|
|||||||
|
|
||||||
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, backoff.Permanent(err)
|
if retry.IsPermanentError(err) || retry.IsTemporaryError(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, retry.Permanent(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
httpRes, err := s.sdkConfiguration.Client.Do(req)
|
||||||
@@ -1108,7 +1189,11 @@ func (s *Media) GetThumbImage(ctx context.Context, request operations.GetThumbIm
|
|||||||
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
}
|
}
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
fallthrough
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600:
|
||||||
rawBody, err := utils.ConsumeRawBody(httpRes)
|
rawBody, err := utils.ConsumeRawBody(httpRes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
222
models/operations/getcountrieslibrary.go
Normal file
222
models/operations/getcountrieslibrary.go
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||||
|
|
||||||
|
package operations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetCountriesLibraryRequest struct {
|
||||||
|
// The unique key of the Plex library.
|
||||||
|
// Note: This is unique in the context of the Plex server.
|
||||||
|
//
|
||||||
|
SectionKey int `pathParam:"style=simple,explode=false,name=sectionKey"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryRequest) GetSectionKey() int {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.SectionKey
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetCountriesLibraryDirectory struct {
|
||||||
|
FastKey string `json:"fastKey"`
|
||||||
|
Key string `json:"key"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryDirectory) GetFastKey() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.FastKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryDirectory) GetKey() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryDirectory) GetTitle() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetCountriesLibraryMediaContainer struct {
|
||||||
|
Size float64 `json:"size"`
|
||||||
|
Offset *int `json:"offset,omitempty"`
|
||||||
|
TotalSize *int `json:"totalSize,omitempty"`
|
||||||
|
Identifier string `json:"identifier"`
|
||||||
|
AllowSync bool `json:"allowSync"`
|
||||||
|
Art string `json:"art"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
MediaTagPrefix string `json:"mediaTagPrefix"`
|
||||||
|
MediaTagVersion int64 `json:"mediaTagVersion"`
|
||||||
|
Nocache bool `json:"nocache"`
|
||||||
|
Thumb string `json:"thumb"`
|
||||||
|
Title1 string `json:"title1"`
|
||||||
|
Title2 string `json:"title2"`
|
||||||
|
ViewGroup string `json:"viewGroup"`
|
||||||
|
Directory []GetCountriesLibraryDirectory `json:"Directory,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetSize() float64 {
|
||||||
|
if o == nil {
|
||||||
|
return 0.0
|
||||||
|
}
|
||||||
|
return o.Size
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetOffset() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Offset
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetTotalSize() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.TotalSize
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetIdentifier() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Identifier
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetAllowSync() bool {
|
||||||
|
if o == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return o.AllowSync
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetArt() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Art
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetContent() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Content
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetMediaTagPrefix() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.MediaTagPrefix
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetMediaTagVersion() int64 {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.MediaTagVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetNocache() bool {
|
||||||
|
if o == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return o.Nocache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetThumb() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Thumb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetTitle1() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title1
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetTitle2() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title2
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetViewGroup() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.ViewGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryMediaContainer) GetDirectory() []GetCountriesLibraryDirectory {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Directory
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetCountriesLibraryResponseBody - Successful response containing media container data.
|
||||||
|
type GetCountriesLibraryResponseBody struct {
|
||||||
|
MediaContainer *GetCountriesLibraryMediaContainer `json:"MediaContainer,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryResponseBody) GetMediaContainer() *GetCountriesLibraryMediaContainer {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.MediaContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetCountriesLibraryResponse struct {
|
||||||
|
// HTTP response content type for this operation
|
||||||
|
ContentType string
|
||||||
|
// HTTP response status code for this operation
|
||||||
|
StatusCode int
|
||||||
|
// Raw HTTP response; suitable for custom response parsing
|
||||||
|
RawResponse *http.Response
|
||||||
|
// Successful response containing media container data.
|
||||||
|
Object *GetCountriesLibraryResponseBody
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryResponse) GetContentType() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.ContentType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryResponse) GetStatusCode() int {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.StatusCode
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryResponse) GetRawResponse() *http.Response {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.RawResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetCountriesLibraryResponse) GetObject() *GetCountriesLibraryResponseBody {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Object
|
||||||
|
}
|
||||||
230
models/operations/getgenreslibrary.go
Normal file
230
models/operations/getgenreslibrary.go
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
||||||
|
|
||||||
|
package operations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GetGenresLibraryRequest struct {
|
||||||
|
// The unique key of the Plex library.
|
||||||
|
// Note: This is unique in the context of the Plex server.
|
||||||
|
//
|
||||||
|
SectionKey int `pathParam:"style=simple,explode=false,name=sectionKey"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryRequest) GetSectionKey() int {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.SectionKey
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGenresLibraryDirectory struct {
|
||||||
|
FastKey string `json:"fastKey"`
|
||||||
|
Key string `json:"key"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryDirectory) GetFastKey() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.FastKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryDirectory) GetKey() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryDirectory) GetTitle() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryDirectory) GetType() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGenresLibraryMediaContainer struct {
|
||||||
|
Size float64 `json:"size"`
|
||||||
|
Offset *int `json:"offset,omitempty"`
|
||||||
|
TotalSize *int `json:"totalSize,omitempty"`
|
||||||
|
Identifier string `json:"identifier"`
|
||||||
|
AllowSync bool `json:"allowSync"`
|
||||||
|
Art string `json:"art"`
|
||||||
|
Content string `json:"content"`
|
||||||
|
MediaTagPrefix string `json:"mediaTagPrefix"`
|
||||||
|
MediaTagVersion int64 `json:"mediaTagVersion"`
|
||||||
|
Nocache bool `json:"nocache"`
|
||||||
|
Thumb string `json:"thumb"`
|
||||||
|
Title1 string `json:"title1"`
|
||||||
|
Title2 string `json:"title2"`
|
||||||
|
ViewGroup string `json:"viewGroup"`
|
||||||
|
Directory []GetGenresLibraryDirectory `json:"Directory,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetSize() float64 {
|
||||||
|
if o == nil {
|
||||||
|
return 0.0
|
||||||
|
}
|
||||||
|
return o.Size
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetOffset() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Offset
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetTotalSize() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.TotalSize
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetIdentifier() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Identifier
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetAllowSync() bool {
|
||||||
|
if o == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return o.AllowSync
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetArt() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Art
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetContent() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Content
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetMediaTagPrefix() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.MediaTagPrefix
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetMediaTagVersion() int64 {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.MediaTagVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetNocache() bool {
|
||||||
|
if o == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return o.Nocache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetThumb() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Thumb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetTitle1() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title1
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetTitle2() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.Title2
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetViewGroup() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.ViewGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryMediaContainer) GetDirectory() []GetGenresLibraryDirectory {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Directory
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGenresLibraryResponseBody - Successful response containing media container data.
|
||||||
|
type GetGenresLibraryResponseBody struct {
|
||||||
|
MediaContainer *GetGenresLibraryMediaContainer `json:"MediaContainer,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryResponseBody) GetMediaContainer() *GetGenresLibraryMediaContainer {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.MediaContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetGenresLibraryResponse struct {
|
||||||
|
// HTTP response content type for this operation
|
||||||
|
ContentType string
|
||||||
|
// HTTP response status code for this operation
|
||||||
|
StatusCode int
|
||||||
|
// Raw HTTP response; suitable for custom response parsing
|
||||||
|
RawResponse *http.Response
|
||||||
|
// Successful response containing media container data.
|
||||||
|
Object *GetGenresLibraryResponseBody
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryResponse) GetContentType() string {
|
||||||
|
if o == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return o.ContentType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryResponse) GetStatusCode() int {
|
||||||
|
if o == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return o.StatusCode
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryResponse) GetRawResponse() *http.Response {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.RawResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetGenresLibraryResponse) GetObject() *GetGenresLibraryResponseBody {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Object
|
||||||
|
}
|
||||||
@@ -33,6 +33,7 @@ const (
|
|||||||
TagResolution Tag = "resolution"
|
TagResolution Tag = "resolution"
|
||||||
TagFirstCharacter Tag = "firstCharacter"
|
TagFirstCharacter Tag = "firstCharacter"
|
||||||
TagFolder Tag = "folder"
|
TagFolder Tag = "folder"
|
||||||
|
TagAlbums Tag = "albums"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e Tag) ToPointer() *Tag {
|
func (e Tag) ToPointer() *Tag {
|
||||||
@@ -81,6 +82,8 @@ func (e *Tag) UnmarshalJSON(data []byte) error {
|
|||||||
case "firstCharacter":
|
case "firstCharacter":
|
||||||
fallthrough
|
fallthrough
|
||||||
case "folder":
|
case "folder":
|
||||||
|
fallthrough
|
||||||
|
case "albums":
|
||||||
*e = Tag(v)
|
*e = Tag(v)
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
@@ -129,6 +132,8 @@ const (
|
|||||||
GetLibraryItemsQueryParamTypeSeason GetLibraryItemsQueryParamType = 3
|
GetLibraryItemsQueryParamTypeSeason GetLibraryItemsQueryParamType = 3
|
||||||
GetLibraryItemsQueryParamTypeEpisode GetLibraryItemsQueryParamType = 4
|
GetLibraryItemsQueryParamTypeEpisode GetLibraryItemsQueryParamType = 4
|
||||||
GetLibraryItemsQueryParamTypeAudio GetLibraryItemsQueryParamType = 8
|
GetLibraryItemsQueryParamTypeAudio GetLibraryItemsQueryParamType = 8
|
||||||
|
GetLibraryItemsQueryParamTypeAlbum GetLibraryItemsQueryParamType = 9
|
||||||
|
GetLibraryItemsQueryParamTypeTrack GetLibraryItemsQueryParamType = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e GetLibraryItemsQueryParamType) ToPointer() *GetLibraryItemsQueryParamType {
|
func (e GetLibraryItemsQueryParamType) ToPointer() *GetLibraryItemsQueryParamType {
|
||||||
@@ -149,6 +154,10 @@ func (e *GetLibraryItemsQueryParamType) UnmarshalJSON(data []byte) error {
|
|||||||
case 4:
|
case 4:
|
||||||
fallthrough
|
fallthrough
|
||||||
case 8:
|
case 8:
|
||||||
|
fallthrough
|
||||||
|
case 9:
|
||||||
|
fallthrough
|
||||||
|
case 10:
|
||||||
*e = GetLibraryItemsQueryParamType(v)
|
*e = GetLibraryItemsQueryParamType(v)
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
@@ -620,11 +629,13 @@ func (e *GetLibraryItemsLibraryType) UnmarshalJSON(data []byte) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetLibraryItemsFlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
type GetLibraryItemsFlattenSeasons string
|
type GetLibraryItemsFlattenSeasons string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
GetLibraryItemsFlattenSeasonsFalse GetLibraryItemsFlattenSeasons = "0"
|
GetLibraryItemsFlattenSeasonsLibraryDefault GetLibraryItemsFlattenSeasons = "-1"
|
||||||
GetLibraryItemsFlattenSeasonsTrue GetLibraryItemsFlattenSeasons = "1"
|
GetLibraryItemsFlattenSeasonsHide GetLibraryItemsFlattenSeasons = "0"
|
||||||
|
GetLibraryItemsFlattenSeasonsShow GetLibraryItemsFlattenSeasons = "1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e GetLibraryItemsFlattenSeasons) ToPointer() *GetLibraryItemsFlattenSeasons {
|
func (e GetLibraryItemsFlattenSeasons) ToPointer() *GetLibraryItemsFlattenSeasons {
|
||||||
@@ -636,6 +647,8 @@ func (e *GetLibraryItemsFlattenSeasons) UnmarshalJSON(data []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
switch v {
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
case "0":
|
case "0":
|
||||||
fallthrough
|
fallthrough
|
||||||
case "1":
|
case "1":
|
||||||
@@ -646,7 +659,64 @@ func (e *GetLibraryItemsFlattenSeasons) UnmarshalJSON(data []byte) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLibraryItemsShowOrdering - Setting that indicates the episode ordering for the show
|
// GetLibraryItemsEpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
type GetLibraryItemsEpisodeSort string
|
||||||
|
|
||||||
|
const (
|
||||||
|
GetLibraryItemsEpisodeSortLibraryDefault GetLibraryItemsEpisodeSort = "-1"
|
||||||
|
GetLibraryItemsEpisodeSortOldestFirst GetLibraryItemsEpisodeSort = "0"
|
||||||
|
GetLibraryItemsEpisodeSortNewestFirst GetLibraryItemsEpisodeSort = "1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (e GetLibraryItemsEpisodeSort) ToPointer() *GetLibraryItemsEpisodeSort {
|
||||||
|
return &e
|
||||||
|
}
|
||||||
|
func (e *GetLibraryItemsEpisodeSort) UnmarshalJSON(data []byte) error {
|
||||||
|
var v string
|
||||||
|
if err := json.Unmarshal(data, &v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
|
case "0":
|
||||||
|
fallthrough
|
||||||
|
case "1":
|
||||||
|
*e = GetLibraryItemsEpisodeSort(v)
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for GetLibraryItemsEpisodeSort: %v", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLibraryItemsEnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
type GetLibraryItemsEnableCreditsMarkerGeneration string
|
||||||
|
|
||||||
|
const (
|
||||||
|
GetLibraryItemsEnableCreditsMarkerGenerationLibraryDefault GetLibraryItemsEnableCreditsMarkerGeneration = "-1"
|
||||||
|
GetLibraryItemsEnableCreditsMarkerGenerationDisabled GetLibraryItemsEnableCreditsMarkerGeneration = "0"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (e GetLibraryItemsEnableCreditsMarkerGeneration) ToPointer() *GetLibraryItemsEnableCreditsMarkerGeneration {
|
||||||
|
return &e
|
||||||
|
}
|
||||||
|
func (e *GetLibraryItemsEnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error {
|
||||||
|
var v string
|
||||||
|
if err := json.Unmarshal(data, &v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
|
case "0":
|
||||||
|
*e = GetLibraryItemsEnableCreditsMarkerGeneration(v)
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for GetLibraryItemsEnableCreditsMarkerGeneration: %v", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLibraryItemsShowOrdering - Setting that indicates the episode ordering for the show.
|
||||||
// None = Library default,
|
// None = Library default,
|
||||||
// tmdbAiring = The Movie Database (Aired),
|
// tmdbAiring = The Movie Database (Aired),
|
||||||
// aired = TheTVDB (Aired),
|
// aired = TheTVDB (Aired),
|
||||||
@@ -657,9 +727,9 @@ type GetLibraryItemsShowOrdering string
|
|||||||
const (
|
const (
|
||||||
GetLibraryItemsShowOrderingNone GetLibraryItemsShowOrdering = "None"
|
GetLibraryItemsShowOrderingNone GetLibraryItemsShowOrdering = "None"
|
||||||
GetLibraryItemsShowOrderingTmdbAiring GetLibraryItemsShowOrdering = "tmdbAiring"
|
GetLibraryItemsShowOrderingTmdbAiring GetLibraryItemsShowOrdering = "tmdbAiring"
|
||||||
GetLibraryItemsShowOrderingAired GetLibraryItemsShowOrdering = "aired"
|
GetLibraryItemsShowOrderingTvdbAired GetLibraryItemsShowOrdering = "aired"
|
||||||
GetLibraryItemsShowOrderingDvd GetLibraryItemsShowOrdering = "dvd"
|
GetLibraryItemsShowOrderingTvdbDvd GetLibraryItemsShowOrdering = "dvd"
|
||||||
GetLibraryItemsShowOrderingAbsolute GetLibraryItemsShowOrdering = "absolute"
|
GetLibraryItemsShowOrderingTvdbAbsolute GetLibraryItemsShowOrdering = "absolute"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e GetLibraryItemsShowOrdering) ToPointer() *GetLibraryItemsShowOrdering {
|
func (e GetLibraryItemsShowOrdering) ToPointer() *GetLibraryItemsShowOrdering {
|
||||||
@@ -1643,8 +1713,13 @@ type GetLibraryItemsMetadata struct {
|
|||||||
Year *int `json:"year,omitempty"`
|
Year *int `json:"year,omitempty"`
|
||||||
SeasonCount *int `json:"seasonCount,omitempty"`
|
SeasonCount *int `json:"seasonCount,omitempty"`
|
||||||
Tagline *string `json:"tagline,omitempty"`
|
Tagline *string `json:"tagline,omitempty"`
|
||||||
FlattenSeasons *GetLibraryItemsFlattenSeasons `default:"0" json:"flattenSeasons"`
|
// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
// Setting that indicates the episode ordering for the show
|
FlattenSeasons *GetLibraryItemsFlattenSeasons `json:"flattenSeasons,omitempty"`
|
||||||
|
// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
EpisodeSort *GetLibraryItemsEpisodeSort `json:"episodeSort,omitempty"`
|
||||||
|
// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
EnableCreditsMarkerGeneration *GetLibraryItemsEnableCreditsMarkerGeneration `json:"enableCreditsMarkerGeneration,omitempty"`
|
||||||
|
// Setting that indicates the episode ordering for the show.
|
||||||
// None = Library default,
|
// None = Library default,
|
||||||
// tmdbAiring = The Movie Database (Aired),
|
// tmdbAiring = The Movie Database (Aired),
|
||||||
// aired = TheTVDB (Aired),
|
// aired = TheTVDB (Aired),
|
||||||
@@ -1860,6 +1935,20 @@ func (o *GetLibraryItemsMetadata) GetFlattenSeasons() *GetLibraryItemsFlattenSea
|
|||||||
return o.FlattenSeasons
|
return o.FlattenSeasons
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryItemsMetadata) GetEpisodeSort() *GetLibraryItemsEpisodeSort {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.EpisodeSort
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryItemsMetadata) GetEnableCreditsMarkerGeneration() *GetLibraryItemsEnableCreditsMarkerGeneration {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.EnableCreditsMarkerGeneration
|
||||||
|
}
|
||||||
|
|
||||||
func (o *GetLibraryItemsMetadata) GetShowOrdering() *GetLibraryItemsShowOrdering {
|
func (o *GetLibraryItemsMetadata) GetShowOrdering() *GetLibraryItemsShowOrdering {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -791,6 +791,16 @@ type GetMetaDataByRatingKeyMetadata struct {
|
|||||||
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
|
LibrarySectionTitle *string `json:"librarySectionTitle,omitempty"`
|
||||||
LibrarySectionID *int `json:"librarySectionID,omitempty"`
|
LibrarySectionID *int `json:"librarySectionID,omitempty"`
|
||||||
LibrarySectionKey *string `json:"librarySectionKey,omitempty"`
|
LibrarySectionKey *string `json:"librarySectionKey,omitempty"`
|
||||||
|
// The name of the album artist for the track when audio, and the name of the TV show for the episode when video.
|
||||||
|
GrandparentTitle *string `json:"grandparentTitle,omitempty"`
|
||||||
|
// The name of the album for the track when audio, and the name of the season for the episode when TV show.
|
||||||
|
ParentTitle *string `json:"parentTitle,omitempty"`
|
||||||
|
// The orginal untranslated name of the media item when non-english.
|
||||||
|
OriginalTitle *string `json:"originalTitle,omitempty"`
|
||||||
|
// The index starting from 0 of this media item in the MetaData array.
|
||||||
|
Index *int64 `json:"index,omitempty"`
|
||||||
|
// The parent index starting from 0 of this media item in the parent MetaData array.
|
||||||
|
ParentIndex *int64 `json:"parentIndex,omitempty"`
|
||||||
ContentRating *string `json:"contentRating,omitempty"`
|
ContentRating *string `json:"contentRating,omitempty"`
|
||||||
Summary *string `json:"summary,omitempty"`
|
Summary *string `json:"summary,omitempty"`
|
||||||
Rating *float64 `json:"rating,omitempty"`
|
Rating *float64 `json:"rating,omitempty"`
|
||||||
@@ -891,6 +901,41 @@ func (o *GetMetaDataByRatingKeyMetadata) GetLibrarySectionKey() *string {
|
|||||||
return o.LibrarySectionKey
|
return o.LibrarySectionKey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *GetMetaDataByRatingKeyMetadata) GetGrandparentTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.GrandparentTitle
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetMetaDataByRatingKeyMetadata) GetParentTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.ParentTitle
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetMetaDataByRatingKeyMetadata) GetOriginalTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.OriginalTitle
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetMetaDataByRatingKeyMetadata) GetIndex() *int64 {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Index
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetMetaDataByRatingKeyMetadata) GetParentIndex() *int64 {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.ParentIndex
|
||||||
|
}
|
||||||
|
|
||||||
func (o *GetMetaDataByRatingKeyMetadata) GetContentRating() *string {
|
func (o *GetMetaDataByRatingKeyMetadata) GetContentRating() *string {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -12,54 +12,6 @@ var GetPinServerList = []string{
|
|||||||
"https://plex.tv/api/v2",
|
"https://plex.tv/api/v2",
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetPinGlobals struct {
|
|
||||||
// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
|
|
||||||
ClientID *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
|
|
||||||
// The name of the client application. (Plex Web, Plex Media Server, etc.)
|
|
||||||
ClientName *string `header:"style=simple,explode=false,name=X-Plex-Product"`
|
|
||||||
// A relatively friendly name for the client device
|
|
||||||
DeviceNickname *string `header:"style=simple,explode=false,name=X-Plex-Device"`
|
|
||||||
// The version of the client application.
|
|
||||||
ClientVersion *string `header:"style=simple,explode=false,name=X-Plex-Version"`
|
|
||||||
// The platform of the client application.
|
|
||||||
Platform *string `header:"style=simple,explode=false,name=X-Plex-Platform"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *GetPinGlobals) GetClientID() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *GetPinGlobals) GetClientName() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientName
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *GetPinGlobals) GetDeviceNickname() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.DeviceNickname
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *GetPinGlobals) GetClientVersion() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.ClientVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *GetPinGlobals) GetPlatform() *string {
|
|
||||||
if o == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return o.Platform
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetPinRequest struct {
|
type GetPinRequest struct {
|
||||||
// Determines the kind of code returned by the API call
|
// Determines the kind of code returned by the API call
|
||||||
// Strong codes are used for Pin authentication flows
|
// Strong codes are used for Pin authentication flows
|
||||||
@@ -67,7 +19,7 @@ type GetPinRequest struct {
|
|||||||
//
|
//
|
||||||
Strong *bool `default:"false" queryParam:"style=form,explode=true,name=strong"`
|
Strong *bool `default:"false" queryParam:"style=form,explode=true,name=strong"`
|
||||||
// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
|
// An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
|
||||||
ClientID *string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
|
ClientID string `header:"style=simple,explode=false,name=X-Plex-Client-Identifier"`
|
||||||
// The name of the client application. (Plex Web, Plex Media Server, etc.)
|
// The name of the client application. (Plex Web, Plex Media Server, etc.)
|
||||||
ClientName *string `header:"style=simple,explode=false,name=X-Plex-Product"`
|
ClientName *string `header:"style=simple,explode=false,name=X-Plex-Product"`
|
||||||
// A relatively friendly name for the client device
|
// A relatively friendly name for the client device
|
||||||
@@ -96,9 +48,9 @@ func (o *GetPinRequest) GetStrong() *bool {
|
|||||||
return o.Strong
|
return o.Strong
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetPinRequest) GetClientID() *string {
|
func (o *GetPinRequest) GetClientID() string {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return ""
|
||||||
}
|
}
|
||||||
return o.ClientID
|
return o.ClientID
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ const (
|
|||||||
GetPlaylistContentsQueryParamTypeSeason GetPlaylistContentsQueryParamType = 3
|
GetPlaylistContentsQueryParamTypeSeason GetPlaylistContentsQueryParamType = 3
|
||||||
GetPlaylistContentsQueryParamTypeEpisode GetPlaylistContentsQueryParamType = 4
|
GetPlaylistContentsQueryParamTypeEpisode GetPlaylistContentsQueryParamType = 4
|
||||||
GetPlaylistContentsQueryParamTypeAudio GetPlaylistContentsQueryParamType = 8
|
GetPlaylistContentsQueryParamTypeAudio GetPlaylistContentsQueryParamType = 8
|
||||||
|
GetPlaylistContentsQueryParamTypeAlbum GetPlaylistContentsQueryParamType = 9
|
||||||
|
GetPlaylistContentsQueryParamTypeTrack GetPlaylistContentsQueryParamType = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e GetPlaylistContentsQueryParamType) ToPointer() *GetPlaylistContentsQueryParamType {
|
func (e GetPlaylistContentsQueryParamType) ToPointer() *GetPlaylistContentsQueryParamType {
|
||||||
@@ -44,6 +46,10 @@ func (e *GetPlaylistContentsQueryParamType) UnmarshalJSON(data []byte) error {
|
|||||||
case 4:
|
case 4:
|
||||||
fallthrough
|
fallthrough
|
||||||
case 8:
|
case 8:
|
||||||
|
fallthrough
|
||||||
|
case 9:
|
||||||
|
fallthrough
|
||||||
|
case 10:
|
||||||
*e = GetPlaylistContentsQueryParamType(v)
|
*e = GetPlaylistContentsQueryParamType(v)
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ const (
|
|||||||
TypeSeason Type = 3
|
TypeSeason Type = 3
|
||||||
TypeEpisode Type = 4
|
TypeEpisode Type = 4
|
||||||
TypeAudio Type = 8
|
TypeAudio Type = 8
|
||||||
|
TypeAlbum Type = 9
|
||||||
|
TypeTrack Type = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e Type) ToPointer() *Type {
|
func (e Type) ToPointer() *Type {
|
||||||
@@ -44,6 +46,10 @@ func (e *Type) UnmarshalJSON(data []byte) error {
|
|||||||
case 4:
|
case 4:
|
||||||
fallthrough
|
fallthrough
|
||||||
case 8:
|
case 8:
|
||||||
|
fallthrough
|
||||||
|
case 9:
|
||||||
|
fallthrough
|
||||||
|
case 10:
|
||||||
*e = Type(v)
|
*e = Type(v)
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
@@ -532,11 +538,13 @@ func (e *GetRecentlyAddedHubsType) UnmarshalJSON(data []byte) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FlattenSeasons - Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
type FlattenSeasons string
|
type FlattenSeasons string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
FlattenSeasonsFalse FlattenSeasons = "0"
|
FlattenSeasonsLibraryDefault FlattenSeasons = "-1"
|
||||||
FlattenSeasonsTrue FlattenSeasons = "1"
|
FlattenSeasonsHide FlattenSeasons = "0"
|
||||||
|
FlattenSeasonsShow FlattenSeasons = "1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e FlattenSeasons) ToPointer() *FlattenSeasons {
|
func (e FlattenSeasons) ToPointer() *FlattenSeasons {
|
||||||
@@ -548,6 +556,8 @@ func (e *FlattenSeasons) UnmarshalJSON(data []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
switch v {
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
case "0":
|
case "0":
|
||||||
fallthrough
|
fallthrough
|
||||||
case "1":
|
case "1":
|
||||||
@@ -558,7 +568,64 @@ func (e *FlattenSeasons) UnmarshalJSON(data []byte) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ShowOrdering - Setting that indicates the episode ordering for the show
|
// EpisodeSort - Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
type EpisodeSort string
|
||||||
|
|
||||||
|
const (
|
||||||
|
EpisodeSortLibraryDefault EpisodeSort = "-1"
|
||||||
|
EpisodeSortOldestFirst EpisodeSort = "0"
|
||||||
|
EpisodeSortNewestFirst EpisodeSort = "1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (e EpisodeSort) ToPointer() *EpisodeSort {
|
||||||
|
return &e
|
||||||
|
}
|
||||||
|
func (e *EpisodeSort) UnmarshalJSON(data []byte) error {
|
||||||
|
var v string
|
||||||
|
if err := json.Unmarshal(data, &v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
|
case "0":
|
||||||
|
fallthrough
|
||||||
|
case "1":
|
||||||
|
*e = EpisodeSort(v)
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for EpisodeSort: %v", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnableCreditsMarkerGeneration - Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
type EnableCreditsMarkerGeneration string
|
||||||
|
|
||||||
|
const (
|
||||||
|
EnableCreditsMarkerGenerationLibraryDefault EnableCreditsMarkerGeneration = "-1"
|
||||||
|
EnableCreditsMarkerGenerationDisabled EnableCreditsMarkerGeneration = "0"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (e EnableCreditsMarkerGeneration) ToPointer() *EnableCreditsMarkerGeneration {
|
||||||
|
return &e
|
||||||
|
}
|
||||||
|
func (e *EnableCreditsMarkerGeneration) UnmarshalJSON(data []byte) error {
|
||||||
|
var v string
|
||||||
|
if err := json.Unmarshal(data, &v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
switch v {
|
||||||
|
case "-1":
|
||||||
|
fallthrough
|
||||||
|
case "0":
|
||||||
|
*e = EnableCreditsMarkerGeneration(v)
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("invalid value for EnableCreditsMarkerGeneration: %v", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ShowOrdering - Setting that indicates the episode ordering for the show.
|
||||||
// None = Library default,
|
// None = Library default,
|
||||||
// tmdbAiring = The Movie Database (Aired),
|
// tmdbAiring = The Movie Database (Aired),
|
||||||
// aired = TheTVDB (Aired),
|
// aired = TheTVDB (Aired),
|
||||||
@@ -569,9 +636,9 @@ type ShowOrdering string
|
|||||||
const (
|
const (
|
||||||
ShowOrderingNone ShowOrdering = "None"
|
ShowOrderingNone ShowOrdering = "None"
|
||||||
ShowOrderingTmdbAiring ShowOrdering = "tmdbAiring"
|
ShowOrderingTmdbAiring ShowOrdering = "tmdbAiring"
|
||||||
ShowOrderingAired ShowOrdering = "aired"
|
ShowOrderingTvdbAired ShowOrdering = "aired"
|
||||||
ShowOrderingDvd ShowOrdering = "dvd"
|
ShowOrderingTvdbDvd ShowOrdering = "dvd"
|
||||||
ShowOrderingAbsolute ShowOrdering = "absolute"
|
ShowOrderingTvdbAbsolute ShowOrdering = "absolute"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e ShowOrdering) ToPointer() *ShowOrdering {
|
func (e ShowOrdering) ToPointer() *ShowOrdering {
|
||||||
@@ -1555,8 +1622,13 @@ type GetRecentlyAddedMetadata struct {
|
|||||||
Year *int `json:"year,omitempty"`
|
Year *int `json:"year,omitempty"`
|
||||||
SeasonCount *int `json:"seasonCount,omitempty"`
|
SeasonCount *int `json:"seasonCount,omitempty"`
|
||||||
Tagline *string `json:"tagline,omitempty"`
|
Tagline *string `json:"tagline,omitempty"`
|
||||||
FlattenSeasons *FlattenSeasons `default:"0" json:"flattenSeasons"`
|
// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
|
||||||
// Setting that indicates the episode ordering for the show
|
FlattenSeasons *FlattenSeasons `json:"flattenSeasons,omitempty"`
|
||||||
|
// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
|
||||||
|
EpisodeSort *EpisodeSort `json:"episodeSort,omitempty"`
|
||||||
|
// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
|
||||||
|
EnableCreditsMarkerGeneration *EnableCreditsMarkerGeneration `json:"enableCreditsMarkerGeneration,omitempty"`
|
||||||
|
// Setting that indicates the episode ordering for the show.
|
||||||
// None = Library default,
|
// None = Library default,
|
||||||
// tmdbAiring = The Movie Database (Aired),
|
// tmdbAiring = The Movie Database (Aired),
|
||||||
// aired = TheTVDB (Aired),
|
// aired = TheTVDB (Aired),
|
||||||
@@ -1772,6 +1844,20 @@ func (o *GetRecentlyAddedMetadata) GetFlattenSeasons() *FlattenSeasons {
|
|||||||
return o.FlattenSeasons
|
return o.FlattenSeasons
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *GetRecentlyAddedMetadata) GetEpisodeSort() *EpisodeSort {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.EpisodeSort
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetRecentlyAddedMetadata) GetEnableCreditsMarkerGeneration() *EnableCreditsMarkerGeneration {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.EnableCreditsMarkerGeneration
|
||||||
|
}
|
||||||
|
|
||||||
func (o *GetRecentlyAddedMetadata) GetShowOrdering() *ShowOrdering {
|
func (o *GetRecentlyAddedMetadata) GetShowOrdering() *ShowOrdering {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user