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