core: fix magnet link encoding. resolves #5372 #4761 (#6824)

This commit is contained in:
Diego Heras 2020-01-05 07:31:32 +01:00 committed by garfield69
parent 9060d8acca
commit 7e93a86ae0
5 changed files with 6 additions and 12 deletions

View File

@ -139,9 +139,6 @@
download:
# the .torrent url is on the on the details page
selector: ul li a[href^="{{ .Config.downloadlink }}"]
filters:
- name: replace # temp fix for #5372
args: ["%E2%AD%90", ""]
search:
paths:

View File

@ -957,9 +957,6 @@
download:
selector: td a[href^="magnet:?xt="]
attribute: href
filters:
- name: replace # temp fix for #5372
args: ["%E2%AD%90", ""]
date:
selector: td:nth-last-of-type(5)
filters:

View File

@ -55,8 +55,6 @@
filters:
- name: querystring
args: url
- name: replace # temp fix for #5372
args: ["%E2%AD%90", ""]
search:
paths:
- path: torrents

View File

@ -74,8 +74,6 @@
filters:
- name: querystring
args: url
- name: replace # temp fix for #5372
args: ["%E2%AD%90", ""]
size:
selector: td:nth-child(2)
filters:

View File

@ -63,8 +63,12 @@ namespace Jackett.Server.Controllers
&& downloadBytes[6] == 0x3a // :
)
{
var magneturi = Encoding.UTF8.GetString(downloadBytes);
return Redirect(new Uri(magneturi).ToString());
// some sites provide magnet links with non-ascii characters, the only way to be sure the url
// is well encoded is to unscape and escape again
// https://github.com/Jackett/Jackett/issues/5372
// https://github.com/Jackett/Jackett/issues/4761
var magneturi = Uri.EscapeUriString(Uri.UnescapeDataString(Encoding.UTF8.GetString(downloadBytes)));
return Redirect(magneturi);
}
// This will fix torrents where the keys are not sorted, and thereby not supported by Sonarr.