diff --git a/README.md b/README.md
index 7ac6cd04d..625a1ddf1 100644
--- a/README.md
+++ b/README.md
@@ -16,8 +16,8 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
#### Supported Systems
-* Windows using .NET 4.5.2 [Download here](https://www.microsoft.com/net/framework/versions/net452).
-* Linux and macOS using Mono 4.6.0 and above. [Download here](http://www.mono-project.com/download/). Earlier versions of mono may work but some trackers may fail to negotiate SSL correctly, and others may cause Jackett to crash when used.
+* Windows using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461).
+* Linux and macOS using Mono 5.8 or above. [Download here](http://www.mono-project.com/download/). Earlier versions of mono may work, but some trackers may fail to negotiate SSL correctly, and others may cause Jackett to crash when used.
### Supported Public Trackers
* 1337x
@@ -319,7 +319,7 @@ When installed as a service the tray icon acts as a way to open/start/stop Jacke
Jackett can also be run from the command line if you would like to see log messages (Ensure the server isn't already running from the tray/service). This can be done by using "JackettConsole.exe" (for Command Prompt), found in the Jackett data folder: "%ProgramData%\Jackett".
## Installation on Linux
- 1. Install [Mono 4.6](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release for your distribution is recommended)
+ 1. Install [Mono 5.8](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release is recommended)
* Follow the instructions on the mono website and install the `mono-devel` and the `ca-certificates-mono` packages.
* On Red Hat/CentOS/openSUSE/Fedora the `mono-locale-extras` package is also required.
2. Install libcurl:
diff --git a/src/Jackett.Common/Content/index.html b/src/Jackett.Common/Content/index.html
index 72d03febf..47518012a 100644
--- a/src/Jackett.Common/Content/index.html
+++ b/src/Jackett.Common/Content/index.html
@@ -98,7 +98,7 @@
Apply server settings
-
+
View logs
diff --git a/src/Jackett.Common/Definitions/ilcorsaroblu.yml b/src/Jackett.Common/Definitions/ilcorsaroblu.yml
index 00023be32..d79df47dc 100644
--- a/src/Jackett.Common/Definitions/ilcorsaroblu.yml
+++ b/src/Jackett.Common/Definitions/ilcorsaroblu.yml
@@ -6,10 +6,10 @@
type: public
encoding: UTF-8
links:
- - https://www.ilcorsaroblu.org/
+ - https://www.ilcorsaroblu.info/
legacylinks:
- - https://ilcorsaroblu.org/
- http://ilcorsaroblu.org/
+ - https://www.ilcorsaroblu.org/
caps:
categorymappings:
@@ -45,6 +45,8 @@
tv-search: [q, season, ep]
movie-search: [q]
+ settings: []
+
search:
paths:
- path: /index.php
@@ -64,7 +66,7 @@
page: torrents
active: 0
rows:
- selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[onmouseover])
+ selector: div.b-content > table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
fields:
title:
selector: td:nth-child(2) > a
diff --git a/src/Jackett.Common/Indexers/BaseIndexer.cs b/src/Jackett.Common/Indexers/BaseIndexer.cs
index 5a4468707..bc57c7a6c 100644
--- a/src/Jackett.Common/Indexers/BaseIndexer.cs
+++ b/src/Jackett.Common/Indexers/BaseIndexer.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
-using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
@@ -190,7 +189,7 @@ namespace Jackett.Common.Indexers
}
Version dotNetVersion = Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.RuntimeFramework.Version;
- bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
+ bool isWindows = Environment.OSVersion.Platform == PlatformID.Win32NT;
if (!isWindows && dotNetVersion.Major < 4)
{
@@ -208,9 +207,9 @@ namespace Jackett.Common.Indexers
passwordPropertyValue = configData.GetType().GetProperty("Password").GetValue(configData, null);
passwordValue = passwordPropertyValue.GetType().GetProperty("Value").GetValue(passwordPropertyValue, null).ToString();
}
- catch (Exception ex)
+ catch (Exception)
{
- logger.Warn($"Attempt to source password from json failed - {ID} : " + ex.ToString());
+ logger.Debug($"Unable to source password for [{ID}] while attempting migration, likely a public tracker");
return false;
}
@@ -224,12 +223,7 @@ namespace Jackett.Common.Indexers
}
catch (Exception ex)
{
- if (ex.Message != "The provided payload cannot be decrypted because it was not protected with this protection provider.")
- {
- logger.Info($"Password could not be unprotected using Microsoft.AspNetCore.DataProtection - {ID} : " + ex.ToString());
- }
-
- logger.Info($"Attempting legacy Unprotect - {ID} : ");
+ logger.Info("Password could not be unprotected using Microsoft.AspNetCore.DataProtection, trying legacy: " + ex.ToString());
try
{
@@ -240,13 +234,11 @@ namespace Jackett.Common.Indexers
SaveConfig();
IsConfigured = true;
- logger.Info($"Password successfully migrated for {ID}");
-
return true;
}
catch (Exception exception)
{
- logger.Info($"Password could not be unprotected using legacy DPAPI - {ID} : " + exception.ToString());
+ logger.Info("Password could not be unprotected using legacy DPAPI: " + exception.ToString());
}
}
}
diff --git a/src/Jackett.Common/Indexers/Demonoid.cs b/src/Jackett.Common/Indexers/Demonoid.cs
index b05290451..a612cacc6 100644
--- a/src/Jackett.Common/Indexers/Demonoid.cs
+++ b/src/Jackett.Common/Indexers/Demonoid.cs
@@ -231,7 +231,9 @@ namespace Jackett.Common.Indexers
public override async Task Download(Uri link)
{
var results = await RequestStringWithCookies(link.AbsoluteUri);
- await FollowIfRedirect(results);
+ //await FollowIfRedirect(results); // manual follow for better debugging (string)
+ if (results.IsRedirect)
+ results = await RequestStringWithCookies(results.RedirectingTo);
CQ dom = results.Content;
var dl = dom.Find("a:has(font:contains(\"Download torrent file\"))");
diff --git a/src/Jackett.Common/Indexers/RevolutionTT.cs b/src/Jackett.Common/Indexers/RevolutionTT.cs
index 4f49f4f15..c9e4f2eac 100644
--- a/src/Jackett.Common/Indexers/RevolutionTT.cs
+++ b/src/Jackett.Common/Indexers/RevolutionTT.cs
@@ -116,7 +116,7 @@ namespace Jackett.Common.Indexers
//AddCategoryMapping("cat_id", TorznabCatType.AudioForeign);
AddCategoryMapping("21", TorznabCatType.PC);
AddCategoryMapping("22", TorznabCatType.PC0day);
- AddCategoryMapping("4", TorznabCatType.PCISO);
+ AddCategoryMapping("1", TorznabCatType.PCISO);
AddCategoryMapping("2", TorznabCatType.PCMac);
//AddCategoryMapping("cat_id", TorznabCatType.PCPhoneOther);
//Games/PC-ISO, Games/PC-Rips
@@ -155,7 +155,7 @@ namespace Jackett.Common.Indexers
// RSS Textual categories
AddCategoryMapping("Anime", TorznabCatType.TVAnime);
AddCategoryMapping("Appz/Misc", TorznabCatType.PC0day);
- AddCategoryMapping("Appz/PC-ISO", TorznabCatType.Books);
+ AddCategoryMapping("Appz/PC-ISO", TorznabCatType.PCISO);
AddCategoryMapping("E-Book", TorznabCatType.BooksEbook);
AddCategoryMapping("Games/PC-ISO", TorznabCatType.PCGames);
AddCategoryMapping("Games/PC-Rips", TorznabCatType.PCGames);
@@ -349,6 +349,9 @@ namespace Jackett.Common.Indexers
release.Seeders = ParseUtil.CoerceInt(qRow.Find("td:nth-child(9)").Text());
release.Peers = release.Seeders + ParseUtil.CoerceInt(qRow.Find("td:nth-child(10)").Text());
+ var grabsStr = qRow.Find("td:nth-child(8)").Text();
+ release.Grabs = ParseUtil.GetLongFromString(grabsStr);
+
var category = qRow.Find(".br_type > a").Attr("href").Replace("browse.php?cat=", string.Empty);
release.Category = MapTrackerCatToNewznab(category);
}
@@ -364,4 +367,4 @@ namespace Jackett.Common.Indexers
return releases;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Jackett.Common/Indexers/SceneTime.cs b/src/Jackett.Common/Indexers/SceneTime.cs
index d182135a9..32120bf82 100644
--- a/src/Jackett.Common/Indexers/SceneTime.cs
+++ b/src/Jackett.Common/Indexers/SceneTime.cs
@@ -19,7 +19,7 @@ namespace Jackett.Common.Indexers
{
private string StartPageUrl { get { return SiteLink + "login.php"; } }
private string LoginUrl { get { return SiteLink + "takelogin.php"; } }
- private string SearchUrl { get { return SiteLink + "browse_API.php"; } }
+ private string SearchUrl { get { return SiteLink + "browse.php"; } }
private string DownloadUrl { get { return SiteLink + "download.php/{0}/download.torrent"; } }
private new ConfigurationDataRecaptchaLogin configData
@@ -53,25 +53,27 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(59, TorznabCatType.MoviesHD, "Movies/HD");
AddCategoryMapping(61, TorznabCatType.Movies, "Movies/Classic");
AddCategoryMapping(64, TorznabCatType.Movies3D, "Movies/3D");
- AddCategoryMapping(78, TorznabCatType.XXX, "0day/XxX");
AddCategoryMapping(80, TorznabCatType.MoviesForeign, "Movies/Non-English");
AddCategoryMapping(81, TorznabCatType.MoviesBluRay, "Movies/BluRay");
AddCategoryMapping(82, TorznabCatType.MoviesOther, "Movies/CAM-TS");
AddCategoryMapping(102, TorznabCatType.MoviesOther, "Movies/Remux");
AddCategoryMapping(103, TorznabCatType.MoviesWEBDL, "Movies/Web-Rip");
AddCategoryMapping(105, TorznabCatType.Movies, "Movies/Kids");
+ AddCategoryMapping(16, TorznabCatType.MoviesUHD, "Movies/4K");
+ AddCategoryMapping(17, TorznabCatType.MoviesBluRay, "Movies/4K bluray");
//TV
AddCategoryMapping(2, TorznabCatType.TVSD, "TV/XviD");
AddCategoryMapping(43, TorznabCatType.TV, "TV/Packs");
AddCategoryMapping(9, TorznabCatType.TVHD, "TV-HD");
- AddCategoryMapping(19, TorznabCatType.TVHD, "TV-HD HEVC/x265");
AddCategoryMapping(63, TorznabCatType.TV, "TV/Classic");
AddCategoryMapping(77, TorznabCatType.TVSD, "TV/SD");
AddCategoryMapping(79, TorznabCatType.TVSport, "Sports");
AddCategoryMapping(100, TorznabCatType.TVFOREIGN, "TV/Non-English");
AddCategoryMapping(83, TorznabCatType.TVWEBDL, "TV/Web-Rip");
AddCategoryMapping(8, TorznabCatType.TVOTHER, "TV-Mobile");
+ AddCategoryMapping(18, TorznabCatType.TVAnime, "TV/Anime");
+ AddCategoryMapping(19, TorznabCatType.TVHD, "TV-x265");
// Games
AddCategoryMapping(6, TorznabCatType.PCGames, "Games/PC ISO");
diff --git a/src/Jackett/Services/ServerService.cs b/src/Jackett/Services/ServerService.cs
index 21a14fa05..3eb677477 100644
--- a/src/Jackett/Services/ServerService.cs
+++ b/src/Jackett/Services/ServerService.cs
@@ -153,6 +153,13 @@ namespace Jackett.Services
logger.Error(notice);
}
+ if (monoVersionO.Major < 5 || (monoVersionO.Major == 5 && monoVersionO.Minor < 8))
+ {
+ string notice = "A minimum Mono version of 5.8 is required. Please update to the latest version from http://www.mono-project.com/download/";
+ _notices.Add(notice);
+ logger.Error(notice);
+ }
+
try
{
// Check for mono-devel