Mejortorrent: improvements (#3324)

* feat(newpct): rename title to make them more standarized

* fix: add site link configurable

* feat: add tests if news are not available

Sometimes the web has no news, and even if the tv show searcher is
working it throws an error. This way it will check news, and, if not
available, will check some series to check aliveness.

* fix: remove apostrophes from search

closes #3315

* fix: initialize search term if it's null
This commit is contained in:
Ivan de la Beldad Fernandez
2018-07-02 19:10:31 +02:00
committed by kaso17
parent 038fe2866b
commit 115dfd20e7

View File

@@ -45,6 +45,12 @@ namespace Jackett.Common.Indexers
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
configData.LoadValuesFromJson(configJson);
WebUri = new Uri(configData.SiteLink.Value);
DownloadUri = new Uri(WebUri, "secciones.php?sec=descargas&ap=contar_varios");
SearchUriBase = new Uri(WebUri, "secciones.php");
NewTorrentsUri = new Uri(WebUri, "secciones.php?sec=ultimos_torrents");
var releases = await PerformQuery(new TorznabQuery());
await ConfigureIfOK(string.Empty, releases.Count() > 0, () =>
@@ -62,6 +68,11 @@ namespace Jackett.Common.Indexers
public async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query, int attempts)
{
if (query.SearchTerm == null)
{
query.SearchTerm = "";
}
query.SearchTerm = query.SearchTerm.Replace("'", "");
var requester = new MejorTorrentRequester(this);
var tvShowScraper = new TvShowScraper();
var seasonScraper = new SeasonScraper();
@@ -73,11 +84,29 @@ namespace Jackett.Common.Indexers
if (string.IsNullOrEmpty(query.SanitizedSearchTerm))
{
return await rssPerformer.PerformQuery(query);
var releases = await rssPerformer.PerformQuery(query);
if (releases.Count() == 0)
{
releases = await AliveCheck(tvShowPerformer);
}
return releases;
}
return await tvShowPerformer.PerformQuery(query);
}
private async Task<IEnumerable<ReleaseInfo>> AliveCheck(TvShowPerformer tvShowPerformer)
{
IEnumerable<ReleaseInfo> releases = new List<ReleaseInfo>();
var tests = new Queue<string>(new[] { "stranger things", "westworld", "friends" });
while (releases.Count() == 0 && tests.Count > 0)
{
var query = new TorznabQuery();
query.SearchTerm = tests.Dequeue();
releases = await tvShowPerformer.PerformQuery(query);
}
return releases;
}
public static Uri CreateSearchUri(string search)
{
var finalUri = SearchUriBase.AbsoluteUri;