mirror of https://github.com/Jackett/Jackett
Feature/netcore preparation (#2072)
* Use platform detection that works on mono 4.6+ * Move to use package reference for restoring nuget packages. * DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency. * Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required * Move out common libraries * Few more tidy up tasks to get things working with .NET Standard * Restructure the solution layout * Encoding work to reduce rework later on platforms without Windows codepages (or require compliance with RFC1345) * Move folder structure around to have more natural layout of the solutions * DI server configuration to get rid of "temporary" hack and dependency circle for serverservice * Make all encoding consistent to match the expected encoding casing for earlier versions of mono.
This commit is contained in:
parent
47a2ffa313
commit
571c52a0f2
|
@ -295,7 +295,9 @@ namespace CurlSharp
|
|||
_multiInfo = null;
|
||||
throw new NotImplementedException("CurlMulti.InfoRead()");
|
||||
#endif
|
||||
#pragma warning disable CS0162 // Unreachable code detected when not compiling with the shim
|
||||
return _multiInfo;
|
||||
#pragma warning restore CS0162 // Unreachable code detected when not compiling with the shim
|
||||
}
|
||||
}
|
||||
}
|
|
@ -10,6 +10,7 @@ using System.Net.Http.Headers;
|
|||
using Jackett.Utils;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using Jacket.Common;
|
||||
|
||||
namespace Jackett
|
||||
{
|
||||
|
@ -138,7 +139,7 @@ namespace Jackett
|
|||
}
|
||||
}
|
||||
|
||||
if (Startup.DoSSLFix == true)
|
||||
if (JackettStartup.DoSSLFix == true)
|
||||
{
|
||||
// http://stackoverflow.com/questions/31107851/how-to-fix-curl-35-cannot-communicate-securely-with-peer-no-common-encryptio
|
||||
// https://git.fedorahosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html
|
||||
|
@ -147,16 +148,16 @@ namespace Jackett
|
|||
easy.ForbidReuse = true;
|
||||
}
|
||||
|
||||
if (Startup.IgnoreSslErrors == true)
|
||||
if (JackettStartup.IgnoreSslErrors == true)
|
||||
{
|
||||
easy.SetOpt(CurlOption.SslVerifyhost, false);
|
||||
easy.SetOpt(CurlOption.SslVerifyPeer, false);
|
||||
}
|
||||
|
||||
if (Engine.Server.Config.Proxy != null)
|
||||
if (JackettStartup.ProxyConnection != null)
|
||||
{
|
||||
easy.SetOpt(CurlOption.HttpProxyTunnel, 1);
|
||||
easy.SetOpt(CurlOption.Proxy, Engine.Server.Config.Proxy);
|
||||
easy.SetOpt(CurlOption.Proxy, JackettStartup.ProxyConnection);
|
||||
}
|
||||
|
||||
easy.Perform();
|
||||
|
@ -173,7 +174,7 @@ namespace Jackett
|
|||
|
||||
var headerBytes = Combine(headerBuffers.ToArray());
|
||||
var headerString = Encoding.UTF8.GetString(headerBytes);
|
||||
if (Startup.ProxyConnection != null)
|
||||
if (JackettStartup.ProxyConnection != null)
|
||||
{
|
||||
var firstcrlf = headerString.IndexOf("\r\n\r\n");
|
||||
var secondcrlf = headerString.IndexOf("\r\n\r\n", firstcrlf + 1);
|
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
|
||||
namespace Jacket.Common.Helpers
|
||||
{
|
||||
public static class WebUtilityHelpers
|
||||
{
|
||||
public static string UrlEncode(string searchString, Encoding encoding)
|
||||
{
|
||||
if (string.IsNullOrEmpty(searchString))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
byte[] bytes = encoding.GetBytes(searchString);
|
||||
return encoding.GetString(WebUtility.UrlEncodeToBytes(bytes, 0, bytes.Length));
|
||||
}
|
||||
|
||||
public static string UrlDecode(string searchString, Encoding encoding)
|
||||
{
|
||||
if (string.IsNullOrEmpty(searchString))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var inputBytes = encoding.GetBytes(searchString);
|
||||
return encoding.GetString(WebUtility.UrlDecodeToBytes(inputBytes, 0, inputBytes.Length));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace Jackett
|
||||
{
|
||||
class IndexerException : Exception
|
||||
public class IndexerException : Exception
|
||||
{
|
||||
public IIndexer Indexer { get; protected set; }
|
||||
|
|
@ -25,7 +25,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public SevenTor(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public SevenTor(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "7tor",
|
||||
description: "7Tor is a RUSSIAN Semi-Private site for MOVIES / TV / GENERAL",
|
||||
link: "https://7tor.org/",
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
@ -44,7 +45,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Abnormal(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Abnormal(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l, IProtectionService ps)
|
||||
: base(
|
||||
name: "Abnormal",
|
||||
description: "General French Private Tracker",
|
||||
|
@ -411,12 +412,12 @@ namespace Jackett.Indexers
|
|||
if (categoriesList.Last() == category)
|
||||
{
|
||||
// Adding previous categories to URL with latest category
|
||||
parameters.Add(Uri.EscapeDataString("cat[]"), HttpUtility.UrlEncode(category) + categories);
|
||||
parameters.Add(Uri.EscapeDataString("cat[]"), WebUtility.UrlEncode(category) + categories);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Build categories parameter
|
||||
categories += "&" + Uri.EscapeDataString("cat[]") + "=" + HttpUtility.UrlEncode(category);
|
||||
categories += "&" + Uri.EscapeDataString("cat[]") + "=" + WebUtility.UrlEncode(category);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -424,11 +425,11 @@ namespace Jackett.Indexers
|
|||
if (!string.IsNullOrWhiteSpace(term))
|
||||
{
|
||||
// Add search term
|
||||
parameters.Add("search", HttpUtility.UrlEncode(term));
|
||||
parameters.Add("search", WebUtility.UrlEncode(term));
|
||||
}
|
||||
else
|
||||
{
|
||||
parameters.Add("search", HttpUtility.UrlEncode("%"));
|
||||
parameters.Add("search", WebUtility.UrlEncode("%"));
|
||||
// Showing all torrents (just for output function)
|
||||
term = "all";
|
||||
}
|
||||
|
@ -733,7 +734,7 @@ namespace Jackett.Indexers
|
|||
goto case "debug";
|
||||
case "debug":
|
||||
// Only if Debug Level Enabled on Jackett
|
||||
if (Engine.Logger.IsDebugEnabled)
|
||||
if (logger.IsDebugEnabled)
|
||||
{
|
||||
logger.Debug(message);
|
||||
}
|
|
@ -13,6 +13,7 @@ using Jackett.Utils.Clients;
|
|||
using System.Text.RegularExpressions;
|
||||
using Jackett.Models.IndexerConfig;
|
||||
using Jackett.Services.Interfaces;
|
||||
using System.Net;
|
||||
|
||||
namespace Jackett.Indexers
|
||||
{
|
||||
|
@ -27,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public AvistazTracker(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService, string name, string desc, string link)
|
||||
public AvistazTracker(IIndexerConfigurationService configService, Utils.Clients.WebClient webClient, Logger logger, IProtectionService protectionService, string name, string desc, string link)
|
||||
: base(name: name,
|
||||
description: desc,
|
||||
link: link,
|
||||
|
@ -38,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: protectionService,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
|
||||
AddCategoryMapping(1, TorznabCatType.Movies);
|
||||
|
@ -85,7 +86,7 @@ namespace Jackett.Indexers
|
|||
}
|
||||
|
||||
|
||||
var episodeSearchUrl = string.Format(SearchUrl, category, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
var episodeSearchUrl = string.Format(SearchUrl, category, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
|
||||
var response = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
|
||||
if (response.IsRedirect)
|
|
@ -24,7 +24,7 @@ namespace Jackett.Indexers.Abstract
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public CouchPotatoTracker(IIndexerConfigurationService configService, IWebClient client, Logger logger, IProtectionService p, ConfigurationDataUserPasskey configData, string name, string description, string link, string endpoint)
|
||||
public CouchPotatoTracker(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p, ConfigurationDataUserPasskey configData, string name, string description, string link, string endpoint)
|
||||
: base(name: name,
|
||||
description: description,
|
||||
link: link,
|
|
@ -14,6 +14,7 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using System.Net;
|
||||
|
||||
namespace Jackett.Indexers.Abstract
|
||||
{
|
||||
|
@ -30,7 +31,7 @@ namespace Jackett.Indexers.Abstract
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public GazelleTracker(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService, string name, string desc, string link)
|
||||
public GazelleTracker(IIndexerConfigurationService configService, Utils.Clients.WebClient webClient, Logger logger, IProtectionService protectionService, string name, string desc, string link)
|
||||
: base(name: name,
|
||||
description: desc,
|
||||
link: link,
|
||||
|
@ -41,7 +42,7 @@ namespace Jackett.Indexers.Abstract
|
|||
p: protectionService,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
|
@ -120,8 +121,8 @@ namespace Jackett.Indexers.Abstract
|
|||
foreach (JObject r in json["response"]["results"])
|
||||
{
|
||||
var groupTime = DateTimeUtil.UnixTimestampToDateTime(long.Parse((string)r["groupTime"]));
|
||||
var groupName = HttpUtility.HtmlDecode((string)r["groupName"]);
|
||||
var artist = HttpUtility.HtmlDecode((string)r["artist"]);
|
||||
var groupName = WebUtility.HtmlDecode((string)r["groupName"]);
|
||||
var artist = WebUtility.HtmlDecode((string)r["artist"]);
|
||||
var cover = (string)r["cover"];
|
||||
var tags = r["tags"].ToList();
|
||||
var groupYear = (string)r["groupYear"];
|
||||
|
@ -192,7 +193,7 @@ namespace Jackett.Indexers.Abstract
|
|||
|
||||
var format = (string)torrent["format"];
|
||||
if (!string.IsNullOrEmpty(format))
|
||||
flags.Add(HttpUtility.HtmlDecode(format));
|
||||
flags.Add(WebUtility.HtmlDecode(format));
|
||||
|
||||
var encoding = (string)torrent["encoding"];
|
||||
if (!string.IsNullOrEmpty(encoding))
|
||||
|
@ -214,7 +215,7 @@ namespace Jackett.Indexers.Abstract
|
|||
if (torrent["remastered"] != null && (bool)torrent["remastered"])
|
||||
{
|
||||
var remasterYear = (string)torrent["remasterYear"];
|
||||
var remasterTitle = HttpUtility.HtmlDecode((string)torrent["remasterTitle"]);
|
||||
var remasterTitle = WebUtility.HtmlDecode((string)torrent["remasterTitle"]);
|
||||
flags.Add(remasterYear + (!string.IsNullOrEmpty(remasterTitle) ? " " + remasterTitle : ""));
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class AlphaRatio : GazelleTracker
|
||||
{
|
||||
public AlphaRatio(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public AlphaRatio(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "AlphaRatio",
|
||||
desc: "AlphaRatio (AR) is a Private Torrent Tracker for 0DAY / GENERAL",
|
||||
link: "https://alpharatio.cc/",
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Andraste(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Andraste(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Andraste",
|
||||
description: "A German general tracker.",
|
||||
link: "https://andraste.io/",
|
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public AnimeBytes(IIndexerConfigurationService configService, IWebClient client, Logger l, IProtectionService ps)
|
||||
public AnimeBytes(IIndexerConfigurationService configService, Utils.Clients.WebClient client, Logger l, IProtectionService ps)
|
||||
: base(name: "AnimeBytes",
|
||||
link: "https://animebytes.tv/",
|
||||
description: "Powered by Tentacles",
|
||||
|
@ -58,7 +58,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataAnimeBytes())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
||||
|
@ -165,7 +165,7 @@ namespace Jackett.Indexers
|
|||
|
||||
private async Task<IEnumerable<ReleaseInfo>> GetResults(TorznabQuery query, SearchType searchType, string searchTerm)
|
||||
{
|
||||
var cleanSearchTerm = HttpUtility.UrlEncode(searchTerm);
|
||||
var cleanSearchTerm = WebUtility.UrlEncode(searchTerm);
|
||||
|
||||
// The result list
|
||||
var releases = new List<ReleaseInfo>();
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public AnimeTorrents(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public AnimeTorrents(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "AnimeTorrents",
|
||||
description: "Definitive source for anime and manga",
|
||||
link: "https://animetorrents.me/",
|
||||
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -6,7 +6,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class Avistaz : AvistazTracker
|
||||
{
|
||||
public Avistaz(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public Avistaz(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "Avistaz",
|
||||
desc: "Aka AsiaTorrents",
|
||||
link: "https://avistaz.to/",
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BB(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public BB(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "bB",
|
||||
description: "BaconBits (bB) is a Private Torrent Tracker for 0DAY / GENERAL",
|
||||
link: StringUtil.FromBase64("aHR0cHM6Ly9iYWNvbmJpdHMub3JnLw=="),
|
||||
|
@ -42,7 +42,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BJShare(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public BJShare(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "BJ-Share",
|
||||
description: "A brazilian tracker.",
|
||||
link: "https://bj-share.me/",
|
||||
|
@ -40,7 +40,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "pt-br";
|
||||
Type = "private";
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -26,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BakaBT(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public BakaBT(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "BakaBT",
|
||||
description: "Anime Comunity",
|
||||
link: "https://bakabt.me/",
|
||||
|
@ -83,7 +84,7 @@ namespace Jackett.Indexers
|
|||
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var searchString = query.SanitizedSearchTerm;
|
||||
var episodeSearchUrl = SearchUrl + HttpUtility.UrlEncode(searchString);
|
||||
var episodeSearchUrl = SearchUrl + WebUtility.UrlEncode(searchString);
|
||||
var response = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
|
||||
|
||||
try
|
|
@ -260,7 +260,7 @@ namespace Jackett.Indexers
|
|||
|
||||
public abstract class BaseWebIndexer : BaseIndexer, IWebIndexer
|
||||
{
|
||||
protected BaseWebIndexer(string name, string link, string description, IIndexerConfigurationService configService, IWebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null)
|
||||
protected BaseWebIndexer(string name, string link, string description, IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null)
|
||||
: base(name, link, description, configService, logger, configData, p)
|
||||
{
|
||||
this.webclient = client;
|
||||
|
@ -272,7 +272,7 @@ namespace Jackett.Indexers
|
|||
}
|
||||
|
||||
// minimal constructor used by e.g. cardigann generic indexer
|
||||
protected BaseWebIndexer(IIndexerConfigurationService configService, IWebClient client, Logger logger, IProtectionService p)
|
||||
protected BaseWebIndexer(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p)
|
||||
: base("", "/", "", configService, logger, null, p)
|
||||
{
|
||||
this.webclient = client;
|
||||
|
@ -739,13 +739,13 @@ namespace Jackett.Indexers
|
|||
public Encoding Encoding { get; protected set; }
|
||||
|
||||
private List<CategoryMapping> categoryMapping = new List<CategoryMapping>();
|
||||
protected IWebClient webclient;
|
||||
protected WebClient webclient;
|
||||
protected readonly string downloadUrlBase = "";
|
||||
}
|
||||
|
||||
public abstract class BaseCachingWebIndexer : BaseWebIndexer
|
||||
{
|
||||
protected BaseCachingWebIndexer(string name, string link, string description, IIndexerConfigurationService configService, IWebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null)
|
||||
protected BaseCachingWebIndexer(string name, string link, string description, IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null)
|
||||
: base(name, link, description, configService, client, logger, configData, p, caps, downloadBase)
|
||||
{
|
||||
}
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BeyondHD(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public BeyondHD(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "BeyondHD",
|
||||
description: "Without BeyondHD, your HDTV is just a TV",
|
||||
link: "https://beyond-hd.me/",
|
||||
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataLoginLink())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BitCityReloaded(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public BitCityReloaded(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Bit-City Reloaded",
|
||||
description: "A German general tracker.",
|
||||
link: "https://bc-reloaded.net/",
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BitHdtv(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public BitHdtv(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "BIT-HDTV",
|
||||
description: "Home of high definition invites",
|
||||
link: "https://www.bit-hdtv.com/",
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -32,7 +33,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BitMeTV(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public BitMeTV(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "BitMeTV",
|
||||
description: "TV Episode specialty tracker",
|
||||
link: "http://www.bitmetv.org/",
|
||||
|
@ -89,7 +90,7 @@ namespace Jackett.Indexers
|
|||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var episodeSearchUrl = string.Format("{0}?search={1}&cat=0&incldead=1", SearchUrl, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
var episodeSearchUrl = string.Format("{0}?search={1}&cat=0&incldead=1", SearchUrl, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
var results = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
|
||||
try
|
||||
{
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BitSoup(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public BitSoup(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "BitSoup",
|
||||
description: "SoupieBits",
|
||||
link: "https://www.bitsoup.me/",
|
|
@ -25,7 +25,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public BroadcastTheNet(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public BroadcastTheNet(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "BroadcastTheNet",
|
||||
description: "Broadcasthe.net (BTN) is an invite-only torrent tracker focused on TV shows",
|
||||
link: "https://broadcasthe.net/",
|
|
@ -8,7 +8,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class BrokenStones : GazelleTracker
|
||||
{
|
||||
public BrokenStones(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public BrokenStones(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "BrokenStones",
|
||||
desc: "Broken Stones is a Private site for MacOS and iOS APPS / GAMES",
|
||||
link: "https://brokenstones.club/",
|
|
@ -17,6 +17,9 @@ using System.Web;
|
|||
using AngleSharp.Dom;
|
||||
using AngleSharp.Dom.Html;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
using Jacket.Common.Helpers;
|
||||
|
||||
namespace Jackett.Indexers
|
||||
{
|
||||
|
@ -36,7 +39,7 @@ namespace Jackett.Indexers
|
|||
|
||||
protected readonly string[] OptionalFileds = new string[] { "imdb", "rageid", "tvdbid", "banner" };
|
||||
|
||||
public CardigannIndexer(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps, IndexerDefinition Definition)
|
||||
public CardigannIndexer(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps, IndexerDefinition Definition)
|
||||
: base(configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
|
@ -827,10 +830,10 @@ namespace Jackett.Indexers
|
|||
Data = Data.ToUpper();
|
||||
break;
|
||||
case "urldecode":
|
||||
Data = HttpUtility.UrlDecode(Data, Encoding);
|
||||
Data = WebUtilityHelpers.UrlDecode(Data, Encoding);
|
||||
break;
|
||||
case "urlencode":
|
||||
Data = HttpUtility.UrlEncode(Data, Encoding);
|
||||
Data = WebUtilityHelpers.UrlEncode(Data, Encoding);
|
||||
break;
|
||||
case "timeago":
|
||||
case "reltime":
|
||||
|
@ -1036,7 +1039,7 @@ namespace Jackett.Indexers
|
|||
|
||||
// build search URL
|
||||
// HttpUtility.UrlPathEncode seems to only encode spaces, we use UrlEncode and replace + with %20 as a workaround
|
||||
var searchUrl = resolvePath(applyGoTemplateText(SearchPath.Path, variables, HttpUtility.UrlEncode).Replace("+", "%20")).AbsoluteUri;
|
||||
var searchUrl = resolvePath(applyGoTemplateText(SearchPath.Path, variables, WebUtility.UrlEncode).Replace("+", "%20")).AbsoluteUri;
|
||||
var queryCollection = new List<KeyValuePair<string, string>>();
|
||||
RequestType method = RequestType.GET;
|
||||
|
||||
|
@ -1058,7 +1061,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
if (Input.Key == "$raw")
|
||||
{
|
||||
var rawStr = applyGoTemplateText(Input.Value, variables, HttpUtility.UrlEncode);
|
||||
var rawStr = applyGoTemplateText(Input.Value, variables, WebUtility.UrlEncode);
|
||||
foreach (string part in rawStr.Split('&'))
|
||||
{
|
||||
var parts = part.Split(new char[] { '=' }, 2);
|
||||
|
@ -1467,10 +1470,11 @@ namespace Jackett.Indexers
|
|||
variables[prefix + ".Port"] = uri.Port.ToString();
|
||||
variables[prefix + ".PathAndQuery"] = uri.PathAndQuery;
|
||||
variables[prefix + ".Query"] = uri.Query;
|
||||
var queryString = HttpUtility.ParseQueryString(uri.Query);
|
||||
var queryString = QueryHelpers.ParseQuery(uri.Query);
|
||||
foreach (string key in queryString.Keys)
|
||||
{
|
||||
variables[prefix + ".Query." + key] = queryString.Get(key);
|
||||
//If we have supplied the same query string multiple time, just take the first.
|
||||
variables[prefix + ".Query." + key] = queryString[key].First();
|
||||
}
|
||||
return variables;
|
||||
}
|
|
@ -6,7 +6,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class CinemaZ : AvistazTracker
|
||||
{
|
||||
public CinemaZ(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public CinemaZ(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "CinemaZ",
|
||||
desc: "Part of the Avistaz network.",
|
||||
link: "https://cinemaz.to/",
|
|
@ -19,7 +19,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public DanishBits(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public DanishBits(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "DanishBits",
|
||||
description: "A danish closed torrent tracker",
|
||||
link: "https://danishbits.org/",
|
||||
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
configData: new ConfigurationDataUserPasskey("Note about Passkey: This is not your login Password. Find the Passkey by logging into DanishBits with your Browser, and under your account page you'll see your passkey under the 'Personal' section on the left side.")
|
||||
)
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "da-dk";
|
||||
Type = "private";
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -11,6 +12,7 @@ using Jackett.Models.IndexerConfig;
|
|||
using Jackett.Services.Interfaces;
|
||||
using Jackett.Utils;
|
||||
using Jackett.Utils.Clients;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
|
@ -27,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Demonoid(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Demonoid(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Demonoid",
|
||||
description: "Demonoid is a Private torrent tracker for 0DAY / TV / MOVIES / GENERAL",
|
||||
link: "https://www.demonoid.pw/",
|
||||
|
@ -38,7 +40,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataRecaptchaLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
||||
|
@ -132,7 +134,7 @@ namespace Jackett.Indexers
|
|||
var releases = new List<ReleaseInfo>();
|
||||
var trackerCats = MapTorznabCapsToTrackers(query);
|
||||
var cat = (trackerCats.Count == 1 ? trackerCats.ElementAt(0) : "0");
|
||||
var episodeSearchUrl = string.Format(SearchUrl, cat, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
var episodeSearchUrl = string.Format(SearchUrl, cat, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
var results = await RequestStringWithCookiesAndRetry(episodeSearchUrl);
|
||||
|
||||
if (results.Content.Contains("No torrents found"))
|
||||
|
@ -177,7 +179,7 @@ namespace Jackett.Indexers
|
|||
release.PublishDate = lastDateTime;
|
||||
|
||||
var catUrl = rowA.ChildElements.ElementAt(0).FirstElementChild.GetAttribute("href");
|
||||
var catId = HttpUtility.ParseQueryString(catUrl).Get("category");
|
||||
var catId = QueryHelpers.ParseQuery(catUrl)["category"].First();
|
||||
release.Category = MapTrackerCatToNewznab(catId);
|
||||
|
||||
var qLink = rowA.ChildElements.ElementAt(1).FirstElementChild.Cq();
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public DigitalHive(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public DigitalHive(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "DigitalHive",
|
||||
description: "DigitalHive is one of the oldest general trackers",
|
||||
link: "https://www.digitalhive.org/",
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public EliteTracker(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public EliteTracker(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "Elite-Tracker",
|
||||
description: "French Torrent Tracker",
|
||||
link: "https://elite-tracker.net/",
|
||||
|
@ -40,7 +40,7 @@ namespace Jackett.Indexers
|
|||
configData: new ConfigurationDataBasicLogin()
|
||||
)
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "fr-fr";
|
||||
Type = "private";
|
||||
|
|
@ -13,7 +13,7 @@ namespace Jackett.Indexers.Newznab
|
|||
{
|
||||
public class AnimeTosho : BaseNewznabIndexer
|
||||
{
|
||||
public AnimeTosho(IIndexerConfigurationService configService, IWebClient client, Logger logger, IProtectionService p)
|
||||
public AnimeTosho(IIndexerConfigurationService configService, WebClient client, Logger logger, IProtectionService p)
|
||||
: base(
|
||||
"Anime Tosho",
|
||||
"https://animetosho.org/",
|
|
@ -15,7 +15,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
protected abstract Uri FeedUri { get; }
|
||||
|
||||
protected BaseFeedIndexer(string name, string link, string description, IIndexerConfigurationService configService, IWebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null) : base(name, link, description, configService, client, logger, configData, p, caps, downloadBase)
|
||||
protected BaseFeedIndexer(string name, string link, string description, IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null) : base(name, link, description, configService, client, logger, configData, p, caps, downloadBase)
|
||||
{
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public abstract class BaseNewznabIndexer : BaseFeedIndexer
|
||||
{
|
||||
protected BaseNewznabIndexer(string name, string link, string description, IIndexerConfigurationService configService, IWebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null) : base(name, link, description, configService, client, logger, configData, p, caps, downloadBase)
|
||||
protected BaseNewznabIndexer(string name, string link, string description, IIndexerConfigurationService configService, WebClient client, Logger logger, ConfigurationData configData, IProtectionService p, TorznabCapabilities caps = null, string downloadBase = null) : base(name, link, description, configService, client, logger, configData, p, caps, downloadBase)
|
||||
{
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public FileList(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public FileList(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "FileList",
|
||||
description: "The best Romanian site.",
|
||||
link: "http://filelist.ro/",
|
||||
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataFileList())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "ro-ro";
|
||||
Type = "private";
|
||||
|
|
@ -25,7 +25,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public FunFile(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public FunFile(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "FunFile",
|
||||
description: "A general tracker",
|
||||
link: "https://www.funfile.org/",
|
|
@ -3,11 +3,13 @@ using System.Collections.Generic;
|
|||
using System.Collections.Specialized;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using CsQuery;
|
||||
using Jacket.Common.Helpers;
|
||||
using Jackett.Models;
|
||||
using Jackett.Models.IndexerConfig;
|
||||
using Jackett.Services.Interfaces;
|
||||
|
@ -30,7 +32,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Fuzer(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Fuzer(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "Fuzer",
|
||||
description: "Fuzer is a private torrent website with israeli torrents.",
|
||||
link: "https://fuzer.me/",
|
||||
|
@ -40,7 +42,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("Windows-1255");
|
||||
Encoding = Encoding.GetEncoding("windows-1255");
|
||||
Language = "he-il";
|
||||
Type = "private";
|
||||
TorznabCaps.Categories.Clear();
|
||||
|
@ -161,7 +163,7 @@ namespace Jackett.Indexers
|
|||
searchUrl += "?";
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
{
|
||||
var strEncoded = HttpUtility.UrlEncode(searchString, Encoding.GetEncoding("Windows-1255"));
|
||||
var strEncoded = WebUtilityHelpers.UrlEncode(searchString, Encoding);
|
||||
searchUrl += "&query=" + strEncoded + "&matchquery=any";
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public GFTracker(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public GFTracker(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "GFTracker",
|
||||
description: "Home of user happiness",
|
||||
link: "https://www.thegft.org/",
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public GhostCity(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public GhostCity(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Ghost City",
|
||||
description: "A German general tracker",
|
||||
link: "http://ghostcity.dyndns.info/",
|
||||
|
@ -38,7 +38,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "de-de";
|
||||
Type = "private";
|
||||
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public GimmePeers(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public GimmePeers(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "GimmePeers",
|
||||
description: "Formerly ILT",
|
||||
link: "https://www.gimmepeers.com/",
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public HD4Free(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public HD4Free(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "HD4Free",
|
||||
description: "A HD trackers",
|
||||
link: "https://hd4free.xyz/",
|
||||
|
@ -38,7 +38,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataRecaptchaLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -8,7 +8,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class HDForever : GazelleTracker
|
||||
{
|
||||
public HDForever(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public HDForever(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "HD-Forever",
|
||||
desc: "HD-Forever (HD-F) is a FRENCH Private Torrent Tracker for HD MOVIES",
|
||||
link: "https://hdf.world/",
|
|
@ -10,7 +10,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class HDOnly : GazelleTracker
|
||||
{
|
||||
public HDOnly(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public HDOnly(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "HD-Only",
|
||||
desc: "HD-Only (HD-O) is a FRENCH Private Torrent Tracker for HD MOVIES / TV",
|
||||
link: "https://hd-only.org/",
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public HDSpace(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public HDSpace(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "HD-Space",
|
||||
description: "Sharing The Universe",
|
||||
link: "https://hd-space.org/",
|
||||
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public HDTorrents(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public HDTorrents(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "HD-Torrents",
|
||||
description: "HD-Torrents is a private torrent website with HD torrents and strict rules on their content.",
|
||||
link: "https://hdts.ru/",// Of the accessible domains the .ru seems the most reliable. https://hdts.ru | https://hd-torrents.org | https://hd-torrents.net | https://hd-torrents.me
|
||||
|
@ -38,7 +38,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Hardbay(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Hardbay(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "Hardbay",
|
||||
description: "Hardbay is a Private Torrent Tracker for HARDSTYLE / HARDCORE ELECTRONIC MUSIC",
|
||||
link: "https://hardbay.club/",
|
||||
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -28,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Hebits(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Hebits(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Hebits",
|
||||
description: "The Israeli Tracker",
|
||||
link: "https://hebits.net/",
|
||||
|
@ -85,9 +86,9 @@ namespace Jackett.Indexers
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
{
|
||||
searchUrl += "&search=" + HttpUtility.UrlEncode(searchString);
|
||||
searchUrl += "&search=" + WebUtility.UrlEncode(searchString);
|
||||
}
|
||||
string.Format(SearchUrl, HttpUtility.UrlEncode(searchString));
|
||||
string.Format(SearchUrl, WebUtility.UrlEncode(searchString));
|
||||
|
||||
var cats = MapTorznabCapsToTrackers(query);
|
||||
if (cats.Count > 0)
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Hounddawgs(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public Hounddawgs(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "Hounddawgs",
|
||||
description: "A danish closed torrent tracker",
|
||||
link: "https://hounddawgs.org/",
|
||||
|
@ -39,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new NxtGnConfigurationData())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "da-dk";
|
||||
Type = "private";
|
||||
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public HouseOfTorrents(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public HouseOfTorrents(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "House-of-Torrents",
|
||||
description: "A general tracker",
|
||||
link: "https://houseoftorrents.club/",
|
||||
|
@ -40,7 +40,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -42,7 +43,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public IPTorrents(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public IPTorrents(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "IPTorrents",
|
||||
description: "Always a step ahead.",
|
||||
link: "https://iptorrents.com/",
|
||||
|
@ -53,7 +54,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataRecaptchaLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
||||
|
@ -267,7 +268,7 @@ namespace Jackett.Indexers
|
|||
release.PublishDate = DateTimeUtil.FromTimeAgo(dateString);
|
||||
|
||||
var qLink = row.ChildElements.ElementAt(3).Cq().Children("a");
|
||||
release.Link = new Uri(SiteLink + HttpUtility.UrlEncode(qLink.Attr("href").TrimStart('/')));
|
||||
release.Link = new Uri(SiteLink + WebUtility.UrlEncode(qLink.Attr("href").TrimStart('/')));
|
||||
|
||||
var sizeStr = row.ChildElements.ElementAt(5).Cq().Text();
|
||||
release.Size = ReleaseInfo.GetBytes(sizeStr);
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -28,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public ImmortalSeed(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public ImmortalSeed(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "ImmortalSeed",
|
||||
description: "ImmortalSeed (iS) is a Private Torrent Tracker for MOVIES / TV / GENERAL",
|
||||
link: "http://immortalseed.me/",
|
||||
|
@ -39,7 +40,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
||||
|
@ -96,7 +97,7 @@ namespace Jackett.Indexers
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(query.GetQueryString()))
|
||||
{
|
||||
searchUrl += string.Format(QueryString, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
searchUrl += string.Format(QueryString, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
}
|
||||
|
||||
var results = await RequestStringWithCookiesAndRetry(searchUrl);
|
|
@ -83,7 +83,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public LostFilm(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public LostFilm(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "LostFilm.tv",
|
||||
description: "Unique portal about foreign series",
|
||||
link: "https://www.lostfilm.tv/",
|
|
@ -14,7 +14,7 @@ namespace Jackett.Indexers.Meta
|
|||
{
|
||||
public abstract class BaseMetaIndexer : BaseWebIndexer
|
||||
{
|
||||
protected BaseMetaIndexer(string name, string description, IFallbackStrategyProvider fallbackStrategyProvider, IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, IWebClient webClient, Logger logger, ConfigurationData configData, IProtectionService p, Func<IIndexer, bool> filter)
|
||||
protected BaseMetaIndexer(string name, string description, IFallbackStrategyProvider fallbackStrategyProvider, IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, WebClient webClient, Logger logger, ConfigurationData configData, IProtectionService p, Func<IIndexer, bool> filter)
|
||||
: base(name, "http://127.0.0.1/", description, configService, webClient, logger, configData, p, null, null)
|
||||
{
|
||||
filterFunc = filter;
|
|
@ -12,7 +12,7 @@ using Jackett.Models.IndexerConfig;
|
|||
|
||||
namespace Jackett.Indexers.Meta
|
||||
{
|
||||
class AggregateIndexer : BaseMetaIndexer
|
||||
public class AggregateIndexer : BaseMetaIndexer
|
||||
{
|
||||
public override string ID
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ namespace Jackett.Indexers.Meta
|
|||
return "all";
|
||||
}
|
||||
}
|
||||
public AggregateIndexer(IFallbackStrategyProvider fallbackStrategyProvider, IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public AggregateIndexer(IFallbackStrategyProvider fallbackStrategyProvider, IResultFilterProvider resultFilterProvider, IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base("AggregateSearch", "This feed includes all configured trackers", fallbackStrategyProvider, resultFilterProvider, configService, wc, l, new ConfigurationData(), ps, x => true)
|
||||
{
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -28,7 +29,7 @@ namespace Jackett.Indexers
|
|||
|
||||
private ConfigurationDataBasicLogin ConfigData => (ConfigurationDataBasicLogin)configData;
|
||||
|
||||
public MoreThanTV(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public MoreThanTV(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "MoreThanTV",
|
||||
description: "ROMANIAN Private Torrent Tracker for TV / MOVIES, and the internal tracker for the release group DRACULA.",
|
||||
link: "https://www.morethan.tv/",
|
||||
|
@ -40,7 +41,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
}
|
||||
|
@ -101,7 +102,7 @@ namespace Jackett.Indexers
|
|||
if (Array.IndexOf(categories, TorznabCatType.TV.ID) > -1)
|
||||
extra += "&filter_cat%5B2%5D=1";
|
||||
|
||||
return SiteLink + $"torrents.php?searchstr={HttpUtility.UrlEncode(searchQuery)}&tags_type=1&order_by=time&order_way=desc&group_results=1{extra}&action=basic&searchsubmit=1";
|
||||
return SiteLink + $"torrents.php?searchstr={WebUtility.UrlEncode(searchQuery)}&tags_type=1&order_by=time&order_way=desc&group_results=1{extra}&action=basic&searchsubmit=1";
|
||||
}
|
||||
|
||||
private async Task GetReleases(ICollection<ReleaseInfo> releases, TorznabQuery query, string searchQuery)
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Myanonamouse(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public Myanonamouse(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "MyAnonamouse",
|
||||
description: "Friendliness, Warmth and Sharing",
|
||||
link: "https://www.myanonamouse.net/",
|
||||
|
@ -42,7 +42,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public NCore(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public NCore(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "nCore",
|
||||
description: "A Hungarian private torrent site.",
|
||||
link: "https://ncore.cc/",
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public NewRealWorld(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public NewRealWorld(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "New Real World",
|
||||
description: "A German general tracker.",
|
||||
link: "https://nrw-tracker.eu/",
|
|
@ -4,11 +4,13 @@ using System.Collections.Specialized;
|
|||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using CsQuery;
|
||||
using Jacket.Common.Helpers;
|
||||
using Jackett.Models;
|
||||
using Jackett.Models.IndexerConfig.Bespoke;
|
||||
using Jackett.Services.Interfaces;
|
||||
|
@ -40,7 +42,7 @@ namespace Jackett.Indexers
|
|||
private CQ _fDom;
|
||||
private ConfigurationDataNorbits ConfigData => (ConfigurationDataNorbits)configData;
|
||||
|
||||
public Norbits(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Norbits(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l, IProtectionService ps)
|
||||
: base(
|
||||
name: "Norbits",
|
||||
description: "Norbits is a Norwegian Private site for MOVIES / TV / GENERAL",
|
||||
|
@ -123,7 +125,7 @@ namespace Jackett.Indexers
|
|||
private async Task DoLogin()
|
||||
{
|
||||
// Build WebRequest for index
|
||||
var myIndexRequest = new WebRequest()
|
||||
var myIndexRequest = new Utils.Clients.WebRequest()
|
||||
{
|
||||
Type = RequestType.GET,
|
||||
Url = SiteLink,
|
||||
|
@ -142,7 +144,7 @@ namespace Jackett.Indexers
|
|||
};
|
||||
|
||||
// Build WebRequest for login
|
||||
var myRequestLogin = new WebRequest()
|
||||
var myRequestLogin = new Utils.Clients.WebRequest()
|
||||
{
|
||||
Type = RequestType.GET,
|
||||
Url = LoginUrl,
|
||||
|
@ -158,7 +160,7 @@ namespace Jackett.Indexers
|
|||
await webclient.GetString(myRequestLogin);
|
||||
|
||||
// Build WebRequest for submitting authentification
|
||||
var request = new WebRequest()
|
||||
var request = new Utils.Clients.WebRequest()
|
||||
{
|
||||
PostData = pairs,
|
||||
Referer = LoginUrl,
|
||||
|
@ -458,7 +460,7 @@ namespace Jackett.Indexers
|
|||
}
|
||||
else if (!string.IsNullOrWhiteSpace(term))
|
||||
{
|
||||
searchterm = "search=" + System.Web.HttpUtility.UrlEncode(term, Encoding.GetEncoding(28591));
|
||||
searchterm = "search=" + WebUtilityHelpers.UrlEncode(term, Encoding.GetEncoding(28591));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -696,7 +698,7 @@ namespace Jackett.Indexers
|
|||
goto case "debug";
|
||||
case "debug":
|
||||
// Only if Debug Level Enabled on Jackett
|
||||
if (Engine.Logger.IsDebugEnabled)
|
||||
if (logger.IsDebugEnabled)
|
||||
{
|
||||
logger.Debug(message);
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -28,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public PassThePopcorn(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public PassThePopcorn(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "PassThePopcorn",
|
||||
description: "PassThePopcorn is a Private site for MOVIES / TV",
|
||||
link: "https://passthepopcorn.me/",
|
||||
|
@ -105,11 +106,11 @@ namespace Jackett.Indexers
|
|||
|
||||
if (!string.IsNullOrEmpty(query.ImdbID))
|
||||
{
|
||||
movieListSearchUrl = string.Format("{0}?json=noredirect&searchstr={1}", SearchUrl, HttpUtility.UrlEncode(query.ImdbID));
|
||||
movieListSearchUrl = string.Format("{0}?json=noredirect&searchstr={1}", SearchUrl, WebUtility.UrlEncode(query.ImdbID));
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(query.GetQueryString()))
|
||||
{
|
||||
movieListSearchUrl = string.Format("{0}?json=noredirect&searchstr={1}", SearchUrl, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
movieListSearchUrl = string.Format("{0}?json=noredirect&searchstr={1}", SearchUrl, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -142,7 +143,7 @@ namespace Jackett.Indexers
|
|||
release.Description = string.Format("Title: {0}", movie_title);
|
||||
release.BannerUrl = coverUri;
|
||||
release.Imdb = movie_imdbid;
|
||||
release.Comments = new Uri(string.Format("{0}?id={1}", SearchUrl, HttpUtility.UrlEncode(movie_groupid)));
|
||||
release.Comments = new Uri(string.Format("{0}?id={1}", SearchUrl, WebUtility.UrlEncode(movie_groupid)));
|
||||
release.Guid = release.Comments;
|
||||
release.Size = long.Parse((string)torrent["Size"]);
|
||||
release.Grabs = long.Parse((string)torrent["Snatched"]);
|
||||
|
@ -151,7 +152,7 @@ namespace Jackett.Indexers
|
|||
release.PublishDate = DateTime.ParseExact((string)torrent["UploadTime"], "yyyy-MM-dd HH:mm:ss",
|
||||
CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToLocalTime();
|
||||
release.Link = new Uri(string.Format("{0}?action=download&id={1}&authkey={2}&torrent_pass={3}",
|
||||
SearchUrl, HttpUtility.UrlEncode((string)torrent["Id"]), HttpUtility.UrlEncode(AuthKey), HttpUtility.UrlEncode(configData.Passkey.Value)));
|
||||
SearchUrl, WebUtility.UrlEncode((string)torrent["Id"]), WebUtility.UrlEncode(AuthKey), WebUtility.UrlEncode(configData.Passkey.Value)));
|
||||
release.MinimumRatio = 1;
|
||||
release.MinimumSeedTime = 345600;
|
||||
release.Category = new List<int> { 2000 };
|
|
@ -32,7 +32,7 @@ namespace Jackett.Indexers
|
|||
private string input_username = null;
|
||||
private string input_password = null;
|
||||
|
||||
public PiXELHD(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public PiXELHD(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "PiXELHD",
|
||||
description: "PixelHD (PxHD) is a Private Torrent Tracker for HD .MP4 MOVIES / TV",
|
||||
link: "https://pixelhd.me/",
|
||||
|
@ -44,7 +44,7 @@ namespace Jackett.Indexers
|
|||
configData: new ConfigurationDataCaptchaLogin()
|
||||
)
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public PirateTheNet(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public PirateTheNet(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "PirateTheNet",
|
||||
description: "A movie tracker",
|
||||
link: "http://piratethenet.org/",
|
||||
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public PolishTracker(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public PolishTracker(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "PolishTracker",
|
||||
description: "Polish Tracker is a POLISH Private site for 0DAY / MOVIES / GENERAL",
|
||||
link: "https://pte.nu/",
|
||||
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "pl-pl";
|
||||
Type = "private";
|
||||
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Pretome(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Pretome(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "PreToMe",
|
||||
description: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
|
||||
link: "https://pretome.info/",
|
|
@ -6,7 +6,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class PrivateHD : AvistazTracker, IIndexer
|
||||
{
|
||||
public PrivateHD(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public PrivateHD(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "PrivateHD",
|
||||
desc: "BitTorrent site for High Quality, High Definition (HD) movies and TV Shows",
|
||||
link: "https://privatehd.to/",
|
|
@ -8,7 +8,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class Psytorrents : GazelleTracker
|
||||
{
|
||||
public Psytorrents(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public Psytorrents(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "Psytorrents",
|
||||
desc: "Psytorrents (PSY) is a Private Torrent Tracker for ELECTRONIC MUSIC",
|
||||
link: "https://psytorrents.info/",
|
|
@ -5,6 +5,7 @@ using System.Globalization;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Jacket.Common;
|
||||
using Jackett.Models;
|
||||
using Jackett.Models.IndexerConfig;
|
||||
using Jackett.Services.Interfaces;
|
||||
|
@ -41,7 +42,7 @@ namespace Jackett.Indexers
|
|||
|
||||
private bool HasValidToken { get { return !string.IsNullOrEmpty(token) && lastTokenFetch > DateTime.Now - TOKEN_DURATION; } }
|
||||
|
||||
public Rarbg(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Rarbg(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "RARBG",
|
||||
description: "RARBG is a Public torrent site for MOVIES / TV / GENERAL",
|
||||
link: "https://rarbg.to/",
|
||||
|
@ -129,7 +130,7 @@ namespace Jackett.Indexers
|
|||
var queryCollection = new NameValueCollection();
|
||||
queryCollection.Add("token", token);
|
||||
queryCollection.Add("format", "json_extended");
|
||||
queryCollection.Add("app_id", "jackett_v" + Engine.ConfigService.GetVersion());
|
||||
queryCollection.Add("app_id", "jackett_v" + JackettStartup.JackettVersion);
|
||||
queryCollection.Add("limit", "100");
|
||||
queryCollection.Add("ranked", "0");
|
||||
|
|
@ -9,7 +9,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class PassTheHeadphones : GazelleTracker
|
||||
{
|
||||
public PassTheHeadphones(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public PassTheHeadphones(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "Redacted",
|
||||
desc: "A music tracker",
|
||||
link: "https://redacted.ch/",
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -33,7 +34,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public RevolutionTT(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public RevolutionTT(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "RevolutionTT",
|
||||
description: "The Revolution has begun",
|
||||
link: "https://revolutiontt.me/",
|
||||
|
@ -292,8 +293,8 @@ namespace Jackett.Indexers
|
|||
}
|
||||
else
|
||||
{
|
||||
searchUrl += "?titleonly=1&search=" + HttpUtility.UrlEncode(searchString);
|
||||
string.Format(SearchUrl, HttpUtility.UrlEncode(searchString));
|
||||
searchUrl += "?titleonly=1&search=" + WebUtility.UrlEncode(searchString);
|
||||
string.Format(SearchUrl, WebUtility.UrlEncode(searchString));
|
||||
|
||||
var cats = MapTorznabCapsToTrackers(query);
|
||||
if (cats.Count > 0)
|
|
@ -4,6 +4,7 @@ using System.Collections.Specialized;
|
|||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
@ -43,7 +44,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public SceneFZ(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public SceneFZ(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l, IProtectionService ps)
|
||||
: base(
|
||||
name: "SceneFZ",
|
||||
description: "Torrent tracker. Tracking over 50.000 torrent files.",
|
||||
|
@ -134,7 +135,7 @@ namespace Jackett.Indexers
|
|||
};
|
||||
|
||||
// Getting login form to retrieve PHPSESSID
|
||||
var myRequest = new WebRequest()
|
||||
var myRequest = new Utils.Clients.WebRequest()
|
||||
{
|
||||
Url = LoginUrl
|
||||
};
|
||||
|
@ -402,7 +403,7 @@ namespace Jackett.Indexers
|
|||
if (!string.IsNullOrWhiteSpace(term))
|
||||
{
|
||||
// Add search term
|
||||
queryCollection.Add("search", HttpUtility.UrlEncode(term));
|
||||
queryCollection.Add("search", WebUtility.UrlEncode(term));
|
||||
queryCollection.Add("searchin", "0");
|
||||
queryCollection.Add("cat", "0");
|
||||
queryCollection.Add("incldead", "0");
|
||||
|
@ -625,7 +626,7 @@ namespace Jackett.Indexers
|
|||
goto case "debug";
|
||||
case "debug":
|
||||
// Only if Debug Level Enabled on Jackett
|
||||
if (Engine.Logger.IsDebugEnabled)
|
||||
if (logger.IsDebugEnabled)
|
||||
{
|
||||
logger.Debug(message);
|
||||
}
|
|
@ -28,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public SceneTime(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public SceneTime(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "SceneTime",
|
||||
description: "Always on time",
|
||||
link: "https://www.scenetime.com/",
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Shazbat(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public Shazbat(IIndexerConfigurationService configService, WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "Shazbat",
|
||||
description: "Modern indexer",
|
||||
link: "https://www.shazbat.tv/",
|
|
@ -25,7 +25,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public ShowRSS(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public ShowRSS(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "ShowRSS",
|
||||
description: "showRSS is a service that allows you to keep track of your favorite TV shows",
|
||||
link: "https://showrss.info/",
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public SpeedCD(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public SpeedCD(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Speed.cd",
|
||||
description: "Your home now!",
|
||||
link: "https://speed.cd/",
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Superbits(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Superbits(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "Superbits",
|
||||
description: "SuperBits is a SWEDISH Private Torrent Tracker for MOVIES / TV / GENERAL",
|
||||
link: "https://superbits.org/",
|
||||
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "sv-sw";
|
||||
Type = "private";
|
||||
|
|
@ -9,7 +9,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class Synthesiz3r : GazelleTracker
|
||||
{
|
||||
public Synthesiz3r(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public Synthesiz3r(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "Synthesiz3r",
|
||||
desc: "Synthesiz3r (ST3) is a Private Torrent Tracker for ELECTRONIC MUSIC",
|
||||
link: "https://synthesiz3r.com/",
|
|
@ -32,7 +32,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TVChaosUK(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TVChaosUK(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TV Chaos",
|
||||
description: "Total Chaos",
|
||||
link: "https://www.tvchaosuk.com/",
|
||||
|
@ -43,7 +43,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSS())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-uk";
|
||||
Type = "private";
|
||||
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TVVault(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TVVault(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TV-Vault",
|
||||
description: "A TV tracker for old shows.",
|
||||
link: "https://tv-vault.me/",
|
||||
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -28,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TehConnection(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public TehConnection(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "TehConnection",
|
||||
description: "Working towards providing a well-seeded archive of all available digital forms of cinema and film in their highest possible quality",
|
||||
link: "https://tehconnection.eu/",
|
||||
|
@ -41,7 +42,7 @@ namespace Jackett.Indexers
|
|||
Separate options with a space if using more than one option.<br>Filter options available:
|
||||
<br><code>QualityEncodeOnly</code><br><code>FreeLeechOnly</code>"))
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
||||
|
@ -109,11 +110,11 @@ namespace Jackett.Indexers
|
|||
|
||||
if (!string.IsNullOrEmpty(query.ImdbID))
|
||||
{
|
||||
movieListSearchUrl = string.Format("{0}?action=basic&searchstr={1}", SearchUrl, HttpUtility.UrlEncode(query.ImdbID));
|
||||
movieListSearchUrl = string.Format("{0}?action=basic&searchstr={1}", SearchUrl, WebUtility.UrlEncode(query.ImdbID));
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(query.GetQueryString()))
|
||||
{
|
||||
movieListSearchUrl = string.Format("{0}?action=basic&searchstr={1}", SearchUrl, HttpUtility.UrlEncode(query.GetQueryString()));
|
||||
movieListSearchUrl = string.Format("{0}?action=basic&searchstr={1}", SearchUrl, WebUtility.UrlEncode(query.GetQueryString()));
|
||||
}
|
||||
else
|
||||
{
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentBytes(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TorrentBytes(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TorrentBytes",
|
||||
description: "A decade of torrentbytes",
|
||||
link: "https://www.torrentbytes.net/",
|
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentDay(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TorrentDay(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TorrentDay",
|
||||
description: "TorrentDay (TD) is a Private site for TV / MOVIES / GENERAL",
|
||||
link: "https://torrentday.it/",
|
||||
|
@ -52,7 +52,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataRecaptchaLogin())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -29,7 +29,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentHeaven(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TorrentHeaven(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TorrentHeaven",
|
||||
description: "A German general tracker.",
|
||||
link: "https://torrentheaven.myfqdn.info/",
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -27,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentLeech(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TorrentLeech(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "TorrentLeech",
|
||||
description: "This is what happens when you seed",
|
||||
link: "https://www.torrentleech.org/",
|
||||
|
@ -125,9 +126,9 @@ namespace Jackett.Indexers
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(searchString))
|
||||
{
|
||||
searchUrl += "query/" + HttpUtility.UrlEncode(searchString) + "/";
|
||||
searchUrl += "query/" + WebUtility.UrlEncode(searchString) + "/";
|
||||
}
|
||||
string.Format(SearchUrl, HttpUtility.UrlEncode(searchString));
|
||||
string.Format(SearchUrl, WebUtility.UrlEncode(searchString));
|
||||
|
||||
var cats = MapTorznabCapsToTrackers(query);
|
||||
if (cats.Count > 0)
|
|
@ -31,7 +31,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentNetwork(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public TorrentNetwork(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Torrent Network",
|
||||
description: "Torrent Network (TN) is a GERMAN Private site for TV / MOVIES / GENERAL",
|
||||
link: "https://tntracker.org/",
|
||||
|
@ -42,7 +42,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "de-de";
|
||||
Type = "private";
|
||||
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TorrentSyndikat(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public TorrentSyndikat(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "Torrent-Syndikat",
|
||||
description: "A German general tracker",
|
||||
link: "https://torrent-syndikat.org/",
|
||||
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "de-de";
|
||||
Type = "private";
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
|
@ -11,6 +13,7 @@ using Jackett.Models.IndexerConfig;
|
|||
using Jackett.Services.Interfaces;
|
||||
using Jackett.Utils;
|
||||
using Jackett.Utils.Clients;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
|
@ -27,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public Torrentech(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public Torrentech(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "Torrentech",
|
||||
description: "TorrenTech (TTH) is a Private Torrent Tracker for ELECTRONIC MUSIC",
|
||||
link: "https://www.torrentech.org/",
|
||||
|
@ -133,7 +136,7 @@ namespace Jackett.Indexers
|
|||
release.DownloadVolumeFactor = 1;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
var id = HttpUtility.ParseQueryString(release.Comments.Query).Get("showtopic");
|
||||
var id = QueryHelpers.ParseQuery(release.Comments.Query)["showtopic"].FirstOrDefault();
|
||||
|
||||
var desc = Row.QuerySelector("span.desc");
|
||||
var forange = desc.QuerySelector("font.forange");
|
||||
|
@ -163,7 +166,7 @@ namespace Jackett.Indexers
|
|||
release.Description += e.TextContent + "\n";
|
||||
}
|
||||
}
|
||||
release.Description = HttpUtility.HtmlEncode(release.Description.Trim());
|
||||
release.Description = WebUtility.HtmlEncode(release.Description.Trim());
|
||||
release.Description = release.Description.Replace("\n", "<br>");
|
||||
|
||||
if (format.Contains("MP3"))
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -27,7 +28,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public TransmitheNet(IIndexerConfigurationService configService, IWebClient c, Logger l, IProtectionService ps)
|
||||
public TransmitheNet(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l, IProtectionService ps)
|
||||
: base(name: "Nebulance",
|
||||
description: " At Nebulance we will change the way you think about TV",
|
||||
link: "https://nebulance.io/",
|
||||
|
@ -38,7 +39,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin("For best results, change the 'Torrents per page' setting to 100 in your profile on the NBL webpage."))
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
}
|
||||
|
@ -88,7 +89,7 @@ namespace Jackett.Indexers
|
|||
Url = SearchUrl;
|
||||
else
|
||||
{
|
||||
Url = $"{SearchUrl}&searchtext={HttpUtility.UrlEncode(query.GetQueryString())}";
|
||||
Url = $"{SearchUrl}&searchtext={WebUtility.UrlEncode(query.GetQueryString())}";
|
||||
}
|
||||
|
||||
var response = await RequestStringWithCookiesAndRetry(Url);
|
|
@ -41,7 +41,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public WiHD(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public WiHD(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(
|
||||
name: "WiHD",
|
||||
description: "Your World in High Definition",
|
||||
|
@ -804,7 +804,7 @@ namespace Jackett.Indexers
|
|||
goto case "debug";
|
||||
case "debug":
|
||||
// Only if Debug Level Enabled on Jackett
|
||||
if (Engine.Logger.IsDebugEnabled)
|
||||
if (logger.IsDebugEnabled)
|
||||
{
|
||||
logger.Debug(message);
|
||||
}
|
|
@ -35,7 +35,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public XSpeeds(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public XSpeeds(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "XSpeeds",
|
||||
description: "XSpeeds (XS) is a Private Torrent Tracker for MOVIES / TV / GENERAL",
|
||||
link: "https://www.xspeeds.eu/",
|
||||
|
@ -46,7 +46,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-us";
|
||||
Type = "private";
|
||||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -32,7 +33,7 @@ namespace Jackett.Indexers
|
|||
public Dictionary<string, string> EmulatedBrowserHeaders { get; } = new Dictionary<string, string>();
|
||||
private ConfigurationDataXthor ConfigData => (ConfigurationDataXthor)configData;
|
||||
|
||||
public Xthor(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public Xthor(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l, IProtectionService ps)
|
||||
: base(
|
||||
name: "Xthor",
|
||||
description: "General French Private Tracker",
|
||||
|
@ -315,7 +316,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
// Add search term
|
||||
// ReSharper disable once AssignNullToNotNullAttribute
|
||||
parameters.Add("search", HttpUtility.UrlEncode(term));
|
||||
parameters.Add("search", WebUtility.UrlEncode(term));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -436,7 +437,7 @@ namespace Jackett.Indexers
|
|||
Output("\nQuerying tracker for results....");
|
||||
|
||||
// Build WebRequest for index
|
||||
var myIndexRequest = new WebRequest()
|
||||
var myIndexRequest = new Utils.Clients.WebRequest()
|
||||
{
|
||||
Type = RequestType.GET,
|
||||
Url = request,
|
||||
|
@ -565,7 +566,7 @@ namespace Jackett.Indexers
|
|||
goto case "debug";
|
||||
case "debug":
|
||||
// Only if Debug Level Enabled on Jackett
|
||||
if (Engine.Logger.IsDebugEnabled)
|
||||
if (logger.IsDebugEnabled)
|
||||
{
|
||||
logger.Debug(message);
|
||||
}
|
|
@ -8,7 +8,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class CGPeers : GazelleTracker
|
||||
{
|
||||
public CGPeers(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public CGPeers(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "CGPeers",
|
||||
desc: "CGPeers is a Private Torrent Tracker for GRAPHICS SOFTWARE / TUTORIALS / ETC",
|
||||
link: "https://www.cgpeers.com/",
|
|
@ -26,7 +26,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public myAmity(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public myAmity(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "myAmity",
|
||||
description: "A German general tracker.",
|
||||
link: "https://ttv2.myamity.info/",
|
||||
|
@ -37,7 +37,7 @@ namespace Jackett.Indexers
|
|||
p: ps,
|
||||
configData: new ConfigurationDataBasicLoginWithRSSAndDisplay())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "de-de";
|
||||
Type = "private";
|
||||
|
|
@ -9,7 +9,7 @@ namespace Jackett.Indexers
|
|||
{
|
||||
public class notwhatcd : GazelleTracker
|
||||
{
|
||||
public notwhatcd(IIndexerConfigurationService configService, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
public notwhatcd(IIndexerConfigurationService configService, WebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "notwhat.cd",
|
||||
desc: "A music tracker",
|
||||
link: "https://notwhat.cd/",
|
|
@ -30,7 +30,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public RuTracker(IIndexerConfigurationService configService, IWebClient wc, Logger l, IProtectionService ps)
|
||||
public RuTracker(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "RuTracker",
|
||||
description: "RuTracker is a Semi-Private Russian torrent site with a thriving file-sharing community",
|
||||
link: "https://rutracker.org/",
|
|
@ -27,7 +27,7 @@ namespace Jackett.Indexers
|
|||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public x264(IIndexerConfigurationService configService, IWebClient w, Logger l, IProtectionService ps)
|
||||
public x264(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps)
|
||||
: base(name: "x264",
|
||||
description: "A movie/TV tracker",
|
||||
link: "https://x264.me/",
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue