mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-27 23:16:58 -04:00
Fixed: (SceneTime) Update layout selectors
This commit is contained in:
@@ -41,7 +41,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
{
|
||||
return new SceneTimeParser(Settings, Capabilities.Categories);
|
||||
return new SceneTimeParser(Settings, Capabilities.Categories, _logger);
|
||||
}
|
||||
|
||||
protected override bool CheckIfLoginNeeded(HttpResponse httpResponse)
|
||||
@@ -59,7 +59,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
return CookieUtil.CookieHeaderToDictionary(Settings.Cookie);
|
||||
}
|
||||
|
||||
private IndexerCapabilities SetCapabilities()
|
||||
private static IndexerCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
@@ -213,11 +213,13 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
{
|
||||
private readonly SceneTimeSettings _settings;
|
||||
private readonly IndexerCapabilitiesCategories _categories;
|
||||
private readonly Logger _logger;
|
||||
|
||||
public SceneTimeParser(SceneTimeSettings settings, IndexerCapabilitiesCategories categories)
|
||||
public SceneTimeParser(SceneTimeSettings settings, IndexerCapabilitiesCategories categories, Logger logger)
|
||||
{
|
||||
_settings = settings;
|
||||
_categories = categories;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||
@@ -227,20 +229,22 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
var parser = new HtmlParser();
|
||||
using var dom = parser.ParseDocument(indexerResponse.Content);
|
||||
|
||||
var table = dom.QuerySelector("table.movehere");
|
||||
var table = dom.QuerySelector("table#torrenttable");
|
||||
if (table == null)
|
||||
{
|
||||
return releaseInfos; // no results
|
||||
_logger.Error("No results, table element is not present in page.");
|
||||
return releaseInfos;
|
||||
}
|
||||
|
||||
var headerColumns = table.QuerySelectorAll("thead > tr > th.cat_Head")
|
||||
.Select(x => x.GetAttribute("title").IsNotNullOrWhiteSpace() ? x.GetAttribute("title") : x.TextContent)
|
||||
var headerColumns = table.QuerySelectorAll("thead > tr > th")
|
||||
.Select(x => x.GetAttribute("title") ?? x.QuerySelector("a[title]")?.GetAttribute("title") ?? x.TextContent)
|
||||
.ToList();
|
||||
|
||||
var categoryIndex = headerColumns.FindIndex(x => x.Equals("Type", StringComparison.OrdinalIgnoreCase));
|
||||
var nameIndex = headerColumns.FindIndex(x => x.Equals("Name", StringComparison.OrdinalIgnoreCase));
|
||||
var sizeIndex = headerColumns.FindIndex(x => x.Equals("Size", StringComparison.OrdinalIgnoreCase));
|
||||
var seedersIndex = headerColumns.FindIndex(x => x.Equals("Seeder(s)", StringComparison.OrdinalIgnoreCase));
|
||||
var leechersIndex = headerColumns.FindIndex(x => x.Equals("Leecher(s)", StringComparison.OrdinalIgnoreCase));
|
||||
var seedersIndex = headerColumns.FindIndex(x => x.Equals("Seeders", StringComparison.OrdinalIgnoreCase));
|
||||
var leechersIndex = headerColumns.FindIndex(x => x.Equals("Leechers", StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
var rows = table.QuerySelectorAll("tbody > tr");
|
||||
|
||||
@@ -248,7 +252,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
{
|
||||
var qDescCol = row.Children[nameIndex];
|
||||
var qLink = qDescCol.QuerySelector("a");
|
||||
var title = qLink.QuerySelector("span.torrent-text").TextContent.Trim();
|
||||
var title = qLink.QuerySelector("span.bw-torrent-name").TextContent.Trim();
|
||||
|
||||
var infoUrl = _settings.BaseUrl + qLink.GetAttribute("href")?.TrimStart('/');
|
||||
var torrentId = ParseUtil.GetArgumentFromQueryString(infoUrl, "id");
|
||||
|
||||
Reference in New Issue
Block a user