Code Tidy: Indexers A to N (#2032)

* Code Tidy: Indexers A-B

* Code Tidy: Indexers C to H

* Code Tidy: Indexers I-N
This commit is contained in:
flightlevel
2017-10-29 17:21:18 +11:00
committed by GitHub
parent 132a04d9b9
commit e93d8f0f7c
49 changed files with 530 additions and 670 deletions

View File

@@ -1,29 +1,25 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using System.Threading.Tasks;
using AngleSharp.Parser.Html;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System;
using System.Text;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using AngleSharp.Parser.Html;
using AngleSharp.Dom;
using System.Text.RegularExpressions;
using System.Web;
using NLog;
namespace Jackett.Indexers
{
public class SevenTor : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "ucp.php?mode=login"; } }
string SearchUrl { get { return SiteLink + "search.php"; } }
private string LoginUrl { get { return SiteLink + "ucp.php?mode=login"; } }
private string SearchUrl { get { return SiteLink + "search.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -1664,7 +1660,7 @@ namespace Jackett.Indexers
var qDetailsLink = Row.QuerySelector("a.topictitle");
var qDownloadLink = Row.QuerySelector("a[href^=\"./download/file.php?id=\"]");
release.Title = qDetailsLink.TextContent;
release.Comments = new Uri(SiteLink + qDetailsLink.GetAttribute("href"));
release.Link = new Uri(SiteLink + qDownloadLink.GetAttribute("href"));
@@ -1731,4 +1727,3 @@ namespace Jackett.Indexers
}
}
}

View File

@@ -120,7 +120,6 @@ namespace Jackett.Indexers
// If we want to simulate a browser
if (ConfigData.Browser.Value)
{
// Clean headers
emulatedBrowserHeaders.Clear();
@@ -132,7 +131,6 @@ namespace Jackett.Indexers
emulatedBrowserHeaders.Add("User-Agent", ConfigData.HeaderUserAgent.Value);
}
// Getting login form to retrieve CSRF token
var myRequest = new Utils.Clients.WebRequest()
{
@@ -375,7 +373,6 @@ namespace Jackett.Indexers
};
releases.Add(release);
}
}
catch (Exception ex)
{
@@ -741,9 +738,11 @@ namespace Jackett.Indexers
logger.Debug(message);
}
break;
case "info":
logger.Info(message);
break;
case "error":
logger.Error(message);
break;

View File

@@ -1,8 +1,8 @@
using Jackett.Models;
using NLog;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,27 +1,27 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using CsQuery;
using System;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text;
using System.Linq;
using NLog;
namespace Jackett.Indexers
{
public class Andraste : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "takelogin.php"; } }
string BrowseUrl { get { return SiteLink + "browse.php"; } }
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string BrowseUrl { get { return SiteLink + "browse.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -105,7 +105,7 @@ namespace Jackett.Indexers
TimeZoneInfo germanyTz = TimeZoneInfo.CreateCustomTimeZone("W. Europe Standard Time", new TimeSpan(1, 0, 0), "(GMT+01:00) W. Europe Standard Time", "W. Europe Standard Time", "W. Europe DST Time", adjustments);
var releases = new List<ReleaseInfo>();
var searchString = query.GetQueryString();
var searchUrl = BrowseUrl;
var queryCollection = new NameValueCollection();
@@ -152,7 +152,7 @@ namespace Jackett.Indexers
var qSize = qRow.Find("span:contains(Volumen) > b:eq(0)").First();
var qOnlyUpload = qRow.Find("img[title=OnlyUpload]");
if(qOnlyUpload.Any())
if (qOnlyUpload.Any())
{
release.MinimumRatio = 2;
release.MinimumSeedTime = 144 * 60 * 60;
@@ -209,4 +209,3 @@ namespace Jackett.Indexers
}
}
}

View File

@@ -1,30 +1,25 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Models.IndexerConfig.Bespoke;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
namespace Jackett.Indexers
{
public class AnimeBytes : BaseCachingWebIndexer
{
enum SearchType
private enum SearchType
{
Video,
Audio
@@ -38,7 +33,7 @@ namespace Jackett.Indexers
public bool AddSynonyms { get { return configData.AddSynonyms.Value; } }
public bool FilterSeasonEpisode { get { return configData.FilterSeasonEpisode.Value; } }
new ConfigurationDataAnimeBytes configData
private new ConfigurationDataAnimeBytes configData
{
get { return (ConfigurationDataAnimeBytes)base.configData; }
set { base.configData = value; }
@@ -70,7 +65,6 @@ namespace Jackett.Indexers
webclient.EmulateBrowser = false; // Animebytes doesn't like fake user agents (issue #1535)
}
protected override IEnumerable<ReleaseInfo> FilterResults(TorznabQuery query, IEnumerable<ReleaseInfo> input)
{
// Prevent filtering
@@ -270,7 +264,6 @@ namespace Jackett.Indexers
// Skip the first two info rows
for (int r = 1; r < releaseRows.Count(); r++)
{
var row = releaseRows.Get(r);
var rowCq = row.Cq();
if (rowCq.HasClass("edition_info"))
@@ -303,7 +296,6 @@ namespace Jackett.Indexers
{
releaseInfo = "E0" + releaseInfo;
}
}
else if (rowCq.HasClass("torrent"))
{
@@ -384,8 +376,6 @@ namespace Jackett.Indexers
}
}
// We dont actually have a release name >.> so try to create one
var releaseTags = infoLink.InnerText.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
for (int i = releaseTags.Count - 1; i >= 0; i--)
@@ -437,7 +427,7 @@ namespace Jackett.Indexers
release.Size = ReleaseInfo.GetBytes(size.First().Text());
}
// Additional 5 hours per GB
// Additional 5 hours per GB
release.MinimumSeedTime += (release.Size / 1000000000) * 18000;
// Peer info

View File

@@ -1,22 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Globalization;
namespace Jackett.Indexers
{
@@ -26,7 +22,7 @@ namespace Jackett.Indexers
private string SearchUrl { get { return SiteLink + "ajax/torrents_data.php"; } }
private string SearchUrlReferer { get { return SiteLink + "torrents.php?cat=0&searchin=filename&search="; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }

View File

@@ -1,20 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models;
using Newtonsoft.Json.Linq;
using NLog;
using Jackett.Utils;
using System.Net;
using System.Net.Http;
using CsQuery;
using System.Web;
using Jackett.Services;
using Jackett.Services;
using Jackett.Utils.Clients;
using System.Text.RegularExpressions;
using Jackett.Models.IndexerConfig;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,25 +1,22 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
namespace Jackett.Indexers
{
// To comply with the rules for this tracker, only the acronym is used and no publicly displayed URLs to the site.
// To comply with the rules for this tracker, only the acronym is used and no publicly displayed URLs to the site.
public class BB : BaseWebIndexer
{
@@ -28,7 +25,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return BaseUri + "login.php"; } }
private string SearchUrl { get { return BaseUri + "torrents.php?searchtags=&tags_type=0&order_by=s3&order_way=desc&disablegrouping=1&"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -96,14 +93,14 @@ namespace Jackett.Indexers
{
List<ReleaseInfo> releases = new List<ReleaseInfo>();
List<string> searchStrings = new List<string>(new string[] { query.GetQueryString() });
if (string.IsNullOrEmpty(query.Episode) && (query.Season > 0))
// Tracker naming rules: If query is for a whole season, "Season #" instead of "S##".
searchStrings.Add((query.SanitizedSearchTerm + " " + string.Format("\"Season {0}\"", query.Season)).Trim());
List<string> categories = MapTorznabCapsToTrackers(query);
List<string> request_urls = new List<string>();
foreach (var searchString in searchStrings)
{
var queryCollection = new NameValueCollection();
@@ -116,16 +113,15 @@ namespace Jackett.Indexers
foreach (var cat in categories)
{
queryCollection.Add("filter_cat[" + cat + "]", "1");
}
request_urls.Add(SearchUrl + queryCollection.GetQueryString());
}
IEnumerable<Task<WebClientStringResult>> downloadTasksQuery =
from url in request_urls select RequestStringWithCookiesAndRetry(url);
from url in request_urls select RequestStringWithCookiesAndRetry(url);
WebClientStringResult[] responses = await Task.WhenAll(downloadTasksQuery.ToArray());
WebClientStringResult[] responses = await Task.WhenAll(downloadTasksQuery.ToArray());
for (int i = 0; i < searchStrings.Count(); i++)
{
@@ -188,7 +184,7 @@ namespace Jackett.Indexers
if (catStr == "10") //change "Season #" to "S##" for TV shows
release.Title = Regex.Replace(release.Title, @"Season (\d+)",
m => string.Format("S{0:00}", Int32.Parse(m.Groups[1].Value)));
releases.Add(release);
}
}

View File

@@ -1,29 +1,29 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using AngleSharp.Dom;
using AngleSharp.Parser.Html;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System;
using System.Text;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using AngleSharp.Parser.Html;
using AngleSharp.Dom;
using System.Text.RegularExpressions;
using NLog;
namespace Jackett.Indexers
{
public class BJShare : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "login.php"; } }
string BrowseUrl { get { return SiteLink + "torrents.php"; } }
string TodayUrl { get { return SiteLink + "torrents.php?action=today"; } }
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string BrowseUrl { get { return SiteLink + "torrents.php"; } }
private string TodayUrl { get { return SiteLink + "torrents.php?action=today"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -99,9 +99,9 @@ namespace Jackett.Indexers
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
var releases = new List<ReleaseInfo>();
var searchString = query.GetQueryString();
// if the search string is empty use the "last 24h torrents" view
if (string.IsNullOrWhiteSpace(searchString))
{
@@ -159,7 +159,6 @@ namespace Jackett.Indexers
}
}
var catStr = qCatLink.GetAttribute("href").Split('=')[1];
release.Category = MapTrackerCatToNewznab(catStr);
@@ -170,7 +169,6 @@ namespace Jackett.Indexers
release.Seeders = ParseUtil.CoerceInt(qSeeders.TextContent);
release.Peers = ParseUtil.CoerceInt(qLeechers.TextContent) + release.Seeders;
if (qFreeLeech != null)
release.DownloadVolumeFactor = 0;
else
@@ -205,7 +203,7 @@ namespace Jackett.Indexers
foreach (var cat in MapTorznabCapsToTrackers(query))
{
queryCollection.Add("filter_cat["+cat+"]", "1");
queryCollection.Add("filter_cat[" + cat + "]", "1");
}
searchUrl += "?" + queryCollection.GetQueryString();
@@ -280,7 +278,7 @@ namespace Jackett.Indexers
}
release.Description = release.Description.Replace(" / Free", ""); // Remove Free Tag
release.Description = release.Description.Replace("Full HD", "1080p");
release.Description = release.Description.Replace("/ HD / ", "/ 720p /");
release.Description = release.Description.Replace(" / HD]", " / 720p]");
@@ -289,10 +287,10 @@ namespace Jackett.Indexers
int nBarra = release.Title.IndexOf("[");
if (nBarra != -1)
{
release.Title = release.Title.Substring(nBarra + 1);
release.Title = release.Title.Replace("]" , "");
}
release.Title = release.Title.Substring(nBarra + 1);
release.Title = release.Title.Replace("]", "");
}
release.Title += " " + release.Description; // add year and Description to the release Title to add some meaning to it
// check for previously stripped search terms
@@ -334,4 +332,3 @@ namespace Jackett.Indexers
}
}
}

View File

@@ -1,19 +1,16 @@
using CsQuery;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
@@ -23,7 +20,7 @@ namespace Jackett.Indexers
public string LoginUrl { get { return SiteLink + "login.php"; } }
public string id = "bakabt";
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -45,16 +42,15 @@ namespace Jackett.Indexers
Type = "private";
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
var loginForm = await webclient.GetString(new Utils.Clients.WebRequest()
{
Url = LoginUrl,
Type = RequestType.GET
});
{
Url = LoginUrl,
Type = RequestType.GET
});
var pairs = new Dictionary<string, string> {
{ "username", configData.Username.Value },
@@ -77,7 +73,6 @@ namespace Jackett.Indexers
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
// This tracker only deals with full seasons so chop off the episode/season number if we have it D:
if (!string.IsNullOrWhiteSpace(query.SearchTerm))
{
@@ -98,7 +93,6 @@ namespace Jackett.Indexers
foreach (var row in rows)
{
var qRow = row.Cq();
var qTitleLink = qRow.Find("a.title, a.alt_title").First();
var title = qTitleLink.Text().Trim();

View File

@@ -3,16 +3,15 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using Jackett.Models;
using Newtonsoft.Json.Linq;
using NLog;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using AutoMapper;
using Jackett.Models.IndexerConfig;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
@@ -255,6 +254,7 @@ namespace Jackett.Indexers
throw new IndexerException(this, ex);
}
}
protected abstract Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query);
}
@@ -463,7 +463,7 @@ namespace Jackett.Indexers
|| response.Status == System.Net.HttpStatusCode.GatewayTimeout
|| (int)response.Status == 521 // used by cloudflare to signal the original webserver is refusing the connection
|| (int)response.Status == 522 // used by cloudflare to signal the original webserver is not reachable at all (timeout)
)
)
{
throw new Exception("Request to " + response.Request.Url + " failed (Error " + response.Status + ") - The tracker seems to be down.");
}
@@ -511,7 +511,6 @@ namespace Jackett.Indexers
matches = matches.NextMatch();
}
return string.Join("; ", cookieDIctionary.Select(kv => kv.Key.ToString() + "=" + kv.Value.ToString()).ToArray());
}
// Update CookieHeader with new cookies and save the config if something changed (e.g. a new CloudFlare clearance cookie was issued)

View File

@@ -1,18 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
using System.Text;
namespace Jackett.Indexers
{
@@ -20,7 +20,7 @@ namespace Jackett.Indexers
{
private string SearchUrl { get { return SiteLink + "browse.php?searchin=title&incldead=0&"; } }
new ConfigurationDataLoginLink configData
private new ConfigurationDataLoginLink configData
{
get { return (ConfigurationDataLoginLink)base.configData; }
set { base.configData = value; }
@@ -82,14 +82,12 @@ namespace Jackett.Indexers
56, // Music / 720p
42 // Music / Blu-ray
);
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
var result = await RequestStringWithCookies(configData.LoginLink.Value);
await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("Welcome Back"), () =>
{
@@ -169,7 +167,6 @@ namespace Jackett.Indexers
release.UploadVolumeFactor = 1;
releases.Add(release);
}
}
catch (Exception ex)

View File

@@ -1,28 +1,27 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using CsQuery;
using System.Web;
using System;
using System.Text;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using NLog;
namespace Jackett.Indexers
{
public class BitCityReloaded : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "login.php"; } }
string BrowseUrl { get { return SiteLink + "uebersicht.php"; } }
TimeZoneInfo germanyTz = TimeZoneInfo.CreateCustomTimeZone("W. Europe Standard Time", new TimeSpan(1, 0, 0), "W. Europe Standard Time", "W. Europe Standard Time");
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string BrowseUrl { get { return SiteLink + "uebersicht.php"; } }
private TimeZoneInfo germanyTz = TimeZoneInfo.CreateCustomTimeZone("W. Europe Standard Time", new TimeSpan(1, 0, 0), "W. Europe Standard Time", "W. Europe Standard Time");
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }

View File

@@ -1,21 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
namespace Jackett.Indexers
{
@@ -26,7 +23,7 @@ namespace Jackett.Indexers
private string SearchUrl { get { return SiteLink + "torrents.php?"; } }
private string DownloadUrl { get { return SiteLink + "download.php?id={0}"; } }
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -144,7 +141,6 @@ namespace Jackett.Indexers
var rows = table.Cq().Children();
foreach (var row in rows.Skip(1))
{
var release = new ReleaseInfo();
var qRow = row.Cq();

View File

@@ -1,4 +1,12 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
@@ -6,16 +14,6 @@ using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
namespace Jackett.Indexers
{
@@ -23,11 +21,12 @@ namespace Jackett.Indexers
{
//https is poorly implemented on BitMeTV. Site uses http to login, but then redirects to https for search
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string LoginPost { get { return SiteLink + "takelogin.php"; } }
private string CaptchaUrl { get { return SiteLink + "visual.php"; } }
private string SearchUrl { get { return "https://www.bitmetv.org/browse.php"; } }
new ConfigurationDataCaptchaLogin configData
private new ConfigurationDataCaptchaLogin configData
{
get { return (ConfigurationDataCaptchaLogin)base.configData; }
set { base.configData = value; }

View File

@@ -1,22 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
namespace Jackett.Indexers
{
@@ -27,7 +23,7 @@ namespace Jackett.Indexers
private string LoginReferer { get { return SiteLink + "login.php"; } }
public override string[] AlternativeSiteLinks { get; protected set; } = new string[] { "https://www.bitsoup.me/", "https://www.bitsoup.org/" };
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -148,7 +144,6 @@ namespace Jackett.Indexers
var pairs = new Dictionary<string, string> {
{ "username", configData.Username.Value },
{ "password", configData.Password.Value },
};
var loginPage = await RequestStringWithCookies(SiteLink, string.Empty);
@@ -172,7 +167,6 @@ namespace Jackett.Indexers
var trackerCats = MapTorznabCapsToTrackers(query);
var queryCollection = new NameValueCollection();
queryCollection.Add("search", string.IsNullOrWhiteSpace(searchString) ? "" : searchString);
if (trackerCats.Count > 1)
{

View File

@@ -17,9 +17,9 @@ namespace Jackett.Indexers
public class BroadcastTheNet : BaseWebIndexer
{
// Docs at http://apidocs.broadcasthe.net/docs.php
string APIBASE = "https://api.broadcasthe.net";
private string APIBASE = "https://api.broadcasthe.net";
new ConfigurationDataAPIKey configData
private new ConfigurationDataAPIKey configData
{
get { return (ConfigurationDataAPIKey)base.configData; }
set { base.configData = value; }
@@ -72,7 +72,6 @@ namespace Jackett.Indexers
return IndexerConfigurationStatus.Completed;
}
private string JsonRPCRequest(string method, JArray parameters)
{
dynamic request = new JObject();
@@ -158,7 +157,6 @@ namespace Jackett.Indexers
releases.Add(item);
}
}
}
catch (Exception ex)
{
@@ -167,7 +165,6 @@ namespace Jackett.Indexers
return releases;
}
public class BTNRPCResponse
{
public string Id { get; set; }

View File

@@ -1,8 +1,8 @@
using Jackett.Models;
using NLog;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,20 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models;
using Newtonsoft.Json.Linq;
using NLog;
using Jackett.Utils;
using System.Net;
using System.Net.Http;
using CsQuery;
using System.Web;
using Jackett.Services;
using Jackett.Services;
using Jackett.Utils.Clients;
using System.Text.RegularExpressions;
using Jackett.Models.IndexerConfig;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,19 +1,19 @@
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils.Clients;
using NLog;
using System.Text;
using Jackett.Indexers.Abstract;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using Jackett.Models.IndexerConfig;
namespace Jackett.Indexers
{
public class DanishBits : CouchPotatoTracker
{
new ConfigurationDataUserPasskey configData
private new ConfigurationDataUserPasskey configData
{
get { return (ConfigurationDataUserPasskey)base.configData; }
set { base.configData = value; }

View File

@@ -1,4 +1,11 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
@@ -6,13 +13,6 @@ using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace Jackett.Indexers
{
@@ -21,7 +21,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "account_handler.php"; } }
private string SearchUrl { get { return SiteLink + "files/?category={0}&subcategory=All&quality=All&seeded=2&to=1&query={1}&external=2"; } }
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -135,7 +135,6 @@ namespace Jackett.Indexers
var episodeSearchUrl = string.Format(SearchUrl, cat, HttpUtility.UrlEncode(query.GetQueryString()));
var results = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
if (results.Content.Contains("No torrents found"))
{
return releases;
@@ -157,7 +156,7 @@ namespace Jackett.Indexers
// ex: "Monday, Jun 01, 2015", "Monday, Aug 03, 2015"
var dateStr = rowA.Cq().Text().Trim().Replace("Added on ", "");
if (string.IsNullOrWhiteSpace(dateStr) || dateStr == "Sponsored links" || dateStr.StartsWith("!function")) // ignore ads
{
{
continue;
}
if (dateStr.ToLowerInvariant().Contains("today"))
@@ -215,7 +214,6 @@ namespace Jackett.Indexers
releases.Add(release);
}
}
catch (Exception ex)
{

View File

@@ -1,19 +1,17 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
using System.IO;
namespace Jackett.Indexers
{
@@ -23,7 +21,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "login.php?returnto=%2F"; } }
private string AjaxLoginUrl { get { return SiteLink + "takelogin.php"; } }
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -170,7 +168,7 @@ namespace Jackett.Indexers
{
queryCollection.Add("c" + cat, "1");
}
if (!string.IsNullOrWhiteSpace(searchString))
{
queryCollection.Add("search", searchString);

View File

@@ -5,25 +5,25 @@ using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using AngleSharp.Parser.Html;
using Newtonsoft.Json.Linq;
using NLog;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
class EliteTracker : BaseWebIndexer
internal class EliteTracker : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "takelogin.php"; } }
string BrowseUrl { get { return SiteLink + "browse.php"; } }
private string LoginUrl
{ get { return SiteLink + "takelogin.php"; } }
private string BrowseUrl
{ get { return SiteLink + "browse.php"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -194,7 +194,7 @@ namespace Jackett.Indexers
var Leechers = Row.QuerySelector("td:nth-child(8)").QuerySelector("a");
var categoryIdparts = category.GetAttribute("href").Split('-');
var categoryId = categoryIdparts[categoryIdparts.Length-1].Replace(".ts", "");
var categoryId = categoryIdparts[categoryIdparts.Length - 1].Replace(".ts", "");
release.Title = title.TextContent;
release.Category = MapTrackerCatToNewznab(categoryId);
@@ -270,6 +270,5 @@ namespace Jackett.Indexers
return releases;
}
}
}

View File

@@ -1,32 +1,28 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig.Bespoke;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using Jackett.Models.IndexerConfig.Bespoke;
using System.Text.RegularExpressions;
namespace Jackett.Indexers
{
public class FileList : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "takelogin.php"; } }
string BrowseUrl { get { return SiteLink + "browse.php"; } }
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string BrowseUrl { get { return SiteLink + "browse.php"; } }
new ConfigurationDataFileList configData
private new ConfigurationDataFileList configData
{
get { return (ConfigurationDataFileList)base.configData; }
set { base.configData = value; }
@@ -49,32 +45,32 @@ namespace Jackett.Indexers
TorznabCaps.SupportsImdbSearch = true;
AddCategoryMapping(24, TorznabCatType.TVAnime , "Anime");
AddCategoryMapping(11, TorznabCatType.Audio , "Audio");
AddCategoryMapping(15, TorznabCatType.TV , "Desene");
AddCategoryMapping(18, TorznabCatType.Other , "Diverse");
AddCategoryMapping(16, TorznabCatType.Books , "Docs");
AddCategoryMapping(25, TorznabCatType.Movies3D , "Filme 3D");
AddCategoryMapping(6, TorznabCatType.MoviesHD , "Filme 4K");
AddCategoryMapping(26, TorznabCatType.MoviesBluRay , "Filme 4K Blu-Ray");
AddCategoryMapping(20, TorznabCatType.MoviesBluRay , "Filme Blu-Ray");
AddCategoryMapping(2, TorznabCatType.MoviesDVD , "Filme DVD");
AddCategoryMapping(3, TorznabCatType.MoviesForeign , "Filme DVD-RO");
AddCategoryMapping(4, TorznabCatType.MoviesHD , "Filme HD");
AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime");
AddCategoryMapping(11, TorznabCatType.Audio, "Audio");
AddCategoryMapping(15, TorznabCatType.TV, "Desene");
AddCategoryMapping(18, TorznabCatType.Other, "Diverse");
AddCategoryMapping(16, TorznabCatType.Books, "Docs");
AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D");
AddCategoryMapping(6, TorznabCatType.MoviesHD, "Filme 4K");
AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray");
AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray");
AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Filme DVD");
AddCategoryMapping(3, TorznabCatType.MoviesForeign, "Filme DVD-RO");
AddCategoryMapping(4, TorznabCatType.MoviesHD, "Filme HD");
AddCategoryMapping(19, TorznabCatType.MoviesForeign, "Filme HD-RO");
AddCategoryMapping(1, TorznabCatType.MoviesSD , "Filme SD");
AddCategoryMapping(5, TorznabCatType.AudioLossless , "FLAC");
AddCategoryMapping(10, TorznabCatType.Console , "Jocuri Console");
AddCategoryMapping(9, TorznabCatType.PCGames , "Jocuri PC");
AddCategoryMapping(17, TorznabCatType.PC , "Linux");
AddCategoryMapping(22, TorznabCatType.PCPhoneOther , "Mobile");
AddCategoryMapping(8, TorznabCatType.PC , "Programe");
AddCategoryMapping(27, TorznabCatType.TVHD , "Seriale 4K");
AddCategoryMapping(21, TorznabCatType.TVHD , "Seriale HD");
AddCategoryMapping(23, TorznabCatType.TVSD , "Seriale SD");
AddCategoryMapping(13, TorznabCatType.TVSport , "Sport");
AddCategoryMapping(12, TorznabCatType.AudioVideo , "Videoclip");
AddCategoryMapping(7, TorznabCatType.XXX , "XXX");
AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD");
AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC");
AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console");
AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC");
AddCategoryMapping(17, TorznabCatType.PC, "Linux");
AddCategoryMapping(22, TorznabCatType.PCPhoneOther, "Mobile");
AddCategoryMapping(8, TorznabCatType.PC, "Programe");
AddCategoryMapping(27, TorznabCatType.TVHD, "Seriale 4K");
AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD");
AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD");
AddCategoryMapping(13, TorznabCatType.TVSport, "Sport");
AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip");
AddCategoryMapping(7, TorznabCatType.XXX, "XXX");
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -126,7 +122,7 @@ namespace Jackett.Indexers
searchUrl += "?" + queryCollection.GetQueryString();
var response = await RequestStringWithCookiesAndRetry(searchUrl, null, BrowseUrl);
// Occasionally the cookies become invalid, login again if that happens
if (response.IsRedirect)
{
@@ -151,7 +147,7 @@ namespace Jackett.Indexers
release.Title = longtitle;
if (query.ImdbID == null && !query.MatchQueryStringAND(release.Title))
continue;
continue;
release.Description = qRow.Find(".torrenttable:eq(1) > span > font.small").First().Text();
@@ -168,11 +164,11 @@ namespace Jackett.Indexers
release.Comments = release.Guid;
//22:05:3716/02/2013
var dateStr = qRow.Find(".torrenttable:eq(5)").Text().Trim()+" +0200";
var dateStr = qRow.Find(".torrenttable:eq(5)").Text().Trim() + " +0200";
release.PublishDate = DateTime.ParseExact(dateStr, "H:mm:ssdd/MM/yyyy zzz", CultureInfo.InvariantCulture);
var qLink = qRow.Find("a[href^=\"download.php?id=\"]").First();
release.Link = new Uri(SiteLink + qLink.Attr("href").Replace("&usetoken=1",""));
release.Link = new Uri(SiteLink + qLink.Attr("href").Replace("&usetoken=1", ""));
var sizeStr = qRow.Find(".torrenttable:eq(6)").Text().Trim();
release.Size = ReleaseInfo.GetBytes(sizeStr);

View File

@@ -1,16 +1,16 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Text;
using System.Collections.Generic;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
namespace Jackett.Indexers
{
@@ -19,7 +19,7 @@ namespace Jackett.Indexers
private string SearchUrl { get { return SiteLink + "browse.php"; } }
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -115,7 +115,7 @@ namespace Jackett.Indexers
var release = new ReleaseInfo();
release.MinimumRatio = 1;
release.MinimumSeedTime = 48 * 60 * 60;
var qRow = row.Cq();
var qCatLink = qRow.Find("a[href^=browse.php?cat=]").First();
var qDetailsLink = qRow.Find("a[href^=details.php?id=]").First();

View File

@@ -1,22 +1,20 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Threading;
namespace Jackett.Indexers
{
@@ -26,7 +24,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "login.php"; } }
private const int MAXPAGES = 3;
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -95,7 +93,6 @@ namespace Jackett.Indexers
AddCategoryMapping(74, TorznabCatType.PC, "תוכנות");
AddCategoryMapping(75, TorznabCatType.Audio, "שירים");
AddCategoryMapping(76, TorznabCatType.TV, "סדרות");
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -181,7 +178,7 @@ namespace Jackett.Indexers
foreach (var row in rows)
{
CQ qRow = row.Cq();
var release = new ReleaseInfo();
var main_title_link = qRow.Find("div.main_title > a");
release.Title = main_title_link.Attr("longtitle");
@@ -250,7 +247,6 @@ namespace Jackett.Indexers
var url = site + "/index.php?searchseriesid=&tab=listseries&function=Search&";
url += "string=" + searchTerm; // eretz + nehedert
var results = await RequestStringWithCookies(url);
CQ dom = results.Content;

View File

@@ -1,34 +1,31 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
namespace Jackett.Indexers
{
//
// Quick and dirty indexer for GFTracker.
//
// Quick and dirty indexer for GFTracker.
//
public class GFTracker : BaseWebIndexer
{
private string StartPageUrl { get { return SiteLink + "login.php?returnto=%2F"; } }
private string LoginUrl { get { return SiteLink + "loginsite.php"; } }
private string SearchUrl { get { return SiteLink + "browse.php"; } }
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -88,13 +85,14 @@ namespace Jackett.Indexers
CQ cq = loginPage.Content;
var result = this.configData;
CQ recaptcha = cq.Find(".g-recaptcha").Attr("data-sitekey");
if(recaptcha.Length != 0) // recaptcha not always present in login form, perhaps based on cloudflare uid or just phase of the moon
if (recaptcha.Length != 0) // recaptcha not always present in login form, perhaps based on cloudflare uid or just phase of the moon
{
result.CookieHeader.Value = loginPage.Cookies;
result.Captcha.SiteKey = cq.Find(".g-recaptcha").Attr("data-sitekey");
result.Captcha.Version = "2";
return result;
} else
}
else
{
var stdResult = new ConfigurationDataBasicLogin();
stdResult.SiteLink.Value = configData.SiteLink.Value;
@@ -102,7 +100,7 @@ namespace Jackett.Indexers
stdResult.Password.Value = configData.Password.Value;
stdResult.CookieHeader.Value = loginPage.Cookies;
return stdResult;
}
}
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -159,7 +157,7 @@ namespace Jackett.Indexers
var searchString = query.GetQueryString();
// search in normal + gems view
foreach (var view in new string[] {"0", "1"})
foreach (var view in new string[] { "0", "1" })
{
var queryCollection = new NameValueCollection();
@@ -230,7 +228,7 @@ namespace Jackett.Indexers
var desc = qRow.Find("td:nth-child(2)");
desc.Find("a").Remove();
desc.Find("small").Remove(); // Remove release name (if enabled in the user cp)
release.Description = desc.Text().Trim(new char[] {'-', ' '});
release.Description = desc.Text().Trim(new char[] { '-', ' ' });
releases.Add(release);
}

View File

@@ -1,27 +1,27 @@
using CsQuery;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
public class GhostCity : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "takelogin.php"; } }
string BrowsePage { get { return SiteLink + "browse.php"; } }
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string BrowsePage { get { return SiteLink + "browse.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }

View File

@@ -6,7 +6,6 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using CsQuery.ExtensionMethods.Internal;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
@@ -23,7 +22,7 @@ namespace Jackett.Indexers
private string BrowseUrl => SiteLink + "browse.php";
private string LoginUrl => SiteLink + "takelogin.php";
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -140,7 +139,7 @@ namespace Jackett.Indexers
var link = row.Cq().Find("td:eq(1) a:eq(0)").First();
release.Guid = new Uri(SiteLink + link.Attr("href"));
release.Comments = release.Guid;
release.Title = link.Text().Trim();
release.Title = link.Text().Trim();
release.Description = release.Title;
// If we search an get no results, we still get a table just with no info.

View File

@@ -1,18 +1,17 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AngleSharp.Parser.Html;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using AngleSharp.Parser.Html;
namespace Jackett.Indexers
{
@@ -22,7 +21,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string TakeLoginUrl { get { return SiteLink + "takelogin.php"; } }
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -46,8 +45,8 @@ namespace Jackett.Indexers
TorznabCaps.SupportsImdbSearch = true;
AddCategoryMapping(42, TorznabCatType.MoviesSD); // LEGi0N 480p
AddCategoryMapping(17, TorznabCatType.MoviesHD); // LEGi0N 720p
AddCategoryMapping(16, TorznabCatType.MoviesHD); // LEGi0N 1080p
AddCategoryMapping(17, TorznabCatType.MoviesHD); // LEGi0N 720p
AddCategoryMapping(16, TorznabCatType.MoviesHD); // LEGi0N 1080p
AddCategoryMapping(84, TorznabCatType.Movies3D); // LEGi0N 3D 1080p
AddCategoryMapping(31, TorznabCatType.MoviesOther); // LEGi0N REMUX
AddCategoryMapping(70, TorznabCatType.MoviesBluRay); // LEGi0N BD BD25 & BD50
@@ -61,7 +60,7 @@ namespace Jackett.Indexers
AddCategoryMapping(89, TorznabCatType.MoviesBluRay); // taterzero BD25
AddCategoryMapping(90, TorznabCatType.Movies3D); // taterzero 3D BD
AddCategoryMapping(39, TorznabCatType.MoviesBluRay); // Bluray REMUX
AddCategoryMapping(38, TorznabCatType.MoviesBluRay); // Bluray
AddCategoryMapping(38, TorznabCatType.MoviesBluRay); // Bluray
AddCategoryMapping(75, TorznabCatType.MoviesBluRay); // Bluray 25
AddCategoryMapping(36, TorznabCatType.MoviesHD); // Encodes 720p
AddCategoryMapping(35, TorznabCatType.MoviesHD); // Encodes 1080p
@@ -150,7 +149,7 @@ namespace Jackett.Indexers
errorMessage = result.Content;
throw new ExceptionWithConfigData(errorMessage, configData);
});
return IndexerConfigurationStatus.RequiresTesting;
}
@@ -278,7 +277,7 @@ namespace Jackett.Indexers
pairs.Add("visible", "1");
pairs.Add("uid", "-1");
pairs.Add("genre", "");
pairs.Add("cats", string.Join(",+", MapTorznabCapsToTrackers(query)));
if (query.ImdbID != null)
@@ -325,7 +324,7 @@ namespace Jackett.Indexers
release.Description = row["genre"].ToString();
var poster = row["poster"].ToString();
if(!string.IsNullOrWhiteSpace(poster))
if (!string.IsNullOrWhiteSpace(poster))
{
var posterurl = poster;
if (!poster.StartsWith("http"))
@@ -353,7 +352,6 @@ namespace Jackett.Indexers
release.UploadVolumeFactor = 1;
releases.Add(release);
}
}
catch (Exception ex)

View File

@@ -1,8 +1,8 @@
using Jackett.Models;
using NLog;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,11 +1,10 @@
using Jackett.Models;
using NLog;
using System.Collections.Generic;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Web;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,20 +1,19 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models;
using Newtonsoft.Json.Linq;
using Jackett.Utils.Clients;
using Jackett.Services;
using NLog;
using Jackett.Utils;
using CsQuery;
using System.Web;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
@@ -23,7 +22,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "index.php?page=login"; } }
private string SearchUrl { get { return SiteLink + "index.php?page=torrents&"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -60,20 +59,20 @@ namespace Jackett.Indexers
AddCategoryMapping(30, TorznabCatType.AudioLossless); // Music / Lossless
AddCategoryMapping(31, TorznabCatType.AudioVideo); // Music / Videos
AddMultiCategoryMapping(TorznabCatType.TVDocumentary,
24, // TV Show / Documentary / 720p
25 // TV Show / Documentary / 1080p
);
AddMultiCategoryMapping(TorznabCatType.XXX,
33, // XXX / 720p
34 // XXX / 1080p
);
AddCategoryMapping("37", TorznabCatType.PC);
AddCategoryMapping("38", TorznabCatType.Other);
}
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{

View File

@@ -1,21 +1,17 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
namespace Jackett.Indexers
{
@@ -26,7 +22,7 @@ namespace Jackett.Indexers
private const int MAXPAGES = 3;
public override string[] AlternativeSiteLinks { get; protected set; } = new string[] { "https://hdts.ru/", "https://hd-torrents.org/", "https://hd-torrents.net/", "https://hd-torrents.me/" };
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -108,13 +104,11 @@ namespace Jackett.Indexers
var queryCollection = new NameValueCollection();
var searchString = query.GetQueryString();
foreach (var cat in MapTorznabCapsToTrackers(query))
{
searchUrl += "category%5B%5D=" + cat + "&";
}
if (query.ImdbID != null)
{
queryCollection.Add("search", query.ImdbID);
@@ -124,14 +118,11 @@ namespace Jackett.Indexers
queryCollection.Add("search", searchString);
}
queryCollection.Add("active", "0");
queryCollection.Add("options", "0");
searchUrl += queryCollection.GetQueryString().Replace("(", "%28").Replace(")", "%29"); // maually url encode brackets to prevent "hacking" detection
var results = await RequestStringWithCookiesAndRetry(searchUrl);
try
{
@@ -161,7 +152,6 @@ namespace Jackett.Indexers
release.MinimumRatio = 1;
release.MinimumSeedTime = 172800;
// Sometimes the uploader column is missing
int seeders, peers;
if (ParseUtil.TryCoerceInt(qRow.Find("td:nth-last-child(3)").Text(), out seeders))
@@ -192,7 +182,7 @@ namespace Jackett.Indexers
release.UploadVolumeFactor = 1;
if (qRow.Find("img[alt=\"Free Torrent\"]").Length >= 1)
{
{
release.DownloadVolumeFactor = 0;
release.UploadVolumeFactor = 0;
}

View File

@@ -1,17 +1,17 @@
using Jackett.Models;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using Newtonsoft.Json;
using System.Globalization;
namespace Jackett.Indexers
{
@@ -20,7 +20,7 @@ namespace Jackett.Indexers
private string SearchUrl { get { return SiteLink + "api/v1/torrents"; } }
private string LoginUrl { get { return SiteLink + "api/v1/auth"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -91,7 +91,7 @@ namespace Jackett.Indexers
//var json = JArray.Parse(results.Content);
dynamic json = JsonConvert.DeserializeObject<dynamic>(results.Content);
if (json != null) // no results
{
{
foreach (var row in json)
{
var release = new ReleaseInfo();

View File

@@ -1,18 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Text.RegularExpressions;
using System.Text;
namespace Jackett.Indexers
{
@@ -22,7 +22,7 @@ namespace Jackett.Indexers
private string LoginPostUrl { get { return SiteLink + "takeloginAjax.php"; } }
private string SearchUrl { get { return SiteLink + "browse.php?sort=4&type=desc"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -117,7 +117,7 @@ namespace Jackett.Indexers
release.MinimumSeedTime = 172800;
var titleParts = qRow.Find(".bTitle").Text().Split('/');
if (titleParts.Length >= 2)
if (titleParts.Length >= 2)
release.Title = titleParts[1].Trim();
else
release.Title = titleParts[0].Trim();
@@ -161,7 +161,6 @@ namespace Jackett.Indexers
releases.Add(release);
}
}
catch (Exception ex)
{
OnParseError(response.Content, ex);

View File

@@ -1,25 +1,19 @@
using CsQuery;
using Jackett.Indexers;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI.WebControls;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text.RegularExpressions;
namespace Jackett.Indexers
{
@@ -28,7 +22,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string SearchUrl { get { return SiteLink + "torrents.php"; } }
new NxtGnConfigurationData configData
private new NxtGnConfigurationData configData
{
get { return (NxtGnConfigurationData)base.configData; }
set { base.configData = value; }
@@ -92,7 +86,6 @@ namespace Jackett.Indexers
{ "password", configData.Password.Value },
{ "keeplogged", "1" },
{ "login", "Login" }
};
// Get inital cookies
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, "https://hounddawgs.org/");
@@ -226,6 +219,7 @@ namespace Jackett.Indexers
return releases;
}
public class NxtGnConfigurationData : ConfigurationData
{
public NxtGnConfigurationData()
@@ -233,6 +227,7 @@ namespace Jackett.Indexers
Username = new StringItem { Name = "Username" };
Password = new StringItem { Name = "Password" };
}
public StringItem Username { get; private set; }
public StringItem Password { get; private set; }
}

View File

@@ -1,19 +1,19 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Globalization;
using System.Text.RegularExpressions;
namespace Jackett.Indexers
{
@@ -23,7 +23,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string CaptchaUrl { get { return SiteLink + "simpleCaptcha.php?numImages=1"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -52,7 +52,7 @@ namespace Jackett.Indexers
AddCategoryMapping(40, TorznabCatType.MoviesForeign); // Foreign/Spanish
AddCategoryMapping(41, TorznabCatType.MoviesForeign); // Foreign/Swedish
AddCategoryMapping(67, TorznabCatType.ConsoleNDS); // Games/Nintendo
AddCategoryMapping(9 , TorznabCatType.PCGames); // Games/PC
AddCategoryMapping(9, TorznabCatType.PCGames); // Games/PC
AddCategoryMapping(8, TorznabCatType.ConsolePS3); // Games/PS3
AddCategoryMapping(30, TorznabCatType.ConsolePS4); // Games/PS4
AddCategoryMapping(7, TorznabCatType.ConsolePSP); // Games/PSP
@@ -220,7 +220,7 @@ namespace Jackett.Indexers
release.Grabs = ParseUtil.CoerceInt(grabs.Split('<')[0]);
release.DownloadVolumeFactor = 0; // ratioless
release.UploadVolumeFactor = 1;
releases.Add(release);

View File

@@ -1,12 +1,9 @@
using Jackett.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace Jackett.Indexers
{
@@ -47,6 +44,7 @@ namespace Jackett.Indexers
// Called on startup when initializing indexers from saved configuration
void LoadFromSavedConfiguration(JToken jsonConfig);
void SaveConfig();
void Unconfigure();

View File

@@ -1,29 +1,27 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
namespace Jackett.Indexers
{
public class IPTorrents : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "login.php"; } }
string TakeLoginUrl { get { return SiteLink + "take_login.php"; } }
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string TakeLoginUrl { get { return SiteLink + "take_login.php"; } }
private string BrowseUrl { get { return SiteLink + "t"; } }
public override string[] AlternativeSiteLinks { get; protected set; } = new string[] {
"https://iptorrents.com/",
"https://ipt-update.com/",
@@ -38,7 +36,7 @@ namespace Jackett.Indexers
"http://baywatch.workisboring.com/",
};
new ConfigurationDataRecaptchaLogin configData
private new ConfigurationDataRecaptchaLogin configData
{
get { return (ConfigurationDataRecaptchaLogin)base.configData; }
set { base.configData = value; }
@@ -139,7 +137,7 @@ namespace Jackett.Indexers
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
CQ cq = loginPage.Content;
var captcha = cq.Find(".g-recaptcha");
if(captcha.Any())
if (captcha.Any())
{
var result = this.configData;
result.CookieHeader.Value = loginPage.Cookies;
@@ -159,8 +157,6 @@ namespace Jackett.Indexers
}
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
@@ -292,7 +288,7 @@ namespace Jackett.Indexers
var grabs = row.Cq().Find("td:nth-last-child(3)").Text();
release.Grabs = ParseUtil.CoerceInt(grabs);
if(row.Cq().Find("span.t_tag_free_leech").Any())
if (row.Cq().Find("span.t_tag_free_leech").Any())
release.DownloadVolumeFactor = 0;
else
release.DownloadVolumeFactor = 1;

View File

@@ -1,20 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
namespace Jackett.Indexers
{
@@ -24,7 +22,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string QueryString { get { return "?do=search&keywords={0}&search_type=t_name&category=0&include_dead_torrents=no"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -68,7 +66,6 @@ namespace Jackett.Indexers
AddCategoryMapping(37, TorznabCatType.AudioLossless);
AddCategoryMapping(35, TorznabCatType.AudioAudiobook);
AddCategoryMapping(36, TorznabCatType.AudioMP3);
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -179,7 +176,5 @@ namespace Jackett.Indexers
return releases;
}
}
}

View File

@@ -1,9 +1,4 @@
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
@@ -14,8 +9,13 @@ using System.Web;
using AngleSharp.Dom;
using AngleSharp.Parser.Html;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
namespace Jackett.Indexers
{
@@ -26,7 +26,7 @@ namespace Jackett.Indexers
private string DownloadUrl => SiteLink + "torrents.php?action=download&id=";
private string GuidUrl => SiteLink + "torrents.php?torrentid=";
private ConfigurationDataBasicLogin ConfigData => (ConfigurationDataBasicLogin) configData;
private ConfigurationDataBasicLogin ConfigData => (ConfigurationDataBasicLogin)configData;
public MoreThanTV(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
: base(name: "MoreThanTV",

View File

@@ -1,23 +1,17 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Globalization;
namespace Jackett.Indexers
{
@@ -26,7 +20,7 @@ namespace Jackett.Indexers
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
private string SearchUrl { get { return SiteLink + "tor/js/loadSearch2.php"; } }
new ConfigurationDataBasicLogin configData
private new ConfigurationDataBasicLogin configData
{
get { return (ConfigurationDataBasicLogin)base.configData; }
set { base.configData = value; }
@@ -128,7 +122,6 @@ namespace Jackett.Indexers
AddCategoryMapping("109", TorznabCatType.BooksEbook);
AddCategoryMapping("70", TorznabCatType.BooksEbook);
AddCategoryMapping("112", TorznabCatType.BooksEbook);
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -201,9 +194,9 @@ namespace Jackett.Indexers
string tid = torrentData.Attr("id").Substring(4);
var qTitle = torrentData.Find("a[class='title']").First();
string title = qTitle.Text().Trim();
var details = new Uri(SiteLink + qTitle.Attr("href"));
var details = new Uri(SiteLink + qTitle.Attr("href"));
string author = torrentData.Find("a[class='author']").First().Text().Trim();
Uri link = new Uri(SiteLink + "tor/download.php?tid="+tid); // DL Link is no long available directly, build it ourself
Uri link = new Uri(SiteLink + "tor/download.php?tid=" + tid); // DL Link is no long available directly, build it ourself
long files = ParseUtil.CoerceLong(cells.Elements.ElementAt(4).Cq().Find("a").Text());
long size = ReleaseInfo.GetBytes(cells.Elements.ElementAt(4).Cq().Text().Split('[')[1].TrimEnd(']'));
int seeders = ParseUtil.CoerceInt(cells.Elements.ElementAt(6).Cq().Find("p").ElementAt(0).Cq().Text());
@@ -218,7 +211,6 @@ namespace Jackett.Indexers
string cat = torrentData.Find("a[class='newCatLink']").First().Attr("href").Remove(0, "/tor/browse.php?tor[cat][]]=".Length);
long.TryParse(cat, out category);
var release = new ReleaseInfo();
release.Title = String.IsNullOrEmpty(author) ? title : String.Format("{0} by {1}", title, author);

View File

@@ -1,18 +1,18 @@
using CsQuery;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig.Bespoke;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Jackett.Models.IndexerConfig.Bespoke;
using System.Text.RegularExpressions;
namespace Jackett.Indexers
{
@@ -22,7 +22,7 @@ namespace Jackett.Indexers
private string SearchUrl { get { return SiteLink + "torrents.php"; } }
private string[] LanguageCats = new string[] { "xvidser", "dvdser", "hdser", "xvid", "dvd", "dvd9", "hd", "mp3", "lossless", "ebook" };
new ConfigurationDataNCore configData
private new ConfigurationDataNCore configData
{
get { return (ConfigurationDataNCore)base.configData; }
set { base.configData = value; }
@@ -44,7 +44,7 @@ namespace Jackett.Indexers
Type = "private";
AddCategoryMapping("xvid_hun", TorznabCatType.MoviesSD, "Film SD/HU");
AddCategoryMapping("xvid", TorznabCatType.MoviesSD , "Film SD/EN");
AddCategoryMapping("xvid", TorznabCatType.MoviesSD, "Film SD/EN");
AddCategoryMapping("dvd_hun", TorznabCatType.MoviesDVD, "Film DVDR/HU");
AddCategoryMapping("dvd", TorznabCatType.MoviesDVD, "Film DVDR/EN");
AddCategoryMapping("dvd9_hun", TorznabCatType.MoviesDVD, "Film DVD9/HU");
@@ -52,34 +52,34 @@ namespace Jackett.Indexers
AddCategoryMapping("hd_hun", TorznabCatType.MoviesHD, "Film HD/HU");
AddCategoryMapping("hd", TorznabCatType.MoviesHD, "Film HD/EN");
AddCategoryMapping("xvidser_hun", TorznabCatType.TVSD , "Sorozat SD/HU");
AddCategoryMapping("xvidser", TorznabCatType.TVSD , "Sorozat SD/EN");
AddCategoryMapping("dvdser_hun", TorznabCatType.TVSD , "Sorozat DVDR/HU");
AddCategoryMapping("xvidser_hun", TorznabCatType.TVSD, "Sorozat SD/HU");
AddCategoryMapping("xvidser", TorznabCatType.TVSD, "Sorozat SD/EN");
AddCategoryMapping("dvdser_hun", TorznabCatType.TVSD, "Sorozat DVDR/HU");
AddCategoryMapping("dvdser", TorznabCatType.TVSD, "Sorozat DVDR/EN");
AddCategoryMapping("hdser_hun", TorznabCatType.TVHD, "Sorozat HD/HU");
AddCategoryMapping("hdser", TorznabCatType.TVHD , "Sorozat HD/EN");
AddCategoryMapping("hdser", TorznabCatType.TVHD, "Sorozat HD/EN");
AddCategoryMapping("mp3_hun", TorznabCatType.AudioMP3 , "Zene MP3/HU");
AddCategoryMapping("mp3_hun", TorznabCatType.AudioMP3, "Zene MP3/HU");
AddCategoryMapping("mp3", TorznabCatType.AudioMP3, "Zene MP3/EN");
AddCategoryMapping("lossless_hun", TorznabCatType.AudioLossless, "Zene Lossless/HU");
AddCategoryMapping("lossless", TorznabCatType.AudioLossless, "Zene Lossless/EN");
AddCategoryMapping("clip", TorznabCatType.AudioVideo , "Zene Klip");
AddCategoryMapping("clip", TorznabCatType.AudioVideo, "Zene Klip");
AddCategoryMapping("xxx_xvid", TorznabCatType.XXXXviD , "XXX SD");
AddCategoryMapping("xxx_xvid", TorznabCatType.XXXXviD, "XXX SD");
AddCategoryMapping("xxx_dvd", TorznabCatType.XXXDVD, "XXX DVDR");
AddCategoryMapping("xxx_imageset", TorznabCatType.XXXImageset , "XXX Imageset");
AddCategoryMapping("xxx_hd", TorznabCatType.XXX , "XXX HD");
AddCategoryMapping("xxx_imageset", TorznabCatType.XXXImageset, "XXX Imageset");
AddCategoryMapping("xxx_hd", TorznabCatType.XXX, "XXX HD");
AddCategoryMapping("game_iso", TorznabCatType.PCGames , "Játék PC/ISO");
AddCategoryMapping("game_rip", TorznabCatType.PCGames , "Játék PC/RIP");
AddCategoryMapping("console", TorznabCatType.Console , "Játék Konzol");
AddCategoryMapping("game_iso", TorznabCatType.PCGames, "Játék PC/ISO");
AddCategoryMapping("game_rip", TorznabCatType.PCGames, "Játék PC/RIP");
AddCategoryMapping("console", TorznabCatType.Console, "Játék Konzol");
AddCategoryMapping("iso", TorznabCatType.PCISO , "Program Prog/ISO");
AddCategoryMapping("misc", TorznabCatType.PC0day , "Program Prog/RIP");
AddCategoryMapping("mobil", TorznabCatType.PCPhoneOther , "Program Prog/Mobil");
AddCategoryMapping("iso", TorznabCatType.PCISO, "Program Prog/ISO");
AddCategoryMapping("misc", TorznabCatType.PC0day, "Program Prog/RIP");
AddCategoryMapping("mobil", TorznabCatType.PCPhoneOther, "Program Prog/Mobil");
AddCategoryMapping("ebook_hun", TorznabCatType.Books , "Könyv eBook/HU");
AddCategoryMapping("ebook", TorznabCatType.Books , "Könyv eBook/EN");
AddCategoryMapping("ebook_hun", TorznabCatType.Books, "Könyv eBook/HU");
AddCategoryMapping("ebook", TorznabCatType.Books, "Könyv eBook/EN");
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -143,7 +143,7 @@ namespace Jackett.Indexers
if (!configData.English.Value)
cats.Remove(lcat);
}
foreach (var cat in cats)
{
pairs.Add(new KeyValuePair<string, string>("kivalasztott_tipus[]", cat));
@@ -162,7 +162,7 @@ namespace Jackett.Indexers
{
CQ qRow = row.Cq();
var key = dom ["link[rel=alternate]"].First().Attr("href").Split('=').Last();
var key = dom["link[rel=alternate]"].First().Attr("href").Split('=').Last();
release = new ReleaseInfo();
var torrentTxt = qRow.Find(".torrent_txt, .torrent_txt2").Find("a").Get(0);
@@ -209,6 +209,5 @@ namespace Jackett.Indexers
return releases;
}
}
}

View File

@@ -1,26 +1,26 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using CsQuery;
using System;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text;
using NLog;
namespace Jackett.Indexers
{
public class NewRealWorld : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "login.php"; } }
string BrowseUrl { get { return SiteLink + "browse.php"; } }
private string LoginUrl { get { return SiteLink + "login.php"; } }
private string BrowseUrl { get { return SiteLink + "browse.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -126,7 +126,7 @@ namespace Jackett.Indexers
TimeZoneInfo germanyTz = TimeZoneInfo.CreateCustomTimeZone("W. Europe Standard Time", new TimeSpan(1, 0, 0), "(GMT+01:00) W. Europe Standard Time", "W. Europe Standard Time", "W. Europe DST Time", adjustments);
var releases = new List<ReleaseInfo>();
var searchString = query.GetQueryString();
var searchUrl = BrowseUrl;
var queryCollection = new NameValueCollection();
@@ -188,7 +188,7 @@ namespace Jackett.Indexers
release.Category = MapTrackerCatToNewznab(catStr);
var dlLink = qDownloadLink.Attr("href");
if(dlLink.Contains("javascript")) // depending on the user agent the DL link is a javascript call
if (dlLink.Contains("javascript")) // depending on the user agent the DL link is a javascript call
{
var dlLinkParts = dlLink.Split(new char[] { '\'', ',' });
dlLink = SiteLink + "download/" + dlLinkParts[3] + "/" + dlLinkParts[5];
@@ -230,4 +230,3 @@ namespace Jackett.Indexers
}
}
}

View File

@@ -2,8 +2,10 @@
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CsQuery;
@@ -15,8 +17,6 @@ using Jackett.Utils.Clients;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using System.Text;
using System.IO;
namespace Jackett.Indexers
{
@@ -99,7 +99,6 @@ namespace Jackett.Indexers
// If we want to simulate a browser
if (ConfigData.Browser.Value)
{
// Clean headers
_emulatedBrowserHeaders.Clear();
@@ -304,7 +303,7 @@ namespace Jackett.Indexers
{
Output("Torrent #" + (releases.Count + 1));
// ID
// ID
var id = tRow.Find("td:eq(1) > a:eq(0)").Attr("href").Split('=').Last();
Output("ID: " + id);
@@ -423,7 +422,6 @@ namespace Jackett.Indexers
releases.Add(release);
}
}
catch (Exception ex)
{
@@ -650,7 +648,6 @@ namespace Jackett.Indexers
/// <returns></returns>
public override async Task<byte[]> Download(Uri link)
{
// Retrieving ID from link provided
var id = ParseUtil.CoerceInt(Regex.Match(link.AbsoluteUri, @"\d+").Value);
Output("Torrent Requested ID: " + id);
@@ -704,9 +701,11 @@ namespace Jackett.Indexers
logger.Debug(message);
}
break;
case "info":
logger.Info(message);
break;
case "error":
logger.Error(message);
break;

View File

@@ -1,8 +1,8 @@
using Jackett.Models;
using NLog;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using NLog;
namespace Jackett.Indexers
{

View File

@@ -1,26 +1,26 @@
using Jackett.Utils.Clients;
using NLog;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using CsQuery;
using Jackett.Models;
using Jackett.Models.IndexerConfig;
using Jackett.Services;
using Jackett.Utils;
using Jackett.Models;
using System.Threading.Tasks;
using Jackett.Utils.Clients;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using CsQuery;
using System;
using System.Globalization;
using Jackett.Models.IndexerConfig;
using System.Collections.Specialized;
using System.Text;
using NLog;
namespace Jackett.Indexers
{
public class myAmity : BaseWebIndexer
{
string LoginUrl { get { return SiteLink + "account-login.php"; } }
string BrowseUrl { get { return SiteLink + "torrents-search.php"; } }
private string LoginUrl { get { return SiteLink + "account-login.php"; } }
private string BrowseUrl { get { return SiteLink + "torrents-search.php"; } }
new ConfigurationDataBasicLoginWithRSSAndDisplay configData
private new ConfigurationDataBasicLoginWithRSSAndDisplay configData
{
get { return (ConfigurationDataBasicLoginWithRSSAndDisplay)base.configData; }
set { base.configData = value; }
@@ -92,7 +92,7 @@ namespace Jackett.Indexers
TimeZoneInfo germanyTz = TimeZoneInfo.CreateCustomTimeZone("W. Europe Standard Time", new TimeSpan(1, 0, 0), "(GMT+01:00) W. Europe Standard Time", "W. Europe Standard Time", "W. Europe DST Time", adjustments);
var releases = new List<ReleaseInfo>();
var searchString = query.GetQueryString();
var searchUrl = BrowseUrl;
var queryCollection = new NameValueCollection();
@@ -188,4 +188,3 @@ namespace Jackett.Indexers
}
}
}

View File

@@ -1,9 +1,9 @@
using Jackett.Models;
using NLog;
using System.Collections.Generic;
using Jackett.Indexers.Abstract;
using Jackett.Models;
using Jackett.Services;
using Jackett.Utils.Clients;
using Jackett.Indexers.Abstract;
using System.Collections.Generic;
using NLog;
namespace Jackett.Indexers
{