Skip to content

Commit 5db4ab3

Browse files
committed
Add a get poster method
1 parent ced7758 commit 5db4ab3

4 files changed

Lines changed: 26 additions & 0 deletions

File tree

Source/Plex.Library/ApiModels/Servers/Server.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,5 +636,13 @@ public async Task<PlaylistContainer> Playlists() =>
636636
/// <returns>A <see cref="MediaContainer"/> containing the media info.</returns>
637637
public async Task<MediaContainer> Metadata(string ratingKey) =>
638638
await this.plexServerClient.GetMediaMetadataAsync(this.AccessToken, this.Uri.ToString(), ratingKey);
639+
640+
/// <summary>
641+
/// Get poster for a given rating key.
642+
/// </summary>
643+
/// <param name="ratingKey">The rating key to get poster from.</param>
644+
/// <returns>A <see cref="MediaContainer"/> containing the media info.</returns>
645+
public async Task<MediaContainer> Posters(string ratingKey) =>
646+
await this.plexServerClient.GetMediaPosterAsync(this.AccessToken, this.Uri.ToString(), ratingKey);
639647
}
640648
}

Source/Plex.ServerApi/Clients/Interfaces/IPlexServerClient.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,15 @@ public interface IPlexServerClient
155155
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
156156
Task<MediaContainer> GetChildrenMetadataAsync(string authToken, string plexServerHost, int id);
157157

158+
/// <summary>
159+
/// Get posters for a given Plex rating key.
160+
/// </summary>
161+
/// <param name="authToken">Authentication Token.</param>
162+
/// <param name="plexServerHost">Plex Host Uri.</param>
163+
/// <param name="key">Rating Key.</param>
164+
/// <returns></returns>
165+
Task<MediaContainer> GetMediaPosterAsync(string authToken, string plexServerHost, string key);
166+
158167
/// <summary>
159168
/// Marks the Item in plex as 'Played'.
160169
/// </summary>

Source/Plex.ServerApi/Clients/PlexServerClient.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,9 @@ public async Task<MediaContainer> GetChildrenMetadataAsync(string authToken, str
212212
// return plexMediaContainer;
213213
}
214214

215+
/// <inheritdoc/>
216+
public async Task<MediaContainer> GetMediaPosterAsync(string authToken, string plexServerHost, string key) => await this.FetchWithWrapper<MediaContainer>(plexServerHost, $"library/metadata/{key}/posters", authToken, HttpMethod.Get);
217+
215218
/// <inheritdoc/>
216219
public async Task<PlexServer> GetPlexServerInfo(string authToken, string plexServerHost)
217220
{

Source/Plex.ServerApi/PlexModels/Media/Metadata.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ public class Metadata
110110
[JsonPropertyName("thumb")]
111111
public string Thumb { get; set; }
112112

113+
[JsonPropertyName("selected")]
114+
public bool Selected { get; set; }
115+
116+
[JsonPropertyName("provider")]
117+
public string Provider { get; set; }
118+
113119
[JsonPropertyName("art")]
114120
public string Art { get; set; }
115121

0 commit comments

Comments
 (0)