mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
torrentseeds: fix re-login and add imdb id (#7611)
This commit is contained in:
@@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -28,7 +29,7 @@ namespace Jackett.Common.Indexers
|
|||||||
set => base.configData = value;
|
set => base.configData = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TorrentSeeds(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps) :
|
public TorrentSeeds(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps) :
|
||||||
base(
|
base(
|
||||||
name: "TorrentSeeds",
|
name: "TorrentSeeds",
|
||||||
description: "TorrentSeeds is a Private site for MOVIES / TV / GENERAL",
|
description: "TorrentSeeds is a Private site for MOVIES / TV / GENERAL",
|
||||||
@@ -116,7 +117,7 @@ namespace Jackett.Common.Indexers
|
|||||||
};
|
};
|
||||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, accumulateCookies: true);
|
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, accumulateCookies: true);
|
||||||
await ConfigureIfOK(
|
await ConfigureIfOK(
|
||||||
result.Cookies, result.Content?.Contains("https://torrentseeds.org/logout.php") == true && !result.Content.Contains("Login failed!"),
|
result.Cookies, result.Content.Contains("/logout.php?"),
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
var errorDom = parser.ParseDocument(result.Content);
|
var errorDom = parser.ParseDocument(result.Content);
|
||||||
@@ -146,7 +147,7 @@ namespace Jackett.Common.Indexers
|
|||||||
searchUrl += "?" + queryCollection.GetQueryString();
|
searchUrl += "?" + queryCollection.GetQueryString();
|
||||||
var response = await RequestStringWithCookiesAndRetry(searchUrl);
|
var response = await RequestStringWithCookiesAndRetry(searchUrl);
|
||||||
var results = response.Content;
|
var results = response.Content;
|
||||||
if (results.Contains("takelogin.php") || response.Cookies?.Contains("pass=deleted;") == true)
|
if (!results.Contains("/logout.php?"))
|
||||||
{
|
{
|
||||||
await ApplyConfiguration(null);
|
await ApplyConfiguration(null);
|
||||||
response = await RequestStringWithCookiesAndRetry(searchUrl);
|
response = await RequestStringWithCookiesAndRetry(searchUrl);
|
||||||
@@ -171,7 +172,7 @@ namespace Jackett.Common.Indexers
|
|||||||
var qLink = content.QuerySelector("tr:has(td:contains(\"Download\"))")
|
var qLink = content.QuerySelector("tr:has(td:contains(\"Download\"))")
|
||||||
.QuerySelector("a[href*=\"download.php?torrent=\"]");
|
.QuerySelector("a[href*=\"download.php?torrent=\"]");
|
||||||
release.Link = new Uri(SiteLink + qLink.GetAttribute("href"));
|
release.Link = new Uri(SiteLink + qLink.GetAttribute("href"));
|
||||||
release.Title = qLink.QuerySelector("u").TextContent;
|
release.Title = qLink.QuerySelector("u").TextContent.Replace(".torrent", "").Trim();
|
||||||
release.Comments = qCommentLink;
|
release.Comments = qCommentLink;
|
||||||
release.Guid = release.Comments;
|
release.Guid = release.Comments;
|
||||||
var qSize = content.QuerySelector("tr:has(td.heading:contains(\"Size\"))").Children[1].TextContent
|
var qSize = content.QuerySelector("tr:has(td.heading:contains(\"Size\"))").Children[1].TextContent
|
||||||
@@ -186,6 +187,14 @@ namespace Jackett.Common.Indexers
|
|||||||
var rawDateStr = content.QuerySelector("tr:has(td:contains(\"Added\"))").Children[1].TextContent;
|
var rawDateStr = content.QuerySelector("tr:has(td:contains(\"Added\"))").Children[1].TextContent;
|
||||||
var dateUpped = DateTimeUtil.FromUnknown(rawDateStr.Replace(",", string.Empty));
|
var dateUpped = DateTimeUtil.FromUnknown(rawDateStr.Replace(",", string.Empty));
|
||||||
|
|
||||||
|
var imdbRegexp = new Regex(@"(https:\/\/[w]{0,3}\.?imdb.com\/\S*\/\S*)");
|
||||||
|
var qInfo = content.QuerySelector("tr:has(th)")?.Children[1].TextContent
|
||||||
|
?? content.QuerySelector("tr > td > pre")?.TextContent;
|
||||||
|
if (qInfo != null)
|
||||||
|
{
|
||||||
|
release.Imdb = ParseUtil.GetImdbID(imdbRegexp.Match(qInfo).Groups[1].Value.Split('/').Last());
|
||||||
|
}
|
||||||
|
|
||||||
// Mar 4 2020, 05:47 AM
|
// Mar 4 2020, 05:47 AM
|
||||||
release.PublishDate = dateUpped.ToLocalTime();
|
release.PublishDate = dateUpped.ToLocalTime();
|
||||||
var qGrabs = content.QuerySelector("tr:has(td:contains(\"Snatched\"))").Children[1];
|
var qGrabs = content.QuerySelector("tr:has(td:contains(\"Snatched\"))").Children[1];
|
||||||
@@ -220,7 +229,7 @@ namespace Jackett.Common.Indexers
|
|||||||
release.Category = MapTrackerCatToNewznab(catStr);
|
release.Category = MapTrackerCatToNewznab(catStr);
|
||||||
var qDetailsLink = row.QuerySelector("a[href^=\"/details.php?id=\"]");
|
var qDetailsLink = row.QuerySelector("a[href^=\"/details.php?id=\"]");
|
||||||
var qDetailsTitle = row.QuerySelector("td:has(a[href^=\"/details.php?id=\"]) b");
|
var qDetailsTitle = row.QuerySelector("td:has(a[href^=\"/details.php?id=\"]) b");
|
||||||
release.Title = qDetailsTitle.TextContent;
|
release.Title = qDetailsTitle.TextContent.Trim();
|
||||||
var qDlLink = row.QuerySelector("a[href^=\"/download.php?torrent=\"]");
|
var qDlLink = row.QuerySelector("a[href^=\"/download.php?torrent=\"]");
|
||||||
var qSeeders = row.QuerySelector("td.torrent-table-seeders");
|
var qSeeders = row.QuerySelector("td.torrent-table-seeders");
|
||||||
var qLeechers = row.QuerySelector("td.torrent-table-leechers");
|
var qLeechers = row.QuerySelector("td.torrent-table-leechers");
|
||||||
@@ -240,6 +249,14 @@ namespace Jackett.Common.Indexers
|
|||||||
release.PublishDate = parsedDateTime;
|
release.PublishDate = parsedDateTime;
|
||||||
release.Grabs = ParseUtil.CoerceInt(qGrabs.TextContent);
|
release.Grabs = ParseUtil.CoerceInt(qGrabs.TextContent);
|
||||||
release.Files = ParseUtil.CoerceInt(qFiles.TextContent);
|
release.Files = ParseUtil.CoerceInt(qFiles.TextContent);
|
||||||
|
|
||||||
|
var qImdb = row.QuerySelector("td.torrent-table-name > div > p.float-down > span.label-warning > a");
|
||||||
|
if (qImdb != null)
|
||||||
|
{
|
||||||
|
var deRefUrl = qImdb.GetAttribute("href");
|
||||||
|
release.Imdb = ParseUtil.GetImdbID(WebUtility.UrlDecode(deRefUrl).Split('/').Last());
|
||||||
|
}
|
||||||
|
|
||||||
release.DownloadVolumeFactor = row.GetAttribute("class").Contains("freeleech") ? 0 : 1;
|
release.DownloadVolumeFactor = row.GetAttribute("class").Contains("freeleech") ? 0 : 1;
|
||||||
release.UploadVolumeFactor = 1;
|
release.UploadVolumeFactor = 1;
|
||||||
releases.Add(release);
|
releases.Add(release);
|
||||||
|
Reference in New Issue
Block a user