Merge branch 'master' into dotnetcore

This commit is contained in:
flightlevel 2018-06-05 21:53:56 +10:00
commit 3843d68766
8 changed files with 35 additions and 27 deletions

View File

@ -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:

View File

@ -98,7 +98,7 @@
<button id="change-jackett-port" class="btn btn-primary btn-sm">
<i class="fa fa-wrench"></i> Apply server settings <span class="glyphicon glyphicon-ok-wrench" aria-hidden="true"></span>
</button>
<button id="view-jackett-logs" class="btn btn-danger btn-sm">
<button id="view-jackett-logs" class="btn btn-success btn-sm">
<i class="fa fa-rss"></i> View logs <span class="glyphicon glyphicon-ok-wrench" aria-hidden="true"></span>
</button>
<button id="trigger-updater" class="btn btn-warning btn-sm">

View File

@ -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

View File

@ -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());
}
}
}

View File

@ -231,7 +231,9 @@ namespace Jackett.Common.Indexers
public override async Task<byte[]> 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\"))");

View File

@ -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;
}
}
}
}

View File

@ -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");

View File

@ -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