mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
Updating SickRage api to verify Season List is up to date
This commit is contained in:
parent
cccb71b605
commit
6921e3aa85
7 changed files with 62 additions and 29 deletions
|
@ -59,7 +59,9 @@
|
|||
<Compile Include="Plex\PlexStatus.cs" />
|
||||
<Compile Include="Plex\PlexUserRequest.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SickRage\SickRageBase.cs" />
|
||||
<Compile Include="SickRage\SickRagePing.cs" />
|
||||
<Compile Include="SickRage\SickRageSeasonList.cs" />
|
||||
<Compile Include="SickRage\SickRageShowInformation.cs" />
|
||||
<Compile Include="SickRage\SickRageStatus.cs" />
|
||||
<Compile Include="SickRage\SickRageTvAdd.cs" />
|
||||
|
|
15
PlexRequests.Api.Models/SickRage/SickRageBase.cs
Normal file
15
PlexRequests.Api.Models/SickRage/SickRageBase.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PlexRequests.Api.Models.SickRage
|
||||
{
|
||||
public class SickRageBase<T>
|
||||
{
|
||||
public T data { get; set; }
|
||||
public string message { get; set; }
|
||||
public string result { get; set; }
|
||||
}
|
||||
}
|
|
@ -31,10 +31,7 @@ namespace PlexRequests.Api.Models.SickRage
|
|||
public int pid { get; set; }
|
||||
}
|
||||
|
||||
public class SickRagePing
|
||||
public class SickRagePing : SickRageBase<SickRagePingData>
|
||||
{
|
||||
public SickRagePingData data { get; set; }
|
||||
public string message { get; set; }
|
||||
public string result { get; set; }
|
||||
}
|
||||
}
|
12
PlexRequests.Api.Models/SickRage/SickRageSeasonList.cs
Normal file
12
PlexRequests.Api.Models/SickRage/SickRageSeasonList.cs
Normal file
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PlexRequests.Api.Models.SickRage
|
||||
{
|
||||
public class SickRageSeasonList : SickRageBase<int[]>
|
||||
{
|
||||
}
|
||||
}
|
|
@ -75,11 +75,8 @@ namespace PlexRequests.Api.Models.SickRage
|
|||
public int tvdbid { get; set; }
|
||||
}
|
||||
|
||||
public class SickRageShowInformation
|
||||
public class SickRageShowInformation : SickRageBase<Data>
|
||||
{
|
||||
public Data data { get; set; }
|
||||
public string message { get; set; }
|
||||
public string result { get; set; }
|
||||
}
|
||||
|
||||
}
|
|
@ -31,11 +31,8 @@ namespace PlexRequests.Api.Models.SickRage
|
|||
public string name { get; set; }
|
||||
}
|
||||
|
||||
public class SickRageTvAdd
|
||||
public class SickRageTvAdd : SickRageBase<SickRageTvAddData>
|
||||
{
|
||||
public SickRageTvAddData data { get; set; }
|
||||
public string message { get; set; }
|
||||
public string result { get; set; }
|
||||
}
|
||||
|
||||
}
|
|
@ -74,17 +74,16 @@ namespace PlexRequests.Api
|
|||
|
||||
var obj = Api.Execute<SickRageTvAdd>(request, baseUrl);
|
||||
|
||||
|
||||
if (obj.result != "failure")
|
||||
{
|
||||
var sw = new Stopwatch();
|
||||
sw.Start();
|
||||
|
||||
// Check to see if it's been added yet.
|
||||
var showInfo = new SickRageShowInformation { message = "Show not found" };
|
||||
while (showInfo.message.Equals("Show not found", StringComparison.CurrentCultureIgnoreCase))
|
||||
var seasonList = new SickRageSeasonList();
|
||||
while (seasonList.data.Length < seasonCount)
|
||||
{
|
||||
showInfo = CheckShowHasBeenAdded(tvdbId, apiKey, baseUrl);
|
||||
seasonList = VerifyShowHasLoaded(tvdbId, apiKey, baseUrl);
|
||||
if (sw.ElapsedMilliseconds > 30000) // Break out after 30 seconds, it's not going to get added
|
||||
{
|
||||
Log.Warn("Couldn't find out if the show had been added after 10 seconds. I doubt we can change the status to wanted.");
|
||||
|
@ -94,7 +93,6 @@ namespace PlexRequests.Api
|
|||
sw.Stop();
|
||||
}
|
||||
|
||||
|
||||
if (seasons.Length > 0)
|
||||
{
|
||||
//handle the seasons requested
|
||||
|
@ -123,6 +121,21 @@ namespace PlexRequests.Api
|
|||
return obj;
|
||||
}
|
||||
|
||||
public SickRageSeasonList VerifyShowHasLoaded(int tvdbId, string apiKey, Uri baseUrl)
|
||||
{
|
||||
var request = new RestRequest
|
||||
{
|
||||
Resource = "/api/{apiKey}/?cmd=show.seasonlist",
|
||||
Method = Method.GET
|
||||
};
|
||||
request.AddUrlSegment("apiKey", apiKey);
|
||||
request.AddQueryParameter("tvdbid", tvdbId.ToString());
|
||||
|
||||
var obj = Api.ExecuteJson<SickRageSeasonList>(request, baseUrl);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
public async Task<SickRageTvAdd> AddSeason(int tvdbId, int season, string apiKey, Uri baseUrl)
|
||||
{
|
||||
var request = new RestRequest
|
||||
|
@ -140,19 +153,19 @@ namespace PlexRequests.Api
|
|||
}
|
||||
|
||||
|
||||
public SickRageShowInformation CheckShowHasBeenAdded(int tvdbId, string apiKey, Uri baseUrl)
|
||||
{
|
||||
var request = new RestRequest
|
||||
{
|
||||
Resource = "/api/{apiKey}/?cmd=show",
|
||||
Method = Method.GET
|
||||
};
|
||||
request.AddUrlSegment("apiKey", apiKey);
|
||||
request.AddQueryParameter("tvdbid", tvdbId.ToString());
|
||||
//public SickRageShowInformation CheckShowHasBeenAdded(int tvdbId, string apiKey, Uri baseUrl)
|
||||
//{
|
||||
// var request = new RestRequest
|
||||
// {
|
||||
// Resource = "/api/{apiKey}/?cmd=show",
|
||||
// Method = Method.GET
|
||||
// };
|
||||
// request.AddUrlSegment("apiKey", apiKey);
|
||||
// request.AddQueryParameter("tvdbid", tvdbId.ToString());
|
||||
|
||||
var obj = Api.Execute<SickRageShowInformation>(request, baseUrl);
|
||||
// var obj = Api.Execute<SickRageShowInformation>(request, baseUrl);
|
||||
|
||||
return obj;
|
||||
}
|
||||
// return obj;
|
||||
//}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue