Convert TorrentDay to AngleSharp (#7383)

This commit is contained in:
Diego Heras 2020-02-29 20:22:29 +01:00 committed by GitHub
parent b83a984365
commit 348461ebfc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 25 deletions

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using AngleSharp.Html.Parser;
using Jackett.Common.Helpers;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
@ -22,11 +22,11 @@ namespace Jackett.Common.Indexers
private string LoginUrl => SiteLink + "tak3login.php";
private string SearchUrl => SiteLink + "t.json";
public override string[] LegacySiteLinks { get; protected set; } = new string[] {
public override string[] LegacySiteLinks { get; protected set; } = {
"https://torrentday.com/",
};
public override string[] AlternativeSiteLinks { get; protected set; } = new string[] {
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://tday.love/",
"https://torrentday.cool/",
"https://tdonline.org/",
@ -125,12 +125,14 @@ namespace Jackett.Common.Indexers
loginPage = await RequestStringWithCookies(loginPage.RedirectingTo, string.Empty);
if (loginPage.IsRedirect)
loginPage = await RequestStringWithCookies(loginPage.RedirectingTo, string.Empty);
CQ cq = loginPage.Content;
var parser = new HtmlParser();
var dom = parser.ParseDocument(loginPage.Content);
var result = configData;
//result.CookieHeader.Value = loginPage.Cookies;
UpdateCookieHeader(loginPage.Cookies); // update cookies instead of replacing them, see #3717
result.Captcha.SiteKey = cq.Find(".g-recaptcha").Attr("data-sitekey");
result.Captcha.SiteKey = dom.QuerySelector(".g-recaptcha").GetAttribute("data-sitekey");
result.Captcha.Version = "2";
return result;
}
@ -151,10 +153,8 @@ namespace Jackett.Common.Indexers
try
{
var results = await PerformQuery(new TorznabQuery());
if (results.Count() == 0)
{
if (!results.Any())
throw new Exception("no results found, please report this bug");
}
IsConfigured = true;
SaveConfig();
@ -170,20 +170,18 @@ namespace Jackett.Common.Indexers
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, configData.CookieHeader.Value, true, null, LoginUrl);
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () =>
{
CQ dom = result.Content;
var messageEl = dom["#login"];
messageEl.Children("form").Remove();
var errorMessage = messageEl.Text().Trim();
var parser = new HtmlParser();
var dom = parser.ParseDocument(result.Content);
var messageEl = dom.QuerySelector("#login");
foreach (var child in messageEl.QuerySelectorAll("form"))
child.Remove();
var errorMessage = messageEl.TextContent.Trim();
if (string.IsNullOrWhiteSpace(errorMessage))
{
errorMessage = dom.Text();
}
errorMessage = dom.TextContent;
if (string.IsNullOrWhiteSpace(errorMessage) && result.IsRedirect)
{
errorMessage = string.Format("Got a redirect to {0}, please adjust your the alternative link", result.RedirectingTo);
}
throw new ExceptionWithConfigData(errorMessage, configData);
});
@ -204,13 +202,9 @@ namespace Jackett.Common.Indexers
queryUrl += "?" + catStr;
if (!string.IsNullOrWhiteSpace(query.ImdbID))
{
queryUrl += ";q=" + query.ImdbID;
}
else
{
queryUrl += ";q=" + WebUtilityHelpers.UrlEncode(searchString, Encoding);
}
var results = await RequestStringWithCookiesAndRetry(queryUrl);
@ -223,7 +217,7 @@ namespace Jackett.Common.Indexers
try
{
dynamic json = JsonConvert.DeserializeObject<dynamic>(results.Content);
var json = JsonConvert.DeserializeObject<dynamic>(results.Content);
foreach (var torrent in json)
{
@ -237,10 +231,10 @@ namespace Jackett.Common.Indexers
release.MinimumSeedTime = 172800; // 48 hours
release.Category = MapTrackerCatToNewznab(torrent.c.ToString());
var torrentID = (long)torrent.t;
release.Comments = new Uri(SiteLink + "details.php?id=" + torrentID);
var torrentId = (long)torrent.t;
release.Comments = new Uri(SiteLink + "details.php?id=" + torrentId);
release.Guid = release.Comments;
release.Link = new Uri(SiteLink + "download.php/" + torrentID + "/" + torrentID + ".torrent");
release.Link = new Uri(SiteLink + "download.php/" + torrentId + "/" + torrentId + ".torrent");
release.PublishDate = DateTimeUtil.UnixTimestampToDateTime((long)torrent.ctime).ToLocalTime();
release.Size = (long)torrent.size;