Compare commits

...

59 Commits

Author SHA1 Message Date
Garfield69
46bb025e34 piratbit: update row selector, remove closed results 2022-02-13 15:58:39 +13:00
ilike2burnthing
03b8857eb4 piratbitl: update row selector, remove closed results 2022-02-12 23:43:06 +00:00
Garfield69
2c089b243a Merge branch 'master' of https://github.com/Jackett/Jackett 2022-02-13 12:11:01 +13:00
Garfield69
3286b3ce43 torrentsir: bump domain 2022-02-13 12:10:59 +13:00
ilike2burnthing
c6b1f92d0b marinetracker: update categories 2022-02-12 23:05:45 +00:00
Garfield69
97296ac021 torrent-explosiv: update cat 2022-02-13 10:07:48 +13:00
Garfield69
d2ca3ef8c5 torrentbd: new category detection 2022-02-13 10:05:16 +13:00
Garfield69
c2dc9d54f2 krazyzone: new cats
and update others
2022-02-13 09:40:16 +13:00
ilike2burnthing
030a278b59 megamixtracker: update MST
https://megamixtracker.hu/hitnrun.php says 48hrs
https://megamixtracker.hu/rules.php?id=91 says 72hrs
48hrs is probably right, but play it safe and use 72hrs.
2022-02-12 15:16:31 +00:00
Garfield69
edd9f13e00 torlook: date can be missing 2022-02-12 16:52:08 +13:00
Garfield69
710059f6f5 7torrents: removed. resolves #7098 2022-02-12 14:59:06 +13:00
Garfield69
09034727fc redbits: switch to API resolves #11541 #8682 2022-02-12 13:42:04 +13:00
john-miller-831985
268a334643 IPTorrents fixes for Cloudflare (#12939) 2022-02-11 21:59:17 +00:00
ilike2burnthing
49a0c2d7e0 tellytorrent: upgrade for unit3d 6.0.0. resolves #5635 2022-02-11 12:29:01 +00:00
Garfield69
b4ceb291b6 torrentz2eu: new domain 2022-02-11 17:53:04 +13:00
Garfield69
93b72e8496 torrentqq: bump domain 2022-02-11 17:52:29 +13:00
Garfield69
e9e3ca71a0 gktorrent: new domain *.net -> *.org 2022-02-11 17:52:15 +13:00
Garfield69
dc2cea6dfd dontorrent: new domain *.nu -> *.si 2022-02-11 17:39:24 +13:00
Garfield69
546cd23c33 Update README.md 2022-02-11 16:40:42 +13:00
Garfield69
9b48e056c0 skipthecommercials: upgrade for unit3d 6.0.0 #12472 2022-02-11 07:06:11 +13:00
Garfield69
e4605f82b9 shareisland: upgrade for unit3d 6.0.0 resolves #12936 2022-02-11 07:05:30 +13:00
Garfield69
1076bb3a89 uhd-heaven: fix 6093491bd8 2022-02-10 17:41:12 +13:00
Garfield69
6093491bd8 uhd-heaven: update for unit3d 6.0.0 2022-02-10 17:36:00 +13:00
Garfield69
c636d75e77 bitbr: add new cats 2022-02-10 17:27:03 +13:00
Garfield69
30c308b099 redbits: correct version 2022-02-09 19:44:09 +13:00
Garfield69
3effff5f34 Revert "redbits: replaced by redbits-api #8682"
This reverts commit bafb695a59.
2022-02-09 19:36:35 +13:00
Garfield69
6f28661efd btworld became btxpress in 2018
but the indexer was not deleted.
2022-02-09 19:36:15 +13:00
Garfield69
560eb60812 cinematik: oops fix 290beb8fbd #12929 2022-02-09 17:33:20 +13:00
Garfield69
290beb8fbd cinematik: add bumped config. #12929 2022-02-09 17:28:26 +13:00
Garfield69
1c6a2da52a fix 6824e05f36 2022-02-09 15:17:37 +13:00
Garfield69
6824e05f36 assorted: unblockit.how -> *.cam 2022-02-09 13:16:42 +13:00
Garfield69
f05228fec4 add turktracker a Turkish private site. resolves #12923 2022-02-09 09:12:01 +13:00
Garfield69
4c8acbe9a4 lat-team: replaced by lat-team-api #8682 2022-02-08 17:28:53 +13:00
Garfield69
bafb695a59 redbits: replaced by redbits-api #8682 2022-02-08 17:23:27 +13:00
ilike2burnthing
50c9df8e57 xbit: add public tracker. resolves #1774 (#12928) 2022-02-07 21:35:32 +00:00
Diego Heras
198a6d1f8c core: implement filters in cardigann json parser (#12922) 2022-02-07 20:54:17 +00:00
ilike2burnthing
7a7144bd9d rutracker: update categories. resolves #12925 2022-02-07 16:01:00 +00:00
Diego Heras
701b37b789 newpct: fix download links. resolves #12914 (#12921) 2022-02-06 20:17:20 +01:00
Garfield69
7d8a250406 ettv: removed. resolves #2052 2022-02-07 07:28:07 +13:00
syncck
98ab671934 linkomanija: add option to search in description (#12917) 2022-02-07 06:46:29 +13:00
Garfield69
dcfc1207bf pirateiro: removed. resolves #7070 2022-02-06 19:58:05 +13:00
syncck
b1c80f380c linkomanija: refresh cats (#12916) 2022-02-06 10:33:15 +13:00
ilike2burnthing
b1c7c279cc teracod: change encoding to utf8 2022-02-05 16:46:57 +00:00
Garfield69
231efdfa0a bitbazis: new layout resolves #12522
update cats
update MST
add DLVF and ULVF
update fields
2022-02-05 14:50:58 +13:00
Garfield69
1a75973566 torrent-explosiv: update musik cats #6183 2022-02-05 10:34:24 +13:00
Garfield69
a881d327c0 torrent-explosiv: new domain resolves #6183
update cats
update fields
update MR
2022-02-05 10:13:43 +13:00
Garfield69
1eb4ba4290 Update README.md 2022-02-04 21:40:56 +13:00
Garfield69
9432bf8071 torrent*: bump domains 2022-02-04 13:46:07 +13:00
Garfield69
d354dc6bf5 audiobookbay: new domains 2022-02-04 13:36:40 +13:00
Garfield69
1892371ea2 Revert "1337x: update official domains"
This reverts commit 3060a211a6.
2022-02-04 08:57:26 +13:00
Garfield69
3060a211a6 1337x: update official domains
add *.is
drop unblockit and nocensor, they don't work
2022-02-04 08:52:46 +13:00
Garfield69
417e3e2a77 dontorrent: new domain *.red -> *.nu 2022-02-03 09:38:31 +13:00
Garfield69
f944acc115 p2pelite: expired CA 2022-02-03 07:52:55 +13:00
Garfield69
0f6778d46b hdme: untrusted CA resolves #12907 2022-02-02 14:28:33 +13:00
Garfield69
33b8f69720 newpct: new domain *.top -> *.art #12889 2022-02-02 11:56:06 +13:00
Garfield69
7642e3bf89 newpct: add referer to DL resolves #12909 2022-02-01 21:18:43 +13:00
Garfield69
43f85ad63c newpct: add referer resolves #12889 2022-01-31 20:57:57 +13:00
Garfield69
73e22c54e2 erairaws: add ddos-guard info #12902 2022-01-31 20:42:04 +13:00
Garfield69
a7b20f678f assorted: add ddos-guard info 2022-01-31 20:36:38 +13:00
83 changed files with 4470 additions and 1256 deletions

View File

@@ -28,7 +28,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* ØMagnet
* 1337x
* 24rolika
* 7torrents
* ACG.RIP
* ACGsou (36DM)
* Anidex
@@ -61,7 +60,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* elitetorrent
* EpubLibre
* Erai-Raws
* ETTV
* EXT Torrents
* ExtraTorrent.st
* EZTV
@@ -111,7 +109,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* ParnuXi
* PC-torrent
* PiratBit
* Pirateiro
* Pornforall
* PornLeech
* PornoLive
@@ -168,6 +165,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* UnionDHT
* VSTHouse
* VST Torrents
* xBiT
* xxxAdultTorrent
* xxxtor
* xxxtorrents
@@ -451,7 +449,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* NorBits
* oMg[WtF]trackr
* OpenCD [![(invite needed)][inviteneeded]](#)
* Oppaitime [![(invite needed)][inviteneeded]](#)
* Oppaitime
* Orpheus
* OshenPT
* Ourbits (HDPter) [![(invite needed)][inviteneeded]](#)
@@ -573,6 +571,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Trezzor [![(invite needed)][inviteneeded]](#)
* TurkSeed
* TurkTorrent (TT)
* turktracker
* TV Chaos UK (TVCUK)
* TvRoad
* TVstore
@@ -580,7 +579,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Twilights Zoom
* U2 (U2分享園@動漫花園) [![(invite needed)][inviteneeded]](#)
* UHDBits
* UHD-HEAVEN
* UHD-HEAVEN [![(invite needed)][inviteneeded]](#)
* UnionGang [![(invite needed)][inviteneeded]](#)
* UnlimitZ
* Vizuk

View File

@@ -13,7 +13,7 @@ links:
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.how/
- https://1337x.unblockit.cam/
- https://1337x.nocensor.biz/
legacylinks:
- https://1337x.unblockit.app/
@@ -36,6 +36,7 @@ legacylinks:
- https://1337x.unblockit.kim/
- https://1337x.unblockit.bz/
- https://1337x.unblockit.tv/
- https://1337x.unblockit.how/
caps:
categorymappings:

View File

@@ -1,85 +0,0 @@
---
id: 7torrents
name: 7torrents
description: "7torrents is a Public BitTorrent DHT search engine."
language: en-US
type: public
encoding: UTF-8
links:
- https://www.7torrents.cc/
caps:
categories:
Other: Other
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: created
options:
created: created
length: size
seeders: seeders
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
- name: info_8000
type: info
label: About 7torrents Categories
default: 7torrents does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
search:
# https://www.7torrents.cc/search?query=2020&sort=created
paths:
- path: search
inputs:
query: "{{ if .Keywords }}{{ .Keywords }}{{ else }} {{ end }}"
sort: "{{ .Config.sort }}"
rows:
selector: div.media
fields:
category:
text: Other
title:
selector: div.media
attribute: data-name
details:
selector: div.media h5 a
attribute: href
# #7966
# download:
# selector: div.media-right a[href*="/torrent/"]
# attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
date:
selector: div.media
attribute: data-added
filters:
- name: timeago
size:
selector: div.media
attribute: data-size
seeders:
selector: div.media
attribute: data-seeders
leechers:
selector: div.media
attribute: data-leechers
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -74,10 +74,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -24,8 +24,6 @@ search:
- path: "https://api.anilibria.tv/v2/{{ if .Keywords }}searchTitles?filter=names,poster.url,code,torrents.list,season.year&limit=100&search={{ .Keywords }}{{ else }}getUpdates?filter=names,poster.url,code,torrents.list,season.year&limit=100{{ end }}"
response:
type: json
attribute: torrents.list
multiple: true
keywordsfilters:
# strip season and ep
@@ -34,6 +32,8 @@ search:
rows:
selector: $
attribute: torrents.list
multiple: true
fields:
category:

View File

@@ -79,10 +79,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -6,10 +6,10 @@ language: en-US
type: public
encoding: UTF-8
links:
- http://audiobookbay.nl/ # site forces http, does not support https
- http://audiobookbay.ws/
- http://audiobookbay.fi/ # site forces http, does not support https
- http://audiobookbay.se/
- http://audiobookbayabb.com/
- https://audiobookbay.unblockit.how/
- https://audiobookbay.unblockit.cam/
legacylinks:
- https://audiobookbay.la/
- https://audiobookbay.unblockit.lat/
@@ -28,6 +28,9 @@ legacylinks:
- https://audiobookbay.unblockit.kim/
- https://audiobookbay.unblockit.bz/
- https://audiobookbay.unblockit.tv/
- http://audiobookbay.nl/
- http://audiobookbay.ws/
- https://audiobookbay.unblockit.how/
caps:
categorymappings:

View File

@@ -11,40 +11,43 @@ links:
caps:
categorymappings:
- {id: 85, cat: Movies/SD, desc: "Film/Cam/Hun"}
- {id: 86, cat: Movies/SD, desc: "Film/Cam/Eng"}
- {id: 15, cat: Movies/SD, desc: "Film/XviD/Hun"}
- {id: 34, cat: Movies/HD, desc: "Film/x264/Hun"}
- {id: 83, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 64, cat: Movies, desc: "Film/Pack"}
- {id: 16, cat: Movies/SD, desc: "Film/XviD/Eng"}
- {id: 17, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
- {id: 19, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
- {id: 34, cat: Movies/HD, desc: "Film/x264/Hun"}
- {id: 48, cat: Movies/HD, desc: "Film/x264/Eng"}
- {id: 83, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 82, cat: Movies/HD, desc: "Film/HD/Eng"}
- {id: 85, cat: Movies/SD, desc: "Film/Cam/XviD/Hun"}
- {id: 86, cat: Movies/SD, desc: "Film/Cam/XviD/Eng"}
- {id: 92, cat: Movies/UHD, desc: "Film/UHD/Hun"}
- {id: 93, cat: Movies/UHD, desc: "Film/UHD/Eng"}
- {id: 64, cat: Movies, desc: "Film/Pack"}
- {id: 22, cat: TV, desc: "Sorozat/Hun"}
- {id: 69, cat: TV/Anime, desc: "Mese/XviD"}
- {id: 58, cat: TV, desc: "Sorozat/Eng"}
- {id: 69, cat: TV/Anime, desc: "Mese/SD"}
- {id: 68, cat: TV/Anime, desc: "Mese/DVD"}
- {id: 91, cat: TV/Anime, desc: "Mese/HD"}
- {id: 25, cat: Audio/MP3, desc: "Mp3/Hun"}
- {id: 26, cat: Audio/MP3, desc: "Mp3/Eng"}
- {id: 71, cat: Audio/Lossless, desc: "Lossless/Eng"}
- {id: 84, cat: Audio/Lossless, desc: "Lossless/Hun"}
- {id: 71, cat: Audio/Lossless, desc: "Lossless/Eng"}
- {id: 31, cat: PC/Games, desc: "Játék/PC"}
- {id: 81, cat: PC/0day, desc: "Program/PC"}
- {id: 14, cat: PC, desc: "Program/Egyéb"}
- {id: 49, cat: PC/0day, desc: "Program/Rip"}
- {id: 54, cat: Console, desc: "Játék/Konzol"}
- {id: 81, cat: PC/0day, desc: "Program/PC"}
- {id: 49, cat: PC/0day, desc: "Program/Rip"}
- {id: 14, cat: PC, desc: "Program/Egyéb"}
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Android"}
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- {id: 27, cat: Books/EBook, desc: "Könyv/Hun"}
- {id: 50, cat: Books/EBook, desc: "Könyv/Eng"}
- {id: 65, cat: Other, desc: "Egyéb"}
# the following are no longer in the cat list in the search page, but are still in the profile cat list
- {id: 17, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 19, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 24, cat: Audio/Video, desc: "Videóklipp"}
- {id: 33, cat: XXX/SD, desc: "Film/SD/XXX"}
- {id: 89, cat: XXX/x264, desc: "Film/HD/XXX"}
- {id: 66, cat: XXX/ImageSet, desc: "Képek/XXX"}
- {id: 27, cat: Books/EBook, desc: "Könyv/Hun"}
- {id: 50, cat: Books/EBook, desc: "Könyv/Eng"}
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- {id: 24, cat: Audio/Video, desc: "Videóklipp"}
- {id: 65, cat: Other, desc: "Egyéb"}
modes:
search: [q]
@@ -102,7 +105,7 @@ search:
# site does not support imdbid searching or appear to have freeleech
rows:
selector: table[width="900px"]:last-child tbody tr:has(a[href^="userdetails.php?id="])
selector: table[width="100%"]:last-child tbody tr:has(a[href^="userdetails.php?id="])
fields:
category:
@@ -112,7 +115,8 @@ search:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
selector: div.tooltip
remove: span
details:
selector: a[href^="details.php?id="]
attribute: href
@@ -120,41 +124,44 @@ search:
selector: a.preview
attribute: href
download:
selector: a[href^="details.php?id="]
selector: a[href^="download.php?torrent="]
attribute: href
filters:
- name: replace
args: ["details.php?id=", "download.php?torrent="]
size:
selector: td:nth-last-child(2)
selector: td:nth-child(6)
date:
# 2021-11-09 16:51:24
selector: td:last-child
selector: td:nth-child(7)
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
args: "06/01/02 -07:00"
grabs:
selector: td:nth-child(6)
selector: td:nth-child(5)
filters:
- name: regexp
args: "D:(\\d+)"
seeders:
selector: td:nth-child(4)
selector: td:nth-child(3)
filters:
- name: regexp
args: "S:(\\d+)"
leechers:
selector: td:nth-child(5)
selector: td:nth-child(4)
filters:
- name: regexp
args: "L:(\\d+)"
downloadvolumefactor:
text: 1
case:
"i:contains(\"(Free)\")": 0
"*": 1
uploadvolumefactor:
text: 1
case:
"i:contains(\"(2x)\")": 2
"i:contains(\"(3x)\")": 3
"i:contains(\"(4x)\")": 4
"*": 1
minimumseedtime:
# 3 day (as seconds = 3 x 24 x 60 x 60)
text: 259200
# 1 day (as seconds = 1 x 24 x 60 x 60)
text: 86400
# engine n/a

View File

@@ -18,9 +18,11 @@ caps:
- {id: 404, cat: TV/Documentary, desc: "Documentários"}
- {id: 407, cat: TV/Sport, desc: "Esportes"}
- {id: 401, cat: Movies, desc: "Filmes"}
- {id: 416, cat: Books/Comics, desc: "HQ/Mangá"}
- {id: 408, cat: PC/Games, desc: "Jogos"}
- {id: 417, cat: Audio, desc: "Músicas"}
- {id: 412, cat: Other, desc: "Scripts Android/iOS"}
- {id: 412, cat: Other, desc: "Scripts PHP"}
- {id: 411, cat: Other, desc: "Scripts PHP"}
- {id: 402, cat: TV, desc: "Séries"}
- {id: 406, cat: PC, desc: "Softwares"}
- {id: 415, cat: PC/0day, desc: "istema Operacional"}

View File

@@ -66,7 +66,7 @@ search:
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
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 }}"
@@ -83,6 +83,7 @@ search:
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -67,10 +67,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -49,6 +49,10 @@ settings:
0: Active
1: "Active and Inactive"
2: Inactive
- name: dropbumped
type: checkbox
label: Ignore Bumped Torrents
default: false
- name: info_results
type: info
label: Results Per Page
@@ -77,7 +81,7 @@ search:
srchdtls: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
rows:
selector: table[border="1"] tr:not(:first-child)
selector: "table[border=\"1\"] tr:not(:first-child){{ if .Config.dropbumped }}:not(:has(span.bumped)){{ else }}{{ end }}"
fields:
category:

View File

@@ -75,10 +75,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -11,7 +11,7 @@ links:
- https://www.dnoid.to/
- https://www.dnoid.pw/
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
- https://demonoid.unblockit.how/
- https://demonoid.unblockit.cam/
- https://demonoid.torrentbay.to/
- https://demonoid.nocensor.biz/
legacylinks:
@@ -35,6 +35,7 @@ legacylinks:
- https://demonoid.unblockit.kim/
- https://demonoid.unblockit.bz/
- https://demonoid.unblockit.tv/
- https://demonoid.unblockit.how/
caps:
categorymappings:

View File

@@ -67,7 +67,6 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
keywordsfilters:
- name: re_replace
@@ -75,6 +74,7 @@ search:
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -50,6 +50,10 @@ settings:
- name: password
type: password
label: Password
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
- name: freeleech
type: checkbox
label: Filter freeleech only

View File

@@ -1,181 +0,0 @@
---
id: ettv
name: ETTV
description: "ETTV is a Public torrent site for TV / MOVIES, home of the ETTV, ETHD and DTOne groups."
language: en-US
type: public
encoding: UTF-8
followredirect: true
links:
- https://www.ettvcentral.com/
- https://ettv.unblockninja.com/
- https://ettv.unblockit.how/
- https://ettv.nocensor.biz/
legacylinks:
- https://www.ettv.tv/
- https://www.ettv.to/
- https://www.ettvdl.com/
- https://www.ettv.be/
- https://ettv.unblockit.dev/
- https://ettv.unblockit.ltd/
- https://ettv.unblockit.link/
- https://ettv.unblockit.buzz/
- https://ettv.unblocked.monster/
- https://ettv.unblockit.club/
- https://ettv.unblockit.onl/
- https://ettv.unblockit.li/
- https://ettv.unblockit.uno/
- https://ettv.unblockit.ch/
- https://ettv.nocensor.space/
- https://ettv.unblockit.ws/
- https://ettv.nocensor.work/
- https://ettv.unblockit.kim/
- https://ettv.unblockit.bz/
- https://ettv.unblockit.tv/
caps:
categorymappings:
- {id: 88, cat: XXX, desc: "Adult - Books"}
- {id: 84, cat: XXX, desc: "Adult - Games"}
- {id: 82, cat: XXX, desc: "Adult - HD-Movies"}
- {id: 83, cat: XXX, desc: "Adult - Hentai"}
- {id: 86, cat: XXX, desc: "Adult - Magazines"}
- {id: 81, cat: XXX, desc: "Adult - Movies"}
- {id: 87, cat: XXX, desc: "Adult - Other"}
- {id: 85, cat: XXX, desc: "Adult - Pictures"}
- {id: 74, cat: TV/Anime, desc: "Anime - Dubbed/Subbed"}
- {id: 73, cat: TV/Anime, desc: "Anime - Movies"}
- {id: 75, cat: TV/Anime, desc: "Anime - Others"}
- {id: 56, cat: Audio/Audiobook, desc: "Books - Audio"}
- {id: 55, cat: Books/Comics, desc: "Books - Comics"}
- {id: 53, cat: Books/EBook, desc: "Books - Ebooks"}
- {id: 54, cat: Books/Mags, desc: "Books - Magazines"}
- {id: 68, cat: Books/Other, desc: "Books - Others"}
- {id: 90, cat: Books/Other, desc: "Books - Others"}
- {id: 58, cat: PC/Games, desc: "Games - Android"}
- {id: 71, cat: PC/Games, desc: "Games - Others"}
- {id: 57, cat: PC/Games, desc: "Games - Windows"}
- {id: 49, cat: Movies/3D, desc: "Movies - 3D"}
- {id: 66, cat: Movies/BluRay, desc: "Movies - BluRay Disc/Remux"}
- {id: 91, cat: Movies, desc: "Movies - Bollywood"}
- {id: 65, cat: Movies/SD, desc: "Movies - CAM/TS"}
- {id: 80, cat: TV/Documentary, desc: "Documentary"}
- {id: 51, cat: Movies, desc: "Movies - Dubs/Dual Audio"}
- {id: 67, cat: Movies/DVD, desc: "Movies - DVDR"}
- {id: 1, cat: Movies/HD, desc: "Movies - HD 1080p"}
- {id: 2, cat: Movies/HD, desc: "Movies - HD 720p"}
- {id: 76, cat: Movies/HD, desc: "Movies - HEVC/x265"}
- {id: 47, cat: Movies/HD, desc: "Movies - X264/H264"}
- {id: 3, cat: Movies/UHD, desc: "Movies - UltraHD/4K"}
- {id: 42, cat: Movies/SD, desc: "Movies - XviD"}
- {id: 60, cat: Audio/Lossless, desc: "Music - FLAC"}
- {id: 59, cat: Audio/MP3, desc: "Music - MP3"}
- {id: 61, cat: Audio/Video, desc: "Music - Music Videos"}
- {id: 69, cat: Audio/Other, desc: "Music - Others"}
- {id: 95, cat: Other/Misc, desc: "Others - Misc"}
- {id: 78, cat: Other, desc: "Others - Unsorted"}
- {id: 63, cat: PC/Mobile-Android, desc: "Software - Android"}
- {id: 64, cat: PC/Mac, desc: "Software - Mac"}
- {id: 70, cat: PC, desc: "Software - Others"}
- {id: 62, cat: PC/0day, desc: "Software - Windows"}
- {id: 94, cat: Books, desc: "Tutorials - Tutorials"}
- {id: 79, cat: TV/Documentary, desc: "Documentary"}
- {id: 41, cat: TV/HD, desc: "TV - HD/X264/H264"}
- {id: 77, cat: TV/HD, desc: "TV - HEVC/x265"}
- {id: 5, cat: TV/SD, desc: "TV - SD/X264/H264"}
- {id: 50, cat: TV/SD, desc: "TV - SD/XVID"}
- {id: 72, cat: TV/Sport, desc: "TV - Sport"}
- {id: 7, cat: TV, desc: "TV - TV Packs"}
- {id: 89, cat: TV/UHD, desc: "TV - UltraHD/4K"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- 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
download:
selectors:
- selector: a[href^="magnet:?xt="]
attribute: href
search:
path: "{{ if .Keywords }}torrents-search.php{{ else }}torrents.php{{ end }}"
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
incldead: 1
keywordsfilters:
- name: replace
args: ["-", " "] # remove special search character (negative search)
- name: replace
args: ["+", " "] # remove special search character (positive search)
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
- name: re_replace
args: ["\\s+", " "] # clean up whitespaces (multiple consecutive spaces confuses the search engine)
rows:
selector: div.myFrame-content > div > table > tbody > tr[class]
filters:
- name: andmatch # they ignore keywords <= characters, so we still andmatch it, see https://www.ettv.tv/forum/view/topic/and-search-operator-broken--70
fields:
download:
selector: a[href^="/torrent/"]
attribute: href
title:
selector: a[href^="/torrent/"][title]
attribute: title
filters:
- name: re_replace
args: ["( torrent)$", ""]
category:
text: 78 # issue #7110
category|noappend:
optional: true
selector: a[href^="/torrents.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="/torrent/"]
attribute: href
date:
selector: td:nth-child(3)
size:
selector: td:nth-child(4)
filters:
- name: replace
args: ["N/A", "0 B"]
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -7,13 +7,14 @@ type: public
encoding: UTF-8
links:
- https://extratorrent.st/
- https://extratorrent.unblockit.how/
- https://extratorrent.unblockit.cam/
- https://extratorrent.nocensor.biz/
legacylinks:
- https://extratorrent.nocensor.work/
- https://extratorrent.unblockit.kim/
- https://extratorrent.unblockit.bz/
- https://extratorrent.unblockit.tv/
- https://extratorrent.unblockit.how/
caps:
categorymappings:

View File

@@ -12,7 +12,7 @@ links:
- https://eztv.tf/
- https://eztv.yt/
- https://eztv.unblockninja.com/
- https://eztv.unblockit.how/
- https://eztv.unblockit.cam/
- https://eztv.nocensor.biz/
legacylinks:
- https://eztv.ag/ # redirects to .re
@@ -35,6 +35,7 @@ legacylinks:
- https://eztv.unblockit.kim/
- https://eztv.unblockit.bz/
- https://eztv.unblockit.tv/
- https://eztv.unblockit.how/
caps:
categories:

View File

@@ -48,6 +48,10 @@ settings:
- name: password
type: password
label: Password
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
- name: thankyou
type: text
label: Thank You Comment

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://www.gktorrents.net/
- https://www.gktorrents.org/
- https://gktorrent.nocensor.biz/
legacylinks:
- https://www.gktorrent.com/
@@ -36,6 +36,7 @@ legacylinks:
- https://gktorrent.nocensor.space/
- https://www.gktorrents.com/
- https://gktorrent.nocensor.work/
- https://www.gktorrents.net/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://glodls.to/
- https://www.gtdb.to/
- https://glotorrents.unblockit.how/
- https://glotorrents.unblockit.cam/
- https://glotorrents.nocensor.biz/
legacylinks:
- https://glodls.rocks/
@@ -32,6 +32,7 @@ legacylinks:
- https://glotorrents.unblockit.kim/
- https://glotorrents.unblockit.bz/
- https://glotorrents.unblockit.tv/
- https://glotorrents.unblockit.how/
caps:
categorymappings:

View File

@@ -64,10 +64,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -5,6 +5,8 @@ description: "HDME is a Private Torrent Tracker for HD MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: windows-1252
certificates:
- 07872b2e93e50d8abeea094e5621b4c637c61652 # self signed
links:
- https://hdme.eu/

View File

@@ -68,10 +68,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -60,6 +60,7 @@ search:
- path: advancedsearch.php
response:
type: json
inputs:
q: "{{ if and .Config.titleOnly .Keywords }}title:({{ else }}{{ end }}{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}{{ if and .Config.titleOnly .Keywords }}){{ else }}{{ end }}{{ if .Keywords }} AND {{ else }}{{ end }}format:(\"Archive BitTorrent\"){{ if .Categories }} AND mediatype:({{ join .Categories \" OR \" }}){{ else }}{{ end }}"
fl[]: "identifier,title,mediatype,item_size,downloads,btih,publicdate"

View File

@@ -64,16 +64,17 @@ caps:
- {id: 50, cat: PC/Mobile-Android, desc: "Applications Android"}
- {id: 51, cat: PC/Mac, desc: "Applications Misc , Linux , Mac "}
- {id: 52, cat: PC/0day, desc: "Applications Windows"}
- {id: 22, cat: Books, desc: "Ebooks/Mags"}
- {id: 22, cat: Books, desc: "Ebooks/Mags/Comics"}
- {id: 48, cat: Audio/Audiobook, desc: "Ebooks Audiobooks"}
- {id: 49, cat: Books/EBook, desc: "Ebooks Ebooks / Mags"}
- {id: 117, cat: Books/Comics, desc: "Ebooks Comics"}
- {id: 49, cat: Books/EBook, desc: "Ebooks Mags"}
- {id: 23, cat: PC/Games, desc: "Games"}
- {id: 45, cat: PC/Games, desc: "Games PC / ISO"}
- {id: 105, cat: Console/PS4, desc: "Games PS2 / PS3 / PS4 "}
- {id: 46, cat: Console/NDS, desc: "Games Wii+ Nds"}
- {id: 47, cat: Console/XBox 360, desc: "Games Xbox360"}
- {id: 20, cat: Movies, desc: "Movies"}
- {id: 113, cat: Movies, desc: "Movies 2021 Movies"}
- {id: 113, cat: Movies, desc: "Movies 2022 Movies"}
- {id: 116, cat: Movies/UHD, desc: "Movies 4K Movies"}
- {id: 53, cat: Movies, desc: "Movies Anime / Kids"}
- {id: 54, cat: Movies/BluRay, desc: "Movies Bluray,HDRip,BDRip,Webrip,HEVC"}
@@ -82,6 +83,7 @@ caps:
- {id: 57, cat: Movies/DVD, desc: "Movies DVDR ,NTSCPAL ,ISO"}
- {id: 58, cat: Movies/WEB-DL, desc: "Movies DVDRip,AVI,XVID,BRRip"}
- {id: 59, cat: Movies/Foreign, desc: "Movies Foreign"}
- {id: 118, cat: Movies, desc: "Movies iPad"}
- {id: 107, cat: Movies/HD, desc: "Movies Mp4 Movies"}
- {id: 60, cat: Movies, desc: "Movies Netflix"}
- {id: 61, cat: Movies/3D, desc: "Movies Remux , 3D"}
@@ -91,8 +93,8 @@ caps:
- {id: 42, cat: TV/Anime, desc: "TV Kids / Anime"}
- {id: 43, cat: TV/Sport, desc: "TV Sport"}
- {id: 44, cat: TV/Sport, desc: "TV Sport Packs"}
- {id: 26, cat: Books/Comics, desc: "Comics"}
- {id: 37, cat: Books/Comics, desc: "Comics Comics"}
- {id: 26, cat: Audio, desc: "Request Seed DMC/Mastermix"}
- {id: 37, cat: Audio, desc: "Request Seed DMC/Mastermix"}
- {id: 25, cat: TV, desc: "TV Packs/Full Seasons"}
- {id: 38, cat: TV, desc: "TV Packs Full Seasons"}
- {id: 40, cat: TV, desc: "TV Packs Kids / Anime Full Seasons"}
@@ -102,9 +104,9 @@ caps:
- {id: 1, cat: Other/Misc, desc: "Unsorted"}
- {id: 2, cat: Other/Misc, desc: "Unsorted To Be Edited"}
- {id: 30, cat: Other, desc: "Exclusive VIP"}
- {id: 33, cat: Other, desc: "Exclusive VIP Exclusive VIP Not To Be Uploaded Anywhere"}
- {id: 33, cat: Other, desc: "Exclusive VIP Not To Be Uploaded Anywhere"}
- {id: 31, cat: Other, desc: "VIP"}
- {id: 32, cat: Other, desc: "VIP VIP Not To Be Uploaded Anywhere"}
- {id: 32, cat: Other, desc: "VIP Not To Be Uploaded Anywhere"}
- {id: 99, cat: Other, desc: "Christmas Albums"}
- {id: 101, cat: Other, desc: "Christmas Albums Packs"}
- {id: 103, cat: Other, desc: "All Christmas Movies and Packs"}

View File

@@ -0,0 +1,158 @@
---
id: lat-team-api
name: Lat-Team (API)
description: "Lat-Team is a SPANISH Private Torrent Tracker for MOVIES / TV"
language: es-ES
type: private
encoding: UTF-8
links:
- https://lat-team.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 6, cat: Movies/Other, desc: "Retro Pelicula"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- {id: 2, cat: TV, desc: "TV Series"}
- {id: 7, cat: TV/Other, desc: "Retro Serie TV"}
- {id: 8, cat: TV/Foreign, desc: "Telenovelas y Teleseries"}
- {id: 3, cat: Audio, desc: "Musica"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
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://lat-team.com/\" target =_blank>Lat-Team</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
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
keywordsfilters:
- name: re_replace
args: ["(?i)\\bS(\\d+)", "T$1"]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
title_vose:
selector: name:contains(VOSE)
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " ENGLiSH"
title_notvose:
selector: name:not(:contains(VOSE))
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " SPANiSH"
title:
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumratio:
text: 1.0
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D 5.3.0

View File

@@ -1,219 +0,0 @@
---
id: lat-team
name: Lat-Team
description: "Lat-Team is a SPANISH Private Torrent Tracker for MOVIES / TV"
language: es-ES
type: private
encoding: UTF-8
links:
- https://lat-team.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 6, cat: Movies/Other, desc: "Retro Pelicula"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- {id: 2, cat: TV, desc: "TV Series"}
- {id: 7, cat: TV/Other, desc: "Retro Serie TV"}
- {id: 8, cat: TV/Foreign, desc: "Telenovelas y Teleseries"}
- {id: 3, cat: Audio, desc: "Musica"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
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: 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: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
playlistId: ""
collectionId: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: re_replace
args: ["(?i)\\bS(\\d+)", "T$1"]
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title_vose:
selector: a.view-torrent:contains("VOSE")
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " ENGLiSH"
title_notvose:
selector: a.view-torrent:not(:contains("VOSE"))
optional: true
filters:
- name: re_replace
args: ["^ *\\[[^\\]]*\\] *", ""] # Remove prefix tags
- name: re_replace
args: ["(?i)\\bT(\\d+)", "S$1"]
- name: re_replace
args: ["UHDRip", "BDRip"] # Fix for Radarr
- name: append
args: " SPANiSH"
title:
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# UNIT3D 5.3.0

View File

@@ -9,7 +9,7 @@ followredirect: true
# changes to this indexer should also be made to limetorrentsclone
links:
- https://www.limetorrents.pro/
- https://limetorrents.unblockit.how/
- https://limetorrents.unblockit.cam/
- https://limetorrents.unblockninja.com/
- https://limetorrents.nocensor.biz/
legacylinks:
@@ -33,6 +33,7 @@ legacylinks:
- https://limetorrents.unblockit.kim/
- https://limetorrents.unblockit.bz/
- https://limetorrents.unblockit.tv/
- https://limetorrents.unblockit.how/
caps:
categorymappings:

View File

@@ -10,24 +10,24 @@ links:
caps:
categorymappings:
- {id: 29, cat: Movies/SD, desc: "movies"}
- {id: 52, cat: Movies/HD, desc: "movies HD"}
- {id: 29, cat: Movies/SD, desc: "Movies"}
- {id: 52, cat: Movies/HD, desc: "Movies HD"}
- {id: 30, cat: TV/SD, desc: "TV"}
- {id: 60, cat: TV/HD, desc: "HD TV"}
- {id: 60, cat: TV/HD, desc: "TV HD"}
- {id: 45, cat: PC/Games, desc: "PC Games"}
- {id: 37, cat: Audio, desc: "Music"}
- {id: 56, cat: Books, desc: "Books"}
- {id: 40, cat: Other/Misc, desc: "misc"}
- {id: 53, cat: Movies/SD, desc: "movies E"}
- {id: 61, cat: Movies/HD, desc: "E HD Movies"}
- {id: 28, cat: TV/SD, desc: "TV E"}
- {id: 62, cat: TV/HD, desc: "E HD TV"}
- {id: 40, cat: Other/Misc, desc: "Misc"}
- {id: 53, cat: Movies/SD, desc: "Movies LT"}
- {id: 61, cat: Movies/HD, desc: "Movies LT HD"}
- {id: 28, cat: TV/SD, desc: "TV LT"}
- {id: 62, cat: TV/HD, desc: "TV LT HD"}
- {id: 63, cat: PC/Games, desc: "PC Games Misc"}
- {id: 33, cat: Audio, desc: "Music E"}
- {id: 57, cat: Books, desc: "Books E"}
- {id: 43, cat: Other/Misc, desc: "misc E"}
- {id: 51, cat: Movies/SD, desc: "movies RU"}
- {id: 64, cat: Movies/HD, desc: "RU Movies HD"}
- {id: 33, cat: Audio, desc: "Music LT"}
- {id: 57, cat: Books, desc: "Books LT"}
- {id: 43, cat: Other/Misc, desc: "Misc LT"}
- {id: 51, cat: Movies/SD, desc: "Movies RU"}
- {id: 64, cat: Movies/HD, desc: "Movies RU HD"}
- {id: 65, cat: TV, desc: "TV RU"}
- {id: 25, cat: Movies/DVD, desc: "DVD"}
- {id: 42, cat: Console/XBox, desc: "XBOX"}
@@ -37,7 +37,7 @@ caps:
- {id: 46, cat: TV/Sport, desc: "Sports"}
- {id: 58, cat: TV/Documentary, desc: "Documentaries"}
- {id: 38, cat: TV/Anime, desc: "Anime"}
- {id: 26, cat: Movies/DVD, desc: "DVD E"}
- {id: 26, cat: Movies/DVD, desc: "DVD LT"}
- {id: 44, cat: Console/Other, desc: "Consoles"}
- {id: 31, cat: Audio/Video, desc: "Music Videos"}
- {id: 32, cat: PC/0day, desc: "Appz"}
@@ -49,6 +49,25 @@ caps:
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
# - name: andmatch
# type: checkbox
# label: Accept non english characters in torrent names (get more results)
# default: true
- name: searchindesc
type: checkbox
label: Search in torrent description (get more results)
default: true
login:
path: takelogin.php
method: post
@@ -67,11 +86,12 @@ search:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
searchindesc: "{{ .Config.searchindesc }}"
rows:
selector: table> tbody > tr:has(a[href^="details?"])
filters:
- name: andmatch
# filters:
# - name: "{{ if .Config.andmatch }}andmatch{{ else }}{{ end }}" Currently, -name must be simple string, not a variable
fields:
category:

View File

@@ -41,7 +41,7 @@ caps:
- {id: 36, cat: Books, desc: "Deckofficer's Library-Technical equipment of navigation"}
- {id: 95, cat: Books, desc: "Deckofficer's Library-Hydrometeorology"}
- {id: 100, cat: Books, desc: "Deckofficer's Library-Ship Theory"}
- {id: 110, cat: Books, desc: "Deckofficer's Library-Astronomy"}
- {id: 110, cat: Books, desc: "Deckofficer's Library-Nautical Astronomy"}
- {id: 94, cat: Books, desc: "Deckofficer's Library-Nautical charts, tables, sailing directions"}
- {id: 116, cat: Books, desc: "Deckofficer's Library-Global Maritime Distress and Safety System (GMDSS)"}
- {id: 192, cat: Books, desc: "Deckofficer's Library-Navigation in the ice"}
@@ -122,7 +122,7 @@ caps:
- {id: 253, cat: Books, desc: "Yachting, sailing, boating-Seamanship practice"}
- {id: 254, cat: Books, desc: "Yachting, sailing, boating-Repair and Restoration"}
- {id: 255, cat: Books, desc: "Yachting, sailing, boating-Sailing Alone"}
- {id: 256, cat: Books, desc: "Yachting, sailing, boating-Rigging, knots"}
- {id: 256, cat: Books, desc: "Yachting, sailing, boating-Rigging, sails, knots"}
- {id: 252, cat: Books, desc: "Yachting, sailing, boating-Projects, design, construction"}
- {id: 251, cat: Books, desc: "Diving"}
- {id: 177, cat: Books, desc: "Shipmodeling"}
@@ -162,9 +162,10 @@ caps:
- {id: 247, cat: Books, desc: "Rarity-1600 - 1700"}
- {id: 187, cat: Books, desc: "Others (not maritime)"}
- {id: 162, cat: Books, desc: "Archive"}
- {id: 315, cat: Books, desc: "Archive-Unformed"}
- {id: 322, cat: Books, desc: "Archive-No seeds"}
- {id: 321, cat: Books, desc: "Archive-Outdated software"}
- {id: 38, cat: Books, desc: "Archive-Uncategorized"}
- {id: 295, cat: Books, desc: "Archive-Unregistered releases"}
- {id: 295, cat: Books, desc: "Archive-Unregistered"}
modes:
search: [q]

View File

@@ -183,6 +183,6 @@ search:
minimumratio:
text: 1.0
minimumseedtime:
# 14 days (as seconds = 14 x 24 x 60 x 60)
text: 1209600
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# TBDEV custom v2.0

View File

@@ -46,6 +46,10 @@ settings:
- name: password
type: password
label: Password
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
login:
path: login.php

View File

@@ -8,7 +8,7 @@ encoding: UTF-8
followredirect: true
links:
- https://www.oxtorrent.be/
- https://oxtorrent.unblockit.how/
- https://oxtorrent.unblockit.cam/
- https://oxtorrent.nocensor.biz/
legacylinks:
- https://www.oxtorrent.bz/
@@ -31,6 +31,7 @@ legacylinks:
- https://oxtorrent.unblockit.bz/
- https://www.oxtorrent.vc/
- https://oxtorrent.unblockit.tv/
- https://oxtorrent.unblockit.how/
caps:
categorymappings:

View File

@@ -5,6 +5,8 @@ description: "P2PElite is a Private Torrent Tracker for EBOOKS / AUDIOBOOKS"
language: en-US
type: private
encoding: UTF-8
certificates:
- 62c2e785a370398cf1397ffa05423044f654c057 # expired 3 Feb 2022
links:
- https://p2pelite.com/

View File

@@ -692,7 +692,7 @@ search:
submit: "Поиск"
rows:
selector: tr[id^="tor_"]
selector: tr[id^="tor_"]:has(a[href^="/dl.php?id="])
filters:
- name: andmatch

View File

@@ -706,7 +706,7 @@ search:
submit: "Поиск"
rows:
selector: tr[id^="tor_"]
selector: tr[id^="tor_"]:has(a[href^="/dl.php?id="])
filters:
- name: andmatch

View File

@@ -1,121 +0,0 @@
---
id: pirateiro
name: Pirateiro
description: "Pirateiro is a Public site for MOVIES / TV / GENERAL"
language: en-US
type: public
encoding: UTF-8
followredirect: true
links:
- https://pirateiro.com/
- https://pirateiro.eu/
- https://pirateiro.unblockit.how/
legacylinks:
- http://pirateiro.com/
- https://pirateiro.unblockit.pw/
- https://pirateiro.unblockit.id/
- https://pirateiro.unblockit.win/
- https://pirateiro.unblockit.top/
- https://pirateiro.unblockit.lat/
- https://pirateiro.unblockit.app/
- https://pirateiro.unblockit.dev/
- https://pirateiro.unblockit.ltd/
- https://pirateiro.unblockit.link/
- https://pirateiro.unblockit.buzz/
- https://pirateiro.unblockit.club/
- https://pirateiro.unblockit.onl/
- https://pirateiro.unblockit.li/
- https://pirateiro.unblockit.uno/
- https://pirateiro.unblockit.ch/
- https://pirateiro.unblockit.ws/
- https://pirateiro.unblockit.kim/
- https://pirateiro.unblockit.bz/
- https://pirateiro.unblockit.tv/
caps:
categorymappings:
- {id: cat100, cat: TV/Anime, desc: Anime}
- {id: cat200, cat: PC, desc: Software}
- {id: cat300, cat: Movies, desc: Movies}
- {id: cat400, cat: Console, desc: Games}
- {id: cat500, cat: Audio, desc: Music}
- {id: cat600, cat: Other, desc: Other}
- {id: cat700, cat: TV, desc: TV}
- {id: cat800, cat: XXX, desc: Adult}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: enviado
options:
enviado: created
seeders: seeders
tamanho: size
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
search:
paths:
- path: torrents/
inputs:
search: "{{ .Keywords }}"
orderby: "{{ .Config.sort }}"
rows:
selector: table.torrenttable tbody tr:has(a[href^="magnet:?xt="])
fields:
category:
selector: td:nth-child(1) a
attribute: class
filters:
# extract the first class
- name: split
args: [" ", 0]
title:
selector: td:nth-child(1) a:nth-child(2)
details:
selector: td:nth-child(1) a:nth-child(2)
attribute: href
download:
# .torrent urls can be missing
optional: true
selector: a[href$="/download"]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
date:
selector: td:nth-child(3) span
attribute: title
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "02/01/2006 15:04:05 -07:00"
size:
selector: td:nth-child(4)
seeders:
selector: td:nth-child(5)
filters:
- name: replace
args: [" ", ""]
leechers:
selector: td:nth-child(6)
filters:
- name: replace
args: [" ", ""]
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -29,6 +29,10 @@ settings:
- name: password
type: password
label: Password
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
- name: thankyou
type: text
label: Thank You Comment

View File

@@ -0,0 +1,172 @@
---
id: redbits-api
name: RedBits (API)
description: "RedBits is a SPANISH site for classic content"
language: es-ES
type: private
encoding: UTF-8
links:
- https://red-bits.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 6, cat: TV/Documentary, desc: "Documentales"}
- {id: 7, cat: TV/Sport, desc: "Deportes"}
- {id: 8, cat: Movies, desc: "Hagbard"}
- {id: 9, cat: Movies, desc: "Studio Ghibli"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
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://red-bits.com/\" target =_blank>RedBits</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
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
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
- path: "/api/torrents/filter"
response:
type: json
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 }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
title_vose:
selector: name:contains(VOSE)
optional: true
filters:
- name: re_replace
args: ["(?i)bdfull", "BluRay"] # BDfull -> BluRay
- name: re_replace
args: ["(?i)RedBits", ""] # Delete RedBits
- name: append
args: " English" # Add english to fix Sonarr/Radarr language
- name: re_replace
args: ["\\[|\\]", " "]
- name: re_replace
args: [" ", " "]
- name: re_replace
args: ["(?i)T(\\d{1,2})\\b", "S$1"]
title_notvose:
selector: name:not(:contains(VOSE))
optional: true
filters:
- name: re_replace
args: ["(?i)bdfull", "BluRay"] # BDfull -> BluRay
- name: re_replace
args: ["(?i)RedBits", ""] # Delete RedBits
- name: append
args: " Spanish" # Add spanish to fix Sonarr/Radarr language
- name: re_replace
args: ["\\[|\\]", " "]
- name: re_replace
args: [" ", " "]
- name: re_replace
args: ["(?i)T(\\d{1,2})\\b", "S$1"]
title:
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
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
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D 6.0.0

View File

@@ -1,227 +0,0 @@
---
id: redbits
name: RedBits
description: "RedBits is a SPANISH site for classic content"
language: es-ES
type: private
encoding: UTF-8
links:
- https://red-bits.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 6, cat: TV/Documentary, desc: "Documentales"}
- {id: 7, cat: TV/Sport, desc: "Deportes"}
- {id: 8, cat: Movies, desc: "Hagbard"}
- {id: 9, cat: Movies, desc: "Studio Ghibli"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- 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: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents/filter
keywordsfilters:
- name: re_replace
args: ["(?i)\\bS0*(\\d+)\\b", "T$1"]
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
keywords: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: "{{ .Query.TVDBID }}"
tmdb: "{{ .Query.TMDBID }}"
mal: ""
igdb: ""
start_year: ""
end_year: ""
sorting: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
page: 0
view: list
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title_vose:
selector: a.view-torrent:contains("VOSE")
optional: true
filters:
- name: re_replace
args: ["(?i)bdfull", "BluRay"] # BDfull -> BluRay
- name: re_replace
args: ["(?i)RedBits", ""] # Delete RedBits
- name: append
args: " English" # Add english to fix Sonarr/Radarr language
- name: re_replace
args: ["\\[|\\]", " "]
- name: re_replace
args: [" ", " "]
- name: re_replace
args: ["(?i)T(\\d{1,2})\\b", "S$1"]
title_notvose:
selector: a.view-torrent:not(:contains("VOSE"))
optional: true
filters:
- name: re_replace
args: ["(?i)bdfull", "BluRay"] # BDfull -> BluRay
- name: re_replace
args: ["(?i)RedBits", ""] # Delete RedBits
- name: append
args: " Spanish" # Add spanish to fix Sonarr/Radarr language
- name: re_replace
args: ["\\[|\\]", " "]
- name: re_replace
args: [" ", " "]
- name: re_replace
args: ["(?i)T(\\d{1,2})\\b", "S$1"]
title:
text: "{{ if .Result.title_vose }}{{ .Result.title_vose }}{{ else }}{{ .Result.title_notvose }}{{ end }}"
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&w=180&h=270"] # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/52x80&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
grabs:
selector: td:nth-last-child(1)
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
date:
selector: time
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# UNIT3D 5.1.0

View File

@@ -67,10 +67,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -72,10 +72,19 @@ 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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
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 }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: diacritics
@@ -87,6 +96,7 @@ search:
rows:
selector: data
attribute: attributes
count:
selector: meta.total
@@ -148,11 +158,15 @@ search:
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
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
@@ -165,4 +179,4 @@ search:
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.0
# json UNIT3D 6.0.0

View File

@@ -60,10 +60,19 @@ 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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
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 }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
@@ -71,6 +80,7 @@ search:
rows:
selector: data
attribute: attributes
count:
selector: meta.total
@@ -108,15 +118,19 @@ search:
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
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
# json UNIT3D 5.3.0
# json UNIT3D 6.0.0

View File

@@ -72,13 +72,23 @@ 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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
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 }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
rows:
selector: data
attribute: attributes
count:
selector: meta.total
@@ -116,11 +126,15 @@ search:
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
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
@@ -133,4 +147,4 @@ search:
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.0
# json UNIT3D 6.0.0

View File

@@ -4,7 +4,7 @@ name: teracod
description: "teracod (Movie Zone) is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
language: hu-HU
type: private
encoding: iso-8859-2
encoding: UTF-8
links:
- https://teracod.net/
legacylinks:

View File

@@ -127,6 +127,7 @@ search:
- path: "https://apibay.org/{{ if .Keywords }}q.php?q={{ .Keywords }}&cat={{ join .Categories \",\" }}{{ else }}precompiled/data_top100_recent.json{{ end }}"
response:
type: json
keywordsfilters:
# remove it's #8829
- name: re_replace

View File

@@ -10,7 +10,7 @@ links:
- https://www.torlock.com/
- https://www.torlock2.com/
- https://www.torlock.icu/
- https://torlock.unblockit.how/
- https://torlock.unblockit.cam/
- https://torlock.nocensor.biz/
legacylinks:
- https://torlock.com/
@@ -33,6 +33,7 @@ legacylinks:
- https://torlock.unblockit.kim/
- https://torlock.unblockit.bz/
- https://torlock.unblockit.tv/
- https://torlock.unblockit.how/
caps:
# dont forget to update the search fields category case block

View File

@@ -70,13 +70,16 @@ search:
filters:
- name: prepend
args: "{{ .Config.sitelink }}"
date:
selector: span.date
date_year:
selector: span.date:contains("-")
optional: true
filters:
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "2006-01-02 -07:00"
date:
text: "{{ if .Result.date_year }}{{ .Result.date_year }}{{ else }}now{{ end }}"
size:
selector: span.size
seeders:

View File

@@ -6,75 +6,81 @@ language: de-DE
type: private
encoding: UTF-8
links:
- https://torrent-explosiv.hopto.org/
legacylinks:
- https://torrent-explosiv.eu/
caps:
# dont forget to update the search fields category case block
categorymappings:
# App
- {id: 12, cat: PC/0day, desc: "App Win"}
- {id: 10, cat: PC/Mac, desc: "App Mac"}
- {id: 127, cat: PC/Mobile-Android, desc: "App Android"}
# Doku
- {id: 177, cat: TV/Documentary, desc: "Doku HD"}
- {id: 178, cat: TV/Documentary, desc: "Doku SD"}
# Game
- {id: 17, cat: PC/Games, desc: "Game PC"}
- {id: 263, cat: Console/Other, desc: "Game Sonstiege"}
- {id: 299, cat: Console, desc: "Game Wimmelbild"}
- {id: 264, cat: Console, desc: "Game PDA / Handy"}
- {id: 265, cat: Console/PSP, desc: "Game PlayStation"}
# Movie
- {id: 277, cat: Movies, desc: "Movie Pack"}
- {id: 300, cat: Movies/3D, desc: "Movie 3D"}
- {id: 258, cat: Movies/UHD, desc: "Movie UHD"}
- {id: 262, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 301, cat: Movies/BluRay, desc: "Movie Bluray"}
- {id: 312, cat: Movies, desc: "Movie Kids"}
- {id: 28, cat: Movies/SD, desc: "Movie SD"}
- {id: 32, cat: Movies/HD, desc: "Movie HD"}
# Music
- {id: 48, cat: Audio, desc: "Music Album"}
- {id: 53, cat: Audio, desc: "Music Sampler"}
- {id: 124, cat: Audio, desc: "Music Mixe"}
- {id: 49, cat: Audio, desc: "Music Charts/Single"}
- {id: 52, cat: Audio, desc: "Music Pack"}
- {id: 288, cat: Audio, desc: "Music Discographie"}
- {id: 201, cat: Audio/Lossless, desc: "Music FLAC"}
- {id: 121, cat: Audio/MP3, desc: "Music MP3"}
- {id: 55, cat: Audio/Video, desc: "Music Video SD"}
- {id: 303, cat: Audio, desc: "Music Soundtrack"}
# Tv Serien
- {id: 226, cat: TV/SD, desc: "Tv Serien SD"}
- {id: 209, cat: TV/HD, desc: "Tv Serien HD"}
- {id: 305, cat: TV/UHD, desc: "Tv Serien UHD"}
- {id: 273, cat: TV, desc: "Tv Serien Pack"}
- {id: 287, cat: TV/Anime, desc: "Tv Serien Anime SD"}
- {id: 286, cat: TV/Anime, desc: "Tv Serien Anime HD"}
- {id: 179, cat: Movies/SD, desc: "Movie SD"}
- {id: 180, cat: Movies/HD, desc: "Movie HD"}
- {id: 181, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 184, cat: Movies/BluRay, desc: "Movie BluRay"}
- {id: 185, cat: Movies/UHD, desc: "Movie UHD"}
- {id: 183, cat: Movies/3D, desc: "Movie 3D"}
- {id: 221, cat: Movies, desc: "Movie Kids"}
- {id: 186, cat: Movies/Foreign, desc: "Movie Englisch"}
- {id: 182, cat: Movies/SD, desc: "Movie Packs SD"}
- {id: 228, cat: Movies/HD, desc: "Movie Packs HD"}
# Serien
- {id: 198, cat: TV/SD, desc: "Serien SD"}
- {id: 199, cat: TV/HD, desc: "Serien HD"}
- {id: 200, cat: TV/UHD, desc: "Serien UHD"}
- {id: 202, cat: TV/Anime, desc: "Serien Anime"}
- {id: 223, cat: TV/SD, desc: "Serien Pack SD"}
- {id: 201, cat: TV/HD, desc: "Serien Packs HD"}
- {id: 224, cat: TV/UHD, desc: "Serien Pack UHD"}
# Game
- {id: 173, cat: PC/Games, desc: "Game PC"}
- {id: 174, cat: Console/PSP, desc: "Game PlayStation"}
- {id: 175, cat: Console/XBox, desc: "Game XBOX"}
- {id: 176, cat: Console/NDS, desc: "Game Nintendo"}
- {id: 177, cat: Console, desc: "Game Wimmelbild"}
- {id: 178, cat: Console/Other, desc: "Game Sonstiege"}
# Musik
- {id: 187, cat: Audio, desc: "Musik Alben"}
- {id: 188, cat: Audio, desc: "Musik Sampler"}
- {id: 190, cat: Audio, desc: "Musik Charts"}
- {id: 189, cat: Audio, desc: "Musik Mixe"}
- {id: 193, cat: Audio/Lossless, desc: "Musik FLAC"}
- {id: 191, cat: Audio/MP3, desc: "Musik Single"}
- {id: 194, cat: Audio/Video, desc: "Musik Video"}
- {id: 225, cat: Audio, desc: "Musik Kids"}
- {id: 219, cat: Audio, desc: "Musik Hörspiele"}
- {id: 195, cat: Audio, desc: "Musik Soundtrack"}
- {id: 192, cat: Audio, desc: "Musik Discographie"}
- {id: 227, cat: Audio/Audiobook, desc: "Musik A-Book"}
- {id: 196, cat: Audio, desc: "Musik Pack"}
# App
- {id: 168, cat: PC/0day, desc: "App Windows"}
- {id: 166, cat: PC/Mac, desc: "App Mac"}
- {id: 165, cat: PC, desc: "App Linux"}
- {id: 169, cat: PC/Mobile-Android, desc: "App Android"}
# Doku
- {id: 170, cat: TV/Documentary, desc: "Doku SD"}
- {id: 171, cat: TV/Documentary, desc: "Doku HD"}
- {id: 229, cat: TV/Documentary, desc: "Doku 4K UHD"}
- {id: 172, cat: TV/Documentary, desc: "Doku Packs"}
# Ebooks
- {id: 212, cat: Books/Other, desc: "Ebooks Zeitungen"}
- {id: 211, cat: Books/Mags, desc: "Ebooks Magazine"}
- {id: 213, cat: Books/EBook, desc: "Ebooks Bücher"}
- {id: 214, cat: Books/Comics, desc: "Ebooks Comics"}
- {id: 215, cat: XXX/Other, desc: "Ebooks XXX"}
# Sport
- {id: 62, cat: TV/Sport, desc: "Sport Formel 1"}
- {id: 282, cat: TV/Sport, desc: "Sport Sonstiges"}
- {id: 313, cat: TV/Sport, desc: "Sport Wrestling"}
# Internat.
- {id: 307, cat: Movies/SD, desc: "Filme SD"}
- {id: 308, cat: Movies/HD, desc: "Filme HD"}
- {id: 309, cat: TV/SD, desc: "Serien SD"}
- {id: 310, cat: TV/HD, desc: "Serien HD"}
- {id: 311, cat: TV/HD, desc: "Sonstiges"}
# Sonstiges
- {id: 216, cat: Books/EBook, desc: "Sonstiges Pdf"}
- {id: 202, cat: Books/Mags, desc: "Sonstiges Magazine"}
- {id: 217, cat: Books, desc: "Sonstiges EPaper"}
- {id: 269, cat: Audio/Other, desc: "Sonstiges Hörspiel"}
- {id: 304, cat: Books/Comics, desc: "Sonstiges Comic"}
- {id: 63, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
- {id: 96, cat: Books/EBook, desc: "Sonstiges E-Book"}
- {id: 203, cat: TV/Sport, desc: "Sport Fussball"}
- {id: 230, cat: TV/Sport, desc: "Sport Formel 1"}
- {id: 204, cat: TV/Sport, desc: "Sport Wrestling"}
- {id: 231, cat: TV/Sport, desc: "Sport Sonstiges"}
# XXX
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
- {id: 76, cat: XXX/SD, desc: "XXX SD"}
- {id: 147, cat: XXX, desc: "XXX Bilder//Clips"}
- {id: 302, cat: XXX/Other, desc: "XXX Diverses"}
- {id: 205, cat: XXX/SD, desc: "XXX SD"}
- {id: 206, cat: XXX/x264, desc: "XXX HD"}
- {id: 208, cat: XXX, desc: "XXX Clips"}
- {id: 209, cat: XXX/ImageSet, desc: "XXX Bilder"}
- {id: 207, cat: XXX/Pack, desc: "XXX Packs"}
- {id: 210, cat: XXX/Other, desc: "XXX Sonstiges"}
modes:
search: [q]
@@ -157,76 +163,78 @@ search:
selector: div.kat_cat_pic
case:
# Movies
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 277
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": 300
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 258
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": 262
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Bluray\"))": 301
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Kids\"))": 312
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 28
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 32
# Tv Serien
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime HD\"))": 286
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime SD\"))": 287
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 226
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 209
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 305
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 273
# Music
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Album\"))": 48
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Discographie\"))": 288
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"FLAC\"))": 201
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"MP3\"))": 121
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Mixe\"))": 124
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Video\"))": 55
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Sampler\"))": 53
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 52
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Charts\"))": 49
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Soundtrack\"))": 303
# Doku
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 177
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 178
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Packs SD\"))": 182
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Packs HD\"))": 228
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": 183
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 185
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": 181
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"BluRay\"))": 184
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Kids\"))": 221
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Englisch\"))": 186
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 182
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 180
# Serien
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack SD\"))": 223
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack UHD\"))": 224
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Packs HD\"))": 201
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime\"))": 202
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 198
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 200
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 199
# Games
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiege\"))": 263
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PDA\"))": 264
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PlayStation\"))": 265
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": 299
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": 17
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": 173
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PlayStation\"))": 174
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"XBOX\"))": 175
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Nintendo\"))": 176
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": 177
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiege\"))": 178
# Music
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Alben\"))": 187
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Sampler\"))": 188
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Charts\"))": 190
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Mixe\"))": 189
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"FLAC\"))": 193
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Single\"))": 191
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Video\"))": 194
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Kids\"))": 225
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Hörspiele\"))": 219
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Soundtrack\"))": 195
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Discographie\"))": 192
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"A-Book\"))": 227
":has(div.kat_cat_pic_name:contains(\"Musik\")):has(div.kat_cat_pic_name_b:contains(\"Packs\"))": 196
# App
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Win\"))": 12
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Mac\"))": 10
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Android\"))": 127
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Windows\"))": 168
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Mac\"))": 166
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Linux\"))": 165
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Android\"))": 169
# Doku
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 170
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 229
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 171
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"Packs\"))": 172
# EBooks
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Zeitungen\"))": 212
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Magazine\"))": 211
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Bücher\"))": 213
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"Comics\"))": 214
":has(div.kat_cat_pic_name:contains(\"Ebooks\")):has(div.kat_cat_pic_name_b:contains(\"XXX\"))": 215
# Sport
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Formel\"))": 62
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 282
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Wrestling\"))": 313
# Internat
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Filme SD\"))": 307
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Filme HD\"))": 308
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Serien SD\"))": 309
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Serien HD\"))": 310
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 311
# Sonstiges
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Pdf\"))": 216
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Magazine\"))": 202
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"EPaper\"))": 217
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Hörspiel\"))": 269
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Comic\"))": 304
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"A-Book\"))": 63
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"E-Book\"))": 96
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Fussball\"))": 203
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Formel\"))": 230
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Wrestling\"))": 204
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 231
# XXX
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 73
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 75
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 76
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": 147
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Diverses\"))": 302
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 205
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 206
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": 208
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Bilder\"))": 209
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Packs\"))": 207
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 210
poster:
selector: div[id^="details"] img
attribute: src
size:
selector: div.selection_unter_ad
grabs:
selector: div.selection_unter_ae
selector: div.selection_unter_ag
date_day:
# Heute 13:30:04
# Gestern 09:10:10
@@ -250,8 +258,6 @@ search:
args: "02.01.2006 15:04:05 -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
description:
selector: selection_unter_af
seeders:
selector: div.selection_unter_aa
leechers:
@@ -263,7 +269,7 @@ search:
uploadvolumefactor:
text: 1
minimumratio:
text: 0.7
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800

View File

@@ -113,7 +113,7 @@ search:
fields:
category:
selector: td[onclick^="getSpCatTorrents"]
selector: td[onclick^="mtt.getSpCatTorrents"]
attribute: onclick
filters:
- name: regexp

View File

@@ -8,7 +8,7 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrentdownload.info/
- https://torrentdownload.unblockit.how/
- https://torrentdownload.unblockit.cam/
- https://torrentdownload.nocensor.biz/
legacylinks:
- https://torrentdownload.unblockit.top/
@@ -31,6 +31,7 @@ legacylinks:
- https://torrentdownload.unblockit.kim/
- https://torrentdownload.unblockit.bz/
- https://torrentdownload.unblockit.tv/
- https://torrentdownload.unblockit.how/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.torrentdownloads.info/
- https://www.torrentdownloads.pro/
- https://torrentdownloads.unblockit.how/
- https://torrentdownloads.unblockit.cam/
- https://torrentdownloads.nocensor.biz/
legacylinks:
- https://torrentdownloads.unblockit.lat/
@@ -32,6 +32,7 @@ legacylinks:
- https://torrentdownloads.unblockit.kim/
- https://torrentdownloads.unblockit.bz/
- https://torrentdownloads.unblockit.tv/
- https://torrentdownloads.unblockit.how/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- https://torrentfunk.unblockit.how/
- https://torrentfunk.unblockit.cam/
- https://torrentfunk.nocensor.biz/
legacylinks:
- https://torrentfunk.unblockit.id/
@@ -32,6 +32,7 @@ legacylinks:
- https://torrentfunk.unblockit.kim/
- https://torrentfunk.unblockit.bz/
- https://torrentfunk.unblockit.tv/
- https://torrentfunk.unblockit.how/
caps:
categorymappings:

View File

@@ -11,7 +11,7 @@ links:
- https://torrentgalaxy.mx/
- https://torrentgalaxy.su/
- https://torrentgalaxy.unblockninja.com/
- https://torrentgalaxy.unblockit.how/
- https://torrentgalaxy.unblockit.cam/
- https://torrentgalaxy.nocensor.biz/
legacylinks:
- https://torrentgalaxy.org/ # redirects to *.to
@@ -34,6 +34,7 @@ legacylinks:
- https://torrentgalaxy.unblockit.kim/
- https://torrentgalaxy.unblockit.bz/
- https://torrentgalaxy.unblockit.tv/
- https://torrentgalaxy.unblockit.how/
caps:
categorymappings:

View File

@@ -7,15 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq128.com/
- https://torrentqq130.com/
legacylinks:
- https://torrentqq106.com/
- https://torrentqq107.com/
- https://torrentqq108.com/
- https://torrentqq109.com/
- https://torrentqq110.com/
- https://torrentqq111.com/
- https://torrentqq112.com/
- https://torrentqq113.com/
- https://torrentqq114.com/
- https://torrentqq115.com/
@@ -29,6 +22,8 @@ legacylinks:
- https://torrentqq125.com/
- https://torrentqq126.com/
- https://torrentqq127.com/
- https://torrentqq128.com/
- https://torrentqq129.com/
caps:
categorymappings:

View File

@@ -76,10 +76,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -7,9 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentsir48.com/
- https://torrentsir49.com/
legacylinks:
- https://torrentsir33.com/
- https://torrentsir34.com/
- https://torrentsir35.com/
- https://torrentsir36.com/
@@ -24,6 +23,7 @@ legacylinks:
- https://torrentsir45.com/
- https://torrentsir46.com/
- https://torrentsir47.com/
- https://torrentsir48.com/
caps:
categorymappings:

View File

@@ -7,15 +7,9 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentview50.com/
- https://torrentview.co/
legacylinks:
- https://torrentview.net/
- https://torrentview28.com/
- https://torrentview29.com/
- https://torrentview30.com/
- https://torrentview31.com/
- https://torrentview32.com/
- https://torrentview33.com/
- https://torrentview34.com/
- https://torrentview35.com/
- https://torrentview36.com/
@@ -30,6 +24,7 @@ legacylinks:
- https://torrentview46.com/
- https://torrentview47.com/
- https://torrentview49.com/
- https://torrentview50.com/
caps:
categorymappings:

View File

@@ -7,9 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentwiz37.com/
- https://torrentwiz38.com/
legacylinks:
- https://torrentwiz22.me/
- https://torrentwiz23.me/
- https://torrentwiz24.me/
- https://torrentwiz25.me/
@@ -24,6 +23,7 @@ legacylinks:
- https://torrentwiz34.com/
- https://torrentwiz35.com/
- https://torrentwiz36.com/
- https://torrentwiz37.com/
caps:
categorymappings:

View File

@@ -7,12 +7,12 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentz2.org.in/
- https://torrentzeu.org/
- https://torrentz2.unblockninja.com/
legacylinks:
- https://torrentz2.club/
- https://torrentz2eu.me/
- https://torrentzeu.org/
- https://torrentz2.org.in/
caps:
# unfortunately torrentz2eu does not display categories anywhere in its search results page :-(

View File

@@ -70,10 +70,10 @@ search:
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
attribute: attributes
rows:
selector: data
attribute: attributes
count:
selector: meta.total

View File

@@ -0,0 +1,177 @@
---
id: turktracker
name: turktracker
description: "turktracker is a TURKISH Private Torrent Tracker for MOVIES / TV"
language: tr-TR
type: private
encoding: UTF-8
testlinktorrent: false
links:
- https://turktracker.net/
caps:
categorymappings:
- {id: 8, cat: TV, desc: "Altyazılı Diziler (Subtitled Series)"}
- {id: 7, cat: Movies, desc: "Altyazılı Filmler (Subtitled Movies)"}
- {id: 5, cat: TV/Documentary, desc: "Belgesel (Documentary)"}
- {id: 9, cat: TV, desc: "BluTV"}
- {id: 3, cat: Movies, desc: "Boxset"}
- {id: 11, cat: TV, desc: "Dublaj Dizi(Dubbing Series)"}
- {id: 10, cat: Movies, desc: "Dublaj Film (Dubbing Movie)"}
- {id: 12, cat: Books, desc: "E-Kitap (E-Book)"}
- {id: 6, cat: TV, desc: "Eğitim (education)"}
- {id: 13, cat: TV, desc: "EXXEN"}
- {id: 26, cat: TV, desc: "Gain"}
- {id: 14, cat: Audio, desc: "Müzik (Music)"}
- {id: 21, cat: TV, desc: "Netflix"}
- {id: 15, cat: Console, desc: "Oyunlar (Games)"}
- {id: 16, cat: PC, desc: "Program"}
- {id: 19, cat: XXX, desc: "XXX"}
- {id: 18, cat: TV, desc: "Yerli Diziler (Domestic TV Series)"}
- {id: 17, cat: Movies, desc: "Yerli Filmler (Domestic Movies)"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: sort
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: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img#regimage
input: imagestring
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
error:
- selector: table:has(td.thead:contains("An error has occured!"))
- selector: table:has(td.thead:contains("Bir hata oluştu!"))
test:
path: index.php
selector: a[href*="logout.php?logouthash="]
download:
before:
path: takethanks.php
method: post
inputs:
torrentid: "{{ .DownloadUri.Query.id }}"
selectors:
- selector: a[href*="download.php?id="]
attribute: href
search:
paths:
- path: browse.php
inputs:
do: search
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
# yes incldead, no activeonly
include_dead_torrents: yes
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# t_name, t_description, t_both, t_uploader, t_genre
search_type: "{{ if .Query.IMDBID }}t_genre{{ else }}t_name{{ end }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not return imdb link in results
keywordsfilters:
- name: re_replace # replace special characters with "%" (wildcard)
args: ["[^a-zA-Z0-9]+", "%"]
rows:
selector: "table#sortabletable tbody tr:has(a[href*=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href*="browse.php?category="]
attribute: href
filters:
- name: querystring
args: category
title_default:
# is often abbreviated
selector: a[href*="details.php?id="]
title_optional:
# usually longer than details title
selector: div[id^="port-content-"] div:nth-child(2)
optional: true
title:
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
details:
selector: a[href*="details.php?id="]
attribute: href
download:
selector: a[href*="details.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
poster:
selector: div[id^="port-content-"] div img
attribute: src
date:
selector: td:nth-child(2) > div:last-child
filters:
- name: regexp
args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "02-01-2006 15:04 -07:00"
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img[src$="/external.gif"]: 0
img[src$="/freedownload.gif"]: 0
img[src$="/silverdownload.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[src$="/x2.gif"]: 2
"*": 1
# TBD, Rules and FAQ do not cover this yet
# minimumratio:
# text: 1.0
# minimumseedtime:
# # 2 days (as seconds = 2 x 24 x 60 x 60)
# text: 172800
# TS Special Edition v.7.5 - v.8.0 hybrid

View File

@@ -61,13 +61,23 @@ 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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
- path: "/api/torrents/filter"
response:
type: json
attribute: attributes
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 }}"
name: "{{ .Keywords }}"
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
rows:
selector: data
attribute: attributes
count:
selector: meta.total
@@ -105,11 +115,15 @@ search:
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
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
@@ -122,4 +136,4 @@ search:
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 5.3.0
# json UNIT3D 6.0.0

View File

@@ -0,0 +1,72 @@
---
id: xbit
name: xBiT
description: "xBiT is a Public torrent index"
language: en-US
type: public
encoding: UTF-8
links:
- https://xbit.pw/
caps:
categories:
Other: Other
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: info_8000
type: info
label: About xBiT Categories
default: xBiT does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
search:
paths:
- path: api
response:
type: json
inputs:
search: "{{ .Keywords }}"
limit: "{{ if .Keywords }}100{{ else }}49{{ end }}"
rows:
selector: dht_results:has(MAGNET)
fields:
id:
selector: ID
category:
text: Other
title:
selector: NAME
details:
text: "{{ .Config.sitelink }}{{ if .Result.id }}?id={{ .Result.id }}{{ else }}{{ end }}"
download:
selector: TORRENT
optional: true
magnet:
selector: MAGNET
date:
# 2021-10-19 10:27:01
selector: DISCOVERED
filters:
- name: append
args: " +02:00" # EET
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
size:
selector: SIZE
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json engine n/a

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.how/
- https://yts.unblockit.cam/
- https://yts.unblockninja.com/
- https://yts.nocensor.biz/
legacylinks:
@@ -32,6 +32,7 @@ legacylinks:
- https://yts.unblockit.kim/
- https://yts.unblockit.bz/
- https://yts.unblockit.tv/
- https://yts.unblockit.how/
caps:
categorymappings:
@@ -53,8 +54,7 @@ search:
- path: api/v2/list_movies.json
response:
type: json
attribute: torrents
multiple: true
inputs:
# ignore ' (e.g. search for america's Next Top Model)
query_term: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ re_replace .Keywords \"[']\" \"\" }}{{ end }}"
@@ -64,6 +64,8 @@ search:
rows:
selector: data.movies
attribute: torrents
multiple: true
count:
selector: data.movie_count

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://zooqle.com/
- https://zooqle.unblockninja.com/
- https://zooqle.unblockit.how/
- https://zooqle.unblockit.cam/
- https://zooqle.nocensor.biz/
legacylinks:
- https://zooqle.unblockit.top/
@@ -32,6 +32,7 @@ legacylinks:
- https://zooqle.unblockit.kim/
- https://zooqle.unblockit.bz/
- https://zooqle.unblockit.tv/
- https://zooqle.unblockit.how/
caps:
categorymappings:

View File

@@ -58,6 +58,9 @@ namespace Jackett.Common.Indexers
private static readonly Regex _LogicFunctionRegex = new Regex(
@$"\b({string.Join("|", _SupportedLogicFunctions.Select(Regex.Escape))})(?:\s+(\(?\.[^\)\s]+\)?|""[^""]+"")){{2,}}");
// Matches CSS selectors for the JSON parser
private static readonly Regex _JsonSelectorRegex = new Regex(@"\:(?<filter>.+?)\((?<key>.+?)\)(?=:|\z)", RegexOptions.Compiled);
public CardigannIndexer(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
IProtectionService ps, ICacheService cs, IndexerDefinition Definition)
: base(configService: configService,
@@ -1212,12 +1215,17 @@ namespace Jackett.Common.Indexers
if (Selector.Selector != null)
{
var selector_Selector = applyGoTemplateText(Selector.Selector.TrimStart('.'), variables);
var selection = parentObj.SelectToken(selector_Selector);
var selectorSelector = applyGoTemplateText(Selector.Selector.TrimStart('.'), variables);
selectorSelector = JsonParseFieldSelector(parentObj, selectorSelector);
JToken selection = null;
if (selectorSelector != null)
selection = parentObj.SelectToken(selectorSelector);
if (selection == null)
{
if (required)
throw new Exception(string.Format("Selector \"{0}\" didn't match {1}", selector_Selector, parentObj.ToString()));
throw new Exception(string.Format("Selector \"{0}\" didn't match {1}", selectorSelector, parentObj.ToString()));
return null;
}
value = selection.Value<string>();
@@ -1398,14 +1406,14 @@ namespace Jackett.Common.Indexers
continue;
}
var rowsObj = parsedJson.SelectToken(Search.Rows.Selector);
if (rowsObj == null)
throw new Exception("Error Parsing Rows Selector");
var rowsArray = JsonParseRowsSelector(parsedJson, Search.Rows.Selector);
if (rowsArray == null)
throw new Exception("Error Parsing Rows Selector. There are 0 rows.");
foreach (var Row in rowsObj.Value<JArray>())
foreach (var Row in rowsArray)
{
var selObj = SearchPath.Response.Attribute != null ? Row.SelectToken(SearchPath.Response.Attribute).Value<JToken>() : Row;
var mulRows = SearchPath.Response.Multiple == true ? selObj.Values<JObject>() : new List<JObject> { selObj.Value<JObject>() };
var selObj = Search.Rows.Attribute != null ? Row.SelectToken(Search.Rows.Attribute).Value<JToken>() : Row;
var mulRows = Search.Rows.Multiple ? selObj.Values<JObject>() : new List<JObject> { selObj.Value<JObject>() };
foreach (var mulRow in mulRows)
{
@@ -2088,6 +2096,71 @@ namespace Jackett.Common.Indexers
}
return SkipRelease;
}
private JArray JsonParseRowsSelector(JToken parsedJson, string rowSelector)
{
var selector = rowSelector.Split(':')[0];
var rowsObj = parsedJson.SelectToken(selector).Value<JArray>();
return new JArray(rowsObj.Where(t =>
JsonParseFieldSelector(t.Value<JObject>(), rowSelector.Remove(0, selector.Length)) != null
));
}
private string JsonParseFieldSelector(JToken parsedJson, string rowSelector)
{
var selector = rowSelector.Split(':')[0];
JToken parsedObject;
if (string.IsNullOrWhiteSpace(selector))
parsedObject = parsedJson;
else if (parsedJson.SelectToken(selector) != null)
parsedObject = parsedJson.SelectToken(selector);
else
return null;
foreach (Match match in _JsonSelectorRegex.Matches(rowSelector))
{
var filter = match.Result("${filter}");
var key = match.Result("${key}");
Match innerMatch;
switch (filter)
{
case "has":
innerMatch = _JsonSelectorRegex.Match(key);
if (innerMatch.Success)
{
if (JsonParseFieldSelector(parsedObject, key) == null)
return null;
}
else
{
if (parsedObject.SelectToken(key) == null)
return null;
}
break;
case "not":
innerMatch = _JsonSelectorRegex.Match(key);
if (innerMatch.Success)
{
if (JsonParseFieldSelector(parsedObject, key) != null)
return null;
}
else
{
if (parsedObject.SelectToken(key) != null)
return null;
}
break;
case "contains":
if (!parsedObject.ToString().Contains(key))
return null;
break;
default:
logger.Error(string.Format("CardigannIndexer ({0}): Unsupported selector: {1}", Id, rowSelector));
continue;
}
}
return selector;
}
}
}

View File

@@ -39,7 +39,7 @@ namespace Jackett.Common.Indexers
private const string SearchUrl = "buscar/";
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://dontorrent.red/",
"https://dontorrent.si/",
"https://todotorrents.net/",
"https://tomadivx.net/",
"https://seriesblanco.one/"
@@ -47,6 +47,8 @@ namespace Jackett.Common.Indexers
public override string[] LegacySiteLinks { get; protected set; } = {
"https://dontorrent.it/",
"https://dontorrent.red/",
"https://dontorrent.nu/",
"https://dontorrent.li/"
};
@@ -65,7 +67,7 @@ namespace Jackett.Common.Indexers
: base(id: "dontorrent",
name: "DonTorrent",
description: "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL",
link: "https://dontorrent.red/",
link: "https://dontorrent.si/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>

View File

@@ -45,7 +45,7 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://www.epublibre.org/",
"https://epublibre.unblockit.how/"
"https://epublibre.unblockit.cam/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
@@ -64,6 +64,7 @@ namespace Jackett.Common.Indexers
"https://epublibre.unblockit.li/",
"https://epublibre.unblockit.kim/",
"https://epublibre.unblockit.bz/",
"https://epublibre.unblockit.how/",
"https://epublibre.unblockit.tv/"
};

View File

@@ -53,6 +53,10 @@ namespace Jackett.Common.Indexers
Language = "en-US";
Type = "public";
configData.AddDynamic(
"DDoS-Guard",
new DisplayInfoConfigurationItem("", "This site may use DDoS-Guard Protection, therefore Jackett requires <a href='https://github.com/Jackett/Jackett#configuring-flaresolverr' target='_blank'>FlareSolver</a> to access it.")
);
// Add note that download stats are not available
configData.AddDynamic(
"download-stats-unavailable",

View File

@@ -49,7 +49,7 @@ namespace Jackett.Common.Indexers
"https://iptorrents.eu/"
};
private new ConfigurationDataCookie configData => (ConfigurationDataCookie)base.configData;
private new ConfigurationDataCookieUA configData => (ConfigurationDataCookieUA)base.configData;
public IPTorrents(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
ICacheService cs)
@@ -81,7 +81,7 @@ namespace Jackett.Common.Indexers
logger: l,
p: ps,
cacheService: cs,
configData: new ConfigurationDataCookie("For best results, change the 'Torrents per page' option to 100 and check the 'Torrents - Show files count' option in the website Settings."))
configData: new ConfigurationDataCookieUA("For best results, change the 'Torrents per page' option to 100 and check the 'Torrents - Show files count' option in the website Settings."))
{
Encoding = Encoding.UTF8;
Language = "en-US";
@@ -177,6 +177,7 @@ namespace Jackett.Common.Indexers
LoadValuesFromJson(configJson);
CookieHeader = configData.Cookie.Value;
try
{
var results = await PerformQuery(new TorznabQuery());
@@ -190,7 +191,7 @@ namespace Jackett.Common.Indexers
catch (Exception e)
{
IsConfigured = false;
throw new Exception("Your cookie did not work: " + e.Message);
throw new Exception("Your cookie did not work, make sure the user agent matches your computer: " + e.Message);
}
}
@@ -200,6 +201,15 @@ namespace Jackett.Common.Indexers
var qc = new NameValueCollection();
Dictionary<string, string> headers = null;
if (!string.IsNullOrEmpty(configData.UserAgent.Value))
{
headers = new Dictionary<string, string>();
headers.Add("User-Agent", configData.UserAgent.Value);
}
if (query.IsImdbQuery)
qc.Add("q", query.ImdbID);
else if (!string.IsNullOrWhiteSpace(query.GetQueryString()))
@@ -214,7 +224,7 @@ namespace Jackett.Common.Indexers
qc.Add("o", ((SingleSelectConfigurationItem)configData.GetDynamic("sort")).Value);
var searchUrl = SearchUrl + "?" + qc.GetQueryString();
var response = await RequestWithCookiesAndRetryAsync(searchUrl, referer: SearchUrl);
var response = await RequestWithCookiesAndRetryAsync(searchUrl, referer: SearchUrl, headers: headers);
var results = response.ContentString;
if (results == null || !results.Contains("/lout.php"))

View File

@@ -38,7 +38,7 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://www.mejortorrentes.org/",
"https://mejortorrent.nocensor.biz/",
"https://mejortorrent.unblockit.how/"
"https://mejortorrent.unblockit.cam/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
@@ -60,6 +60,7 @@ namespace Jackett.Common.Indexers
"https://www.mejortorrento.info/",
"https://mejortorrent.nocensor.work/",
"https://www.mejortorrentes.net/",
"https://mejortorrent.unblockit.how/",
"https://mejortorrent.unblockit.tv/"
};

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -14,6 +15,7 @@ using Jackett.Common.Utils.Clients;
using Newtonsoft.Json.Linq;
using NLog;
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
using WebClient = Jackett.Common.Utils.Clients.WebClient;
namespace Jackett.Common.Indexers
{
@@ -53,12 +55,6 @@ namespace Jackett.Common.Indexers
public override object Clone() => new NewpctRelease(this);
}
private class DownloadMatcher
{
public Regex MatchRegex;
public MatchEvaluator MatchEvaluator;
}
private readonly char[] _wordSeparators = { ' ', '.', ',', ';', '(', ')', '[', ']', '-', '_' };
private readonly int _wordNotFoundScore = 100000;
private readonly Regex _searchStringRegex = new Regex(@"(.+?)S(\d{2})(E(\d{2}))?$", RegexOptions.IgnoreCase);
@@ -67,18 +63,6 @@ namespace Jackett.Common.Indexers
// Love 101 - Temp. 1 Capitulos 1 al 8
private readonly Regex _seriesChaptersTitleRegex = new Regex(@"(.+)Temp. (\d+) Capitulos (\d+) al (\d+)", RegexOptions.IgnoreCase);
private readonly Regex _titleYearRegex = new Regex(@" *[\[\(]? *((19|20)\d{2}) *[\]\)]? *$");
private readonly DownloadMatcher[] _downloadMatchers =
{
new DownloadMatcher
{
MatchRegex = new Regex("(/descargar-torrent/[^\"]+)\"")
},
new DownloadMatcher
{
MatchRegex = new Regex(@"window\.location\.href\s*=\s*""([^""]+)"""),
MatchEvaluator = m => $"https:{m.Groups[1]}"
}
};
private readonly int _maxMoviesPages = 6;
private readonly int[] _allTvCategories = (new[] { TorznabCatType.TV }).Concat(TorznabCatType.TV.SubCategories).Select(c => c.ID).ToArray();
@@ -98,8 +82,8 @@ namespace Jackett.Common.Indexers
private readonly string[] _voUrls = { "serie-vo", "serievo" };
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://atomixhq.top/",
"https://pctmix1.unblockit.how/"
"https://atomixhq.art/",
"https://pctmix1.unblockit.cam/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
@@ -123,6 +107,8 @@ namespace Jackett.Common.Indexers
"https://pctmix1.unblockit.bz/",
"https://atomixhq.one/",
"https://pctmix1.unblockit.tv/",
"https://atomixhq.top/",
"https://pctmix1.unblockit.how/",
"https://atomixhq.net/"
};
@@ -131,7 +117,7 @@ namespace Jackett.Common.Indexers
: base(id: "newpct",
name: "NewPCT",
description: "NewPCT - Descargar peliculas, series y estrenos torrent gratis",
link: "https://atomixhq.top/",
link: "https://atomixhq.art/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>
@@ -187,46 +173,33 @@ namespace Jackett.Common.Indexers
public override async Task<byte[]> Download(Uri linkParam)
{
Uri uriLink = null;
var downloadLink = linkParam.AbsoluteUri.Replace("/descargar/", "/descargar/torrent/");
var result = await RequestWithCookiesAndRetryAsync(downloadLink, referer: linkParam.AbsoluteUri);
var downloadRegex = new Regex("/t_download/([0-9]+)/");
var match = downloadRegex.Match(result.ContentString);
if (match.Success)
{
const string downloadUrl = "https://atomtt.com/to.php";
var headers = new Dictionary<string, string>
{
{"X-Requested-With", "XMLHttpRequest"},
{"Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"}
};
var body = "t=" + match.Groups[1].Value;
result = await RequestWithCookiesAsync(downloadUrl, method: RequestType.POST, rawbody: body,
headers: headers, referer: downloadLink);
if (result.Status == HttpStatusCode.OK)
uriLink = new Uri(SiteLink + "t_download/" + result.ContentString + ".torrent");
}
var results = await RequestWithCookiesAndRetryAsync(downloadLink);
var uriLink = ExtractDownloadUri(results.ContentString, downloadLink);
if (uriLink == null)
throw new Exception("Download link not found!");
return await base.Download(uriLink);
}
private Uri ExtractDownloadUri(string content, string baseLink)
{
foreach (var matcher in _downloadMatchers)
{
var match = matcher.MatchRegex.Match(content);
if (match.Success)
{
string linkText;
if (matcher.MatchEvaluator != null)
linkText = (string)matcher.MatchEvaluator.DynamicInvoke(match);
else
linkText = match.Groups[1].Value;
// take the details page link and the download page link and build a Torrent link
// Details page: https://atomixhq.com/descargar/torrent/peliculas-x264-mkv/el-viaje-i-onde-dager--2021-/bluray-microhd/
// Download page: https://atomtt.com/download/159843_-1634325135-El-viaje--I-onde-dager---2021---BluRay-MicroHD/
// Torrent link: https://atomixhq.com/download/159843_-1634325135-El-viaje--I-onde-dager---2021---BluRay-MicroHD.torrent
linkText = linkText.Remove(linkText.Length - 1, 1) + ".torrent";
var linkHost = new Uri(linkText).Host;
var linkBase = new Uri(baseLink).Host;
var downloadLink = linkText.Replace(linkHost.ToString(), linkBase.ToString());
return new Uri(downloadLink);
}
}
return null;
}
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
var releases = new List<ReleaseInfo>();
@@ -241,7 +214,7 @@ namespace Jackett.Common.Indexers
if (rssMode)
{
var results = await RequestWithCookiesAndRetryAsync(SiteLink + _dailyUrl);
var results = await RequestWithCookiesAndRetryAsync(SiteLink + _dailyUrl, referer: SiteLink);
var items = ParseDailyContent(results.ContentString);
releases.AddRange(items);
}
@@ -326,13 +299,13 @@ namespace Jackett.Common.Indexers
var releases = new List<ReleaseInfo>();
// Episodes list
var results = await RequestWithCookiesAndRetryAsync(uri.AbsoluteUri);
var results = await RequestWithCookiesAndRetryAsync(uri.AbsoluteUri, referer: uri.AbsoluteUri);
var seriesEpisodesUrl = ParseSeriesListContent(results.ContentString, seriesName);
// TV serie list
if (!string.IsNullOrEmpty(seriesEpisodesUrl))
{
results = await RequestWithCookiesAndRetryAsync(seriesEpisodesUrl);
results = await RequestWithCookiesAndRetryAsync(seriesEpisodesUrl, referer: seriesEpisodesUrl);
var items = ParseEpisodesListContent(results.ContentString);
if (items != null && items.Any())
releases.AddRange(items);

View File

@@ -78,6 +78,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(941, TorznabCatType.Movies, "|- Кино СССР");
AddCategoryMapping(1666, TorznabCatType.Movies, "|- Детские отечественные фильмы");
AddCategoryMapping(376, TorznabCatType.Movies, "|- Авторские дебюты");
AddCategoryMapping(106, TorznabCatType.Movies, "|- Фильмы России и СССР на национальных языках [без перевода]");
AddCategoryMapping(7, TorznabCatType.MoviesForeign, "Зарубежное кино");
AddCategoryMapping(187, TorznabCatType.MoviesForeign, "|- Классика мирового кинематографа");
AddCategoryMapping(2090, TorznabCatType.MoviesForeign, "|- Фильмы до 1990 года");
@@ -85,14 +86,15 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2091, TorznabCatType.MoviesForeign, "|- Фильмы 2001-2005");
AddCategoryMapping(2092, TorznabCatType.MoviesForeign, "|- Фильмы 2006-2010");
AddCategoryMapping(2093, TorznabCatType.MoviesForeign, "|- Фильмы 2011-2015");
AddCategoryMapping(2200, TorznabCatType.MoviesForeign, "|- Фильмы 2016-2019");
AddCategoryMapping(1950, TorznabCatType.MoviesForeign, "|- Фильмы 2020");
AddCategoryMapping(2200, TorznabCatType.MoviesForeign, "|- Фильмы 2016-2020");
AddCategoryMapping(1950, TorznabCatType.MoviesForeign, "|- Фильмы 2021-2022");
AddCategoryMapping(2540, TorznabCatType.MoviesForeign, "|- Фильмы Ближнего Зарубежья");
AddCategoryMapping(934, TorznabCatType.MoviesForeign, "|- Азиатские фильмы");
AddCategoryMapping(505, TorznabCatType.MoviesForeign, "|- Индийское кино");
AddCategoryMapping(212, TorznabCatType.MoviesForeign, "|- Сборники фильмов");
AddCategoryMapping(2459, TorznabCatType.MoviesForeign, "|- Короткий метр");
AddCategoryMapping(1235, TorznabCatType.MoviesForeign, "|- Грайндхаус");
AddCategoryMapping(166, TorznabCatType.MoviesForeign, "|- Зарубежные фильмы без перевода");
AddCategoryMapping(185, TorznabCatType.Audio, "|- Звуковые дорожки и Переводы");
AddCategoryMapping(124, TorznabCatType.MoviesOther, "Арт-хаус и авторское кино");
AddCategoryMapping(1543, TorznabCatType.MoviesOther, "|- Короткий метр (Арт-хаус и авторское кино)");
@@ -125,37 +127,41 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(514, TorznabCatType.Movies3D, "|- 3D Спорт");
AddCategoryMapping(2097, TorznabCatType.Movies3D, "|- 3D Ролики, Музыкальное видео, Трейлеры к фильмам");
AddCategoryMapping(4, TorznabCatType.Movies, "Мультфильмы");
AddCategoryMapping(84, TorznabCatType.MoviesUHD, "|- Мультфильмы (UHD Video)");
AddCategoryMapping(2343, TorznabCatType.MoviesHD, "|- Отечественные мультфильмы (HD Video)");
AddCategoryMapping(930, TorznabCatType.MoviesHD, "|- Иностранные мультфильмы (HD Video)");
AddCategoryMapping(2365, TorznabCatType.MoviesHD, "|- Иностранные короткометражные мультфильмы (HD Video)");
AddCategoryMapping(1900, TorznabCatType.MoviesDVD, "|- Отечественные мультфильмы (DVD)");
AddCategoryMapping(521, TorznabCatType.MoviesDVD, "|- Иностранные мультфильмы (DVD)");
AddCategoryMapping(2258, TorznabCatType.MoviesDVD, "|- Иностранные короткометражные мультфильмы (DVD)");
AddCategoryMapping(521, TorznabCatType.MoviesDVD, "|- Иностранные мультфильмы (DVD)");
AddCategoryMapping(208, TorznabCatType.Movies, "|- Отечественные мультфильмы");
AddCategoryMapping(539, TorznabCatType.Movies, "|- Отечественные полнометражные мультфильмы");
AddCategoryMapping(209, TorznabCatType.MoviesForeign, "|- Иностранные мультфильмы");
AddCategoryMapping(484, TorznabCatType.MoviesForeign, "|- Иностранные короткометражные мультфильмы");
AddCategoryMapping(822, TorznabCatType.Movies, "|- Сборники мультфильмов");
AddCategoryMapping(181, TorznabCatType.Movies, "|- Мультфильмы без перевода");
AddCategoryMapping(921, TorznabCatType.TV, "Мультсериалы");
AddCategoryMapping(815, TorznabCatType.TVSD, "|- Мультсериалы (SD Video)");
AddCategoryMapping(816, TorznabCatType.TVHD, "|- Мультсериалы (DVD Video)");
AddCategoryMapping(1460, TorznabCatType.TVHD, "|- Мультсериалы (HD Video)");
AddCategoryMapping(33, TorznabCatType.TVAnime, "Аниме");
AddCategoryMapping(2484, TorznabCatType.TVAnime, "|- Артбуки и журналы (Аниме)");
AddCategoryMapping(1386, TorznabCatType.TVAnime, "|- Обои, сканы, аватары, арт");
AddCategoryMapping(1387, TorznabCatType.TVAnime, "|- AMV и другие ролики");
AddCategoryMapping(599, TorznabCatType.TVAnime, "|- Аниме (DVD)");
AddCategoryMapping(1105, TorznabCatType.TVAnime, "|- Аниме (HD Video)");
AddCategoryMapping(599, TorznabCatType.TVAnime, "|- Аниме (DVD)");
AddCategoryMapping(1389, TorznabCatType.TVAnime, "|- Аниме (основной подраздел)");
AddCategoryMapping(1391, TorznabCatType.TVAnime, "|- Аниме (плеерный подраздел)");
AddCategoryMapping(2491, TorznabCatType.TVAnime, "|- Аниме (QC подраздел)");
AddCategoryMapping(404, TorznabCatType.TVAnime, "|- Покемоны");
AddCategoryMapping(1390, TorznabCatType.TVAnime, "|- Наруто");
AddCategoryMapping(2544, TorznabCatType.TVAnime, "|- Ван-Пис");
AddCategoryMapping(1642, TorznabCatType.TVAnime, "|- Гандам");
AddCategoryMapping(1390, TorznabCatType.TVAnime, "|- Наруто");
AddCategoryMapping(404, TorznabCatType.TVAnime, "|- Покемоны");
AddCategoryMapping(893, TorznabCatType.TVAnime, "|- Японские мультфильмы");
AddCategoryMapping(809, TorznabCatType.Audio, "|- Звуковые дорожки (Аниме)");
AddCategoryMapping(2484, TorznabCatType.TVAnime, "|- Артбуки и журналы (Аниме)");
AddCategoryMapping(1386, TorznabCatType.TVAnime, "|- Обои, сканы, аватары, арт");
AddCategoryMapping(1387, TorznabCatType.TVAnime, "|- AMV и другие ролики");
AddCategoryMapping(9, TorznabCatType.TV, "Русские сериалы");
AddCategoryMapping(81, TorznabCatType.TVHD, "|- Русские сериалы (HD Video)");
AddCategoryMapping(920, TorznabCatType.TVSD, "|- Русские сериалы (DVD Video)");
AddCategoryMapping(80, TorznabCatType.TV, "|- Возвращение Мухтара");
AddCategoryMapping(1535, TorznabCatType.TV, "|- Воронины");
AddCategoryMapping(188, TorznabCatType.TV, "|- Чернобыль: Зона отчуждения");
@@ -264,7 +270,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(876, TorznabCatType.TVDocumentary, "|- [Док] Путешествия и туризм");
AddCategoryMapping(2139, TorznabCatType.TVDocumentary, "|- [Док] Медицина");
AddCategoryMapping(2380, TorznabCatType.TVDocumentary, "|- [Док] Социальные ток-шоу");
AddCategoryMapping(1467, TorznabCatType.TVDocumentary, "|- [Док] Информационно-аналитические и общественно-политические перед..");
AddCategoryMapping(1467, TorznabCatType.TVDocumentary, "|- [Док] Информационно-аналитические и общественно-политические передачи");
AddCategoryMapping(1469, TorznabCatType.TVDocumentary, "|- [Док] Архитектура и строительство");
AddCategoryMapping(672, TorznabCatType.TVDocumentary, "|- [Док] Всё о доме, быте и дизайне");
AddCategoryMapping(249, TorznabCatType.TVDocumentary, "|- [Док] BBC");
@@ -273,7 +279,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2112, TorznabCatType.TVDocumentary, "|- [Док] История: Древний мир / Античность / Средневековье");
AddCategoryMapping(1327, TorznabCatType.TVDocumentary, "|- [Док] История: Новое и Новейшее время");
AddCategoryMapping(1468, TorznabCatType.TVDocumentary, "|- [Док] Эпоха СССР");
AddCategoryMapping(1280, TorznabCatType.TVDocumentary, "|- [Док] Битва экстрасенсов / Теория невероятности / Искатели / Галил..");
AddCategoryMapping(1280, TorznabCatType.TVDocumentary, "|- [Док] Битва экстрасенсов / Теория невероятности / Искатели / Галилео");
AddCategoryMapping(752, TorznabCatType.TVDocumentary, "|- [Док] Русские сенсации / Программа Максимум / Профессия репортёр");
AddCategoryMapping(1114, TorznabCatType.TVDocumentary, "|- [Док] Паранормальные явления");
AddCategoryMapping(2168, TorznabCatType.TVDocumentary, "|- [Док] Альтернативная история и наука");
@@ -287,8 +293,9 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(979, TorznabCatType.TVDocumentary, "|- Путешествия и туризм (HD Video)");
AddCategoryMapping(2169, TorznabCatType.TVDocumentary, "|- Флора и фауна (HD Video)");
AddCategoryMapping(2166, TorznabCatType.TVDocumentary, "|- История (HD Video)");
AddCategoryMapping(2164, TorznabCatType.TVDocumentary, "|- BBC, Discovery, National Geographic (HD Video)");
AddCategoryMapping(2164, TorznabCatType.TVDocumentary, "|- BBC, Discovery, National Geographic, History Channel (HD Video)");
AddCategoryMapping(2163, TorznabCatType.TVDocumentary, "|- Криминальная документалистика (HD Video)");
AddCategoryMapping(85, TorznabCatType.TVDocumentary, "|- Некондиционное видео - Документальные (HD Video)");
AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Развлекательные телепередачи и шоу, приколы и юмор");
AddCategoryMapping(1959, TorznabCatType.TVOther, "|- [Видео Юмор] Интеллектуальные игры и викторины");
AddCategoryMapping(939, TorznabCatType.TVOther, "|- [Видео Юмор] Реалити и ток-шоу / номинации / показы");
@@ -310,7 +317,20 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(114, TorznabCatType.TVOther, "|- [Видео Юмор] Сатирики и юмористы");
AddCategoryMapping(1332, TorznabCatType.TVOther, "|- Юмористические аудиопередачи");
AddCategoryMapping(1495, TorznabCatType.TVOther, "|- Аудио и видео ролики (Приколы и юмор)");
AddCategoryMapping(1315, TorznabCatType.TVSport, "Зимние Олимпийские игры 2018");
AddCategoryMapping(1392, TorznabCatType.TVSport, "XXXII Летние Олимпийские игры 2020");
AddCategoryMapping(2475, TorznabCatType.TVSport, "|- Легкая атлетика");
AddCategoryMapping(2493, TorznabCatType.TVSport, "|- Плавание. Прыжки в воду. Синхронное плавание");
AddCategoryMapping(2113, TorznabCatType.TVSport, "|- Спортивная гимнастика. Художественная гимнастика. Прыжки на батуте");
AddCategoryMapping(2482, TorznabCatType.TVSport, "|- Велоспорт");
AddCategoryMapping(2103, TorznabCatType.TVSport, "|- Академическая гребля. Гребля на байдарках и каноэ");
AddCategoryMapping(2522, TorznabCatType.TVSport, "|- Бокс. Борьба Вольная и Греко-римская. Дзюдо. Карате. Тхэквондо");
AddCategoryMapping(2485, TorznabCatType.TVSport, "|- Футбол");
AddCategoryMapping(2486, TorznabCatType.TVSport, "|- Баскетбол. Волейбол. Гандбол. Водное поло. Регби. Хоккей на траве");
AddCategoryMapping(2479, TorznabCatType.TVSport, "|- Теннис. Настольный теннис. Бадминтон");
AddCategoryMapping(2089, TorznabCatType.TVSport, "|- Фехтование. Стрельба. Стрельба из лука. Современное пятиборье");
AddCategoryMapping(1794, TorznabCatType.TVSport, "|- Другие виды спорта");
AddCategoryMapping(2338, TorznabCatType.TVSport, "|- Обзорные и аналитические программы");
AddCategoryMapping(1315, TorznabCatType.TVSport, "XXIV Зимние Олимпийские игры 2022");
AddCategoryMapping(1336, TorznabCatType.TVSport, "|- Биатлон");
AddCategoryMapping(2171, TorznabCatType.TVSport, "|- Лыжные гонки");
AddCategoryMapping(1339, TorznabCatType.TVSport, "|- Прыжки на лыжах с трамплина / Лыжное двоеборье");
@@ -324,8 +344,8 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(255, TorznabCatType.TVSport, "Спортивные турниры, фильмы и передачи");
AddCategoryMapping(256, TorznabCatType.TVSport, "|- Автоспорт");
AddCategoryMapping(1986, TorznabCatType.TVSport, "|- Мотоспорт");
AddCategoryMapping(660, TorznabCatType.TVSport, "|- Формула-1 (2020)");
AddCategoryMapping(1551, TorznabCatType.TVSport, "|- Формула-1 (2012-2019)");
AddCategoryMapping(660, TorznabCatType.TVSport, "|- Формула-1 (2021)");
AddCategoryMapping(1551, TorznabCatType.TVSport, "|- Формула-1 (2012-2020)");
AddCategoryMapping(626, TorznabCatType.TVSport, "|- Формула 1 (до 2011 вкл.)");
AddCategoryMapping(262, TorznabCatType.TVSport, "|- Велоспорт");
AddCategoryMapping(1326, TorznabCatType.TVSport, "|- Волейбол/Гандбол");
@@ -348,15 +368,16 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(260, TorznabCatType.TVSport, "|- Экстрим");
AddCategoryMapping(1319, TorznabCatType.TVSport, "|- Спорт (видео)");
AddCategoryMapping(1608, TorznabCatType.TVSport, "⚽ Футбол");
AddCategoryMapping(2294, TorznabCatType.TVSport, "|- UHDTV. Футбол в формате высокой четкости");
AddCategoryMapping(136, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 (квалификация)");
AddCategoryMapping(2294, TorznabCatType.TVSport, "|- UHDTV");
AddCategoryMapping(2532, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (финальный турнир)");
AddCategoryMapping(136, TorznabCatType.TVSport, "|- Чемпионат Европы 2020 [2021] (отбор)");
AddCategoryMapping(592, TorznabCatType.TVSport, "|- Лига Наций");
AddCategoryMapping(1693, TorznabCatType.TVSport, "|- Чемпионат Мира 2022 (отбор)");
AddCategoryMapping(2533, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (игры)");
AddCategoryMapping(1952, TorznabCatType.TVSport, "|- Чемпионат Мира 2018 (обзорные передачи, документалистика)");
AddCategoryMapping(1621, TorznabCatType.TVSport, "|- Чемпионаты Мира");
AddCategoryMapping(2075, TorznabCatType.TVSport, "|- Россия 2018-2019");
AddCategoryMapping(1668, TorznabCatType.TVSport, "|- Россия 2019-2020");
AddCategoryMapping(1668, TorznabCatType.TVSport, "|- Россия 2021-2022");
AddCategoryMapping(2075, TorznabCatType.TVSport, "|- Россия 2020-2021");
AddCategoryMapping(1613, TorznabCatType.TVSport, "|- Россия/СССР");
AddCategoryMapping(1614, TorznabCatType.TVSport, "|- Англия");
AddCategoryMapping(1623, TorznabCatType.TVSport, "|- Испания");
@@ -366,13 +387,13 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2514, TorznabCatType.TVSport, "|- Украина");
AddCategoryMapping(1616, TorznabCatType.TVSport, "|- Другие национальные чемпионаты и кубки");
AddCategoryMapping(2014, TorznabCatType.TVSport, "|- Международные турниры");
AddCategoryMapping(1491, TorznabCatType.TVSport, "|- Еврокубки 2021-2022");
AddCategoryMapping(1442, TorznabCatType.TVSport, "|- Еврокубки 2020-2021");
AddCategoryMapping(1491, TorznabCatType.TVSport, "|- Еврокубки 2019-2020");
AddCategoryMapping(1987, TorznabCatType.TVSport, "|- Еврокубки 2011-2018");
AddCategoryMapping(1987, TorznabCatType.TVSport, "|- Еврокубки 2011-2020");
AddCategoryMapping(1617, TorznabCatType.TVSport, "|- Еврокубки");
AddCategoryMapping(1620, TorznabCatType.TVSport, "|- Чемпионаты Европы");
AddCategoryMapping(1998, TorznabCatType.TVSport, "|- Товарищеские турниры и матчи");
AddCategoryMapping(1343, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи 2018-2020");
AddCategoryMapping(1343, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи 2018-2021");
AddCategoryMapping(751, TorznabCatType.TVSport, "|- Обзорные и аналитические передачи");
AddCategoryMapping(497, TorznabCatType.TVSport, "|- Документальные фильмы (футбол)");
AddCategoryMapping(1697, TorznabCatType.TVSport, "|- Мини-футбол/Пляжный футбол");
@@ -380,11 +401,11 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2001, TorznabCatType.TVSport, "|- Международные соревнования");
AddCategoryMapping(2002, TorznabCatType.TVSport, "|- NBA / NCAA (до 2000 г.)");
AddCategoryMapping(283, TorznabCatType.TVSport, "|- NBA / NCAA (2000-2010 гг.)");
AddCategoryMapping(1997, TorznabCatType.TVSport, "|- NBA / NCAA (2010-2020 гг.)");
AddCategoryMapping(1997, TorznabCatType.TVSport, "|- NBA / NCAA (2010-2022 гг.)");
AddCategoryMapping(2003, TorznabCatType.TVSport, "|- Европейский клубный баскетбол");
AddCategoryMapping(2009, TorznabCatType.TVSport, "🏒 Хоккей");
AddCategoryMapping(2010, TorznabCatType.TVSport, "|- Хоккей с мячом / Бенди");
AddCategoryMapping(1229, TorznabCatType.TVSport, "|- Чемпионат Мира по хоккею 2019");
AddCategoryMapping(1229, TorznabCatType.TVSport, "|- Чемпионат Мира по хоккею 2021");
AddCategoryMapping(2006, TorznabCatType.TVSport, "|- Международные турниры");
AddCategoryMapping(2007, TorznabCatType.TVSport, "|- КХЛ");
AddCategoryMapping(2005, TorznabCatType.TVSport, "|- НХЛ (до 2011/12)");
@@ -397,6 +418,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1527, TorznabCatType.TVSport, "|- International Wrestling");
AddCategoryMapping(2069, TorznabCatType.TVSport, "|- Oldschool Wrestling");
AddCategoryMapping(1323, TorznabCatType.TVSport, "|- Documentary Wrestling");
AddCategoryMapping(1346, TorznabCatType.TVSport, "Для дооформления раздач");
AddCategoryMapping(1411, TorznabCatType.TVSport, "|- Сканирование, обработка сканов");
AddCategoryMapping(21, TorznabCatType.Books, "Книги и журналы (общий раздел)");
AddCategoryMapping(2157, TorznabCatType.Books, "|- Кино, театр, ТВ, мультипликация, цирк");
@@ -410,9 +432,9 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2223, TorznabCatType.Books, "|- Путешествия и туризм");
AddCategoryMapping(2447, TorznabCatType.Books, "|- Знаменитости и кумиры");
AddCategoryMapping(39, TorznabCatType.Books, "|- Разное (книги)");
AddCategoryMapping(2086, TorznabCatType.Books, "- Самиздат, статьи из журналов, фрагменты книг");
AddCategoryMapping(2086, TorznabCatType.Books, "|- Самиздат, статьи из журналов, фрагменты книг");
AddCategoryMapping(1101, TorznabCatType.Books, "Для детей, родителей и учителей");
AddCategoryMapping(745, TorznabCatType.Books, "|- Учебная литература для детского сада и начальной школы (до 4 класс..");
AddCategoryMapping(745, TorznabCatType.Books, "|- Учебная литература для детского сада и начальной школы (до 4 класса)");
AddCategoryMapping(1689, TorznabCatType.Books, "|- Учебная литература для старших классов (5-11 класс)");
AddCategoryMapping(2336, TorznabCatType.Books, "|- Учителям и педагогам");
AddCategoryMapping(2337, TorznabCatType.Books, "|- Научно-популярная и познавательная литература (для детей)");
@@ -613,7 +635,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2358, TorznabCatType.BooksEBook, "|- Английский язык (для детей)");
AddCategoryMapping(2359, TorznabCatType.BooksEBook, "|- Другие европейские языки (для детей)");
AddCategoryMapping(2360, TorznabCatType.BooksEBook, "|- Восточные языки (для детей)");
AddCategoryMapping(2361, TorznabCatType.BooksEBook, "|- Школьные учебники, ЕГЭ");
AddCategoryMapping(2361, TorznabCatType.BooksEBook, "|- Школьные учебники, ЕГЭ, ОГЭ");
AddCategoryMapping(2057, TorznabCatType.BooksEBook, "Художественная литература (ин.языки)");
AddCategoryMapping(2355, TorznabCatType.BooksEBook, "|- Художественная литература на английском языке");
AddCategoryMapping(2474, TorznabCatType.BooksEBook, "|- Художественная литература на французском языке");
@@ -699,13 +721,13 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1567, TorznabCatType.BooksTechnical, "|- Разное (Компьютерные видеоуроки)");
AddCategoryMapping(2326, TorznabCatType.AudioAudiobook, "Радиоспектакли, история, мемуары");
AddCategoryMapping(574, TorznabCatType.AudioAudiobook, "|- [Аудио] Радиоспектакли и литературные чтения");
AddCategoryMapping(1036, TorznabCatType.AudioAudiobook, "|- [Аудио] Жизнь замечательных людей");
AddCategoryMapping(1036, TorznabCatType.AudioAudiobook, "|- [Аудио] Биографии и мемуары");
AddCategoryMapping(400, TorznabCatType.AudioAudiobook, "|- [Аудио] История, культурология, философия");
AddCategoryMapping(2389, TorznabCatType.AudioAudiobook, "Фантастика, фэнтези, мистика, ужасы, фанфики");
AddCategoryMapping(2388, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная фантастика, фэнтези, мистика, ужасы, фанфики");
AddCategoryMapping(2387, TorznabCatType.AudioAudiobook, "|- [Аудио] Российская фантастика, фэнтези, мистика, ужасы, фанфики");
AddCategoryMapping(661, TorznabCatType.AudioAudiobook, "|- [Аудио] Любовно-фантастический роман");
AddCategoryMapping(2348, TorznabCatType.AudioAudiobook, "|- [Аудио] Сборники/разное Фантастика, фэнтези, мистика, ужасы, фанфи..");
AddCategoryMapping(2348, TorznabCatType.AudioAudiobook, "|- [Аудио] Сборники/разное Фантастика, фэнтези, мистика, ужасы, фанфики");
AddCategoryMapping(2327, TorznabCatType.AudioAudiobook, "Художественная литература");
AddCategoryMapping(695, TorznabCatType.AudioAudiobook, "|- [Аудио] Поэзия");
AddCategoryMapping(399, TorznabCatType.AudioAudiobook, "|- [Аудио] Зарубежная литература");
@@ -761,7 +783,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2309, TorznabCatType.AudioMP3, "|- Вокальная и хоровая музыка (lossy)");
AddCategoryMapping(2310, TorznabCatType.AudioMP3, "|- Оркестровая музыка (lossy)");
AddCategoryMapping(2311, TorznabCatType.AudioMP3, "|- Камерная и сольная инструментальная музыка (lossy)");
AddCategoryMapping(969, TorznabCatType.Audio, "|- Классика в современной обработке, Classical Crossover (lossy и los..");
AddCategoryMapping(969, TorznabCatType.Audio, "|- Классика в современной обработке, Classical Crossover (lossy и lossless)");
AddCategoryMapping(1125, TorznabCatType.Audio, "Фольклор, Народная и Этническая музыка");
AddCategoryMapping(1130, TorznabCatType.AudioMP3, "|- Восточноевропейский фолк (lossy)");
AddCategoryMapping(1131, TorznabCatType.AudioLossless, "|- Восточноевропейский фолк (lossless)");
@@ -774,10 +796,10 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2430, TorznabCatType.AudioLossless, "|- Этническая музыка Индии (lossless)");
AddCategoryMapping(1283, TorznabCatType.AudioMP3, "|- Этническая музыка Африки и Ближнего Востока (lossy)");
AddCategoryMapping(2085, TorznabCatType.AudioLossless, "|- Этническая музыка Африки и Ближнего Востока (lossless)");
AddCategoryMapping(1282, TorznabCatType.Audio, "|- Фольклорная, Народная, Эстрадная музыка Кавказа и Закавказья (loss..");
AddCategoryMapping(1282, TorznabCatType.Audio, "|- Фольклорная, Народная, Эстрадная музыка Кавказа и Закавказья (lossless)");
AddCategoryMapping(1284, TorznabCatType.AudioMP3, "|- Этническая музыка Северной и Южной Америки (lossy)");
AddCategoryMapping(1285, TorznabCatType.AudioLossless, "|- Этническая музыка Северной и Южной Америки (lossless)");
AddCategoryMapping(1138, TorznabCatType.Audio, "|- Этническая музыка Австралии, Тихого и Индийского океанов (lossy и ..");
AddCategoryMapping(1138, TorznabCatType.Audio, "|- Этническая музыка Австралии, Тихого и Индийского океанов (lossy и lossless)");
AddCategoryMapping(1136, TorznabCatType.AudioMP3, "|- Country, Bluegrass (lossy)");
AddCategoryMapping(1137, TorznabCatType.AudioLossless, "|- Country, Bluegrass (lossless)");
AddCategoryMapping(1849, TorznabCatType.Audio, "New Age, Relax, Meditative & Flamenco");
@@ -808,7 +830,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1773, TorznabCatType.Audio, "|- Отечественная Ska музыка (lossy и lossless)");
AddCategoryMapping(2233, TorznabCatType.Audio, "|- Reggae, Ska, Dub (компиляции) (lossy и lossless)");
AddCategoryMapping(416, TorznabCatType.Audio, "Саундтреки, караоке и мюзиклы");
AddCategoryMapping(2377, TorznabCatType.AudioVideo, "|- Караоке (видео)");
AddCategoryMapping(2377, TorznabCatType.AudioVideo, "|- Караоке");
AddCategoryMapping(468, TorznabCatType.Audio, "|- Минусовки (lossy и lossless)");
AddCategoryMapping(691, TorznabCatType.AudioLossless, "|- Саундтреки к отечественным фильмам (lossless)");
AddCategoryMapping(469, TorznabCatType.AudioMP3, "|- Саундтреки к отечественным фильмам (lossy)");
@@ -837,9 +859,9 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1842, TorznabCatType.AudioLossless, "Label Packs (lossless)");
AddCategoryMapping(1648, TorznabCatType.AudioMP3, "Label packs, Scene packs (lossy)");
AddCategoryMapping(2495, TorznabCatType.Audio, "Отечественная поп-музыка");
AddCategoryMapping(424, TorznabCatType.AudioMP3, "|- Отечественная поп-музыка (lossy)");
AddCategoryMapping(1361, TorznabCatType.AudioMP3, "|- Отечественная поп-музыка (сборники) (lossy)");
AddCategoryMapping(425, TorznabCatType.AudioLossless, "|- Отечественная поп-музыка (lossless)");
AddCategoryMapping(424, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (lossy)");
AddCategoryMapping(1361, TorznabCatType.AudioMP3, "|- Популярная музыка России и стран бывшего СССР (сборники) (lossy)");
AddCategoryMapping(425, TorznabCatType.AudioLossless, "|- Популярная музыка России и стран бывшего СССР (lossless)");
AddCategoryMapping(1635, TorznabCatType.AudioMP3, "|- Советская эстрада, ретро, романсы (lossy)");
AddCategoryMapping(1634, TorznabCatType.AudioLossless, "|- Советская эстрада, ретро, романсы (lossless)");
AddCategoryMapping(2497, TorznabCatType.Audio, "Зарубежная поп-музыка");
@@ -959,7 +981,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1822, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance (lossy)");
AddCategoryMapping(1894, TorznabCatType.AudioLossless, "|- PsyChill, Ambient, Dub (lossless)");
AddCategoryMapping(1895, TorznabCatType.AudioMP3, "|- PsyChill, Ambient, Dub (lossy)");
AddCategoryMapping(460, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance, PsyChill, Ambient, Dub (Live Sets, Mixes) ..");
AddCategoryMapping(460, TorznabCatType.AudioMP3, "|- Goa Trance, Psy-Trance, PsyChill, Ambient, Dub (Live Sets, Mixes) (lossy)");
AddCategoryMapping(1818, TorznabCatType.AudioLossless, "|- Trance (lossless)");
AddCategoryMapping(1819, TorznabCatType.AudioMP3, "|- Trance (lossy)");
AddCategoryMapping(1847, TorznabCatType.AudioMP3, "|- Trance (Singles, EPs) (lossy)");
@@ -998,19 +1020,19 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1946, TorznabCatType.AudioMP3, "|- Nu Jazz, Acid Jazz, Future Jazz (lossy)");
AddCategoryMapping(1945, TorznabCatType.AudioLossless, "|- Trip Hop, Abstract Hip-Hop (lossless)");
AddCategoryMapping(1944, TorznabCatType.AudioMP3, "|- Trip Hop, Abstract Hip-Hop (lossy)");
AddCategoryMapping(1810, TorznabCatType.Audio, "Traditional Electronic, Ambient, Modern Classical, Electroacoustic, Ex..");
AddCategoryMapping(1810, TorznabCatType.Audio, "Traditional Electronic, Ambient, Modern Classical, Electroacoustic, Experimental");
AddCategoryMapping(1864, TorznabCatType.AudioLossless, "|- Traditional Electronic, Ambient (lossless)");
AddCategoryMapping(1865, TorznabCatType.AudioMP3, "|- Traditional Electronic, Ambient (lossy)");
AddCategoryMapping(1871, TorznabCatType.AudioLossless, "|- Modern Classical, Electroacoustic (lossless)");
AddCategoryMapping(1867, TorznabCatType.AudioMP3, "|- Modern Classical, Electroacoustic (lossy)");
AddCategoryMapping(1869, TorznabCatType.AudioLossless, "|- Experimental (lossless)");
AddCategoryMapping(1873, TorznabCatType.AudioMP3, "|- Experimental (lossy)");
AddCategoryMapping(1907, TorznabCatType.Audio, "|- 8-bit, Chiptune (lossy & lossless)");
AddCategoryMapping(1811, TorznabCatType.Audio, "Industrial, Noise, EBM, Dark Electro, Aggrotech, Synthpop, New Wave");
AddCategoryMapping(1811, TorznabCatType.Audio, "Industrial, Noise, EBM, Dark Electro, Aggrotech, Cyberpunk, Synthpop, New Wave");
AddCategoryMapping(1868, TorznabCatType.AudioLossless, "|- EBM, Dark Electro, Aggrotech (lossless)");
AddCategoryMapping(1875, TorznabCatType.AudioMP3, "|- EBM, Dark Electro, Aggrotech (lossy)");
AddCategoryMapping(1877, TorznabCatType.AudioLossless, "|- Industrial, Noise (lossless)");
AddCategoryMapping(1878, TorznabCatType.AudioMP3, "|- Industrial, Noise (lossy)");
AddCategoryMapping(1907, TorznabCatType.Audio, "|- Cyberpunk, 8-bit, Chiptune (lossy & lossless)");
AddCategoryMapping(1880, TorznabCatType.AudioLossless, "|- Synthpop, Futurepop, New Wave, Electropop (lossless)");
AddCategoryMapping(1881, TorznabCatType.AudioMP3, "|- Synthpop, Futurepop, New Wave, Electropop (lossy)");
AddCategoryMapping(466, TorznabCatType.AudioLossless, "|- Synthwave, Spacesynth, Dreamwave, Retrowave, Outrun (lossless)");
@@ -1019,8 +1041,8 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(406, TorznabCatType.AudioMP3, "|- Darkwave, Neoclassical, Ethereal, Dungeon Synth (lossy)");
AddCategoryMapping(1299, TorznabCatType.Audio, "Hi-Res stereo и многоканальная музыка");
AddCategoryMapping(1884, TorznabCatType.Audio, "|- Классика и классика в современной обработке (Hi-Res stereo)");
AddCategoryMapping(1164, TorznabCatType.Audio, "|- Классика и классика в современной обработке (многоканальная музыка..");
AddCategoryMapping(2513, TorznabCatType.Audio, "|- New Age, Relax, Meditative & Flamenco (Hi-Res stereo и многоканаль..");
AddCategoryMapping(1164, TorznabCatType.Audio, "|- Классика и классика в современной обработке (многоканальная музыка)");
AddCategoryMapping(2513, TorznabCatType.Audio, "|- New Age, Relax, Meditative & Flamenco (Hi-Res stereo и многоканальная музыка)");
AddCategoryMapping(1397, TorznabCatType.Audio, "|- Саундтреки (Hi-Res stereo и многоканальная музыка)");
AddCategoryMapping(2512, TorznabCatType.Audio, "|- Музыка разных жанров (Hi-Res stereo и многоканальная музыка)");
AddCategoryMapping(1885, TorznabCatType.Audio, "|- Поп-музыка (Hi-Res stereo)");
@@ -1043,9 +1065,10 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(239, TorznabCatType.Audio, "|- Отечественная поп-музыка (оцифровки)");
AddCategoryMapping(450, TorznabCatType.Audio, "|- Инструментальная поп-музыка (оцифровки)");
AddCategoryMapping(2301, TorznabCatType.Audio, "|- Джаз и блюз (оцифровки)");
AddCategoryMapping(123, TorznabCatType.Audio, "|- Alternative, Punk, Independent (оцифровки)");
AddCategoryMapping(1756, TorznabCatType.Audio, "|- Зарубежная рок-музыка (оцифровки)");
AddCategoryMapping(1758, TorznabCatType.Audio, "|- Отечественная рок-музыка (оцифровки)");
AddCategoryMapping(1766, TorznabCatType.Audio, "|- Зарубежный Metal (оцифровки)");
AddCategoryMapping(1766, TorznabCatType.Audio, "|- Зарубежный и Отечественный Metal (оцифровки)");
AddCategoryMapping(1754, TorznabCatType.Audio, "|- Электронная музыка (оцифровки)");
AddCategoryMapping(860, TorznabCatType.Audio, "Неофициальные конверсии цифровых форматов");
AddCategoryMapping(453, TorznabCatType.Audio, "|- Конверсии Quadraphonic");
@@ -1054,21 +1077,21 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1852, TorznabCatType.Audio, "|- Апмиксы-Upmixes/Даунмиксы-Downmix");
AddCategoryMapping(413, TorznabCatType.AudioVideo, "Музыкальное SD видео");
AddCategoryMapping(445, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (Видео)");
AddCategoryMapping(702, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (Видео) ");
AddCategoryMapping(702, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (Видео)");
AddCategoryMapping(1990, TorznabCatType.AudioVideo, "|- Балет и современная хореография (Видео)");
AddCategoryMapping(1793, TorznabCatType.AudioVideo, "|- Классика в современной обработке, ical Crossover (Видео)");
AddCategoryMapping(1793, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (Видео)");
AddCategoryMapping(1141, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и фламенко (Видео)");
AddCategoryMapping(1775, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub .. ");
AddCategoryMapping(1227, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (Виде..");
AddCategoryMapping(1775, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (Видео)");
AddCategoryMapping(1227, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (Видео)");
AddCategoryMapping(475, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (Видео)");
AddCategoryMapping(1121, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (Видео)");
AddCategoryMapping(431, TorznabCatType.AudioVideo, "|- Зарубежная поп-музыка (Видео)");
AddCategoryMapping(431, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (Видео)");
AddCategoryMapping(2378, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (Видео)");
AddCategoryMapping(2383, TorznabCatType.AudioVideo, "|- Зарубежный шансон (Видео)");
AddCategoryMapping(2383, TorznabCatType.AudioVideo, "|- Разножанровые сборные концерты и сборники видеоклипов (Видео)");
AddCategoryMapping(2305, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Видео)");
AddCategoryMapping(1782, TorznabCatType.AudioVideo, "|- Rock (Видео)");
AddCategoryMapping(1787, TorznabCatType.AudioVideo, "|- Metal (Видео)");
AddCategoryMapping(1789, TorznabCatType.AudioVideo, "|- Alternative, Punk, Independent (Видео)");
AddCategoryMapping(1789, TorznabCatType.AudioVideo, "|- Зарубежный Alternative, Punk, Independent (Видео)");
AddCategoryMapping(1791, TorznabCatType.AudioVideo, "|- Отечественный Рок, Панк, Альтернатива (Видео)");
AddCategoryMapping(1912, TorznabCatType.AudioVideo, "|- Электронная музыка (Видео)");
AddCategoryMapping(1189, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (Видео)");
@@ -1076,11 +1099,11 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(984, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (DVD Video)");
AddCategoryMapping(983, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (DVD видео)");
AddCategoryMapping(2352, TorznabCatType.AudioVideo, "|- Балет и современная хореография (DVD Video)");
AddCategoryMapping(2384, TorznabCatType.AudioVideo, "|- Классика в современной обработке, ical Crossover (DVD Video)");
AddCategoryMapping(2384, TorznabCatType.AudioVideo, "|- Классика в современной обработке, Classical Crossover (DVD Video)");
AddCategoryMapping(1142, TorznabCatType.AudioVideo, "|- Фольклор, Народная и Этническая музыка и Flamenco (DVD Video)");
AddCategoryMapping(1107, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R &#039;n &#039;B, Reggae, Ska, Dub ..");
AddCategoryMapping(1228, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (DVD ..");
AddCategoryMapping(988, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (DVD Video..");
AddCategoryMapping(1107, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (DVD Video)");
AddCategoryMapping(1228, TorznabCatType.AudioVideo, "|- Зарубежный и Отечественный Шансон, Авторская и Военная песня (DVD Video)");
AddCategoryMapping(988, TorznabCatType.AudioVideo, "|- Музыка других жанров, Советская эстрада, ретро, романсы (DVD Video)");
AddCategoryMapping(1122, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (DVD Video)");
AddCategoryMapping(986, TorznabCatType.AudioVideo, "|- Зарубежная Поп-музыка, Eurodance, Disco (DVD Video)");
AddCategoryMapping(2379, TorznabCatType.AudioVideo, "|- Восточноазиатская поп-музыка (DVD Video)");
@@ -1092,20 +1115,20 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1792, TorznabCatType.AudioVideo, "|- Отечественный Рок, Метал, Панк, Альтернатива (DVD Video)");
AddCategoryMapping(1886, TorznabCatType.AudioVideo, "|- Электронная музыка (DVD Video)");
AddCategoryMapping(2509, TorznabCatType.AudioVideo, "|- Документальные фильмы о музыке и музыкантах (DVD Video)");
AddCategoryMapping(2507, TorznabCatType.AudioVideo, "Неофициальные DVD видео ");
AddCategoryMapping(2507, TorznabCatType.AudioVideo, "Неофициальные DVD видео");
AddCategoryMapping(2263, TorznabCatType.AudioVideo, "Классическая музыка, Опера, Балет, Мюзикл (Неофициальные DVD Video)");
AddCategoryMapping(2511, TorznabCatType.AudioVideo, "Шансон, Авторская песня, Сборные концерты, МДЖ (Неофициальные DVD Video)");
AddCategoryMapping(2264, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Поп-музыка (Неофициальные DVD Video)");
AddCategoryMapping(2262, TorznabCatType.AudioVideo, "|- Джаз и Блюз (Неофициальные DVD Video)");
AddCategoryMapping(2261, TorznabCatType.AudioVideo, "|- Зарубежная и Отечественная Рок-музыка (Неофициальные DVD Video)");
AddCategoryMapping(1887, TorznabCatType.AudioVideo, "|- Электронная музыка (Неофициальные, любительские DVD Video)");
AddCategoryMapping(1887, TorznabCatType.AudioVideo, "|- Электронная музыка (Неофициальные DVD Video)");
AddCategoryMapping(2531, TorznabCatType.AudioVideo, "|- Прочие жанры (Неофициальные DVD видео)");
AddCategoryMapping(2400, TorznabCatType.AudioVideo, "Музыкальное HD видео");
AddCategoryMapping(1812, TorznabCatType.AudioVideo, "|- Классическая и современная академическая музыка (HD Video)");
AddCategoryMapping(655, TorznabCatType.AudioVideo, "|- Опера, Оперетта и Мюзикл (HD Видео)");
AddCategoryMapping(1777, TorznabCatType.AudioVideo, "|- Балет и современная хореография (HD Video)");
AddCategoryMapping(2530, TorznabCatType.AudioVideo, "|- Фольклор, Народная, Этническая музыка и Flamenco (HD Видео)");
AddCategoryMapping(2529, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub ..");
AddCategoryMapping(2529, TorznabCatType.AudioVideo, "|- New Age, Relax, Meditative, Рэп, Хип-Хоп, R'n'B, Reggae, Ska, Dub (HD Видео)");
AddCategoryMapping(1781, TorznabCatType.AudioVideo, "|- Музыка других жанров, Разножанровые сборные концерты (HD видео)");
AddCategoryMapping(2508, TorznabCatType.AudioVideo, "|- Зарубежная поп-музыка (HD Video)");
AddCategoryMapping(2426, TorznabCatType.AudioVideo, "|- Отечественная поп-музыка (HD видео)");
@@ -1148,10 +1171,10 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(2012, TorznabCatType.PCGames, "|- Самолёты и вертолёты для X-Plane");
AddCategoryMapping(960, TorznabCatType.PCMac, "Игры для Apple Macintosh");
AddCategoryMapping(537, TorznabCatType.PCMac, "|- Нативные игры для Mac");
AddCategoryMapping(637, TorznabCatType.PCMac, "|- Портированные игры для Mac");
AddCategoryMapping(637, TorznabCatType.PCMac, "|- Игры для Mac с Wineskin, DOSBox, Cider и другими");
AddCategoryMapping(899, TorznabCatType.PCGames, "Игры для Linux");
AddCategoryMapping(1992, TorznabCatType.PCGames, "|- Нативные игры для Linux");
AddCategoryMapping(2059, TorznabCatType.PCGames, "|- Портированные игры для Linux");
AddCategoryMapping(2059, TorznabCatType.PCGames, "|- Игры для Linux с Wine, DOSBox и другими");
AddCategoryMapping(548, TorznabCatType.Console, "Игры для консолей");
AddCategoryMapping(908, TorznabCatType.Console, "|- PS");
AddCategoryMapping(357, TorznabCatType.ConsoleOther, "|- PS2");
@@ -1179,18 +1202,19 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1926, TorznabCatType.ConsoleOther, "|- Видео для PS3 и других консолей");
AddCategoryMapping(650, TorznabCatType.PCMobileOther, "Игры для мобильных устройств");
AddCategoryMapping(2149, TorznabCatType.PCMobileAndroid, "|- Игры для Android");
AddCategoryMapping(1001, TorznabCatType.PCMobileOther, "|- Игры для Java");
AddCategoryMapping(2420, TorznabCatType.ConsoleOther, "|- Игры для Oculus Quest");
AddCategoryMapping(1001, TorznabCatType.PC, "|- Игры для Java");
AddCategoryMapping(1004, TorznabCatType.PCMobileOther, "|- Игры для Symbian");
AddCategoryMapping(1002, TorznabCatType.PCMobileOther, "|- Игры для Windows Mobile");
AddCategoryMapping(2420, TorznabCatType.PCMobileOther, "|- Игры для Windows Phone");
AddCategoryMapping(240, TorznabCatType.OtherMisc, "Игровое видео");
AddCategoryMapping(2415, TorznabCatType.OtherMisc, "|- Видеопрохождения игр");
AddCategoryMapping(1012, TorznabCatType.PC, "Операционные системы от Microsoft");
AddCategoryMapping(2523, TorznabCatType.PC, "|- Настольные ОС от Microsoft - Windows 8 и далее");
AddCategoryMapping(2153, TorznabCatType.PC, "|- Настольные ОС от Microsoft - Windows XP - Windows 7");
AddCategoryMapping(1019, TorznabCatType.PC, "|- Настольные ОС от Microsoft (выпущенные до Windows XP)");
AddCategoryMapping(1021, TorznabCatType.PC, "|- Серверные ОС от Microsoft");
AddCategoryMapping(1025, TorznabCatType.PC, "|- Разное (Операционные системы от Microsoft)");
AddCategoryMapping(2489, TorznabCatType.PC, "|- Оригинальные образы Windows");
AddCategoryMapping(2523, TorznabCatType.PC, "|- Сборки Windows 8 и далее");
AddCategoryMapping(2153, TorznabCatType.PC, "|- Сборки Windows XP - Windows 7");
AddCategoryMapping(1019, TorznabCatType.PC, "|- Операционные системы выпущенные до Windows XP");
AddCategoryMapping(1021, TorznabCatType.PC, "|- Серверные ОС (оригинальные + сборки)");
AddCategoryMapping(1025, TorznabCatType.PC, "|- Разное (сборки All-in-One, пакеты обновлений, утилиты, и прочее)");
AddCategoryMapping(1376, TorznabCatType.PC, "Linux, Unix и другие ОС");
AddCategoryMapping(1379, TorznabCatType.PC, "|- Операционные системы (Linux, Unix)");
AddCategoryMapping(1381, TorznabCatType.PC, "|- Программное обеспечение (Linux, Unix)");
@@ -1255,7 +1279,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1027, TorznabCatType.PC, "|- Виртуальные инструменты и синтезаторы");
AddCategoryMapping(1199, TorznabCatType.PC, "|- Плагины для обработки звука");
AddCategoryMapping(1091, TorznabCatType.PC, "|- Разное (Программы для работы со звуком)");
AddCategoryMapping(838, TorznabCatType.OtherMisc, "|- Ищу/Предлагаю (Материалы для мультимедиа и дизайна)");
AddCategoryMapping(828, TorznabCatType.OtherMisc, "Материалы для мультимедиа и дизайна");
AddCategoryMapping(1357, TorznabCatType.OtherMisc, "|- Авторские работы");
AddCategoryMapping(890, TorznabCatType.OtherMisc, "|- Официальные сборники векторных клипартов");
AddCategoryMapping(830, TorznabCatType.OtherMisc, "|- Прочие векторные клипарты");
@@ -1293,7 +1317,6 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(1005, TorznabCatType.PCMobileOther, "|- Приложения для Java");
AddCategoryMapping(289, TorznabCatType.PCMobileOther, "|- Приложения для Symbian");
AddCategoryMapping(290, TorznabCatType.PCMobileOther, "|- Приложения для Windows Mobile");
AddCategoryMapping(2419, TorznabCatType.PCMobileOther, "|- Приложения для Windows Phone");
AddCategoryMapping(288, TorznabCatType.PCMobileOther, "|- Софт для работы с телефоном");
AddCategoryMapping(292, TorznabCatType.PCMobileOther, "|- Прошивки для телефонов");
AddCategoryMapping(291, TorznabCatType.PCMobileOther, "|- Обои и темы");
@@ -1348,6 +1371,7 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(147, TorznabCatType.Books, "|- Публикации и учебные материалы (тексты)");
AddCategoryMapping(847, TorznabCatType.MoviesOther, "|- Трейлеры и дополнительные материалы к фильмам");
AddCategoryMapping(1167, TorznabCatType.TVOther, "|- Любительские видеоклипы");
AddCategoryMapping(321, TorznabCatType.Other, "Место встречи изменить - Отчеты о встречах");
}
public override async Task<ConfigurationData> GetConfigurationForSetup()

View File

@@ -0,0 +1,24 @@
namespace Jackett.Common.Models.IndexerConfig
{
public class ConfigurationDataCookieUA : ConfigurationData
{
public StringConfigurationItem Cookie { get; private set; }
public DisplayInfoConfigurationItem CookieInstructions { get; private set; }
public StringConfigurationItem UserAgent { get; private set; }
public DisplayInfoConfigurationItem UserAgentInstructions { get; private set; }
public DisplayInfoConfigurationItem Instructions { get; private set; }
public ConfigurationDataCookieUA(string instructionMessageOptional = null)
{
Cookie = new StringConfigurationItem("Cookie");
CookieInstructions = new DisplayInfoConfigurationItem("Cookie Instructions",
"Please enter the cookie for the site manually. <a href=\"https://github.com/Jackett/Jackett/wiki/Finding-cookies\" target=\"_blank\">See here</a> on how get the cookies." +
"<br>Example cookie header (usually longer than this):<br><code>PHPSESSID=8rk27odm; ipsconnect_63ad9c=1; more_stuff=etc;</code>");
UserAgent = new StringConfigurationItem("User-Agent");
UserAgentInstructions = new DisplayInfoConfigurationItem("User Agent Instructions",
"<ol><li>From the same place you fetched the cookie,<li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section<li><b>Select</b>" +
"and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</ol>");
Instructions = new DisplayInfoConfigurationItem("", instructionMessageOptional);
}
}
}

View File

@@ -151,6 +151,7 @@ namespace Jackett.Common.Models
//public string Remove { get; set; } // already inherited
public selectorBlock Dateheaders { get; set; }
public selectorBlock Count { get; set; }
public bool Multiple { get; set; } = false;
}
public class searchPathBlock : requestBlock
@@ -200,8 +201,6 @@ namespace Jackett.Common.Models
public class responseBlock
{
public string Type { get; set; }
public string Attribute { get; set; }
public string NoResultsMessage { get; set; }
public bool Multiple { get; set; } = false;
}
}

View File

@@ -1,5 +1,4 @@
using System;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Jackett.Common.Indexers;

View File

@@ -0,0 +1,82 @@
using System.Linq;
using System.Threading.Tasks;
using Jackett.Common.Indexers;
using Jackett.Common.Models;
using Jackett.Test.TestHelpers;
using NLog;
using NUnit.Framework;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
// todo: test download block
// todo: test login block
// todo: test settings block
// todo: test other search modes
// todo: review coverage, too many things missing (headers, encoding, ...)
namespace Jackett.Test.Common.Indexers
{
[TestFixture]
public class CardigannIndexerJsonTests
{
private readonly TestWebClient _webClient = new TestWebClient();
private readonly Logger _logger = LogManager.GetCurrentClassLogger();
private readonly TestCacheService _cacheService = new TestCacheService();
[Test]
public async Task TestCardigannJsonAsync()
{
_webClient.RegisterRequestCallback("https://jsondefinition1.com/api/torrents/filter?api_token=&name=1080p&sortField=created_at&sortDirection=desc&perPage=100&page=1",
"json-response1.json");
var definition = LoadTestDefinition("json-definition1.yml");
var indexer = new CardigannIndexer(null, _webClient, _logger, null, _cacheService, definition);
var query = new TorznabQuery
{
QueryType = "search",
SearchTerm = "1080p",
};
var result = await indexer.ResultsForQuery(query, false);
Assert.AreEqual(false, result.IsFromCache);
var releases = result.Releases.ToList();
Assert.AreEqual(78, releases.Count);
var firstRelease = releases.First();
Assert.AreEqual(2, firstRelease.Category.Count);
Assert.AreEqual(2000, firstRelease.Category.First());
Assert.AreEqual(100001, firstRelease.Category.Last());
Assert.AreEqual("The Eyes of Tammy Faye (2021) BDRip 1080p AVC ES DD+ 5.1 EN DTSSS 5.1 Subs] HDO", firstRelease.Title);
Assert.AreEqual("https://jsondefinition1.com/torrents/24804", firstRelease.Details.ToString());
Assert.AreEqual("https://jsondefinition1.com/torrent/download/24804.01c887e14d0845f195bc12b31ea27d38", firstRelease.Link.ToString());
Assert.AreEqual("https://jsondefinition1.com/torrent/download/24804.01c887e14d0845f195bc12b31ea27d38", firstRelease.Guid.ToString());
Assert.AreEqual(null, firstRelease.MagnetUri);
Assert.AreEqual(null, firstRelease.InfoHash);
Assert.AreEqual("https://image.tmdb.org/t/p/w92/iBjkm6oxTPrvNkzr63cmnrpsQPR.jpg", firstRelease.Poster.ToString());
Assert.AreEqual(2021, firstRelease.PublishDate.Year);
Assert.AreEqual(17964744704, firstRelease.Size);
Assert.AreEqual(27, firstRelease.Seeders);
Assert.AreEqual(30, firstRelease.Peers);
Assert.AreEqual(1, firstRelease.Files);
Assert.AreEqual(29, firstRelease.Grabs);
Assert.AreEqual(1, firstRelease.DownloadVolumeFactor);
Assert.AreEqual(1, firstRelease.UploadVolumeFactor);
Assert.AreEqual(null, firstRelease.MinimumRatio);
Assert.AreEqual(345600, firstRelease.MinimumSeedTime);
Assert.AreEqual(451.73625183105469, firstRelease.Gain);
Assert.AreEqual(9115530, firstRelease.Imdb);
Assert.AreEqual(null, firstRelease.RageID);
Assert.AreEqual(601470, firstRelease.TMDb);
Assert.AreEqual(0, firstRelease.TVDBId);
}
private static IndexerDefinition LoadTestDefinition(string fileName)
{
var definitionString = TestUtil.LoadTestFile(fileName);
var deserializer = new DeserializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.Build();
return deserializer.Deserialize<IndexerDefinition>(definitionString);
}
}
}

View File

@@ -0,0 +1,141 @@
---
id: jsondefinition1
name: jsondefinition1
description: "jsondefinition1"
language: es-ES
type: private
encoding: UTF-8
links:
- https://jsondefinition1.com/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 3, cat: Audio, desc: "Música"}
- {id: 4, cat: TV/Documentary, desc: "Documentales"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
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 account <i>My configuration / Mi configuración => Secutiy / Seguridad</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
inputs:
api_token: "{{ .Config.apikey }}"
error:
- selector: a[href*="/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
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
response:
type: json
rows:
selector: data:has(attributes.size):has(attributes.name:contains(1080)):has(attributes.poster:contains(.jpg)):not(attributes.fake_att):not(attributes.uploader:contains(DarkSwan2001))
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
# title:
# selector: name
# filters:
# - name: re_replace
# args: ["\\[", " "]
title_dts:
selector: name:contains(DTS)
optional: true
filters:
- name: re_replace
args: ["DTS", "DTSSS"]
title_notdts:
selector: name:not(:contains(DTS))
optional: true
title:
text: "{{ if .Result.title_dts }}{{ .Result.title_dts }}{{ else }}{{ .Result.title_notdts }}{{ end }}"
filters:
- name: re_replace
args: ["\\[", " "]
details:
selector: details_link
download:
selector: download_link
poster:
selector: poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
size:
selector: size
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
# api returns 0=false, 1=true
selector: double_upload
case:
0: 1 # normal
1: 2 # double
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# json UNIT3D ???

File diff suppressed because it is too large Load Diff

View File

@@ -258,6 +258,7 @@ namespace Jackett.Updater
"Definitions/32pages.yml",
"Definitions/3evils.yml",
"Definitions/420files.yml",
"Definitions/7torrents.yml",
"Definitions/angietorrents.yml",
"Definitions/academictorrents.yml",
"Definitions/alein.yml",
@@ -292,6 +293,7 @@ namespace Jackett.Updater
"Definitions/btgigs.yml",
"Definitions/btkitty.yml",
"Definitions/btstornet.yml",
"Definitions/btworld.yml",
"Definitions/btxpress.yml",
"Definitions/casstudiotv.yml",
"Definitions/channelx.yml",
@@ -328,6 +330,7 @@ namespace Jackett.Updater
"Definitions/erzsebetpl.yml",
"Definitions/estrenosdtl.yml",
"Definitions/ethor.yml",
"Definitions/ettv.yml",
"Definitions/evolutionpalace.yml",
"Definitions/exoticaz.yml", // migrated to C#
"Definitions/extratorrent-ag.yml",
@@ -380,6 +383,7 @@ namespace Jackett.Updater
"Definitions/kikibt.yml",
"Definitions/korsar.yml",
"Definitions/lapausetorrents.yml",
"Definitions/lat-team.yml", // switch to *-API #8682
"Definitions/latinop2p.yml",
"Definitions/leaguehd.yml", // renamed to lemonhd
"Definitions/lechaudron.yml",
@@ -417,6 +421,7 @@ namespace Jackett.Updater
"Definitions/obscure.yml",
"Definitions/oncesearch.yml",
"Definitions/passionetorrent.yml",
"Definitions/pirateiro.yml",
"Definitions/pleasuredome.yml",
"Definitions/polishtracker.yml",
"Definitions/pornorip.yml",
@@ -425,6 +430,7 @@ namespace Jackett.Updater
"Definitions/qxr.yml",
"Definitions/rapidetracker.yml",
"Definitions/rarbg.yml", // migrated to C#
"Definitions/redbits.yml", // switch to *-API #11540 #8682
"Definitions/redtopia.yml",
"Definitions/reelflix.yml", // switch to *-API #8682
"Definitions/renegade.yml",