Compare commits

...

28 Commits

Author SHA1 Message Date
Garfield69
f1415f32c6 mejortorrent: new domain 2023-06-10 05:53:15 +12:00
Bogdan
4e55187bdb cardigann: catch JsonReaderException when parsing JSON
Fixes #14439
2023-06-09 01:47:22 +03:00
Garfield69
967ff6db99 torrentqq: bump domain 2023-06-09 05:46:57 +12:00
Bogdan
23cff411ed logging: cleanse messages in log files (#14433)
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
2023-06-08 18:09:16 +03:00
Garfield69
f42b76fb36 add fappaizuri a private site for hentai/jav resolves #14438
new site, expect changes.
2023-06-08 21:40:30 +12:00
Garfield69
28c5c427e8 mejortorrent: fix cat detection. resolves #14435 2023-06-08 17:30:14 +12:00
Garfield69
68205b13ca torrentland: new layout. resolves #14437 2023-06-08 09:22:06 +12:00
Bogdan
dcec23434f hdolimpo-api: add auth header 2023-06-07 20:59:07 +03:00
Garfield69
09dc556140 assorted: new unblockit domain 2023-06-07 22:04:49 +12:00
Garfield69
0d69d7ba1b add therebels a Brazilian private site. resolves #14434 2023-06-07 21:53:13 +12:00
Bogdan
cc8a980a70 abtorrents: fix publish date 2023-06-07 04:47:27 +03:00
Bogdan
e9f7e4d13f unit3d: move api key auth in headers (#14429) 2023-06-07 02:48:56 +03:00
Bogdan
c6180f6860 lesaloon: update base url (#14431) 2023-06-06 21:56:46 +03:00
Garfield69
8c5fb64aec assorted unit3d: replacement API docs
https://github.com/HDInnovations/UNIT3D-Community-Edition/discussions/2816
2023-06-07 06:01:26 +12:00
Garfield69
a293346ce8 assorted unit3d: update api doc links 2023-06-06 20:43:36 +12:00
Garfield69
c0a5e24186 Update ptchina.yml 2023-06-06 16:05:10 +12:00
Garfield69
0e043a5792 assorted nexusphp: update engine tag 2023-06-06 16:01:49 +12:00
Bogdan
98f7e720e7 cardigann: allow empty inputs for login.method get (#14430) 2023-06-06 05:56:14 +03:00
Bogdan
8154acb47b cardigann: allow empty inputs for login.method get 2023-06-06 01:02:45 +03:00
Garfield69
df94aaf930 cinecalidad: new domain 2023-06-06 09:23:56 +12:00
Bogdan
d8dc0d221a torrentleech: use login form (#14428) resolves #14410 2023-06-06 09:11:58 +12:00
Garfield69
3ba502a378 YTS: correct sort
the default is date_added so using sort=date_added instead of sort_by=date_added did not make any difference but at least now we are in line with the api docs ;-)
2023-06-06 07:33:07 +12:00
Bogdan
b9655f1302 digitalcore: add search P2P releases only option 2023-06-05 19:46:34 +03:00
Garfield69
422eff86f4 hdtorrentsit: removed. resolves #14411 2023-06-05 17:21:55 +12:00
Garfield69
e66d88bbcf hd-unit3d: update engine tag 2023-06-05 15:47:08 +12:00
Garfield69
669ddae0b0 theoldschool: drop page 2023-06-05 15:46:44 +12:00
Garfield69
0b0d08dd7c bwtorrents: new cat 2023-06-05 07:39:54 +12:00
Garfield69
bf5b24a5a7 ccfbits: removed. resolves #14306 2023-06-04 20:08:56 +12:00
84 changed files with 744 additions and 612 deletions

View File

@@ -300,7 +300,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* CarPT
* CartoonChaos (CC)
* Cathode-Ray.Tube (CRT)
* CCFBits [![(invite needed)][inviteneeded]](#)
* Central Torrent
* CeskeForum
* CGPeers [![(invite needed)][inviteneeded]](#)
@@ -340,6 +339,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* FANO.IN [![(invite needed)][inviteneeded]](#)
* Fantastic Heaven
* Fantastiko
* Fappaizuri
* Femdomcult
* FileList (FL)
* FinElite (FE)
@@ -383,7 +383,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* HDRoute [![(invite needed)][inviteneeded]](#)
* HDSky [![(invite needed)][inviteneeded]](#)
* HDTime
* HDTorrents.it [![(invite needed)][inviteneeded]](#)
* HDTurk
* HDU
* HDVIDEO
@@ -549,6 +548,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TheDarkCommunity (TDC)
* TheEmpire (TE)
* TheLeachZone (TLZ)
* TheRebels
* TheScenePlace (TSP)
* Thor's Land
* TJUPT
@@ -609,7 +609,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* ZonaQ
</details>
Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maintainer and may be missing features or be broken. If you have an invite for them please send it to garfieldsixtynine -at- gmail.com to get them fixed/improved.
Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maintainer and may be missing features or be broken. If you have an invite for them please send it to garfieldsixtynine -at- gmail.com or jacketttest -at- gmail.com to get them fixed/improved.
### Aggregate indexers

View File

@@ -13,12 +13,11 @@ links:
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.asia/
- https://1337x.unblockit.mov/
- https://1337x.unblockninja.com/
legacylinks:
- https://1337x.is/
- https://1337x.nocensor.work/
- https://1337x.unblockit.cam/
- https://1337x.nocensor.biz/
- https://1337x.gd/
- https://1337x.unblockit.day/
@@ -41,6 +40,7 @@ legacylinks:
- https://1337x.mrunblock.guru/
- https://1337x.mrunblock.life/ # cloudflare 403
- https://1337x.unblockit.click/
- https://1337x.unblockit.asia/
caps:
categorymappings:

View File

@@ -189,4 +189,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-05-08
# NexusPHP v1.8.3 2023-05-14

View File

@@ -139,20 +139,22 @@ search:
files:
selector: td:nth-last-child(9)
date_day:
# Yesterday<br/>6:00 AM
selector: td:nth-last-child(7):contains("day")
# auto adjusted by site account profile
# Yesterday, 6:00 AM
selector: td:nth-last-child(7) > span[title*="day"]
attribute: title
optional: true
filters:
- name: fuzzytime
date_year:
# Aug 6 2021<br/>7:25 PM
selector: td:nth-last-child(7):not(:contains("day"))
# auto adjusted by site account profile
# Aug 6 2021, 7:25 PM
selector: td:nth-last-child(7) > span[title]:not([title*="day"])
attribute: title
optional: true
filters:
- name: dateparse
args: "MMM d yyyy h:mm tt"
args: "MMM d yyyy, h:mm tt"
date:
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
size:

View File

@@ -60,8 +60,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -69,15 +67,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -62,8 +62,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -71,15 +69,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -65,8 +65,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -74,15 +72,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -54,8 +54,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -63,15 +61,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -55,8 +55,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -64,14 +62,16 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"

View File

@@ -123,6 +123,7 @@ caps:
- {id: 217, cat: Movies, desc: "Tamil-Movies | Remuxes BluRay"}
- {id: 218, cat: TV, desc: "TV-Ishara TV"}
- {id: 219, cat: TV, desc: "TV-Bengali Tv"}
- {id: 220, cat: TV, desc: "TV-Shemaroo Umang"}
modes:
search: [q]

View File

@@ -189,4 +189,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.37 2023-05-08
# NexusPHP v1.7.38 2023-05-14

View File

@@ -1,152 +0,0 @@
---
id: ccfbits
name: CCFBits
description: "CCFBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://ccfbits.org/
caps:
categorymappings:
# 高清电影
- {id: 39, cat: Movies/HD, desc: "HD-DVD原盘"}
- {id: 40, cat: Movies/BluRay, desc: "Blu-ray原盘"}
- {id: 30, cat: Movies/HD, desc: "高清电影1080p"}
- {id: 2, cat: Movies/HD, desc: "高清电影720p"}
# 高清电视剧
- {id: 7, cat: TV/HD, desc: "高清欧美剧"}
- {id: 32, cat: TV/HD, desc: "高清国产剧"}
- {id: 34, cat: TV/HD, desc: "高清港台剧"}
- {id: 36, cat: TV/HD, desc: "高清日韩剧"}
# 其他高清视频
- {id: 12, cat: TV/Documentary, desc: "高清纪录片"}
- {id: 11, cat: TV/Sport, desc: "高清体育"}
- {id: 23, cat: TV/Anime, desc: "高清动漫"}
- {id: 4, cat: Audio/Video, desc: "高清MV/综艺"}
# 电视剧集包
- {id: 38, cat: TV/HD, desc: "欧美剧包"}
- {id: 33, cat: TV/HD, desc: "国产剧包"}
- {id: 35, cat: TV/HD, desc: "港台剧包"}
- {id: 37, cat: TV/HD, desc: "日韩剧包"}
# 非高清和其他
- {id: 43, cat: TV/SD, desc: "HR_HDTV"}
- {id: 20, cat: Movies/DVD, desc: "DVD"}
- {id: 42, cat: Movies/SD, desc: "XviD"}
- {id: 3, cat: Audio, desc: "无损音乐"}
- {id: 22, cat: Other, desc: "杂项"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: DESC
options:
DESC: desc
ASC: asc
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.embedded:has(h2:contains("登录失败"))
test:
path: browse.php
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0 active 1 incldead 2 deadonly
incldead: 1
fullsearch: "{{ if .Query.IMDBID }}1{{ else }}{{ end }}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.sort }}"
rows:
selector: table[border="1"][cellpadding="5"] > tbody > tr:has(a[href^="details.php?id="])
fields:
title:
selector: a[title][href^="details.php?id="]
attribute: title
filters:
- name: split
args: ["\n", 0]
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php/"]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
files:
selector: a[href$="&filelist=1"]
grabs:
selector: a[href^="snatches.php?id"]
filters:
- name: replace
args: ["次", ""]
size:
selector: td:nth-child(7)
remove: a
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
date:
selector: td:nth-child(5)
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
downloadvolumefactor:
case:
"font[color=\"#C20603\"]:contains(\"免费\")": 0
"font:has([src=\"/pic/arrowdown1.gif\"]):contains(\"0.5x\")": 0.5
"*": 1
uploadvolumefactor:
case:
"font:has([src=\"/pic/arrowup1.gif\"]):contains(\"1.5x\")": 1.5
"font:has([src=\"/pic/arrowup1.gif\"]):contains(\"2x\")": 2
"*": 1
description:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2)
remove: a, img
# Discuz! 7.2

View File

@@ -68,8 +68,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -81,8 +79,10 @@ search:
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
search: "{{ .Keywords }}"
imdb: "{{ .Query.IMDBIDShort }}"

View File

@@ -61,8 +61,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -70,15 +68,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -10,12 +10,11 @@ links:
- https://www.demonoid.is/
- https://www.dnoid.to/
- https://www.dnoid.pw/
- https://demonoid.unblockit.asia/
- https://demonoid.unblockit.mov/
- https://demonoid.torrentbay.net/
- https://demonoid.mrunblock.life/
- https://demonoid.nocensor.click/
legacylinks:
- https://demonoid.unblockit.cam/
- https://demonoid.nocensor.biz/
- https://demonoid.unblockit.day/
- https://demonoid.unblockit.llc/
@@ -42,6 +41,7 @@ legacylinks:
- https://demonoid.mrunblock.guru/
- https://demonoid.torrentbay.to/
- https://demonoid.unblockit.click/
- https://demonoid.unblockit.asia/
caps:
categorymappings:

View File

@@ -54,8 +54,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -63,15 +61,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -71,6 +71,10 @@ settings:
type: checkbox
label: Search freeleech only
default: false
- name: p2p_releases_only
type: checkbox
label: Search P2P releases only
default: false
- name: sort
type: select
label: Sort requested from site
@@ -109,6 +113,7 @@ search:
index: 0
limit: 100
order: "{{ .Config.type }}"
p2p: "{{ if .Config.p2p_releases_only }}true{{ else }}{{ end }}"
page: search
searchText: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}"
section: all

View File

@@ -7,12 +7,11 @@ type: public
encoding: UTF-8
links:
- https://extratorrent.st/
- https://extratorrent.unblockit.asia/
- https://extratorrent.unblockit.mov/
- https://extratorrent.mrunblock.life/
- https://extratorrent.nocensor.click/
legacylinks:
- https://extratorrent.nocensor.work/
- https://extratorrent.unblockit.cam/
- https://extratorrent.nocensor.biz/
- https://extratorrent.unblockit.day/
- https://extratorrent.unblockit.llc/
@@ -33,6 +32,7 @@ legacylinks:
- https://extratorrent.unblockit.boo/
- https://extratorrent.mrunblock.guru/
- https://extratorrent.unblockit.click/
- https://extratorrent.unblockit.asia/
caps:
categorymappings:

View File

@@ -13,7 +13,7 @@ links:
- https://eztv.yt/
- https://eztv1.xyz/
- https://eztv.unblockninja.com/
- https://eztv.unblockit.asia/
- https://eztv.unblockit.mov/
- https://eztv.mrunblock.life/
- https://eztv.nocensor.click/
legacylinks:
@@ -41,6 +41,7 @@ legacylinks:
- https://eztv.unblockit.boo/
- https://eztv.mrunblock.guru/
- https://eztv.unblockit.click/
- https://eztv.unblockit.asia/
caps:
categories:

View File

@@ -0,0 +1,139 @@
---
id: fappaizuri
name: Fappaizuri
description: "Fappaizuri is a Private Torrent Tracker for HENTAI / JAV"
language: en-US
type: private
encoding: UTF-8
links:
- https://fappaizuri.me/
caps:
categorymappings:
- {id: 8, cat: TV/Anime, desc: "Hentai"}
- {id: 7, cat: Console, desc: "H-games"}
- {id: 5, cat: XXX, desc: "JAV"}
- {id: 6, cat: Books, desc: "Manga"}
modes:
search: [q]
tv-search: [q, season, ep]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: lang
type: select
label: Language
default: 0
options:
0: All
4: Japanese
5: Chinese
6: Malaysia
7: North Korea
8: English
- name: sort
type: select
label: Sort requested from site
default: id
options:
id: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
method: post
path: account-login.php
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: b:contains("The specified username or password was incorrect.")
test:
path: account.php
search:
paths:
# https://fappaizuri.me/torrents-search.php?search=&c8=1&c6=1&incldead=1&freeleech=0&lang=0
- path: torrents-search.php
inputs:
$raw: "{{ range .Categories }}&c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead
incldead: 1
# 0 all, 1 notfree, 2 onlyfree
freeleech: "{{ if .Config.freeleech }}{{ .Config.freeleech }}2{{ else }}0{{ end }}"
lang: "{{ .Config.lang }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
rows:
selector: tr.t-row:has(a[href^="download.php?id="])
fields:
category:
selector: a[href^="search-torrents.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="torrents-details.php?id="] > b
details:
selector: a[href^="torrents-details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: a[href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: src=(.+?)>
_language:
selector: img[src*="images/languages/"]
attribute: alt
description:
selector: font[color="red"]
filters:
- name: append
args: " - {{ .Result._language }}"
size:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
date:
text: now
downloadvolumefactor:
case:
img[src="images/free.png"]: 0
"*": 1
uploadvolumefactor:
case:
img[src="images/doubleupload.gif"]: 2
"*": 1
minimumratio:
text: 1.0
# evolution

View File

@@ -84,8 +84,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -93,15 +91,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -10,14 +10,13 @@ links:
- https://glodls.to/
- https://gtdb.cc/
- https://www.gtdb.to/
- https://glotorrents.unblockit.asia/
- https://glotorrents.unblockit.mov/
- https://glotorrents.mrunblock.life/
- https://glodls.unblockninja.com/
- https://glotorrents.nocensor.click/
legacylinks:
- https://glodls.rocks/
- https://gtdb.to/
- https://glotorrents.unblockit.cam/
- https://glotorrents.nocensor.biz/
- https://glotorrents.unblockit.day/
- https://glotorrents.unblockit.llc/
@@ -38,6 +37,7 @@ legacylinks:
- https://glotorrents.unblockit.boo/
- https://glotorrents.mrunblock.guru/
- https://glotorrents.unblockit.click/
- https://glotorrents.unblockit.asia/
caps:
categorymappings:

View File

@@ -50,8 +50,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -59,14 +57,16 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
imdbId: "{{ .Query.IMDBIDShort }}"

View File

@@ -53,8 +53,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -62,15 +60,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
@@ -148,4 +148,4 @@ search:
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# json UNIT3D 6.3.0
# json UNIT3D 6.4.1

View File

@@ -146,4 +146,4 @@ search:
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
# NexusPHP 2c858e7 (Customised)
# NexusPHP 4e16128 (Customised)

View File

@@ -195,4 +195,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-05-06
# NexusPHP v1.8.4 2023-05-27

View File

@@ -171,4 +171,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.29 2022-10-12
# NexusPHP v1.8.3 2023-05-13

View File

@@ -56,8 +56,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -65,15 +63,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -188,4 +188,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.37 2023-05-08
# NexusPHP v1.8.4 2023-06-04

View File

@@ -1,161 +0,0 @@
---
id: hdtorrentsit
name: HDTorrents.it
description: "HDTorrents.it is an ITALIAN Private site for TV / MOVIES"
language: it-IT
type: private
encoding: UTF-8
links:
- https://hdtorrents.xyz/ # Italian IP address filtering
legacylinks:
- http://hdtorrents.it/
- http://hdtorrents.xyz/
caps:
categorymappings:
- {id: 2040, cat: Movies/HD}
- {id: 5040, cat: TV/HD}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: ip_filtering
type: info
label: "IP Filtering"
default: "The <b>404 Not Found</b> error means your IP was not accepted. Check the <a href=\"https://check-host.net/check-report/e5b649bkfa\" target=\"_blank\">Locations report</a>, only those with a Status of <b>OK</b> will be accepted."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: div.error
- selector: h1:contains("404 Not Found")
test:
path: browse.php
search:
paths:
- path: browse.php
method: post
allowEmptyInputs: true
keywordsfilters:
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%"]
- name: diacritics
args: replace
- name: re_replace # remove SXXEYY from research
args: ["(?i)(S\\d{1,2}E\\d{1,2})", ""]
- name: re_replace # remove SXX from research
args: ["(?i)(S\\d{1,2})", ""]
inputs:
ajax: false
search: "{{ .Keywords }}"
# 0 active 1 incldead 2 onlydead 3 gold 4 no seeders
incldead: 0
rows:
selector: tbody#highlighted tr
fields:
year:
selector: td:nth-child(2) a:nth-child(1)
filters:
- name: regexp # find torrent year
args: (\d{4})
_quality: # (BDRip 1080, BDRip 720p etc)
selector: td:nth-child(1) a:nth-child(1) img
attribute: alt
_audio: # ita audio TAG
selector: a[href^="download.php?id="]
attribute: href
filters:
- name: querystring
args: name
- name: regexp
args: (DTS AC3 ITA|DTS ITA|AC3 ITA)
- name: re_replace
args: ["ITA", ""]
title:
selector: td:nth-child(2) a:nth-child(1)
filters:
- name: re_replace # separate title
args: ["(\\s+\\/\\s+|\\/\\s+|\\s+\\/|\\/)(.*)\\s\\(", " ("]
- name: re_replace # remove (yyyy) from the title
args: ["(\\(\\d{4}\\)?\\s?)", ""]
- name: re_replace # remove |
args: ["(\\s\\||\\s\\/)", ""]
- name: re_replace # Stagione X --> S0X
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
- name: re_replace # Stagione XX --> SXX
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
- name: re_replace # / Episodio [YY-YY --> EYY-YY
args: ["(?i)(\\s\\/?\\s?Episodi[o]?)\\s\\[", "E"]
- name: re_replace # Episodio 4 to E4
args: ["(?i)\\b(?:[\\s\\/\\|]?Episodi[o]?\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
- name: re_replace # / Completa [episodi YY-YY --> EYY-YY
args: ["(?i)(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
- name: re_replace # remove di YY] | remove /YY]
args: ["(?i)(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
- name: re_replace # remove various
args: ["(?i)(Serie completa|Completa|\\[in pausa\\])", ""]
- name: append
args: " ({{ .Result.year }}) [{{ .Result._quality }} - {{ .Result._audio }} ITA]"
- name: re_replace # replace multiple spaces
args: ["[ ]{2,}", " "]
details:
selector: td:nth-child(2) a:nth-child(1)
attribute: href
poster:
selector: td:nth-child(2)[onmousemove]
attribute: onmousemove
filters:
- name: regexp
args: ".*\\(.*,.*,.*,'(.*?)'\\)"
download:
selector: a[href^="download.php?id="]
attribute: href
size:
selector: td:nth-child(3)
seeders:
selector: td:nth-child(4)
optional: true
default: 1
filters:
- name: re_replace
args: ["(\\d*) \\(\\+\\d*\\)\n? \\| (\\d*) \\(\\+\\d*\\)", "$1"]
leechers:
selector: td:nth-child(4)
optional: true
default: 1
filters:
- name: re_replace
args: ["(\\d*) \\(\\+\\d*\\)\n? \\| (\\d*) \\(\\+\\d*\\)", "$2"]
date:
selector: td:nth-child(2) i
filters:
- name: append
args: " +02:00" # EET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
category:
case:
"a[href^=\"details.php\"]:contains(\"Stagione\")": 5040 # TV/HD
"*": 2040 # default to Movies/HD
downloadvolumefactor:
case:
img[src="pic/freedownload.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
# engine tbd

View File

@@ -169,4 +169,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.34 2023-01-16
# NexusPHP v1.7.39 2023-05-15

View File

@@ -59,8 +59,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -68,15 +66,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -61,8 +61,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -70,15 +68,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -179,4 +179,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.26 2022-09-15
# NexusPHP v1.8.2 2023-05-08

View File

@@ -65,8 +65,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -74,15 +72,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -6,8 +6,9 @@ language: fr-FR
type: private
encoding: UTF-8
links:
- https://lesaloonv2-0.net/
- https://lesaloonv2-0.xyz/
legacylinks:
- https://lesaloonv2-0.net/
- http://lesaloonv2-0.net/ # site forces https
caps:
@@ -121,7 +122,7 @@ settings:
default: false
login:
# https://lesaloonv2-0.net/yupy_login.php
# https://lesaloonv2-0.xyz/yupy_login.php
path: yupy_login.php
method: form
form: form[action^="login"]
@@ -137,7 +138,7 @@ login:
search:
paths:
# http://lesaloonv2-0.net/index.php?page=torrents&search=supernatural+s13e20&parentcategory=0&category=0&genre=0&options=0&active=0
# http://lesaloonv2-0.xyz/index.php?page=torrents&search=supernatural+s13e20&parentcategory=0&category=0&genre=0&options=0&active=0
- path: index.php
inputs:
page: torrents

View File

@@ -9,7 +9,7 @@ followredirect: true
# changes to this indexer should also be made to limetorrentsclone
links:
- https://www.limetorrents.lol/
- https://limetorrents.unblockit.asia/
- https://limetorrents.unblockit.mov/
- https://limetorrents.unblockninja.com/
- https://limetorrents.mrunblock.life/
- https://limetorrents.nocensor.click/
@@ -38,6 +38,7 @@ legacylinks:
- https://limetorrents.unblockit.boo/
- https://limetorrents.mrunblock.guru/
- https://limetorrents.unblockit.click/
- https://limetorrents.unblockit.asia/
caps:
categorymappings:

View File

@@ -55,8 +55,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -64,15 +62,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -59,8 +59,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -68,15 +66,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -58,8 +58,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -67,15 +65,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -178,4 +178,4 @@ search:
filters:
- name: replace
args: [" 剩余时间:", ""]
# NexusPHP v1.7.29 2022-10-13
# NexusPHP v1.8.2 2023-05-08

View File

@@ -60,8 +60,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -69,15 +67,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -192,4 +192,4 @@ search:
remove: a, img, span
description:
text: "{{ .Result.genre }}"
# NexusPHP v1.7.33 2022-12-19
# NexusPHP v1.8.0 2023-04-16

View File

@@ -188,4 +188,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-05-08
# NexusPHP v1.8.3 2023-05-14

View File

@@ -172,4 +172,4 @@ search:
filters:
- name: replace
args: [" 剩余时间:", ""]
# Ourbits 1.1.0 (Based on NexusPHP Standard v1.5 Beta 4) 4691022 2023-05-04
# Ourbits 1.1.0 (Based on NexusPHP Standard v1.5 Beta 4) 3feac18 2023-05-30

View File

@@ -59,8 +59,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -68,15 +66,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -185,4 +185,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-04-29
# NexusPHP v1.8.4 2023-05-27

View File

@@ -83,8 +83,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -92,15 +90,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -69,8 +69,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -78,15 +76,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -57,8 +57,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -66,15 +64,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -53,8 +53,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -62,15 +60,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -61,8 +61,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -70,15 +68,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -49,8 +49,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -58,15 +56,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -49,8 +49,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -58,15 +56,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -61,8 +61,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -70,15 +68,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -50,8 +50,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -59,15 +57,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -83,8 +83,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -92,15 +90,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
@@ -112,7 +112,6 @@ search:
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
@@ -211,4 +210,4 @@ search:
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D custom edition 1.0.2 (based on 6.5.0)
# json UNIT3D custom edition 1.0.1 (based on 6.5.0)

View File

@@ -0,0 +1,175 @@
---
id: therebels-api
name: TheRebels (API)
description: "TheRebels is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: pt-BR
type: private
encoding: UTF-8
links:
- https://therebels.tv/
caps:
categorymappings:
- {id: 10, cat: TV/Anime, desc: "Animes"}
- {id: 5, cat: PC, desc: "Aplicativos"}
- {id: 12, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 7, cat: XXX, desc: "Conteúdo Adulto"}
- {id: 9, cat: Other, desc: "Cursos"}
- {id: 8, cat: Books/EBook, desc: "E-Books"}
- {id: 1, cat: Movies, desc: "Filmes"}
- {id: 4, cat: Console, desc: "Jogos"}
- {id: 3, cat: Audio, desc: "Músicas"}
- {id: 11, cat: Books/Mags, desc: "Revistas"}
- {id: 2, cat: TV, desc: "Series"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://therebels.tv/\" target=\"_blank\">TheRebels</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
search:
paths:
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
infohash:
selector: info_hash
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
genre:
selector: meta.genres
filters:
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
args: ["(?i)(TV Movie)", "TV_Movie"]
- name: replace
args: [" & ", "_&_"]
description:
text: "{{ .Result.genre }}"
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
downloadvolumefactor:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
# global MR is 1.0 but torrents must be seeded for 2 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.5.0

View File

@@ -63,8 +63,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -72,15 +70,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -10,12 +10,11 @@ requestDelay: 2
links:
- https://www.torlock2.com/
- https://www.torlock.com/
- https://torlock.unblockit.asia/
- https://torlock.unblockit.mov/
- https://torlock.mrunblock.life/
- https://torlock.nocensor.click/
legacylinks:
- https://torlock.com/
- https://torlock.unblockit.cam/
- https://torlock.nocensor.biz/
- https://torlock.unblockit.day/
- https://torlock.unblockit.llc/
@@ -36,6 +35,7 @@ legacylinks:
- https://torlock.unblockit.boo/
- https://torlock.mrunblock.guru/
- https://torlock.unblockit.click/
- https://torlock.unblockit.asia/
caps:
# dont forget to update the search fields category case block

View File

@@ -8,13 +8,12 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrentdownload.info/
- https://torrentdownload.unblockit.asia/
- https://torrentdownload.unblockit.mov/
- https://torrentdownload.mrunblock.life/
- https://torrentdownload.nocensor.click/
legacylinks:
- https://torrentdownload.nocensor.space/
- https://torrentdownload.nocensor.work/
- https://torrentdownload.unblockit.cam/
- https://torrentdownload.nocensor.biz/
- https://torrentdownload.unblockit.day/
- https://torrentdownload.unblockit.llc/
@@ -34,6 +33,7 @@ legacylinks:
- https://torrentdownload.unblockit.boo/
- https://torrentdownload.mrunblock.guru/
- https://torrentdownload.unblockit.click/
- https://torrentdownload.unblockit.asia/
caps:
categorymappings:

View File

@@ -8,14 +8,13 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrentdownloads.pro/
- https://torrentdownloads.unblockit.asia/
- https://torrentdownloads.unblockit.mov/
- https://torrentdownloads.mrunblock.life/
- https://torrentdownloads.unblockninja.com/
- https://torrentdownloads.nocensor.click/
legacylinks:
- https://www.torrentdownloads.me/
- https://torrentdownloads.nocensor.work/
- https://torrentdownloads.unblockit.cam/
- https://torrentdownloads.nocensor.biz/
- https://torrentdownloads.unblockit.day/
- https://torrentdownloads.unblockit.llc/
@@ -36,6 +35,7 @@ legacylinks:
- https://www.torrentdownloads.info/
- https://torrentdownloads.mrunblock.guru/
- https://torrentdownloads.unblockit.click/
- https://torrentdownloads.unblockit.asia/
caps:
categorymappings:

View File

@@ -56,8 +56,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -65,15 +63,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -9,13 +9,12 @@ followredirect: true
links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- https://torrentfunk.unblockit.asia/
- https://torrentfunk.unblockit.mov/
- https://torrentfunk.mrunblock.life/
- https://torrentfunk.nocensor.click/
legacylinks:
- https://torrentfunk.nocensor.space/
- https://torrentfunk.nocensor.work/
- https://torrentfunk.unblockit.cam/
- https://torrentfunk.nocensor.biz/
- https://torrentfunk.unblockit.day/
- https://torrentfunk.unblockit.llc/
@@ -35,6 +34,7 @@ legacylinks:
- https://torrentfunk.unblockit.boo/
- https://torrentfunk.mrunblock.guru/
- https://torrentfunk.unblockit.click/
- https://torrentfunk.unblockit.asia/
caps:
categorymappings:

View File

@@ -10,7 +10,7 @@ links:
- https://torrentgalaxy.to/
- https://torrentgalaxy.mx/
- https://tgx.rs/
- https://torrentgalaxy.unblockit.asia/
- https://torrentgalaxy.unblockit.mov/
- https://torrentgalaxy.unblockninja.com/
legacylinks:
- https://torrentgalaxy.org/ # redirects to *.to
@@ -18,7 +18,6 @@ legacylinks:
- https://tgx.unblocked.monster/
- https://torrentgalaxy.nocensor.space/
- https://torrentgalaxy.nocensor.work/
- https://torrentgalaxy.unblockit.cam/
- https://torrentgalaxy.nocensor.biz/
- https://torrentgalaxy.unblockit.day/
- https://torrentgalaxy.unblockit.llc/
@@ -36,6 +35,7 @@ legacylinks:
- https://torrentgalaxy.unblockit.bio/
- https://torrentgalaxy.su/
- https://torrentgalaxy.unblockit.click/
- https://torrentgalaxy.unblockit.asia/
caps:
categorymappings:

View File

@@ -84,6 +84,7 @@ search:
# name=&description=&mediainfo=&uploader=&keywords=&tmdbId=&imdbId=&tvdbId=&malId=
# &startYear=&endYear=&playlistId=&collectionId=&categories[]=1&perPage=100&free[0]=100
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
@@ -96,6 +97,7 @@ search:
perPage: 100
page: 1
# supports genre search but you need to know the id, example genres=28 for Acción
keywordsfilters:
- name: re_replace
args: ["(?i)\\bS(\\d+)", "{{ if .Config.compatOld }}T$1{{ else }}S$1{{ end }}"]
@@ -143,24 +145,17 @@ search:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/"]
attribute: href
tvdbid:
selector: a[href*="thetvdb.com/?tab="]
attribute: href
selector: div#imdb_id
size:
selector: td:nth-last-child(5)
selector: td.torrent-listings-size
seeders:
selector: td:nth-last-child(4)
selector: td.torrent-listings-seeders
leechers:
selector: td:nth-last-child(3)
selector: td.torrent-listings-leechers
grabs:
selector: td:nth-last-child(2)
selector: td.torrent-listings-completed
date:
selector: td:nth-last-child(1)
selector: td.torrent-listings-age
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace

View File

@@ -122,7 +122,8 @@ settings:
login:
path: user/account/login/
method: post
method: form
form: form[name="login-form"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"

View File

@@ -7,9 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq259.com/
- https://torrentqq260.com/
legacylinks:
- https://torrentqq244.com/
- https://torrentqq245.com/. # typo
- https://torrentqq245.com/
- https://torrentqq246.com/
@@ -25,6 +24,7 @@ legacylinks:
- https://torrentqq256.com/
- https://torrentqq257.com/
- https://torrentqq258.com/
- https://torrentqq259.com/
caps:
categorymappings:

View File

@@ -63,8 +63,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -72,14 +70,16 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
imdbId: "{{ .Query.IMDBIDShort }}"

View File

@@ -181,4 +181,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-05-08
# NexusPHP v1.8.4 2023-05-27

View File

@@ -162,4 +162,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-04-30
# NexusPHP v1.8.4 2023-06-05

View File

@@ -50,8 +50,6 @@ settings:
login:
path: /api/torrents
method: get
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
@@ -59,15 +57,17 @@ login:
search:
paths:
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
- path: "/api/torrents/filter"
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
api_token: "{{ .Config.apikey }}"
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"

View File

@@ -9,7 +9,7 @@ requestDelay: 2.5 # 2.5 requests per second (2 causes problems)
links:
# dont forget to update the details, download and poster replace args
- https://yts.mx/
- https://yts.unblockit.asia/
- https://yts.unblockit.mov/
- https://yts.unblockninja.com/
- https://yts.mrunblock.life/
- https://yts.nocensor.click/
@@ -17,7 +17,6 @@ legacylinks:
- https://yts.ag/
- https://yts.am/
- https://yts.lt/
- https://yts.unblockit.cam/
- https://yts.nocensor.biz/
- https://yts.unblockit.day/
- https://yts.unblockit.llc/
@@ -38,6 +37,7 @@ legacylinks:
- https://yts.unblockit.boo/
- https://yts.mrunblock.guru/
- https://yts.unblockit.click/
- https://yts.unblockit.asia/
caps:
categorymappings:
@@ -61,12 +61,13 @@ search:
type: json
inputs:
# ignore ' (e.g. search for america's Next Top Model)
query_term: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# without this the API sometimes returns nothing
limit: 50
sort: date_added
sort_by: date_added
order_by: desc
keywordsfilters:
# ignore ' (e.g. search for america's Next Top Model)
- name: re_replace
args: ["[^\\w]+", " "]

View File

@@ -186,4 +186,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.8.2 2023-05-08
# NexusPHP v1.8.4 2023-05-27

View File

@@ -35,5 +35,13 @@ namespace Jackett.Common.Extensions
return true;
}
public static string Replace(this string text, int index, int length, string replacement)
{
text = text.Remove(index, length);
text = text.Insert(index, replacement);
return text;
}
}
}

View File

@@ -21,6 +21,7 @@ using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using Jackett.Common.Utils.Clients;
using Microsoft.AspNetCore.WebUtilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
@@ -555,10 +556,14 @@ namespace Jackett.Common.Indexers
if (Login.Method == "post")
{
var pairs = new Dictionary<string, string>();
foreach (var Input in Definition.Login.Inputs)
if (Login.Inputs != null && Login.Inputs.Any())
{
var value = applyGoTemplateText(Input.Value);
pairs.Add(Input.Key, value);
foreach (var input in Login.Inputs)
{
var value = applyGoTemplateText(input.Value);
pairs.Add(input.Key, value);
}
}
var LoginUrl = resolvePath(Login.Path).ToString();
@@ -628,18 +633,27 @@ namespace Jackett.Common.Indexers
pairs[name] = value;
}
foreach (var Input in Definition.Login.Inputs)
if (Login.Inputs != null && Login.Inputs.Any())
{
var value = applyGoTemplateText(Input.Value);
var input = Input.Key;
if (Login.Selectors)
foreach (var Input in Login.Inputs)
{
var inputElement = landingResultDocument.QuerySelector(Input.Key);
if (inputElement == null)
throw new ExceptionWithConfigData(string.Format("Login failed: No input found using selector {0}", Input.Key), configData);
input = inputElement.GetAttribute("name");
var value = applyGoTemplateText(Input.Value);
var input = Input.Key;
if (Login.Selectors)
{
var inputElement = landingResultDocument.QuerySelector(Input.Key);
if (inputElement == null)
{
throw new ExceptionWithConfigData($"Login failed: No input found using selector {Input.Key}", configData);
}
input = inputElement.GetAttribute("name");
}
pairs[input] = value;
}
pairs[input] = value;
}
// selector inputs
@@ -772,18 +786,22 @@ namespace Jackett.Common.Indexers
else if (Login.Method == "get")
{
var queryCollection = new NameValueCollection();
foreach (var Input in Definition.Login.Inputs)
if (Login.Inputs != null && Login.Inputs.Any())
{
var value = applyGoTemplateText(Input.Value);
queryCollection.Add(Input.Key, value);
foreach (var input in Login.Inputs)
{
var value = applyGoTemplateText(input.Value);
queryCollection.Add(input.Key, value);
}
}
var LoginUrl = resolvePath(Login.Path + "?" + queryCollection.GetQueryString()).ToString();
var loginUrl = resolvePath(Login.Path + "?" + queryCollection.GetQueryString()).ToString();
configData.CookieHeader.Value = null;
var loginResult = await RequestWithCookiesAsync(LoginUrl, referer: SiteLink, headers: headers);
var loginResult = await RequestWithCookiesAsync(loginUrl, referer: SiteLink, headers: headers);
configData.CookieHeader.Value = loginResult.Cookies;
checkForError(loginResult, Definition.Login.Error);
checkForError(loginResult, Login.Error);
}
else if (Login.Method == "oneurl")
{
@@ -793,11 +811,11 @@ namespace Jackett.Common.Indexers
var loginResult = await RequestWithCookiesAsync(LoginUrl, referer: SiteLink, headers: headers);
configData.CookieHeader.Value = loginResult.Cookies;
checkForError(loginResult, Definition.Login.Error);
checkForError(loginResult, Login.Error);
}
else
{
throw new NotImplementedException("Login method " + Definition.Login.Method + " not implemented");
throw new NotImplementedException($"Login method {Login.Method} not implemented");
}
logger.Debug($"CardigannIndexer ({Id}): Cookies after login: {CookieHeader}");
@@ -1469,7 +1487,18 @@ namespace Jackett.Common.Indexers
continue;
}
var parsedJson = JToken.Parse(results);
JToken parsedJson;
try
{
parsedJson = JToken.Parse(results);
}
catch (JsonReaderException ex)
{
logger.Debug("Unexpected response content ({0} bytes): {1}", response.ContentBytes.Length, response.ContentString);
throw new Exception("Error Parsing Json Response", ex);
}
if (parsedJson == null)
{

View File

@@ -24,7 +24,7 @@ namespace Jackett.Common.Indexers
public override string Id => "cinecalidad";
public override string Name => "Cinecalidad";
public override string Description => "Películas Full HD en Latino Dual.";
public override string SiteLink { get; protected set; } = "https://www.cinecalidad.gs/";
public override string SiteLink { get; protected set; } = "https://www.cinecalidad.tf/";
public override string[] LegacySiteLinks => new[]
{
"https://cinecalidad.website/",
@@ -44,7 +44,8 @@ namespace Jackett.Common.Indexers
"https://cinecalidad.dev/",
"https://cinecalidad.ms/",
"https://www3.cinecalidad.ms/",
"https://ww1.cinecalidad.ms/"
"https://ww1.cinecalidad.ms/",
"https://www.cinecalidad.gs/"
};
public override string Language => "es-419";
public override string Type => "public";

View File

@@ -26,12 +26,11 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks => new[]
{
"https://www.epublibre.org/",
"https://epublibre.unblockit.asia/"
"https://epublibre.unblockit.mov/"
};
public override string[] LegacySiteLinks => new[]
{
"https://epublibre.org/",
"https://epublibre.unblockit.cam/",
"https://epublibre.unblockit.day/",
"https://epublibre.unblockit.llc/",
"https://epublibre.unblockit.blue/",
@@ -45,7 +44,8 @@ namespace Jackett.Common.Indexers
"https://epublibre.unblockit.ink/",
"https://epublibre.unblockit.bio/",
"https://epublibre.unblockit.boo/",
"https://epublibre.unblockit.click/"
"https://epublibre.unblockit.click/",
"https://epublibre.unblockit.asia/"
};
public override string Language => "es-ES";
public override string Type => "public";

View File

@@ -26,19 +26,14 @@ namespace Jackett.Common.Indexers
public override string Id => "mejortorrent";
public override string Name => "MejorTorrent";
public override string Description => "MejorTorrent - Hay veces que un torrent viene mejor! :)";
public override string SiteLink { get; protected set; } = "https://www2.mejortorrent.rip/";
public override string SiteLink { get; protected set; } = "https://www3.mejortorrent.rip/";
public override string[] AlternativeSiteLinks => new[]
{
"https://www2.mejortorrent.rip/",
"https://mejortorrent.unblockit.asia/"
"https://www3.mejortorrent.rip/",
"https://mejortorrent.unblockit.mov/"
};
public override string[] LegacySiteLinks => new[]
{
"https://www.mejortorrentt.net/",
"http://www.mejortorrent.org/",
"http://www.mejortorrent.tv/",
"http://www.mejortorrentt.com/",
"https://www.mejortorrentt.org/",
"http://www.mejortorrentt.org/",
"https://www.mejortorrents.net/",
"https://www.mejortorrents1.com/",
@@ -52,7 +47,6 @@ namespace Jackett.Common.Indexers
"https://www.mejortorrento.info/",
"https://mejortorrent.nocensor.work/",
"https://www.mejortorrentes.net/",
"https://mejortorrent.unblockit.cam/",
"https://mejortorrent.nocensor.biz/",
"https://mejortorrent.unblockit.day/",
"https://mejortorrent.unblockit.llc/",
@@ -64,7 +58,9 @@ namespace Jackett.Common.Indexers
"https://mejortorrent.wtf/",
"https://mejortorrent.unblockit.boo/",
"https://mejortorrent.unblockit.click/",
"https://www1.mejortorrent.rip/"
"https://www1.mejortorrent.rip/",
"https://mejortorrent.unblockit.asia/",
"https://www2.mejortorrent.rip/",
};
public override string Language => "es-ES";
public override string Type => "public";
@@ -541,14 +537,12 @@ namespace Jackett.Common.Indexers
var cat = MejorTorrentCatType.Otro;
if (mejortorrentCat == null)
{
if (detailsStr.Contains("peliculas_extend"))
if (detailsStr.Contains("pelicula"))
cat = MejorTorrentCatType.Pelicula;
else if (detailsStr.Contains("series_extend"))
else if (detailsStr.Contains("serie"))
cat = MejorTorrentCatType.Serie;
else if (detailsStr.Contains("musica_extend"))
else if (detailsStr.Contains("musica"))
cat = MejorTorrentCatType.Musica;
else if (detailsStr.Contains("pelicula"))
cat = MejorTorrentCatType.Pelicula;
}
else if (mejortorrentCat.Equals(MejorTorrentCatType.Pelicula) ||
mejortorrentCat.Equals(MejorTorrentCatType.Serie) ||

View File

@@ -2,43 +2,43 @@ using System.Collections.Generic;
using System.Linq;
using Jackett.Common.Models;
using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils.Logging;
using NLog;
using NLog.Targets;
namespace Jackett.Common.Services
{
[Target("LogService")]
public class LogCacheService : TargetWithLayout, ILogCacheService
{
private static List<CachedLog> logs = new List<CachedLog>();
public void AddLog(LogEventInfo l)
{
lock (logs)
{
logs.Insert(0, new CachedLog()
{
Level = l.Level.Name,
Message = l.FormattedMessage,
When = l.TimeStamp
});
logs = logs.Take(200).ToList();
}
}
private static List<CachedLog> _Logs = new List<CachedLog>();
public List<CachedLog> Logs
{
get
{
lock (logs)
lock (_Logs)
{
return logs.ToList();
return _Logs.ToList();
}
}
}
protected override void Write(LogEventInfo logEvent) => AddLog(logEvent);
private static void AddLog(LogEventInfo logEvent)
{
lock (_Logs)
{
_Logs.Insert(0, new CachedLog
{
Level = logEvent.Level.Name,
Message = CleanseLogMessage.Cleanse(logEvent.FormattedMessage),
When = logEvent.TimeStamp
});
_Logs = _Logs.Take(200).ToList();
}
}
}
}

View File

@@ -0,0 +1,15 @@
using System.Text;
using NLog;
using NLog.Targets;
namespace Jackett.Common.Utils.Logging
{
public class CleanseFileTarget : FileTarget
{
protected override void RenderFormattedMessage(LogEventInfo logEvent, StringBuilder target)
{
var result = CleanseLogMessage.Cleanse(Layout.Render(logEvent));
target.Append(result);
}
}
}

View File

@@ -0,0 +1,74 @@
using System.Linq;
using System.Text.RegularExpressions;
using Jackett.Common.Extensions;
namespace Jackett.Common.Utils.Logging
{
// See https://github.com/Prowlarr/Prowlarr/blob/develop/src/NzbDrone.Common/Instrumentation/CleanseLogMessage.cs
public class CleanseLogMessage
{
private static readonly Regex[] _CleansingRules =
{
// Url
new Regex(@"(?<=[?&: ;])(apikey|api_key|(?:(?:access|api)[-_]?)?token|pass(?:key|wd)?|auth|authkey|user|u?id|api|[a-z_]*apikey|account|pid|pwd)=(?<secret>[^&=""]+?)(?=[ ""&=]|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?<=[?& ;])[^=]*?(_?(?<!use|get_)token|username|passwo?rd)=(?<secret>[^&=]+?)(?= |&|$|;)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"rss\.torrentleech\.org/(?!rss)(?<secret>[0-9a-z]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"rss\.torrentleech\.org/rss/download/[0-9]+/(?<secret>[0-9a-z]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"iptorrents\.com/[/a-z0-9?&;]*?(?:[?&;](u|tp)=(?<secret>[^&=;]+?))+(?= |;|&|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"/fetch/[a-z0-9]{32}/(?<secret>[a-z0-9]{32})", RegexOptions.Compiled),
new Regex(@"\b(\w*)?(_?(?<!use|get_)token|username|passwo?rd)=(?<secret>[^&=]+?)(?= |&|$|;)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?<=authkey = "")(?<secret>[^&=]+?)(?="")", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?<=beyond-hd\.[a-z]+/api/torrents/)(?<secret>[^&=][a-z0-9]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?<=beyond-hd\.[a-z]+/torrent/download/[\w\d-]+[.]\d+[.])(?<secret>[a-z0-9]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// UNIT3D
new Regex(@"(?<=[a-z0-9-]+\.[a-z]+/torrent/download/\d+\.)(?<secret>[^&=][a-z0-9]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// Path
new Regex(@"""C:\\Users\\(?<secret>[^\""]+?)(\\|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"""/(home|Users)/(?<secret>[^/""]+?)(/|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// uTorrent
new Regex(@"\[""[a-z._]*(username|password)"",\d,""(?<secret>[^""]+?)""", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"\[""(boss_key|boss_key_salt|proxy\.proxy)"",\d,""(?<secret>[^""]+?)""", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// BroadcastheNet (;torrent_pass|torrents_notify_ is for MTV)
new Regex(@"""?method""?\s*:\s*""(getTorrents)"",\s*""?params""?\s*:\s*\[\s*""(?<secret>[^""]+?)""", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"getTorrents\(""(?<secret>[^""]+?)""", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?<=\?|&|;|=)(authkey|torrent_pass|torrents_notify)[_=](?<secret>[^&=]+?)(?=""|&|$)", RegexOptions.Compiled | RegexOptions.IgnoreCase),
// Indexer Responses
new Regex(@"(?:avistaz|exoticaz|cinemaz|privatehd)\.[a-z]{2,3}/rss/download/(?<secret>[^&=]+?)/(?<secret>[^&=]+?)\.torrent", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"(?:animebytes)\.[a-z]{2,3}/torrent/[0-9]+/download/(?<secret>[^&=]+?)[""]", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@",""info_hash"":""(?<secret>[^&=]+?)"",", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@"""token"":""(?<secret>[^&=]+?)""", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@",""pass[- _]?key"":""(?<secret>[^&=]+?)"",", RegexOptions.Compiled | RegexOptions.IgnoreCase),
new Regex(@",""rss[- _]?key"":""(?<secret>[^&=]+?)"",", RegexOptions.Compiled | RegexOptions.IgnoreCase),
};
public static string Cleanse(string message)
{
if (message.IsNullOrWhiteSpace())
{
return message;
}
foreach (var regex in _CleansingRules)
{
message = regex.Replace(message, m =>
{
var value = m.Value;
foreach (var capture in m.Groups["secret"].Captures.OfType<Capture>().Reverse())
{
value = value.Replace(capture.Index - m.Index, capture.Length, "(removed)");
}
return value;
});
}
return message;
}
}
}

View File

@@ -3,6 +3,7 @@ using System.IO;
using System.Text;
using Jackett.Common.Models.Config;
using Jackett.Common.Services;
using Jackett.Common.Utils.Logging;
using NLog;
using NLog.Config;
using NLog.LayoutRenderers;
@@ -21,7 +22,7 @@ namespace Jackett.Common.Utils
var logConfig = new LoggingConfiguration();
var logFile = new FileTarget
var logFile = new CleanseFileTarget
{
Layout = "${longdate} ${level} ${message} ${onexception:inner=${newline}${newline}[v${assembly-version}] ${exception:format=ToString}${newline}${exception:format=Data}${newline}}",
FileName = Path.Combine(settings.DataFolder, logFileName),

View File

@@ -314,6 +314,7 @@ namespace Jackett.Updater
"Definitions/btxpress.yml",
"Definitions/casatorrent.yml", // renamed to teamctgame
"Definitions/casstudiotv.yml",
"Definitions/ccfbits.yml",
"Definitions/channelx.yml",
"Definitions/cili180.yml", // renamed to liaorencili
"Definitions/cilipro.yml",
@@ -401,6 +402,7 @@ namespace Jackett.Updater
"Definitions/hdreactor.yml", // renamed to hdhouse
"Definitions/hdspain.yml",
"Definitions/hdstreet.yml",
"Definitions/hdtorrentsit.yml",
"Definitions/hellashut.yml",
"Definitions/hellastz.yml",
"Definitions/hidden-palace.yml",