|
|
|
@ -30,15 +30,9 @@ public class PlexServerApiClient : IPlexServerApiClient |
|
|
|
{ |
|
|
|
{ |
|
|
|
try |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
IPlexServerApi service = RestService.For<IPlexServerApi>( |
|
|
|
IPlexServerApi service = XmlServiceFor(connection.Uri, TimeSpan.FromSeconds(5)); |
|
|
|
new HttpClient |
|
|
|
PlexXmlMediaContainerPingResponse pingResult = await service.Ping(token.AuthToken); |
|
|
|
{ |
|
|
|
return token.ClientIdentifier == pingResult.MachineIdentifier; |
|
|
|
BaseAddress = new Uri(connection.Uri), |
|
|
|
|
|
|
|
Timeout = TimeSpan.FromSeconds(5) |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await service.Ping(token.AuthToken); |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception) |
|
|
|
catch (Exception) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -362,14 +356,20 @@ public class PlexServerApiClient : IPlexServerApiClient |
|
|
|
return result.Values.ToList(); |
|
|
|
return result.Values.ToList(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static IPlexServerApi XmlServiceFor(string uri) |
|
|
|
private static IPlexServerApi XmlServiceFor(string uri, TimeSpan? timeout = null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var overrides = new XmlAttributeOverrides(); |
|
|
|
var overrides = new XmlAttributeOverrides(); |
|
|
|
var attrs = new XmlAttributes { XmlIgnore = true }; |
|
|
|
var attrs = new XmlAttributes { XmlIgnore = true }; |
|
|
|
overrides.Add(typeof(PlexMetadataResponse), "Media", attrs); |
|
|
|
overrides.Add(typeof(PlexMetadataResponse), "Media", attrs); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TimeSpan httpClientTimeout = timeout ?? TimeSpan.FromSeconds(30); |
|
|
|
|
|
|
|
|
|
|
|
return RestService.For<IPlexServerApi>( |
|
|
|
return RestService.For<IPlexServerApi>( |
|
|
|
uri, |
|
|
|
new HttpClient |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
BaseAddress = new Uri(uri), |
|
|
|
|
|
|
|
Timeout = httpClientTimeout |
|
|
|
|
|
|
|
}, |
|
|
|
new RefitSettings |
|
|
|
new RefitSettings |
|
|
|
{ |
|
|
|
{ |
|
|
|
ContentSerializer = new XmlContentSerializer( |
|
|
|
ContentSerializer = new XmlContentSerializer( |
|
|
|
|