mejortorrent: add parse and filter by year (#3336)

* mejortorrent: add parse and filter by year
This commit is contained in:
Ivan de la Beldad Fernandez 2018-07-04 18:54:40 +02:00 committed by kaso17
parent 6175b805d2
commit 40e5c999b3
1 changed files with 21 additions and 0 deletions

View File

@ -438,6 +438,7 @@ namespace Jackett.Common.Indexers
{ {
public string MejorTorrentID; public string MejorTorrentID;
public bool IsMovie; public bool IsMovie;
public int? Year;
public int _season; public int _season;
public int _episodeNumber; public int _episodeNumber;
private string _categoryText; private string _categoryText;
@ -546,6 +547,7 @@ namespace Jackett.Common.Indexers
public async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query) public async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{ {
query = SanitizeQuery(query);
var uriSearch = CreateSearchUri(query.SearchTerm); var uriSearch = CreateSearchUri(query.SearchTerm);
var htmlSearch = await requester.MakeRequest(uriSearch); var htmlSearch = await requester.MakeRequest(uriSearch);
var moviesInfoUris = movieSearchScraper.Extract(htmlSearch); var moviesInfoUris = movieSearchScraper.Extract(htmlSearch);
@ -568,8 +570,26 @@ namespace Jackett.Common.Indexers
return movie; return movie;
}); });
if (query.Year != null)
{
movies = movies.Where(m => m.Year == query.Year);
}
return movies; return movies;
} }
private TorznabQuery SanitizeQuery(TorznabQuery query)
{
var regex = new Regex(@"\d{4}$");
var match = regex.Match(query.SanitizedSearchTerm);
if (match.Success)
{
var yearStr = match.Groups[0].Value;
query.Year = Int32.Parse(yearStr);
query.SearchTerm = query.SearchTerm.Replace(yearStr, "").Trim();
}
return query;
}
} }
class MovieSearchScraper : IScraper<IEnumerable<Uri>> class MovieSearchScraper : IScraper<IEnumerable<Uri>>
@ -604,6 +624,7 @@ namespace Jackett.Common.Indexers
{ {
var year = selectors.Where(s => s.TextContent.ToLower().Contains("año")) var year = selectors.Where(s => s.TextContent.ToLower().Contains("año"))
.First().NextSibling.TextContent.Trim(); .First().NextSibling.TextContent.Trim();
release.Year = Int32.Parse(year);
release.TitleOriginal += " (" + year + ")"; release.TitleOriginal += " (" + year + ")";
} catch { } } catch { }
try try