Add support for movie-search

This commit is contained in:
kaso17
2017-01-16 17:23:19 +01:00
parent 716fe0e6b6
commit af1aa408c9
4 changed files with 45 additions and 2 deletions

View File

@@ -532,7 +532,11 @@ namespace Jackett.Indexers
{
categoryMapping.Add(new CategoryMapping(trackerCategory, trackerCategoryDesc, newznabCategory.ID));
if (!TorznabCaps.Categories.Contains(newznabCategory))
{
TorznabCaps.Categories.Add(newznabCategory);
if (TorznabCatType.Movies.Contains(newznabCategory))
TorznabCaps.MovieSearchAvailable = true;
}
}
protected void AddCategoryMapping(int trackerCategory, TorznabCategory newznabCategory, string trackerCategoryDesc = null)

View File

@@ -15,8 +15,12 @@ namespace Jackett.Models
public bool TVSearchAvailable { get; set; }
public bool MovieSearchAvailable { get; set; }
public bool SupportsTVRageSearch { get; set; }
public bool SupportsImdbSearch { get; set; }
public List<TorznabCategory> Categories { get; private set; }
public TorznabCapabilities()
@@ -24,7 +28,9 @@ namespace Jackett.Models
Categories = new List<TorznabCategory>();
SearchAvailable = true;
TVSearchAvailable = true;
MovieSearchAvailable = false;
SupportsTVRageSearch = false;
SupportsImdbSearch = false;
}
public TorznabCapabilities(params TorznabCategory[] cats)
@@ -32,8 +38,10 @@ namespace Jackett.Models
SearchAvailable = true;
TVSearchAvailable = true;
SupportsTVRageSearch = false;
SupportsImdbSearch = false;
Categories = new List<TorznabCategory>();
Categories.AddRange(cats);
MovieSearchAvailable = Categories.Any(i => TorznabCatType.Movies.Contains(i));
}
string SupportedTVSearchParams
@@ -47,6 +55,17 @@ namespace Jackett.Models
}
}
string SupportedMovieSearchParams
{
get
{
var parameters = new List<string>() { "q" };
if (SupportsImdbSearch)
parameters.Add("imdbid");
return string.Join(",", parameters);
}
}
public JArray CapsToJson()
{
var jArray = new JArray();
@@ -70,6 +89,10 @@ namespace Jackett.Models
new XElement("tv-search",
new XAttribute("available", TVSearchAvailable ? "yes" : "no"),
new XAttribute("supportedParams", SupportedTVSearchParams)
),
new XElement("movie-search",
new XAttribute("available", MovieSearchAvailable ? "yes" : "no"),
new XAttribute("supportedParams", SupportedMovieSearchParams)
)
),
new XElement("categories",

View File

@@ -26,6 +26,17 @@ namespace Jackett.Models
SubCategories = new List<TorznabCategory>();
}
public bool Contains(TorznabCategory cat)
{
if (this == cat)
return true;
if (SubCategories.Contains(cat))
return true;
return false;
}
public JToken ToJson()
{
var t = new JObject();

View File

@@ -131,10 +131,13 @@ namespace Jackett.Models
if (query["cat"] != null)
{
q.Categories = query["cat"].Split(',').Select(s => int.Parse(s)).ToArray();
q.Categories = query["cat"].Split(',').Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => int.Parse(s)).ToArray();
}else
{
q.Categories = new int[0];
if (q.QueryType == "movie" && string.IsNullOrWhiteSpace(query["imdbid"]))
q.Categories = new int[] { TorznabCatType.Movies.ID };
else
q.Categories = new int[0];
}
if (query["extended"] != null)
@@ -151,6 +154,8 @@ namespace Jackett.Models
q.Offset = ParseUtil.CoerceInt(query["offset"]);
}
q.ImdbID = query["imdbid"];
int rageId;
if (int.TryParse(query["rid"], out rageId))
{