core: enable trakt and douban queries (#13387)

related #13385
This commit is contained in:
ilike2burnthing
2022-07-21 10:59:02 +01:00
committed by GitHub
parent 9996413a58
commit e34e70040b
5 changed files with 40 additions and 13 deletions

View File

@@ -1301,7 +1301,8 @@ namespace Jackett.Common.Indexers
variables[".Query.IMDBIDShort"] = query.ImdbIDShort; variables[".Query.IMDBIDShort"] = query.ImdbIDShort;
variables[".Query.TMDBID"] = query.TmdbID?.ToString() ?? null; variables[".Query.TMDBID"] = query.TmdbID?.ToString() ?? null;
variables[".Query.TVMazeID"] = null; variables[".Query.TVMazeID"] = null;
variables[".Query.TraktID"] = null; variables[".Query.TraktID"] = query.TraktID?.ToString() ?? null;
variables[".Query.DoubanID"] = query.DoubanID?.ToString() ?? null;
variables[".Query.Album"] = query.Album; variables[".Query.Album"] = query.Album;
variables[".Query.Artist"] = query.Artist; variables[".Query.Artist"] = query.Artist;
variables[".Query.Label"] = query.Label; variables[".Query.Label"] = query.Label;

View File

@@ -5,28 +5,30 @@ namespace Jackett.Common.Models.DTO
{ {
public class TorznabRequest public class TorznabRequest
{ {
public string t { get; set; }
public string q { get; set; } public string q { get; set; }
public string cat { get; set; }
public string imdbid { get; set; } public string imdbid { get; set; }
public string tmdbid { get; set; } public string ep { get; set; }
public string t { get; set; }
public string extended { get; set; } public string extended { get; set; }
public string limit { get; set; } public string limit { get; set; }
public string offset { get; set; } public string offset { get; set; }
public string cache { get; set; }
public string cat { get; set; }
public string season { get; set; }
public string rid { get; set; } public string rid { get; set; }
public string tvdbid { get; set; } public string tvdbid { get; set; }
public string season { get; set; } public string tmdbid { get; set; }
public string ep { get; set; } public string traktid { get; set; }
public string doubanid { get; set; }
public string album { get; set; } public string album { get; set; }
public string artist { get; set; } public string artist { get; set; }
public string label { get; set; } public string label { get; set; }
public string track { get; set; } public string track { get; set; }
public string year { get; set; } public string year { get; set; }
public string genre { get; set; } public string genre { get; set; }
public string author { get; set; }
public string title { get; set; } public string title { get; set; }
public string author { get; set; }
public string configured { get; set; } public string configured { get; set; }
public string cache { get; set; }
public static TorznabQuery ToTorznabQuery(TorznabRequest request) public static TorznabQuery ToTorznabQuery(TorznabRequest request)
{ {
@@ -64,15 +66,19 @@ namespace Jackett.Common.Models.DTO
query.Categories = new int[0]; query.Categories = new int[0];
} }
if (!string.IsNullOrWhiteSpace(request.season))
query.Season = int.Parse(request.season);
if (!string.IsNullOrWhiteSpace(request.rid)) if (!string.IsNullOrWhiteSpace(request.rid))
query.RageID = int.Parse(request.rid); query.RageID = int.Parse(request.rid);
if (!string.IsNullOrWhiteSpace(request.tvdbid)) if (!string.IsNullOrWhiteSpace(request.tvdbid))
query.TvdbID = int.Parse(request.tvdbid); query.TvdbID = int.Parse(request.tvdbid);
if (!string.IsNullOrWhiteSpace(request.season))
query.Season = int.Parse(request.season);
if (!string.IsNullOrWhiteSpace(request.tmdbid)) if (!string.IsNullOrWhiteSpace(request.tmdbid))
query.TmdbID = int.Parse(request.tmdbid); query.TmdbID = int.Parse(request.tmdbid);
if (!string.IsNullOrWhiteSpace(request.traktid))
query.TraktID = int.Parse(request.traktid);
if (!string.IsNullOrWhiteSpace(request.doubanid))
query.DoubanID = int.Parse(request.doubanid);
if (!string.IsNullOrWhiteSpace(request.album)) if (!string.IsNullOrWhiteSpace(request.album))
query.Album = request.album; query.Album = request.album;

View File

@@ -13,14 +13,17 @@ namespace Jackett.Common.Models
ImdbId, ImdbId,
TvdbId, TvdbId,
RId, RId,
TmdbId TmdbId,
TraktId
} }
public enum MovieSearchParam public enum MovieSearchParam
{ {
Q, Q,
ImdbId, ImdbId,
TmdbId TmdbId,
TraktId,
DoubanId
} }
public enum MusicSearchParam public enum MusicSearchParam
@@ -56,11 +59,14 @@ namespace Jackett.Common.Models
public bool TvSearchTvdbAvailable => (TvSearchParams.Contains(TvSearchParam.TvdbId)); public bool TvSearchTvdbAvailable => (TvSearchParams.Contains(TvSearchParam.TvdbId));
public bool TvSearchTvRageAvailable => (TvSearchParams.Contains(TvSearchParam.RId)); public bool TvSearchTvRageAvailable => (TvSearchParams.Contains(TvSearchParam.RId));
public bool TvSearchTmdbAvailable => (TvSearchParams.Contains(TvSearchParam.TmdbId)); public bool TvSearchTmdbAvailable => (TvSearchParams.Contains(TvSearchParam.TmdbId));
public bool TvSearchTraktAvailable => (TvSearchParams.Contains(TvSearchParam.TraktId));
public List<MovieSearchParam> MovieSearchParams; public List<MovieSearchParam> MovieSearchParams;
public bool MovieSearchAvailable => (MovieSearchParams.Count > 0); public bool MovieSearchAvailable => (MovieSearchParams.Count > 0);
public bool MovieSearchImdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.ImdbId)); public bool MovieSearchImdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.ImdbId));
public bool MovieSearchTmdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.TmdbId)); public bool MovieSearchTmdbAvailable => (MovieSearchParams.Contains(MovieSearchParam.TmdbId));
public bool MovieSearchTraktAvailable => (MovieSearchParams.Contains(MovieSearchParam.TraktId));
public bool MovieSearchDoubanAvailable => (MovieSearchParams.Contains(MovieSearchParam.DoubanId));
public List<MusicSearchParam> MusicSearchParams; public List<MusicSearchParam> MusicSearchParams;
public bool MusicSearchAvailable => (MusicSearchParams.Count > 0); public bool MusicSearchAvailable => (MusicSearchParams.Count > 0);
@@ -187,6 +193,8 @@ namespace Jackett.Common.Models
parameters.Add("rid"); parameters.Add("rid");
if (TvSearchTmdbAvailable) if (TvSearchTmdbAvailable)
parameters.Add("tmdbid"); parameters.Add("tmdbid");
if (TvSearchTmdbAvailable)
parameters.Add("traktid");
return string.Join(",", parameters); return string.Join(",", parameters);
} }
@@ -197,6 +205,10 @@ namespace Jackett.Common.Models
parameters.Add("imdbid"); parameters.Add("imdbid");
if (MovieSearchTmdbAvailable) if (MovieSearchTmdbAvailable)
parameters.Add("tmdbid"); parameters.Add("tmdbid");
if (MovieSearchImdbAvailable)
parameters.Add("traktid");
if (MovieSearchTmdbAvailable)
parameters.Add("doubanid");
return string.Join(",", parameters); return string.Join(",", parameters);
} }

View File

@@ -19,6 +19,8 @@ namespace Jackett.Common.Models
public int? TvdbID { get; set; } public int? TvdbID { get; set; }
public string ImdbID { get; set; } public string ImdbID { get; set; }
public int? TmdbID { get; set; } public int? TmdbID { get; set; }
public int? TraktID { get; set; }
public int? DoubanID { get; set; }
public bool Cache { get; set; } = true; public bool Cache { get; set; } = true;
public int Season { get; set; } public int Season { get; set; }
@@ -59,6 +61,10 @@ namespace Jackett.Common.Models
public bool IsTmdbQuery => TmdbID != null; public bool IsTmdbQuery => TmdbID != null;
public bool IsTraktQuery => TraktID != null;
public bool IsDoubanQuery => DoubanID != null;
public bool HasSpecifiedCategories => (Categories != null && Categories.Length > 0); public bool HasSpecifiedCategories => (Categories != null && Categories.Length > 0);
public string SanitizedSearchTerm public string SanitizedSearchTerm
@@ -139,6 +145,8 @@ namespace Jackett.Common.Models
TvdbID = TvdbID, TvdbID = TvdbID,
ImdbID = ImdbID, ImdbID = ImdbID,
TmdbID = TmdbID, TmdbID = TmdbID,
TraktID = TraktID,
DoubanID = DoubanID,
Cache = Cache Cache = Cache
}; };
if (Categories?.Length > 0) if (Categories?.Length > 0)

View File

@@ -406,7 +406,7 @@ namespace Jackett.Test.Common.Models
Assert.AreEqual("yes", xDocumentSearching?.Element("tv-search")?.Attribute("available")?.Value); Assert.AreEqual("yes", xDocumentSearching?.Element("tv-search")?.Attribute("available")?.Value);
Assert.AreEqual("q,season,ep,tvdbid,rid", xDocumentSearching?.Element("tv-search")?.Attribute("supportedParams")?.Value); Assert.AreEqual("q,season,ep,tvdbid,rid", xDocumentSearching?.Element("tv-search")?.Attribute("supportedParams")?.Value);
Assert.AreEqual("yes", xDocumentSearching?.Element("movie-search")?.Attribute("available")?.Value); Assert.AreEqual("yes", xDocumentSearching?.Element("movie-search")?.Attribute("available")?.Value);
Assert.AreEqual("q,imdbid,tmdbid", xDocumentSearching?.Element("movie-search")?.Attribute("supportedParams")?.Value); Assert.AreEqual("q,imdbid,tmdbid,traktid,doubanid", xDocumentSearching?.Element("movie-search")?.Attribute("supportedParams")?.Value);
Assert.AreEqual("yes", xDocumentSearching?.Element("music-search")?.Attribute("available")?.Value); Assert.AreEqual("yes", xDocumentSearching?.Element("music-search")?.Attribute("available")?.Value);
Assert.AreEqual("q,album,artist,label,year", xDocumentSearching?.Element("music-search")?.Attribute("supportedParams")?.Value); Assert.AreEqual("q,album,artist,label,year", xDocumentSearching?.Element("music-search")?.Attribute("supportedParams")?.Value);
Assert.AreEqual("yes", xDocumentSearching?.Element("audio-search")?.Attribute("available")?.Value); Assert.AreEqual("yes", xDocumentSearching?.Element("audio-search")?.Attribute("available")?.Value);