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 bool IsMovie;
public int? Year;
public int _season;
public int _episodeNumber;
private string _categoryText;
@ -546,6 +547,7 @@ namespace Jackett.Common.Indexers
public async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
query = SanitizeQuery(query);
var uriSearch = CreateSearchUri(query.SearchTerm);
var htmlSearch = await requester.MakeRequest(uriSearch);
var moviesInfoUris = movieSearchScraper.Extract(htmlSearch);
@ -568,8 +570,26 @@ namespace Jackett.Common.Indexers
return movie;
});
if (query.Year != null)
{
movies = movies.Where(m => m.Year == query.Year);
}
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>>
@ -604,6 +624,7 @@ namespace Jackett.Common.Indexers
{
var year = selectors.Where(s => s.TextContent.ToLower().Contains("año"))
.First().NextSibling.TextContent.Trim();
release.Year = Int32.Parse(year);
release.TitleOriginal += " (" + year + ")";
} catch { }
try