Compare commits

...

91 Commits

Author SHA1 Message Date
Garfield69
89dc15ad80 bit-titan: removed. resolves #4896 2022-03-30 17:51:11 +13:00
Garfield69
32128b5c61 magico: new domain, #13094 2022-03-30 06:28:45 +13:00
Garfield69
76644c380b sosulki: fix path 2022-03-29 17:30:26 +13:00
ilike2burnthing
9ec189367e assorted: change nocensor proxies domain *.sbs (#13093) 2022-03-29 02:47:54 +01:00
Garfield69
56c3a0c21b sexxi: removed. resolves #12478 2022-03-28 14:43:11 +13:00
Garfield69
d47f059031 rudub: new layout 2022-03-28 12:31:04 +13:00
ilike2burnthing
5f8c2de953 kinorun: cat can be missing, pt2
a3225049e7 (r69619331)
2022-03-27 04:21:25 +01:00
ilike2burnthing
4963cacc07 torrentsir: change domain *52.com 2022-03-27 04:02:03 +01:00
ilike2burnthing
c95fb103fe xiteme: fix cat id 2022-03-27 03:24:32 +01:00
ilike2burnthing
a3225049e7 kinorun: cat can be missing 2022-03-27 03:06:20 +01:00
ilike2burnthing
3b87b862da lostfilm: update ignored expired certs 2022-03-27 03:03:43 +01:00
Garfield69
655262e76b cinecalidad: new domain 2022-03-27 11:26:50 +13:00
ilike2burnthing
47b6e1594f hidden-palace: change to *.net and unit3d. resolves #13042 2022-03-26 16:36:34 +00:00
Garfield69
d31e084f4f zetorrents: new domain *.bz -> *.nl 2022-03-26 15:45:58 +13:00
Garfield69
a3dfdc6aaf hdmonkey: new date layout 2022-03-26 15:45:35 +13:00
Garfield69
ce11beb6e1 xthor: drop andmatch #13083 2022-03-26 07:32:43 +13:00
Bright-W
4773e3bc4c Abnormal: fix size 0 issue (#13084) 2022-03-25 17:25:52 +13:00
Garfield69
e47d2b1961 torrentmasters: add new cat 2022-03-25 15:28:21 +13:00
Garfield69
319e196341 zooqle: cat can be missing 2022-03-25 15:18:08 +13:00
Garfield69
30fee2b231 torrentqq: bump domain 2022-03-25 15:17:49 +13:00
Garfield69
80d3f4c1a0 xthor: fix path. resolves #13083 2022-03-25 11:47:24 +13:00
Garfield69
aae061e7a9 bitbazis: lint 2022-03-25 07:39:13 +13:00
Garfield69
48ba07f500 add animeitalia an Italian private site. resolves #13082 2022-03-25 07:38:45 +13:00
Garfield69
144957821f dontorrent: new domain *.re -> *.wf 2022-03-24 06:40:59 +13:00
Garfield69
8d468be93a toros: removed. resolves #6497 2022-03-23 18:29:52 +13:00
Gauthier
97e8196edd tasmanit.es: re-Add certificate hash (#13079) 2022-03-23 15:45:52 +13:00
Bright-W
b5f457e06f torrentgalaxy : add imdbid search (#13078) 2022-03-23 15:24:12 +13:00
Garfield69
8b5ef12567 xthor: more fixes for a78a0e94d 2022-03-23 12:59:05 +13:00
Garfield69
674ddc09b8 xthor: more lint a78a0e94d 2022-03-23 09:57:22 +13:00
Garfield69
51d5eee095 xthor: lint a78a0e94d 2022-03-23 09:51:40 +13:00
Garfield69
a78a0e94d5 xthor: C# -> yml
credit: 45a61ab9b1
2022-03-23 09:43:11 +13:00
Garfield69
a4f7c7a826 hdonly: fix cat 2022-03-23 09:17:03 +13:00
Garfield69
c2b2d51875 zamundanet: incldead
credit: 73c9c0cb1e
2022-03-23 09:08:22 +13:00
Garfield69
6f761d1bc4 hidden-palace: add new cat 2022-03-22 16:36:05 +13:00
ilike2burnthing
ed8be733fc Revert "the-devils-lounge: invalid CA resolves #12552"
No longer using Plesk cert
2022-03-21 16:43:16 +00:00
Garfield69
5584438a94 tasmanit: expired CA 2022-03-21 19:40:30 +13:00
Garfield69
b68ba1b338 legacyhd: -> reelflix cleanup 2022-03-21 19:23:48 +13:00
Garfield69
d06272a26a hdcity: expired CA 2022-03-21 19:00:04 +13:00
Garfield69
6015da3e4c the-devils-lounge: invalid CA resolves #12552 2022-03-21 08:55:22 +13:00
Garfield69
4d3e2ba323 teamctgame: add 3x processing
and identify correct nexus version
2022-03-21 07:32:25 +13:00
ilike2burnthing
61578e8412 casatorrent: rename and update. resolves #13071 (#13072) 2022-03-20 17:58:39 +00:00
Garfield69
11ae92c79e divxtotal: new domain *.pm -> *.re 2022-03-20 17:44:14 +13:00
Garfield69
67ee2eb252 bitbazis: new date format 2022-03-20 15:04:32 +13:00
Garfield69
9c7310aa44 rintor: filter in approved torrents only 2022-03-20 14:57:40 +13:00
ilike2burnthing
c19d743010 crackingpatching: minor change to search path
https://crackingpatching.com/?s= returns blank page
2022-03-19 18:03:58 +00:00
ilike2burnthing
4ef9f0b846 torrentwhiz: change domain *40.com 2022-03-19 17:40:05 +00:00
ilike2burnthing
bf08302e1e torrentview: change domain *53.com 2022-03-19 17:39:23 +00:00
ilike2burnthing
22bcbd0032 opensharing: add new cat 2022-03-19 17:19:59 +00:00
Garfield69
eda5ca45dc add skipthetrailers a private movies site. resolves #13066 2022-03-19 21:47:00 +13:00
Garfield69
b6e114f877 ztracker: fix 0 results 2022-03-19 15:29:54 +13:00
Garfield69
a928bf37ac glodls: add alternate domain 2022-03-19 15:10:32 +13:00
Garfield69
ceec867659 hidden-palace: upgrade fmedition v3 resolves #13042 2022-03-19 10:34:26 +13:00
Garfield69
ae27a4e9ce bitbazis: add new cats 2022-03-18 12:43:39 +13:00
Garfield69
9dc3c4a8b4 torrentqq: bump domain 2022-03-18 12:11:10 +13:00
Garfield69
6982841754 newpct: removed. resolves #12998 2022-03-18 06:26:49 +13:00
Garfield69
39d224e676 gimmepeers: refresh cats resolves #9351
add files, grabs, dlvf and ulvf
include dead
2022-03-17 16:50:38 +13:00
Garfield69
3db4168f13 uhd-heaven: removed. resolves #12855 2022-03-17 15:25:21 +13:00
Garfield69
cb7dc73b0e generation-free: upgrade to unit3d API 6.0.4 resolves #5279 2022-03-17 15:17:53 +13:00
Garfield69
1161585df1 torrentmax: removed. resolves #11217 2022-03-17 14:35:07 +13:00
bakerboy448
3fcaf289b5 fenyarnyek-tracker: lint fix (#13056) 2022-03-17 01:08:33 +00:00
Garfield69
c2b92157b6 turktorrent: add new cat 2022-03-17 09:32:33 +13:00
Garfield69
b8c981af5a marinetracker: add new cats 2022-03-17 09:11:23 +13:00
Garfield69
9c62e96190 dontorrent: new domain *.pm -> *.re 2022-03-17 08:57:05 +13:00
Garfield69
d7afabbeed remove baibako #5673 p3 2022-03-16 18:14:08 +13:00
Garfield69
9a8ba604ae add fenyarnyek-tracker a Hungarian semi-private site. resolves #13053 2022-03-16 13:41:14 +13:00
ilike2burnthing
4e53fb2c84 crazyspirits: ignore invalid cert 2022-03-16 00:25:34 +00:00
Garfield69
fed126fac2 bitbazis: new layout 2022-03-16 09:27:58 +13:00
Garfield69
b83c130090 torrentslocal: refresh cats
update login detection
drop books
2022-03-16 07:35:34 +13:00
Garfield69
e9d0f95d63 rutor: add alternate domain 2022-03-15 18:34:36 +13:00
Garfield69
1440b129c9 nyaasi: add proxy 2022-03-15 18:29:29 +13:00
ilike2burnthing
1477c1caae fouducinema: change to private. resolves #13052 2022-03-14 20:21:53 +00:00
Garfield69
99458b2f90 gaytorrentru: new domain 2022-03-14 17:23:32 +13:00
Garfield69
1c34fcdbf0 darktracker: removed. resolves #8154 2022-03-14 14:40:03 +13:00
Garfield69
58e8ed0672 hdhouse: removed. resolves #6287 2022-03-14 14:35:09 +13:00
Garfield69
b7b0ec8885 add houseofdevil a private German site. resolves #13048 2022-03-14 09:04:33 +13:00
Garfield69
e2a711ca15 the-crazy-ones: fix leech detection 2022-03-14 09:04:07 +13:00
ilike2burnthing
4ce2ba5b0d dontorrent: add verdetorrent alt. resolves #13050 2022-03-13 12:10:05 +00:00
Garfield69
73a3dc22b0 mnv: fix config info typo 2022-03-13 19:56:16 +13:00
Garfield69
dfaedc2fbe add the-crazy-ones a German Private site. resolves #13046 2022-03-13 19:55:43 +13:00
ilike2burnthing
b5c060efd1 baibako: change to rudub, pt2. #5673 2022-03-12 17:58:26 +00:00
ilike2burnthing
c707d4d2c2 baibako: change to rudub. resolves #5673 (#13044) 2022-03-12 16:40:19 +00:00
ilike2burnthing
0130783075 Update README.md 2022-03-12 16:09:42 +00:00
Garfield69
cce7c20114 add hidden-palace a private site. resolves #13042 2022-03-12 21:17:30 +13:00
Garfield69
f0f7378ff3 add jme-reunit3d a private German site. resolves #13043 2022-03-12 19:42:45 +13:00
Garfield69
68b54c2c30 Revert "the-devils-lounge: removed. resolves #12552"
This reverts commit 2ee0aa2953.
2022-03-12 19:17:35 +13:00
heroku-miraheze
e0674620fb RuTracker: Change semi-private to private (#13040) 2022-03-12 06:18:51 +13:00
Garfield69
54ad25b902 xwtorrents: touch up cat descriptions 2022-03-11 19:55:18 +13:00
Garfield69
067a88bffb xwtorrents: add new cats 2022-03-11 14:10:01 +13:00
Garfield69
a0ae7144fe torrentqq: bump domain 2022-03-11 13:52:47 +13:00
Kai Yang
de7d2f55af opencd: update cats and details detection. (#13037) 2022-03-11 06:21:41 +13:00
Garfield69
8fb6d4dcc4 lat-team: update cats. resolves #13036 2022-03-11 06:17:18 +13:00
92 changed files with 1923 additions and 3619 deletions

View File

@@ -73,7 +73,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* GkTorrent
* GloDLS
* GTorrent.pro
* HDhouse (HDReactor)
* IBit
* Idope
* Il CorSaRo Blu
@@ -98,7 +97,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* MoviesDVDR
* MovieTorrent
* MyPornClub
* NewPCT (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, tumejortorrent, pctnew, etc)
* NewPCT.me
* Newstudio
* Nipponsei
@@ -129,7 +127,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* RuTor
* RuTracker.RU
* seleZen
* Sexxi
* Sexy-Pics
* ShizaProject
* ShowRSS
@@ -141,7 +138,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Tokyo Tosho
* Torlock
* Torlook
* TOROS
* Torrent Downloads (TD)
* Torrent Oyun indir
* torrent.by
@@ -153,7 +149,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TorrentGalaxy (TGx)
* TorrentKitty
* TorrentMafya
* TorrentMax (토렌트맥스)
* TorrentParadise
* TorrentProject2
* TorrentQQ (토렌트큐큐)
@@ -185,7 +180,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Anime-Free
* AnimeLayer
* ArenaBG
* BaibaKo
* BookTracker
* BootyTape
* Catorrent
@@ -196,6 +190,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* EniaHD
* ExKinoRay
* ExtremlymTorrents
* Fenyarnyek-Tracker
* Fou-Du-Cinema
* Gay-Torrents.net
* Genesis-Movement
@@ -220,6 +215,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* RGFootball
* RiperAM
* RockBox
* RUDUB (ex-BaibaKoTV)
* RuTracker
* Rustorka
* Sharewood
@@ -258,6 +254,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* AmigosShareClub
* anasch.cc
* AnimeBytes (AB)
* AnimeItalia
* AnimeTorrents (AnT) [![(invite needed)][inviteneeded]](#)
* AnimeWorld [![(invite needed)][inviteneeded]](#)
* Anthelion
@@ -277,7 +274,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Bit-Bázis
* Bit-City Reloaded
* BIT-HDTV
* BiT-TiTAN
* BitBR
* Bitded
* Bithorlo (BHO)
@@ -304,7 +300,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Carp-Hunter
* Carpathians
* CartoonChaos (CC)
* CasaTorrent [![(invite needed)][inviteneeded]](#)
* Cathode-Ray.Tube (CRT)
* CCFBits [![(invite needed)][inviteneeded]](#)
* CeskeForum
@@ -326,7 +321,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* DANISH BYTES
* Darius Tracker
* Dark-Shadow
* Dark Tracker
* DataScene (DS)
* DataTalli
* DesiTorrents
@@ -347,7 +341,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Falkon Vision Team
* FANO.IN [![(invite needed)][inviteneeded]](#)
* Fantastic Heaven [![(invite needed)][inviteneeded]](#)
* Fantastiko [![(invite needed)][inviteneeded]](#)
* Fantastiko
* Femdomcult
* FileList (FL)
* Film-Paleis
@@ -399,6 +393,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* HDZone
* Hebits
* HellasTZ
* Hidden-Palace
* House of Devil
* HQSource (HQS)
* Il Corsaro Verde
* Indietorrents [![(invite needed)][inviteneeded]](#)
@@ -407,6 +403,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Immortuos [![(invite needed)][inviteneeded]](#)
* Insane Tracker
* IPTorrents (IPT)
* JME-REUNIT3D
* JPopsuki [![(invite needed)][inviteneeded]](#)
* JPTV
* Karagarga
@@ -511,6 +508,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Shazbat [![(invite needed)][inviteneeded]](#)
* SiamBIT
* SkipTheCommercials
* SkipTheTrailers
* slosoul
* SnowPT (SSPT)
* SoulVoice
@@ -528,11 +526,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Swarmazon
* Tapochek
* Tasmanit [![(invite needed)][inviteneeded]](#)
* Team CT Game (TCTG)
* TeamHD
* TeamOS
* TEKNO3D [![(invite needed)][inviteneeded]](#)
* TellyTorrent
* teracod (Movie Zone)
* The-Crazy-Ones
* The-Devils-Lounge
* The Falling Angels (TFA) [![(invite needed)][inviteneeded]](#)
* The Geeks
* The Horror Charnel (THC)
@@ -583,7 +584,6 @@ 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 [![(invite needed)][inviteneeded]](#)
* UnionGang [![(invite needed)][inviteneeded]](#)
* UnlimitZ
* Vizuk

View File

@@ -14,9 +14,8 @@ links:
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.day/
- https://1337x.nocensor.biz/
- https://1337x.nocensor.sbs/
legacylinks:
- https://1337x.unblocked.rest/
- https://1337x.unblockit.dev/
- https://1337x.unblockit.ltd/
- https://1337x.unblockit.link/
@@ -36,6 +35,7 @@ legacylinks:
- https://1337x.unblockit.tv/
- https://1337x.unblockit.how/
- https://1337x.unblockit.cam/
- https://1337x.nocensor.biz/
caps:
categorymappings:

View File

@@ -0,0 +1,155 @@
---
id: animeitalia
name: AnimeItalia
description: "AnimeItalia is an ITALIAN Private Torrent Tracker for ANIME"
language: it-IT
type: private
encoding: UTF-8
links:
- https://animeitalia.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Film ITA"}
- {id: 2, cat: TV, desc: "Serie TV"}
- {id: 3, cat: Audio, desc: "Musica"}
- {id: 4, cat: Console, desc: "Giochi"}
- {id: 5, cat: PC, desc: "Programmi"}
- {id: 6, cat: TV/Anime, desc: "Anime SUB-ITA"}
- {id: 7, cat: TV/Anime, desc: "Anime ITA"}
- {id: 8, cat: Movies/Other, desc: "Film Anime SUB-ITA"}
- {id: 9, cat: Movies/Other, desc: "Film Anime ITA"}
- {id: 10, cat: Books/Comics, desc: "Manga ITA"}
- {id: 11, cat: Books/Comics, desc: "Manga ENG"}
- {id: 12, cat: Audio, desc: "Anime Music"}
- {id: 13, cat: Other, desc: "Foto Anime"}
- {id: 14, cat: XXX/Other, desc: "Hentai SUB-ITA"}
- {id: 15, cat: XXX/Other, desc: "Hentai ITA"}
- {id: 16, cat: XXX/ImageSet, desc: "Foto Hentai"}
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://animeitalia.org/\" target =_blank>AnimeItalia</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
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
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
minimumratio:
text: 1.0
# json UNIT3D 6.0.4

View File

@@ -7,9 +7,10 @@ type: public
encoding: UTF-8
links:
- https://badasstorrents.com/
- https://badasstorrents.nocensor.biz/
- https://badasstorrents.nocensor.sbs/
legacylinks:
- https://badasstorrents.nocensor.work/
- https://badasstorrents.nocensor.biz/
caps:
categories:

View File

@@ -1,191 +0,0 @@
---
id: bit-titan
name: BiT-TiTAN
description: "BiT-TiTAN is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: de-DE
type: private
encoding: UTF-8
links:
- https://bit-titan.net/
caps:
categorymappings:
- {id: 1010, cat: Movies/UHD, desc: "Movies 2160p"}
- {id: 1020, cat: Movies/HD, desc: "Movies 1080p"}
- {id: 1030, cat: Movies/HD, desc: "Movies 720p"}
- {id: 1040, cat: Movies/HD, desc: "Movies x264"}
- {id: 1050, cat: Movies/HD, desc: "Movies x265"}
- {id: 1060, cat: Movies/SD, desc: "Movies XviD"}
- {id: 1070, cat: Movies/3D, desc: "Movies 3D"}
- {id: 1080, cat: Movies/DVD, desc: "Movies DVD"}
- {id: 1090, cat: Movies/BluRay, desc: "Movies BluRay"}
- {id: 1100, cat: Movies/DVD, desc: "Movies HD2DVD"}
- {id: 1110, cat: Movies/Foreign, desc: "Movies International"}
- {id: 1120, cat: Movies/HD, desc: "Movies HD Packs"}
- {id: 1130, cat: Movies/SD, desc: "Movies SD Packs"}
- {id: 2010, cat: TV/UHD, desc: "TV 2160p"}
- {id: 2020, cat: TV/HD, desc: "TV 1080p"}
- {id: 2030, cat: TV/HD, desc: "TV 720p"}
- {id: 2040, cat: TV/HD, desc: "TV x264"}
- {id: 2050, cat: TV/HD, desc: "TV x265"}
- {id: 2060, cat: TV/SD, desc: "TV XviD"}
- {id: 2070, cat: TV/HD, desc: "TV HD Packs"}
- {id: 2080, cat: TV/SD, desc: "TV SD Packs"}
- {id: 2090, cat: TV/Foreign, desc: "TV International"}
- {id: 3010, cat: TV/Documentary, desc: "Docu 2160p"}
- {id: 3020, cat: TV/Documentary, desc: "Docu 1080p"}
- {id: 3030, cat: TV/Documentary, desc: "Docu 720p"}
- {id: 3040, cat: TV/Documentary, desc: "Docu x264"}
- {id: 3050, cat: TV/Documentary, desc: "Docu x265"}
- {id: 3060, cat: TV/Documentary, desc: "Docu XviD"}
- {id: 3070, cat: TV/Documentary, desc: "Docu HD Packs"}
- {id: 3080, cat: TV/Documentary, desc: "Docu SD Packs"}
- {id: 3090, cat: TV/Documentary, desc: "Docu International"}
- {id: 4010, cat: TV/Sport, desc: "Sport 2160p"}
- {id: 4020, cat: TV/Sport, desc: "Sport 1080p"}
- {id: 4030, cat: TV/Sport, desc: "Sport 720p"}
- {id: 4040, cat: TV/Sport, desc: "Sport SD Sport"}
- {id: 4050, cat: TV/Sport, desc: "Sport HD Packs"}
- {id: 4060, cat: TV/Sport, desc: "Sport SD Packs"}
- {id: 5010, cat: XXX, desc: "XXX 2160p"}
- {id: 5020, cat: XXX, desc: "XXX 1080p"}
- {id: 5030, cat: XXX, desc: "XXX 720p"}
- {id: 5040, cat: XXX, desc: "XXX x264"}
- {id: 5050, cat: XXX, desc: "XXX x265"}
- {id: 5060, cat: XXX, desc: "XXX XviD"}
- {id: 5070, cat: XXX, desc: "XXX HD Packs"}
- {id: 5080, cat: XXX, desc: "XXX SD Packs"}
- {id: 5090, cat: XXX, desc: "XXX Sonstiges"}
- {id: 6010, cat: PC/Games, desc: "Games Windows"}
- {id: 6020, cat: Console, desc: "Games Linux"}
- {id: 6030, cat: PC/Mac, desc: "Games MacOS"}
- {id: 6040, cat: PC/Mobile-Android, desc: "Games Android"}
- {id: 6050, cat: Console/XBox, desc: "Games Xbox"}
- {id: 6060, cat: Console/PSP, desc: "Games PlayStation"}
- {id: 6070, cat: Console/NDS, desc: "Games Nintendo"}
- {id: 6080, cat: Console, desc: "Games Sonstige"}
- {id: 7010, cat: PC/0day, desc: "Software Windows"}
- {id: 7020, cat: PC, desc: "Software Linux"}
- {id: 7030, cat: PC/Mac, desc: "Software MacOS"}
- {id: 7040, cat: PC/Mobile-Android, desc: "Software Android"}
- {id: 8010, cat: Audio/MP3, desc: "Music MP3-Album"}
- {id: 8020, cat: Audio/MP3, desc: "Music MP3-Charts"}
- {id: 8030, cat: Audio/MP3, desc: "Music MP3-Sampler"}
- {id: 8040, cat: Audio/MP3, desc: "Music MP3-Single"}
- {id: 8050, cat: Audio/Lossless, desc: "Music FLAC-Album"}
- {id: 8060, cat: Audio/Lossless, desc: "Music FLAC-Charts"}
- {id: 8070, cat: Audio/Lossless, desc: "Music FLAC-Sampler"}
- {id: 8080, cat: Audio/Lossless, desc: "Music FLAC-Single"}
- {id: 8090, cat: Audio/Video, desc: "Music Video"}
- {id: 9010, cat: Audio/Audiobook, desc: "Books A-Book"}
- {id: 9020, cat: Books/EBook, desc: "Books E-Book"}
- {id: 9030, cat: Books, desc: "Books E-Paper"}
- {id: 9040, cat: Books, desc: "Books E-Learning"}
- {id: 9060, cat: TV/Anime, desc: "Anime HD"}
- {id: 9070, cat: TV/Anime, desc: "Anime SD"}
- {id: 9080, cat: TV/Anime, desc: "Anime Pack"}
- {id: 9999, cat: Other, desc: "unsort"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
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 key <a href=\"https://bit-titan.net/api_cp.php\" target =_blank>here</a>."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort type requested from site
default: 1
options:
1: created
2: seeders
5: size
9: title
- name: type
type: select
label: Order direction requested from site
default: 1
options:
1: desc
2: asc
search:
paths:
- path: api.php
response:
type: json
inputs:
apiKey: "{{ .Config.apikey }}"
categories: "{{ if .Categories }}{{ join .Categories \",\" }}{{ else }}0{{ end }}"
search: "{{ .Keywords }}"
# searchIn: 0 all, 1 active, 2 dead, 3 highlights, 4 uploads, 5 BOT uploads, 6 onlyupload, 7 multiplier, 8 %download, 9 freeleech
searchIn: "{{ if .Config.freeleech }}9{{ else }}0{{ end }}"
# 1 25, 2 50, 3 75, 4 100
limit: 2
page: 1
# 1 JSON, 2 XML, 3 HTML
response: 1
# 0 NO, 1 YES
downloadLink: 1
# 1 = Sat, 28 Nov 2020 23:29:38 +0100 (DEFAULT VALUE) , 2 = 1606606178 (UNIX TIMESTAMP) , 3 = 28.11.2020 23:29.38 (German Timestamp) , 4 = 2020-11-28 23:29:38 (Default Datetime)
timeFormat: 2
# 1 bytes, 2 units
sizeFormat: 1
# 0 NO, 1 YES
categoryName: 0
orderBy: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
rows:
selector: results
count:
selector: filesFound
fields:
id:
selector: id
category:
selector: category
title:
selector: name
details:
text: "details.php?id={{ .Result.id }}"
download:
selector: download
poster:
selector: poster
seeders:
selector: seeds
leechers:
selector: leechers
grabs:
selector: snatchers
date:
# unix
selector: added
size:
selector: size
downloadvolumefactor:
selector: downloadFactor
uploadvolumefactor:
selector: uploadFactor
minimumratio:
text: 1.0
minimumseedtime:
# 2 day (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json engine v.2.011.022

View File

@@ -4,7 +4,6 @@ name: Bit-Bázis
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
language: hu-HU
type: private
# encoding: ISO-8859-2
encoding: UTF-8
links:
- https://bitbazis.net/
@@ -19,9 +18,10 @@ caps:
- {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: 94, cat: Movies/HD, desc: "Film/FHD/Hun"}
- {id: 95, cat: Movies/HD, desc: "Film/FHD/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: 58, cat: TV, desc: "Sorozat/Eng"}
- {id: 69, cat: TV/Anime, desc: "Mese/SD"}
@@ -36,12 +36,13 @@ caps:
- {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: 64, cat: Movies, desc: "Film/Pack"}
- {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: 67, cat: PC/Mobile-Android, desc: "Program/Android"}
- {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"}
@@ -129,28 +130,19 @@ search:
size:
selector: td:nth-child(6)
date:
# 2021-11-09 16:51:24
# 2022<br>03/15.
selector: td:nth-child(7)
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "06/01/02 -07:00"
args: "200601/02. -07:00"
grabs:
selector: td:nth-child(5)
filters:
- name: regexp
args: "D:(\\d+)"
seeders:
selector: td:nth-child(3)
filters:
- name: regexp
args: "S:(\\d+)"
leechers:
selector: td:nth-child(4)
filters:
- name: regexp
args: "L:(\\d+)"
downloadvolumefactor:
case:
"i:contains(\"(Free)\")": 0

View File

@@ -7,6 +7,8 @@ type: public
encoding: UTF-8
links:
- https://bitsearch.to/
- https://bitsearch.nocensor.sbs/
legacylinks:
- https://bitsearch.nocensor.biz/
caps:

View File

@@ -1,213 +0,0 @@
---
id: casatorrent
name: Casa-Torrent
description: "Casa-Torrent is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://tctg.in/
legacylinks:
- https://teamctgame.co/
- http://teamctgame.xyz/
- https://teamctgame.xyz/
caps:
categorymappings:
- {id: 65, cat: Movies/HD, desc: "BD: BD"}
- {id: 68, cat: Books/Mags, desc: "Ebooks: Presse"}
- {id: 90, cat: Audio/Audiobook, desc: "Ebooks: Audio books"}
- {id: 56, cat: Books/EBook, desc: "Ebooks: Ebooks"}
- {id: 95, cat: Books/Comics, desc: "Ebooks: Mangas"}
- {id: 84, cat: XXX, desc: "Ebooks: XXX"}
- {id: 54, cat: Movies/3D, desc: "Films: 3D"}
- {id: 53, cat: Movies/HD, desc: "Films: 4K"}
- {id: 77, cat: Movies/UHD, desc: "Films: 4K-HDR"}
- {id: 82, cat: Movies/UHD, desc: "Films: 4K-light"}
- {id: 50, cat: Movies/UHD, desc: "Films: 4K-Remux"}
- {id: 61, cat: Movies, desc: "Films: Animation"}
- {id: 48, cat: Movies/BluRay, desc: "Films: BDRip / BRRip"}
- {id: 78, cat: Movies/DVD, desc: "Films: DVD-R"}
- {id: 47, cat: Movies/DVD, desc: "Films: DVDRip"}
- {id: 71, cat: Movies/BluRay, desc: "Films: Full Bluray"}
- {id: 63, cat: Movies/HD, desc: "Films: HD TV"}
- {id: 52, cat: Movies/HD, desc: "Films: HD.1080p"}
- {id: 51, cat: Movies/HD, desc: "Films: HD.720p"}
- {id: 80, cat: Movies/HD, desc: "Films: HDLiGHT / M-HD"}
- {id: 87, cat: Movies/HD, desc: "Films: HDRiP"}
- {id: 60, cat: Movies, desc: "Films: Pack"}
- {id: 96, cat: Movies, desc: "Films: Remux"}
- {id: 75, cat: TV, desc: "Films: TVRiP"}
- {id: 98, cat: Movies, desc: "Films: VFSTFR"}
- {id: 89, cat: Movies, desc: "Films: VO"}
- {id: 55, cat: Movies, desc: "Films: VOSTFR"}
- {id: 58, cat: Movies/WEB-DL, desc: "Films: Web - DL"}
- {id: 57, cat: Movies/WEB-DL, desc: "Films: WebRip"}
- {id: 72, cat: Movies/HD, desc: "Films: x265"}
- {id: 1, cat: XXX, desc: "Films: XXX"}
- {id: 97, cat: Console, desc: "Jeux : Android"}
- {id: 81, cat: Console, desc: "Jeux : Consoles"}
- {id: 66, cat: PC/Games, desc: "Jeux: PC"}
- {id: 62, cat: PC/0day, desc: "Logiciels: Windows"}
- {id: 99, cat: Other, desc: "Logiciels: Graph / Wallpaper"}
- {id: 94, cat: TV/HD, desc: "Series: 4K HDR"}
- {id: 93, cat: TV/Anime, desc: "Series: Animés"}
- {id: 86, cat: TV/HD, desc: "Series: Episode HD"}
- {id: 101, cat: TV/HD, desc: "Series: Episode HD Vostfr"}
- {id: 85, cat: TV/SD, desc: "Series: Episode SD"}
- {id: 102, cat: TV/SD, desc: "Series: Episode SD Vostfr"}
- {id: 100, cat: TV/HD, desc: "Series: Tv - Pack HD"}
- {id: 103, cat: TV/HD, desc: "Series: Tv - Pack HD Vostfr"}
- {id: 59, cat: TV/SD, desc: "Series: Tv - Pack SD"}
- {id: 104, cat: TV/SD, desc: "Series: Tv - Pack SD Vostfr"}
- {id: 88, cat: TV, desc: "Spectacles: Tous"}
- {id: 83, cat: TV, desc: "TV: Emissions"}
- {id: 73, cat: TV/Documentary, desc: "TV: Documentaires"}
- {id: 74, cat: TV/Sport, desc: "TV: Sports"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-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: multilang
type: checkbox
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTI by this language
default: FRENCH
options:
FRENCH: FRENCH
MULTI.FRENCH: MULTI.FRENCH
ENGLISH: ENGLISH
MULTI.ENGLISH: MULTI.ENGLISH
VOSTFR: VOSTFR
MULTI.VOSTFR: MULTI.VOSTFR
- name: vostfr
type: checkbox
label: Replace VOSTFR with ENGLISH
default: false
- name: sort
type: select
label: Sort requested from site
default: id
options:
id: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: account-login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: p#msgError
test:
path: torrents-search.php
selector: a[href="account-logout.php"]
search:
paths:
- path: torrents-search.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
lang: 0
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: table.ttable_headinner > tbody > tr.t-row
fields:
category:
selector: a[href^="torrents.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_phase1:
selector: a[href^="torrents-details.php?id="] b
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
title_phase2:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
- name: re_replace
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
title:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: a[href^="torrents-details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[src*="/uploads/images/"]
attribute: src
grabs:
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "Snatched: </b>(\\d+)<br"
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
date:
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "le: </b>(.*?)<br"
- name: append
args: " +01:00" # CET
- name: dateparse
args: "02-01-2006 -07:00"
downloadvolumefactor:
case:
img[src="images/free.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -55,7 +55,7 @@ download:
search:
paths:
- path: "?s={{ .Keywords }}"
- path: "?s={{ .Keywords }}&"
rows:
selector: article.post-entry

View File

@@ -7,6 +7,8 @@ type: private
encoding: UTF-8
links:
- https://www.crazyspirits.com/
certificates:
- cb68471b631304b3b4cec6315cfbad5a6780eb84 # self-signed 13 Mar 2022
caps:
categorymappings:

View File

@@ -1,800 +0,0 @@
---
id: darktracker
name: Dark Tracker
description: "Dark Tracker is a RUSSIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
language: ru-RU
type: semi-private
encoding: UTF-8
links:
- https://darkos.club/
- https://dark-os.com/
caps:
categorymappings:
- {id: 511, cat: Movies/HD, desc: "Форум HD Video/RIP"}
# 3D
- {id: 801, cat: Movies/3D, desc: " | Фильмы в формате 3D"}
- {id: 802, cat: Movies/3D, desc: " | Мультфильмы в формате 3D"}
- {id: 803, cat: Movies/3D, desc: " | Музыкальные клипы и концерты в формате 3D"}
- {id: 800, cat: Movies/3D, desc: "Релизы Blu-ray disc 3D (iso)"}
- {id: 815, cat: Movies/3D, desc: " | Фильмы в формате 3D (iso)"}
- {id: 814, cat: Movies/3D, desc: " | Мультфильмы в формате 3D (iso)"}
- {id: 813, cat: Movies/3D, desc: " | Музыкальные клипы и концерты в формате 3D (iso)"}
- {id: 1046, cat: Movies/3D, desc: "Архив"}
# Кино, Видео и ТВ
# Cinema, Video and TV
- {id: 1055, cat: Movies, desc: "Новинки проката"}
- {id: 1058, cat: Movies, desc: " | Портал для новинок"}
- {id: 1056, cat: Movies/SD, desc: " | Новинки (CamRip|TS)"}
- {id: 1057, cat: Movies/WEB-DL, desc: " | Новинки (HD|DVD|BD|WEB|TV|SAT|PDTV|-Rip)"}
- {id: 1059, cat: Movies, desc: " | Новинки (BD|HDTV|DVD)"}
- {id: 57, cat: Movies, desc: "Зарубежные фильмы"}
- {id: 1021, cat: Movies, desc: " | Фильмы 2011-2020"}
- {id: 63, cat: Movies, desc: " | Фильмы 2001-2010"}
- {id: 60, cat: Movies, desc: " | Фильмы до 2000 года"}
- {id: 1114, cat: Movies/HD, desc: " | Зарубежное кино (HD Video)"}
- {id: 65, cat: Movies, desc: " | Антология зарубежного кино"}
- {id: 515, cat: Movies, desc: " | Зарубежные Фильмы для детей"}
- {id: 85, cat: Movies, desc: "Отечественные фильмы"}
- {id: 90, cat: Movies, desc: " | Фильмы 2011-2020"}
- {id: 89, cat: Movies, desc: " | Фильмы 2001-2010"}
- {id: 88, cat: Movies, desc: " | Фильмы до 2000 года"}
- {id: 1115, cat: Movies/HD, desc: " | Отечественное кино (HD Video)"}
- {id: 516, cat: Movies, desc: " | Отечественные Фильмы для детей"}
- {id: 378, cat: TV, desc: "Сериалы"}
- {id: 281, cat: TV, desc: " | Отечественные cериалы"}
- {id: 277, cat: TV, desc: " | Зарубежные сериалы"}
- {id: 377, cat: TV, desc: "Мультфильмы"}
- {id: 106, cat: TV, desc: " | Отечественные мультфильмы"}
- {id: 108, cat: TV, desc: " | Иностранные мультфильмы"}
- {id: 280, cat: TV, desc: " | Мультсериалы"}
- {id: 92, cat: TV, desc: "DVD и HD Video"}
- {id: 99, cat: Movies, desc: " | Зарубежное кино"}
- {id: 97, cat: Movies, desc: " | Наше кино"}
- {id: 100, cat: TV, desc: " | Мультфильмы"}
- {id: 98, cat: Audio/Video, desc: " | Музыкальные клипы и концерты"}
- {id: 95, cat: TV, desc: " | Антология"}
- {id: 788, cat: TV/Documentary, desc: "Документальные фильмы и телепередачи"}
- {id: 1024, cat: TV/Documentary, desc: " | National Geographic"}
- {id: 1023, cat: TV/Documentary, desc: " | Discovery"}
- {id: 1022, cat: TV/Documentary, desc: " | Animal Planet"}
- {id: 790, cat: TV/Documentary, desc: " | BBC"}
- {id: 789, cat: TV/Documentary, desc: " | Среда Обитания"}
- {id: 70, cat: TV, desc: "Развлекательные телепередачи, юмор"}
- {id: 742, cat: TV, desc: " | Развлекательные телепередачи и шоу, приколы и юмор"}
- {id: 475, cat: TV/Anime, desc: "Аниме"}
- {id: 485, cat: TV/Anime, desc: " | Правила и FAQ"}
- {id: 484, cat: TV/Anime, desc: " | Аниме основной подраздел"}
- {id: 477, cat: TV/Anime, desc: " | Dorama и live-action"}
- {id: 483, cat: TV/Anime, desc: " | OST"}
- {id: 482, cat: TV/Anime, desc: " | Манга"}
- {id: 481, cat: TV/Anime, desc: " | Клипы"}
- {id: 480, cat: TV/Anime, desc: " | Фэндом"}
- {id: 478, cat: TV/Anime, desc: " | Полнометражные"}
- {id: 479, cat: TV/Anime, desc: " | Онгоинги"}
- {id: 827, cat: Other, desc: "Обучающее видео"}
- {id: 456, cat: Other, desc: "Мобильное видео"}
- {id: 101, cat: Other, desc: "Дополнительные материалы к фильмам"}
- {id: 1017, cat: Other, desc: " | Трейлеры"}
- {id: 270, cat: Other, desc: "Архив"}
# Игры для PC
# PC Games
- {id: 25, cat: PC/Games, desc: "Горячие новинки"}
- {id: 829, cat: PC/Games, desc: " | Пиратки"}
- {id: 707, cat: PC/Games, desc: " | Лицензии"}
- {id: 706, cat: PC/Games, desc: " | RePack"}
- {id: 708, cat: PC/Games, desc: "Demo/Beta версии Игр"}
- {id: 709, cat: PC/Games, desc: "Аркады"}
- {id: 711, cat: PC/Games, desc: " | Аркады (разное)"}
- {id: 710, cat: PC/Games, desc: " | Настольные и карточные аркады"}
- {id: 712, cat: PC/Games, desc: "Приключения и квесты"}
- {id: 713, cat: PC/Games, desc: "Стратегии"}
- {id: 716, cat: PC/Games, desc: " | TBS (пошаговые стратегии)"}
- {id: 715, cat: PC/Games, desc: " | RTS (стратегии в реальном времени)"}
- {id: 714, cat: PC/Games, desc: " | Экономические стратегии"}
- {id: 717, cat: PC/Games, desc: "Симуляторы"}
- {id: 721, cat: PC/Games, desc: " | Спортивные симуляторы"}
- {id: 720, cat: PC/Games, desc: " | Космические и Авиа симуляторы"}
- {id: 719, cat: PC/Games, desc: " | Гоночные симуляторы"}
- {id: 718, cat: PC/Games, desc: " | Прочие симуляторы"}
- {id: 722, cat: PC/Games, desc: "Action"}
- {id: 724, cat: PC/Games, desc: " | FPS (1st Person)"}
- {id: 723, cat: PC/Games, desc: " | TPS (3rd Person)"}
- {id: 725, cat: PC/Games, desc: "RPG"}
- {id: 726, cat: PC/Games, desc: "Эротические игры"}
- {id: 727, cat: PC/Games, desc: "Многопользовательские игры"}
- {id: 728, cat: PC/Games, desc: " | MMORPG"}
- {id: 729, cat: PC/Games, desc: "Для самых маленьких"}
- {id: 793, cat: PC/Games, desc: "Аниме-игры"}
- {id: 730, cat: PC/Games, desc: "Старые игры для PC"}
- {id: 458, cat: PC/Games, desc: "Игры для Apple"}
- {id: 508, cat: PC/Games, desc: "Игры для Linux"}
- {id: 731, cat: PC/Games, desc: "Прочее"}
- {id: 830, cat: PC/Games, desc: " | Дополнения"}
- {id: 737, cat: PC/Games, desc: " | Таблетки"}
- {id: 736, cat: PC/Games, desc: " | Моды"}
- {id: 735, cat: PC/Games, desc: " | Русификаторы"}
- {id: 734, cat: PC/Games, desc: " | Патчи"}
- {id: 733, cat: PC/Games, desc: " | Бонусные диски / Комплекты предзаказов"}
- {id: 738, cat: PC/Games, desc: "Игровое видео"}
- {id: 740, cat: PC/Games, desc: " | Трейлеры/Геймплей видео"}
- {id: 739, cat: PC/Games, desc: " | Видео прохождения игр"}
- {id: 269, cat: PC/Games, desc: "Архив"}
# Консоли
# Console
- {id: 679, cat: Console/XBox, desc: "XBox"}
- {id: 684, cat: Console/XBox, desc: " | XBox360 | Игры"}
- {id: 683, cat: Console/XBox, desc: " | XBox360 | Демоверсии"}
- {id: 682, cat: Console/XBox, desc: " | Xbox360 | Live"}
- {id: 681, cat: Console/XBox, desc: " | XBox360 | Программы / Прошивки"}
- {id: 680, cat: Console/XBox, desc: " | XBox | Игры"}
- {id: 685, cat: Console/PS3, desc: "PlayStation"}
- {id: 694, cat: Console/PS3, desc: " | Playstation 3 | Игры"}
- {id: 693, cat: Console/PS3, desc: " | Playstation 3 | PSN Игры"}
- {id: 692, cat: Console/PS3, desc: " | Playstation 3 | Разное"}
- {id: 691, cat: Console/PS3, desc: " | PlayStation 2 | Игры"}
- {id: 690, cat: Console/PS3, desc: " | PlayStation 2 | Разное"}
- {id: 689, cat: Console/PS3, desc: " | PlayStation 1 | Игры"}
- {id: 688, cat: Console/PSP, desc: " | PSP | Игры"}
- {id: 687, cat: Console/PSP, desc: " | PSP | Программы / Прошивки"}
- {id: 686, cat: Console/PSP, desc: " | PSX-PSP"}
- {id: 695, cat: Console/NDS, desc: "Nintendo"}
- {id: 699, cat: Console/NDS, desc: " | Nintendo DS | Игры"}
- {id: 698, cat: Console, desc: " | GameCube | Игры"}
- {id: 697, cat: Console/Wii, desc: " | Wii | Игры"}
- {id: 696, cat: Console, desc: " | Nintendo | Разное"}
- {id: 700, cat: Console, desc: "Sega"}
- {id: 792, cat: Console, desc: "Архив"}
# Музыка
# Music
- {id: 537, cat: Audio/MP3, desc: "Russian (MP3)"}
- {id: 538, cat: Audio/MP3, desc: " | Pop"}
- {id: 539, cat: Audio/MP3, desc: " | Rock"}
- {id: 540, cat: Audio/MP3, desc: " | Metal"}
- {id: 545, cat: Audio/MP3, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 544, cat: Audio/MP3, desc: " | Electronic"}
- {id: 543, cat: Audio/MP3, desc: " | Шансон"}
- {id: 542, cat: Audio/MP3, desc: " | Авторская песня"}
- {id: 541, cat: Audio/MP3, desc: " | Музыка других жанров"}
- {id: 546, cat: Audio/MP3, desc: "World Pop (MP3)"}
- {id: 547, cat: Audio/MP3, desc: " | World Pop"}
- {id: 551, cat: Audio/MP3, desc: " | Latin Pop"}
- {id: 550, cat: Audio/MP3, desc: " | Dance"}
- {id: 549, cat: Audio/MP3, desc: " | Asian Pop"}
- {id: 548, cat: Audio/MP3, desc: " | 50 / 50"}
- {id: 552, cat: Audio/MP3, desc: "Rock (MP3)"}
- {id: 557, cat: Audio/MP3, desc: " | Rock"}
- {id: 556, cat: Audio/MP3, desc: " | Metal"}
- {id: 555, cat: Audio/MP3, desc: " | Alternative"}
- {id: 554, cat: Audio/MP3, desc: " | Punk Rock"}
- {id: 553, cat: Audio/MP3, desc: " | Rock 'n' Rol"}
- {id: 558, cat: Audio/MP3, desc: "Hip-Hop (MP3)"}
- {id: 561, cat: Audio/MP3, desc: " | Rap"}
- {id: 560, cat: Audio/MP3, desc: " | R&B"}
- {id: 559, cat: Audio/MP3, desc: " | Funk, Soul"}
- {id: 562, cat: Audio/MP3, desc: "Electronic (MP3)"}
- {id: 570, cat: Audio/MP3, desc: " | Trance, Goa Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 569, cat: Audio/MP3, desc: " | Drum & Bass, Jungle, Breakbeat, Dubstep, IDM"}
- {id: 568, cat: Audio/MP3, desc: " | House, Techno/MP3, Hardcore, Hardstyle, Jumpstyle"}
- {id: 567, cat: Audio/MP3, desc: " | Lo-Fi, Chillout, Lounge, Downtempo/MP3, Trip-Hop, Nu Jazz"}
- {id: 566, cat: Audio/MP3, desc: " | Radioshows, Podcasts, Live Sets, Mixes"}
- {id: 565, cat: Audio/MP3, desc: " | Traditional Electronic, Ambient, Experimental"}
- {id: 564, cat: Audio/MP3, desc: " | Industrial, Noise, EBM, Dark Electro/MP3, New Wave,..."}
- {id: 563, cat: Audio/MP3, desc: " | Newage, Relax"}
- {id: 571, cat: Audio/MP3, desc: "Classical (MP3)"}
- {id: 574, cat: Audio/MP3, desc: " | Instrumental"}
- {id: 573, cat: Audio/MP3, desc: " | Orchestral"}
- {id: 572, cat: Audio/MP3, desc: " | Vocal"}
- {id: 575, cat: Audio/MP3, desc: "Jazz & Blues & Country (MP3)"}
- {id: 577, cat: Audio/MP3, desc: " | Blues"}
- {id: 578, cat: Audio/MP3, desc: " | Jazz"}
- {id: 579, cat: Audio/MP3, desc: " | Swing"}
- {id: 580, cat: Audio/MP3, desc: "Reggae, Latin, Ethnik (MP3)"}
- {id: 581, cat: Audio/MP3, desc: " | Reggae"}
- {id: 576, cat: Audio/MP3, desc: " | Country"}
- {id: 582, cat: Audio/MP3, desc: " | Latin"}
- {id: 583, cat: Audio/MP3, desc: " | Ethnic"}
- {id: 584, cat: Audio/MP3, desc: "Soundtracks (MP3)"}
- {id: 587, cat: Audio/MP3, desc: " | Games"}
- {id: 586, cat: Audio/MP3, desc: " | Anime"}
- {id: 585, cat: Audio/MP3, desc: " | Movies"}
- {id: 588, cat: Audio/MP3, desc: "Discographies (MP3)"}
- {id: 598, cat: Audio/MP3, desc: " | Russian Pop"}
- {id: 597, cat: Audio/MP3, desc: " | World Pop"}
- {id: 596, cat: Audio/MP3, desc: " | Rock"}
- {id: 595, cat: Audio/MP3, desc: " | Russian Rock"}
- {id: 594, cat: Audio/MP3, desc: " | Russian Metal"}
- {id: 593, cat: Audio/MP3, desc: " | Metal"}
- {id: 591, cat: Audio/MP3, desc: " | Electronic"}
- {id: 592, cat: Audio/MP3, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 590, cat: Audio/MP3, desc: " | World Music from other genres"}
- {id: 589, cat: Audio/MP3, desc: " | Музыка других жанров"}
- {id: 599, cat: Audio/Lossless, desc: "Russian (LOSSLESS)"}
- {id: 607, cat: Audio/Lossless, desc: " | Pop"}
- {id: 606, cat: Audio/Lossless, desc: " | Rock"}
- {id: 605, cat: Audio/Lossless, desc: " | Metal"}
- {id: 604, cat: Audio/Lossless, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 603, cat: Audio/Lossless, desc: " | Electronic"}
- {id: 602, cat: Audio/Lossless, desc: " | Шансон"}
- {id: 601, cat: Audio/Lossless, desc: " | Авторская песня"}
- {id: 600, cat: Audio/Lossless, desc: " | Музыка других жанров"}
- {id: 608, cat: Audio/Lossless, desc: "World Pop (LOSSLESS)"}
- {id: 613, cat: Audio/Lossless, desc: " | World Pop"}
- {id: 612, cat: Audio/Lossless, desc: " | Latin Pop"}
- {id: 611, cat: Audio/Lossless, desc: " | Dance"}
- {id: 610, cat: Audio/Lossless, desc: " | Asian Pop"}
- {id: 609, cat: Audio/Lossless, desc: " | 50 / 50"}
- {id: 614, cat: Audio/Lossless, desc: "Rock (LOSSLESS)"}
- {id: 619, cat: Audio/Lossless, desc: " | Rock"}
- {id: 618, cat: Audio/Lossless, desc: " | Metal"}
- {id: 617, cat: Audio/Lossless, desc: " | Alternative"}
- {id: 616, cat: Audio/Lossless, desc: " | Punk Rock"}
- {id: 615, cat: Audio/Lossless, desc: " | Rock 'n' Rol"}
- {id: 620, cat: Audio/Lossless, desc: "Hip-Hop (LOSSLESS)"}
- {id: 623, cat: Audio/Lossless, desc: " | Rap"}
- {id: 622, cat: Audio/Lossless, desc: " | R&B"}
- {id: 621, cat: Audio/Lossless, desc: " | Funk, Soul"}
- {id: 624, cat: Audio/Lossless, desc: "Electronic (LOSSLESS)"}
- {id: 632, cat: Audio/Lossless, desc: " | Trance, Goa Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 631, cat: Audio/Lossless, desc: " | Drum & Bass, Jungle, Breakbeat, Dubstep, IDM"}
- {id: 630, cat: Audio/Lossless, desc: " | House, Techno/Lossless, Hardcore, Hardstyle, Jumpstyle"}
- {id: 629, cat: Audio/Lossless, desc: " | Lo-Fi, Chillout, Lounge, Downtempo/Lossless, Trip-Hop, Nu Jazz"}
- {id: 628, cat: Audio/Lossless, desc: " | Radioshows, Podcasts, Live Sets, Mixes"}
- {id: 627, cat: Audio/Lossless, desc: " | Traditional Electronic, Ambient, Experimental"}
- {id: 626, cat: Audio/Lossless, desc: " | Industrial, Noise, EBM, Dark Electro/Lossless, Aggrotech,..."}
- {id: 625, cat: Audio/Lossless, desc: " | Newage, Relax"}
- {id: 633, cat: Audio/Lossless, desc: "Classical (LOSSLESS)"}
- {id: 636, cat: Audio/Lossless, desc: " | Instrumental"}
- {id: 635, cat: Audio/Lossless, desc: " | Orchestral"}
- {id: 634, cat: Audio/Lossless, desc: " | Vocal"}
- {id: 637, cat: Audio/Lossless, desc: "Jazz & Blues & Country (LOSSLESS)"}
- {id: 641, cat: Audio/Lossless, desc: " | Swing"}
- {id: 640, cat: Audio/Lossless, desc: " | Jazz"}
- {id: 639, cat: Audio/Lossless, desc: " | Blues"}
- {id: 638, cat: Audio/Lossless, desc: " | Country"}
- {id: 642, cat: Audio/Lossless, desc: "Reggae, Latin, Ethnik (LOSSLESS)"}
- {id: 645, cat: Audio/Lossless, desc: " | Ethnic"}
- {id: 644, cat: Audio/Lossless, desc: " | Latin"}
- {id: 643, cat: Audio/Lossless, desc: " | Reggae"}
- {id: 646, cat: Audio/Lossless, desc: "Soundtracks (LOSSLESS)"}
- {id: 649, cat: Audio/Lossless, desc: " | Games"}
- {id: 648, cat: Audio/Lossless, desc: " | Anime"}
- {id: 647, cat: Audio/Lossless, desc: " | Movies"}
- {id: 650, cat: Audio/Lossless, desc: "Discographies (LOSSLESS)"}
- {id: 660, cat: Audio/Lossless, desc: " | Russian Pop"}
- {id: 659, cat: Audio/Lossless, desc: " | World Pop"}
- {id: 658, cat: Audio/Lossless, desc: " | Rock"}
- {id: 656, cat: Audio/Lossless, desc: " | Russian Metal"}
- {id: 655, cat: Audio/Lossless, desc: " | Metal"}
- {id: 657, cat: Audio/Lossless, desc: " | Russian Rock"}
- {id: 654, cat: Audio/Lossless, desc: " | Rap, Hip-Hop, R'n'B"}
- {id: 653, cat: Audio/Lossless, desc: " | Electronic"}
- {id: 652, cat: Audio/Lossless, desc: " | World Music from other genres"}
- {id: 651, cat: Audio/Lossless, desc: " | Музыка других жанров"}
- {id: 826, cat: Audio/Lossless, desc: "Music from other genres (LOSSLESS)"}
- {id: 447, cat: Audio/Lossless, desc: "Multichannel Music"}
- {id: 663, cat: Audio, desc: " | DVD-Audio, SACD, Audio-DVD"}
- {id: 662, cat: Audio, desc: " | DTS"}
- {id: 661, cat: Audio, desc: " | Vinyl-Rip и Hand-Made"}
- {id: 449, cat: Audio, desc: " | Зарубежная"}
- {id: 448, cat: Audio, desc: " | Отечественная"}
- {id: 445, cat: Audio, desc: "Concert Recording & Musical films (Documentary)"}
- {id: 674, cat: Audio, desc: " | New Concert Recording"}
- {id: 673, cat: Audio, desc: " | Rock"}
- {id: 672, cat: Audio, desc: " | Metal"}
- {id: 671, cat: Audio, desc: " | World Pop"}
- {id: 670, cat: Audio, desc: " | Музыка других жанров"}
- {id: 664, cat: Audio/Video, desc: "Clips"}
- {id: 669, cat: Audio/Video, desc: " | New Clips"}
- {id: 668, cat: Audio/Video, desc: " | Rock"}
- {id: 667, cat: Audio/Video, desc: " | Metal"}
- {id: 666, cat: Audio/Video, desc: " | World Pop"}
- {id: 665, cat: Audio/Video, desc: " | Музыка других жанров"}
- {id: 455, cat: Audio, desc: "Apple Lossless"}
- {id: 446, cat: Audio, desc: "Karaoke"}
- {id: 272, cat: Audio, desc: "Архив"}
# Спорт
# Sport
- {id: 495, cat: TV/Sport, desc: "Футбол"}
- {id: 755, cat: TV/Sport, desc: " | Чемпионат России"}
- {id: 754, cat: TV/Sport, desc: " | Чемпионат Украины"}
- {id: 753, cat: TV/Sport, desc: " | Чемпионат Испании"}
- {id: 752, cat: TV/Sport, desc: " | Чемпионат Англии"}
- {id: 751, cat: TV/Sport, desc: " | Чемпионат Италии"}
- {id: 750, cat: TV/Sport, desc: " | Чемпионат Германии"}
- {id: 749, cat: TV/Sport, desc: " | Чемпионат Франции"}
- {id: 748, cat: TV/Sport, desc: " | Другие чемпионаты"}
- {id: 505, cat: TV/Sport, desc: " | Лига Чемпионов"}
- {id: 747, cat: TV/Sport, desc: " | Лига Европы"}
- {id: 497, cat: TV/Sport, desc: " | Чемпионат мира"}
- {id: 498, cat: TV/Sport, desc: " | Чемпионат Европы"}
- {id: 496, cat: TV/Sport, desc: " | Международные матчи"}
- {id: 513, cat: TV/Sport, desc: " | Товарищеские матчи"}
- {id: 746, cat: TV/Sport, desc: " | Пляжный футбол"}
- {id: 745, cat: TV/Sport, desc: " | Мини-футбол"}
- {id: 499, cat: TV/Sport, desc: " | Обзорные и аналитические передачи"}
- {id: 744, cat: TV/Sport, desc: " | Футбольное видео, прочее о футболе"}
- {id: 500, cat: TV/Sport, desc: "Хоккей"}
- {id: 760, cat: TV/Sport, desc: " | КХЛ"}
- {id: 759, cat: TV/Sport, desc: " | NHL"}
- {id: 758, cat: TV/Sport, desc: " | Европейские клубные чемпионаты"}
- {id: 757, cat: TV/Sport, desc: " | Чемпионат Мира"}
- {id: 756, cat: TV/Sport, desc: " | Международные турниры"}
- {id: 501, cat: TV/Sport, desc: "Баскетбол"}
- {id: 763, cat: TV/Sport, desc: " | NBA"}
- {id: 762, cat: TV/Sport, desc: " | Европейский клубный баскетбол"}
- {id: 761, cat: TV/Sport, desc: " | Международные турниры"}
- {id: 502, cat: TV/Sport, desc: "Теннис"}
- {id: 768, cat: TV/Sport, desc: " | ATP World Tour"}
- {id: 767, cat: TV/Sport, desc: " | WTA Tour"}
- {id: 766, cat: TV/Sport, desc: " | ATP World Tour Masters 1000"}
- {id: 765, cat: TV/Sport, desc: " | Grand Slam tournaments"}
- {id: 764, cat: TV/Sport, desc: " | Team"}
- {id: 503, cat: TV/Sport, desc: "Авто и мото спорт"}
- {id: 769, cat: TV/Sport, desc: "Боевые единоборства"}
- {id: 773, cat: TV/Sport, desc: " | Бокс"}
- {id: 772, cat: TV/Sport, desc: " | Рестлинг"}
- {id: 771, cat: TV/Sport, desc: " | Ultimate Fighting Championship"}
- {id: 770, cat: TV/Sport, desc: " | Mixed Martial Arts"}
- {id: 504, cat: TV/Sport, desc: "Другие виды спорта"}
- {id: 786, cat: TV/Sport, desc: " | Биатлон"}
- {id: 785, cat: TV/Sport, desc: " | Волейбол"}
- {id: 784, cat: TV/Sport, desc: " | Гандбол"}
- {id: 783, cat: TV/Sport, desc: " | Бильярд"}
- {id: 782, cat: TV/Sport, desc: " | Бейсбол"}
- {id: 781, cat: TV/Sport, desc: " | Американский футбол"}
- {id: 780, cat: TV/Sport, desc: " | Покер"}
- {id: 779, cat: TV/Sport, desc: " | Легкая атлетика"}
- {id: 778, cat: TV/Sport, desc: " | Тяжелая атлетика"}
- {id: 777, cat: TV/Sport, desc: " | Велоспорт"}
- {id: 776, cat: TV/Sport, desc: " | Гимнастика"}
- {id: 775, cat: TV/Sport, desc: " | Летние виды спорта"}
- {id: 774, cat: TV/Sport, desc: " | Зимние виды спорта"}
- {id: 787, cat: TV/Sport, desc: "Архив"}
# Аудиокниги
# Audiobooks
- {id: 942, cat: Audio/Audiobook, desc: "Произведения отечественных авторов"}
- {id: 943, cat: Audio/Audiobook, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 944, cat: Audio/Audiobook, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 945, cat: Audio/Audiobook, desc: " | Художественная литература"}
- {id: 947, cat: Audio/Audiobook, desc: " | Современная проза, классика, поэзия"}
- {id: 946, cat: Audio/Audiobook, desc: " | Историческая литература"}
- {id: 949, cat: Audio/Audiobook, desc: " | Книги для IPhone, IPod, Apple"}
- {id: 951, cat: Audio/Audiobook, desc: " | Детская литература"}
- {id: 952, cat: Audio/Audiobook, desc: " | Сатира, Юмор"}
- {id: 955, cat: Audio/Audiobook, desc: "Произведения зарубежных авторов"}
- {id: 967, cat: Audio/Audiobook, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 966, cat: Audio/Audiobook, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 965, cat: Audio/Audiobook, desc: " | Художественная литература"}
- {id: 962, cat: Audio/Audiobook, desc: " | Современная проза, классика, поэзия"}
- {id: 963, cat: Audio/Audiobook, desc: " | Историческая литература"}
- {id: 960, cat: Audio/Audiobook, desc: " | Книги для IPhone, IPod, Apple"}
- {id: 959, cat: Audio/Audiobook, desc: " | Детская литература"}
- {id: 958, cat: Audio/Audiobook, desc: " | Сатира, Юмор"}
- {id: 968, cat: Audio/Audiobook, desc: "Прочая литература"}
- {id: 1025, cat: Audio/Audiobook, desc: " | Аудиоспектакли и литературные чтения"}
- {id: 1026, cat: Audio/Audiobook, desc: " | ЖЗЛ, мемуары, биографии"}
- {id: 1089, cat: Audio/Audiobook, desc: " | Для детей, родителей и учителей"}
- {id: 1019, cat: Audio/Audiobook, desc: " | Разножанровые, многоавторские сборники"}
- {id: 970, cat: Audio/Audiobook, desc: " | Обучающая и научно-популярная литература"}
- {id: 971, cat: Audio/Audiobook, desc: " | Аудиокниги на иностранных языках"}
- {id: 972, cat: Audio/Audiobook, desc: " | Психология, Тренинг, Саморазвитие"}
- {id: 973, cat: Audio/Audiobook, desc: " | Философия и религия"}
- {id: 969, cat: Audio/Audiobook, desc: " | Разное"}
- {id: 1047, cat: Audio/Audiobook, desc: "Архив"}
# Книги и журналы
# Books and Magazines
- {id: 336, cat: Books, desc: "Книги отечественных авторов"}
- {id: 341, cat: Books, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 974, cat: Books, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 975, cat: Books, desc: " | Художественная литература"}
- {id: 976, cat: Books, desc: " | Историческая литература"}
- {id: 977, cat: Books, desc: " | Современная проза, классика, поэзия"}
- {id: 979, cat: Books, desc: " | Детская литература"}
- {id: 980, cat: Books, desc: " | Сатира, Юмор"}
- {id: 982, cat: Books, desc: "Книги зарубежных авторов"}
- {id: 991, cat: Books, desc: " | Фантастика, фэнтези, ужасы, мистика"}
- {id: 990, cat: Books, desc: " | Приключения, детектив, боевик, триллер"}
- {id: 989, cat: Books, desc: " | Художественная литература"}
- {id: 988, cat: Books, desc: " | Историческая литература"}
- {id: 987, cat: Books, desc: " | Современная проза, классика, поэзия"}
- {id: 986, cat: Books, desc: " | Детская литература"}
- {id: 985, cat: Books, desc: " | Сатира, Юмор"}
- {id: 992, cat: Books, desc: "Прочая литература"}
- {id: 1028, cat: Books, desc: " | ЖЗЛ. Биографии. Мемуары. Историография."}
- {id: 1004, cat: Books, desc: " | Философия, Религия, Эзотерика"}
- {id: 1050, cat: Books, desc: " | Публицистика, Социология и Политология"}
- {id: 1005, cat: Books, desc: " | Художественная литература на ин языках"}
- {id: 1018, cat: Books, desc: " | Для детей, родителей и учителей"}
- {id: 1003, cat: Books, desc: " | Психология, Тренинг, Саморазвитие"}
- {id: 1002, cat: Books, desc: " | Техническая и научно-популярная литература"}
- {id: 1001, cat: Books, desc: " | Строительство, Дизайн и Ремонт"}
- {id: 1067, cat: Books, desc: " | Домоводство, Сад, Огород, Хобби"}
- {id: 1000, cat: Books, desc: " | Кулинария"}
- {id: 999, cat: Books, desc: " | Медицина и Здоровье"}
- {id: 998, cat: Books, desc: " | Бизнес, Право, Экономика, Финансы"}
- {id: 997, cat: Books, desc: " | Разножанровые коллекции книг и библиотеки"}
- {id: 996, cat: Books, desc: " | Компьютерная литература"}
- {id: 1094, cat: Books, desc: " | Компьютерная литература на иностранных языках"}
- {id: 995, cat: Books, desc: " | Справочники, энциклопедии и словари"}
- {id: 1090, cat: Books, desc: " | Обучающая и развивающая литература, учебники"}
- {id: 994, cat: Books, desc: " | Разное"}
- {id: 292, cat: Books, desc: "Журналы"}
- {id: 1015, cat: Books, desc: " | Мужские"}
- {id: 1014, cat: Books, desc: " | Женские (мода, шитьё)"}
- {id: 1068, cat: Books, desc: " | Кулинария"}
- {id: 1013, cat: Books, desc: " | Игровые и Компьютерные журналы"}
- {id: 1012, cat: Books, desc: " | Мультимедийные приложения"}
- {id: 1011, cat: Books, desc: " | Научно-популярные, техника, авто"}
- {id: 1101, cat: Books, desc: " | Журналы по электротехнике и радиоэлектронике"}
- {id: 1010, cat: Books, desc: " | Домоводство, Хобби, Бизнес"}
- {id: 1091, cat: Books, desc: " | Строительство, Дизайн и Ремонт"}
- {id: 464, cat: Books, desc: " | Комиксы, Графика, Wallpapers, Арт"}
- {id: 1008, cat: Books, desc: " | Подшивки журналов и газет"}
- {id: 1016, cat: Books, desc: " | Журналы и газеты (общий раздел)"}
- {id: 1093, cat: Books, desc: " | Журналы и газеты на иностранных языках"}
- {id: 295, cat: Books, desc: "Книги и журналы для самых маленьких и их родителей"}
- {id: 468, cat: Books, desc: "Архив"}
# Операционные системы и программное обеспечение
# Software
- {id: 834, cat: PC/0day, desc: "Операционные системы от Microsoft"}
- {id: 844, cat: PC/0day, desc: " | Оригинальные образы восстановления ОС ноутбуков (нетбуков)"}
- {id: 1116, cat: PC/0day, desc: " | Windows 11 (оригинальные образы)"}
- {id: 1083, cat: PC/0day, desc: " | Windows 10 (оригинальные образы)"}
- {id: 1084, cat: PC/0day, desc: " | Windows 8 / 8.1 (оригинальные образы)"}
- {id: 1085, cat: PC/0day, desc: " | Windows 7 (оригинальные образы)"}
- {id: 1086, cat: PC/0day, desc: " | Windows Vista (оригинальные образы)"}
- {id: 1087, cat: PC/0day, desc: " | Windows XP (оригинальные образы)"}
- {id: 1088, cat: PC/0day, desc: " | Windows OS, выпущенные до 2001 года (оригинальные образы)"}
- {id: 1117, cat: PC/0day, desc: " | Сборки Windows 11"}
- {id: 1035, cat: PC/0day, desc: " | Сборки Windows 10"}
- {id: 843, cat: PC/0day, desc: " | Сборки Windows 8 / 8.1"}
- {id: 842, cat: PC/0day, desc: " | Сборки Windows 7"}
- {id: 841, cat: PC/0day, desc: " | Сборки Windows Vista"}
- {id: 840, cat: PC/0day, desc: " | Сборки Windows XP"}
- {id: 1051, cat: PC/0day, desc: " | Сборки Windows - &quot;все в одном&quot;"}
- {id: 839, cat: PC/0day, desc: " | Серверные ОС"}
- {id: 838, cat: PC/0day, desc: " | Патчи, RC, Beta, Service Packs и дополнения для ОС от..."}
- {id: 837, cat: PC/0day, desc: " | Изменение интерфейса"}
- {id: 1096, cat: PC/0day, desc: " | Обои и Скринсейверы"}
- {id: 836, cat: PC/0day, desc: " | Разное (Windows)"}
- {id: 1029, cat: PC/0day, desc: " | Активация ОС Windows и ПО Microsoft"}
- {id: 1071, cat: PC/0day, desc: " | Архив"}
- {id: 845, cat: PC/Mac, desc: "Операционные системы и ПО для Apple Macintosh"}
- {id: 852, cat: PC/Mac, desc: " | Mac OS"}
- {id: 851, cat: PC/Mac, desc: " | Mac OS (для РС-Хакинтош)"}
- {id: 850, cat: PC/Mac, desc: " | Системные программы для Mac OS"}
- {id: 849, cat: PC/Mac, desc: " | Программы для просмотра и обработки видео"}
- {id: 848, cat: PC/Mac, desc: " | Mac OS Программы для просмотра и обработки графики"}
- {id: 847, cat: PC/Mac, desc: " | Mac OS Аудио редакторы и конверторы для Mac OS"}
- {id: 846, cat: PC/Mac, desc: " | Другие программы для Mac OS"}
- {id: 1072, cat: PC/Mac, desc: " | Архив"}
- {id: 853, cat: PC, desc: "Операционные системы и ПО для Linux, Unix и других ОС"}
- {id: 856, cat: PC, desc: " | Операционные системы"}
- {id: 855, cat: PC, desc: " | Программное обеспечение"}
- {id: 854, cat: PC, desc: " | Разное"}
- {id: 1073, cat: PC, desc: " | Архив"}
- {id: 857, cat: PC, desc: "Веб-разработка и Программирование"}
- {id: 864, cat: PC, desc: " | Среды программирования, компиляторы и вспомогател..."}
- {id: 863, cat: PC, desc: " | Компоненты для сред программирования"}
- {id: 862, cat: PC, desc: " | Системы управления базами данных"}
- {id: 861, cat: PC, desc: " | Текстовые редакторы"}
- {id: 860, cat: PC, desc: " | Скрипты и шаблоны"}
- {id: 859, cat: PC, desc: " | Веб-разработка"}
- {id: 858, cat: PC, desc: " | Разное"}
- {id: 1074, cat: PC, desc: " | Архив"}
- {id: 865, cat: PC, desc: "Системные программы"}
- {id: 918, cat: PC, desc: " | Live /PE/ Boot CD (DVD, USB)"}
- {id: 875, cat: PC, desc: " | Настройка и оптимизация ОС (software)"}
- {id: 874, cat: PC, desc: " | Резервное копирование и восстановление данных"}
- {id: 1092, cat: PC, desc: " | Архиваторы и файловые менеджеры"}
- {id: 873, cat: PC, desc: " | Диагностика и обслуживание (hardware)"}
- {id: 872, cat: PC, desc: " | Сборники программ"}
- {id: 871, cat: PC, desc: " | Работа с носителями информации (SSD, HDD, USB, DVD, CD)"}
- {id: 1098, cat: PC, desc: " | Программы для работы с ПК со смартфонами (планшетами) н..."}
- {id: 870, cat: PC, desc: " | Программы для интернет и сетей"}
- {id: 869, cat: PC, desc: " | Безопасность"}
- {id: 868, cat: PC, desc: " | Серверное ПО"}
- {id: 867, cat: PC, desc: " | Драйверы"}
- {id: 866, cat: PC, desc: " | Разное"}
- {id: 1075, cat: PC, desc: " | Архив"}
- {id: 876, cat: PC, desc: "Системы для бизнеса, офиса, научной и проектной работы"}
- {id: 884, cat: PC, desc: " | Офисные системы"}
- {id: 1102, cat: PC, desc: " | Дополнения (надстройки и т.д.) для офисных систем"}
- {id: 4, cat: PC, desc: " | Системы для бизнеса"}
- {id: 881, cat: PC, desc: " | Системы для научной работы"}
- {id: 892, cat: PC, desc: " | Программы для архитекторов и дизайнеров интерьеров"}
- {id: 889, cat: PC, desc: " | Программы для верстки, сканирования, печати и работы ..."}
- {id: 890, cat: PC, desc: " | Работа с PDF и DjVu"}
- {id: 882, cat: PC, desc: " | Медицинский софт"}
- {id: 879, cat: PC, desc: " | Софт для специалистов"}
- {id: 880, cat: PC, desc: " | Словари, переводчики"}
- {id: 878, cat: PC, desc: " | САПР"}
- {id: 877, cat: PC, desc: " | Разное"}
- {id: 1077, cat: PC, desc: " | Архив"}
- {id: 913, cat: PC, desc: "Справочно-правовые системы"}
- {id: 917, cat: PC, desc: " | Консультант Плюс"}
- {id: 1070, cat: PC, desc: " | КонсультантБухгалтер: Версия Проф"}
- {id: 1036, cat: PC, desc: " | Архив Консультант Плюс"}
- {id: 916, cat: PC, desc: " | Другие справочно-правовые системы"}
- {id: 914, cat: PC, desc: " | Справочные системы"}
- {id: 915, cat: PC, desc: " | Общий архив раздела &quot;Справочно-правовые системы&quot;"}
- {id: 908, cat: PC, desc: "Системы навигации и карты, ГИС"}
- {id: 1107, cat: PC/Mobile-iOS, desc: " | iOS"}
- {id: 1106, cat: PC/Mobile-Android, desc: " | Android"}
- {id: 1105, cat: PC, desc: " | Garmin"}
- {id: 1104, cat: PC/0day, desc: " | Windows XP/Vista/7/8/8.1/10"}
- {id: 1103, cat: PC/0day, desc: " | Windows CE"}
- {id: 1108, cat: PC, desc: " | Разное (Системы навигации и карты, ГИС)"}
- {id: 1097, cat: PC, desc: " | Архив (Системы навигации и карты, ГИС)"}
- {id: 885, cat: PC, desc: "Программы для работы с мультимедиа и 3D"}
- {id: 896, cat: PC, desc: " | 3D моделирование, рендеринг и плагины для них"}
- {id: 895, cat: PC, desc: " | Анимация"}
- {id: 894, cat: PC, desc: " | Аудио, видео конвертеры"}
- {id: 893, cat: PC, desc: " | Редакторы и конвертеры графики"}
- {id: 891, cat: PC, desc: " | Работа со звуком, Редакторы видео"}
- {id: 888, cat: PC, desc: " | Аудио и видео плееры, рекордеры и кодеки"}
- {id: 887, cat: PC, desc: " | Каталогизаторы и просмотр графики"}
- {id: 886, cat: PC, desc: " | Разное"}
- {id: 1076, cat: PC, desc: " | Архив"}
- {id: 897, cat: PC, desc: "Материалы для мультимедиа и дизайна"}
- {id: 907, cat: PC, desc: " | Текстуры, материалы и проекты"}
- {id: 906, cat: PC, desc: " | 3D модели и сцены Photostoсks"}
- {id: 905, cat: PC, desc: " | Заготовки, виньетки, костюмы, шаблоны и рамки"}
- {id: 904, cat: PC, desc: " | Стили, кисти, формы и узоры"}
- {id: 903, cat: PC, desc: " | Футажи"}
- {id: 902, cat: PC, desc: " | Шрифты"}
- {id: 901, cat: PC, desc: " | Библиотеки сэмплов и Звуковые эффекты"}
- {id: 900, cat: PC, desc: " | Векторные клипарты"}
- {id: 899, cat: PC, desc: " | Растровые клипарты"}
- {id: 898, cat: PC, desc: " | Разное"}
- {id: 1078, cat: PC, desc: " | Архив"}
- {id: 909, cat: PC, desc: "Разное"}
# Смартфоны и Планшеты
# mobiles
- {id: 921, cat: PC/Mobile-Other, desc: "Windows Phone 7"}
- {id: 936, cat: PC/Mobile-Other, desc: " | Прошивки"}
- {id: 935, cat: PC/Mobile-Other, desc: " | Игры"}
- {id: 934, cat: PC/Mobile-Other, desc: " | Программы"}
- {id: 1079, cat: PC/Mobile-Other, desc: " | Архив"}
- {id: 922, cat: PC/Mobile-Other, desc: "Windows Mobile 5.x - 6.x"}
- {id: 927, cat: PC/Mobile-Other, desc: " | Прошивки"}
- {id: 926, cat: PC/Mobile-Other, desc: " | Игры"}
- {id: 925, cat: PC/Mobile-Other, desc: " | Программы"}
- {id: 1080, cat: PC/Mobile-Other, desc: " | Архив"}
- {id: 923, cat: PC/Mobile-Android, desc: "Android"}
- {id: 930, cat: PC/Mobile-Android, desc: " | Игры"}
- {id: 929, cat: PC/Mobile-Android, desc: " | Программы"}
- {id: 928, cat: PC/Mobile-Android, desc: " | Прошивки"}
- {id: 1081, cat: PC/Mobile-Android, desc: " | Архив"}
- {id: 924, cat: PC/Mobile-Other, desc: "Symbian"}
- {id: 933, cat: PC/Mobile-Other, desc: " | Игры"}
- {id: 932, cat: PC/Mobile-Other, desc: " | Программы"}
- {id: 931, cat: PC/Mobile-Other, desc: " | Прошивки"}
- {id: 1082, cat: PC/Mobile-Other, desc: " | Архив"}
- {id: 1048, cat: PC/Mobile-Other, desc: "Архив"}
# Авто и Мото
# Auto and Bikes
- {id: 1095, cat: TV/Sport, desc: "Книги по ремонту/обслуживанию/эксплуатации ТС"}
- {id: 1110, cat: TV/Sport, desc: "Программы для прошивки и диагностики авто, прошивки"}
- {id: 1111, cat: TV/Sport, desc: "Мото техника"}
- {id: 1112, cat: TV/Sport, desc: "Водный транспорт"}
- {id: 1113, cat: TV/Sport, desc: "Видео по ремонту и тюнингу ТС"}
# Песочница
# sandbox
- {id: 507, cat: Other, desc: "Песочница"}
# Pron
# xxx
- {id: 1037, cat: XXX, desc: "Русское порно"}
- {id: 1038, cat: XXX, desc: " | Фильмы"}
- {id: 1039, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 1040, cat: XXX, desc: " | Любительское видео"}
- {id: 368, cat: XXX, desc: "Зарубежное порно"}
- {id: 1062, cat: XXX, desc: " | Фильмы 2020 года"}
- {id: 1061, cat: XXX, desc: " | Фильмы 2001-2019 года"}
- {id: 1043, cat: XXX, desc: " | Фильмы до 2000 года"}
- {id: 1042, cat: XXX, desc: " | Зарубежные фильмы с переводом"}
- {id: 1069, cat: XXX, desc: " | Порно Пародии"}
- {id: 1065, cat: XXX, desc: " | Нетрадиционное порно"}
- {id: 821, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 1041, cat: XXX, desc: " | Японское порно без цензуры"}
- {id: 820, cat: XXX, desc: " | Мульты"}
- {id: 819, cat: XXX, desc: " | Фото"}
- {id: 818, cat: XXX, desc: " | Разное"}
- {id: 816, cat: XXX, desc: "3D Pron"}
- {id: 825, cat: XXX, desc: " | Фильмы"}
- {id: 824, cat: XXX, desc: " | Ролики, сайт рипы"}
- {id: 823, cat: XXX, desc: " | Мульты"}
- {id: 822, cat: XXX, desc: " | Разное"}
- {id: 271, cat: XXX, desc: "Архив"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: striprussian
type: checkbox
label: Strip Russian Letters
default: false
- name: sort
type: select
label: Sort requested from site
default: 1
options:
1: created
10: seeders
7: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
login:
path: login.php
method: form
form: form[action="./login.php"]
inputs:
login_username: "{{ .Config.username }}"
login_password: "{{ .Config.password }}"
redirect: /
autologin: 1
error:
- selector: table.error
test:
path: index.php
selector: a[href="./login.php?logout=1"]
search:
paths:
- path: tracker.php
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to сезон 1
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
- name: re_replace # S01E01 to сезон 1 серии 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 серии $2"]
inputs:
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
prev_allw: 1
prev_a: 0
prev_dla: 0
prev_dlc: 0
prev_dld: 0
prev_dlw: 0
prev_my: 0
prev_new: 0
prev_sd: 0
prev_da: 1
prev_dc: 0
prev_df: 1
prev_ds: 0
prev_tor_type: 0
# sort by 1=registered, 2=topicTitle, 4=completed, 10=seed, 11=leech, 12=up, 13=down, 5=replies, 6=views, 7=size, 8=lastPost, 9=seedLastSeen
o: "{{ .Config.sort }}"
# 1=asc, 2=desc
s: "{{ .Config.type }}"
# show category
dc: 0
# show forum
df: 1
# show author
da: 1
# show speed
ds: 0
# -1=all time
tm: -1
# seed not seen -1=disregard
sns: -1
# group releases -1=not selected
srg: -1
nm: "{{ .Keywords }}"
# find a username
pn: ""
# search by partial word
allw: 0
rows:
selector: tr[id^="tor_"]:has(a[href^="./download.php?id="])
fields:
category:
selector: a[href^="viewforum.php?f="]
attribute: href
filters:
- name: querystring
args: f
descr_cat:
selector: a[href^="viewforum.php?f="]
attribute: href
filters:
- name: querystring
args: f
description:
selector: a[href^="viewforum.php?f="]
filters:
- name: prepend
args: "cat={{ .Result.descr_cat }} "
title:
selector: a[href^="viewtopic.php?t="]
filters:
# hell no, i'm not unravelling this pile of spaghetti. Someone else can spend their life sorting this mess out.
# Stand Up (16.02.2020) WEB-DLRip (сезон 7, выпуск 13)
# Прощаться не будем (2018) WEBDL [H.264/1080p-LQ] (серии 1-4 из 4) [Расширенная версия]
# Поцелуй Сократа (2011) WEBDL (сезон 1, серии 1-12 из 12)
# Барри / Barry (2018-2019) WEB-DLRip (сезон 1-2, серии 1-16 из 16) Amedia
# Стрела / Arrow / Сезон: 8 / Серии: 1-10 из 10 (Дэвид Баррет, Дэвид Наттер) [2019, фантастика, боевик, драма, детектив, приключения, WEB-DLRip] [MVO] [LostFilm]
# Викинги / Vikings / 6 сезон / 1-10 из 20 / (Стив Сэйнт Лигер) [2019, боевик, драма, мелодрама, военный, история, WEB-DLRip] [MVO] [AlexFilm]
# Рикошет (Денис Карышев, Вячеслав Кириллов) (16 серий из 16) [2019/2020, боевик, WEBDL, HDTV] 50%DL
# to show but a few variations!
# normalize to SXXEYY format
- name: re_replace
args: ["[\\,\\:\\-\\/\\|\\[\\]]", " "]
# - name: re_replace
# args: ["[\\.\\,\\:\\-\\/\\|\\[\\]\\(\\)]", " "]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*(\\d+)\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)(\\d+)\\s*[CСcс]езон\\s*(\\d+)\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*(\\d+)\\s*(.*)", "$1 S$2E$3-$4 rus $5"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ияй]\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3 rus $4"]
# - name: re_replace
# args: ["(.*)[CСcс]езон\\s*(\\d+)(.*)", "$1 S$2 rus $3"]
# - name: re_replace
# args: ["(.*)[CСcс]]ери[ия]\\s*(\\d+)(.*)", "$1 E$2 rus $3"]
- name: re_replace
args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- name: replace
args: ["WEBRip", "WEBDL"]
- name: replace
args: ["WEB DL", "WEBDL"]
- name: replace
args: ["WEBDLRip", "WEBDL"]
- name: replace
args: ["HDTVRip", "HDTV"]
details:
selector: a[href^="viewtopic.php?t="]
attribute: href
download:
selector: a[href^="./download.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
size:
selector: td:nth-child(6) > u
seeders:
selector: td.seedmed > b
leechers:
selector: td.leechmed > b
grabs:
selector: td:nth-child(9)
date:
# unix
selector: td:last-child > u
downloadvolumefactor:
case:
img[src="images/tor_gold.gif"]: 0
img[src="images/tor_silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
# TorrentPier II

View File

@@ -13,9 +13,8 @@ links:
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
- https://demonoid.unblockit.day/
- https://demonoid.torrentbay.to/
- https://demonoid.nocensor.biz/
- https://demonoid.nocensor.sbs/
legacylinks:
- https://demonoid.unblockit.top/
- https://demonoid.unblockit.lat/
- https://demonoid.unblockit.app/
- https://demonoid.unblockit.dev/
@@ -35,6 +34,7 @@ legacylinks:
- https://demonoid.unblockit.tv/
- https://demonoid.unblockit.how/
- https://demonoid.unblockit.cam/
- https://demonoid.nocensor.biz/
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
links:
- https://elitetorrent.la/
- https://elitetorrent.nocensor.biz/
- https://elitetorrent.nocensor.sbs/
legacylinks:
- https://www.elitetorrent.biz/
- https://www.elitetorrent.io/
@@ -28,6 +28,7 @@ legacylinks:
- https://elitetorrent.nocensor.work/
- https://elitetorrent.com/
- https://elitetorrent.app/
- https://elitetorrent.nocensor.biz/
caps:
categories:

View File

@@ -8,7 +8,7 @@ encoding: UTF-8
links:
- https://extratorrent.st/
- https://extratorrent.unblockit.day/
- https://extratorrent.nocensor.biz/
- https://extratorrent.nocensor.sbs/
legacylinks:
- https://extratorrent.nocensor.work/
- https://extratorrent.unblockit.kim/
@@ -16,6 +16,7 @@ legacylinks:
- https://extratorrent.unblockit.tv/
- https://extratorrent.unblockit.how/
- https://extratorrent.unblockit.cam/
- https://extratorrent.nocensor.biz/
caps:
categorymappings:

View File

@@ -13,13 +13,12 @@ links:
- https://eztv.yt/
- https://eztv.unblockninja.com/
- https://eztv.unblockit.day/
- https://eztv.nocensor.biz/
- https://eztv.nocensor.sbs/
legacylinks:
- https://eztv.ag/ # redirects to .re
- https://eztv.it/ # redirects to .re
- https://eztv.ch/ # redirects to .re
- https://eztv.io/
- https://eztv.unblockit.link/
- https://eztv.unblockit.buzz/
- https://eztv.unblocked.monster/
- https://eztv.unblockit.club/
@@ -35,6 +34,7 @@ legacylinks:
- https://eztv.unblockit.tv/
- https://eztv.unblockit.how/
- https://eztv.unblockit.cam/
- https://eztv.nocensor.biz/
caps:
categories:

View File

@@ -0,0 +1,181 @@
---
id: fenyarnyek-tracker
name: Fenyarnyek-Tracker
description: "Fenyarnyek-Tracker is a HUNGARIAN semi private site for TV / MOVIES / GENERAL"
language: hu-HU
type: semi-private
encoding: UTF-8
links:
- http://tracker.fenyarnyek.com/
legacylinks:
- https://tracker.fenyarnyek.com/ # site is forcing http
caps:
categorymappings:
- {id: 13, cat: PC/ISO, desc: "Program/Iso"}
- {id: 14, cat: PC/0day, desc: "Program/Rip"}
- {id: 15, cat: TV, desc: "Sorozat/Eng"}
- {id: 16, cat: TV, desc: "Sorozat/Hun"}
- {id: 17, cat: Audio, desc: "Zene/Eng"}
- {id: 18, cat: Audio, desc: "Zene/Hun"}
- {id: 19, cat: PC/Games, desc: "Game/Rip"}
- {id: 20, cat: PC/Games, desc: "Game/Iso"}
- {id: 21, cat: Movies/SD, desc: "Xvid/Eng"}
- {id: 22, cat: Movies/SD, desc: "Xvid/hun"}
- {id: 23, cat: Other, desc: "Képek"}
- {id: 24, cat: Movies/SD, desc: "Cam/Hun"}
- {id: 25, cat: Movies/SD, desc: "Cam/Eng"}
- {id: 26, cat: TV/Anime, desc: "Animació"}
- {id: 27, cat: Books, desc: "E-book/Hun"}
- {id: 28, cat: Books, desc: "E-book/Eng"}
- {id: 29, cat: Movies/DVD, desc: "DVD/Hun"}
- {id: 31, cat: Movies/DVD, desc: "DVD/Eng"}
- {id: 32, cat: Movies/HD, desc: "Hd/Hun"}
- {id: 33, cat: Movies/HD, desc: "Hd/Eng"}
- {id: 34, cat: PC/Mobile-Other, desc: "Mobil"}
- {id: 35, cat: XXX, desc: "XXX/Film"}
- {id: 36, cat: XXX/ImageSet, desc: "XXX/Kep"}
- {id: 38, cat: Movies/SD, desc: "SD/Eng"}
- {id: 39, cat: Movies/SD, desc: "SD/Hun"}
- {id: 37, cat: Other, desc: "Egyéb"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
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: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
- name: info
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
login:
method: post
path: index.php?page=login
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: td.lista span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href="logout.php"]
download:
before:
path: thanks.php
method: post
inputs:
infohash: "'{{ .DownloadUri.Query.id }}'"
thanks: 1
rndval: "1487013827343"
selectors:
- selector: a[href^="download.php?id="]
attribute: href
search:
paths:
# http://tracker.fenyarnyek.com/index.php?page=torrents&search=&category=0&uploader=0&options=0&active=0&gold=0
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
uploader: 0
# 0 filename, 1 file & desc, 2 description
options: 0
# 0 all, 1 active only, 2 dead only
active: 0
# 0 all, 1 classic, 2 silver, 3 gold, 4 silver & gold
gold: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: td#mcol table.lista > tbody > tr:has(a[href*=bookmark])
fields:
category:
selector: a[href*="category="]
attribute: href
filters:
- name: querystring
args: category
title:
selector: a[href^="index.php?page=torrent-details"]
details:
selector: a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: a[href^="index.php?page=torrent-details"]
attribute: href
poster:
selector: a[href^="index.php?page=torrent-details"]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) "
date:
selector: td:nth-last-child(11)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "02/01/2006 -07:00"
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(9)
leechers:
selector: td:nth-last-child(8)
downloadvolumefactor:
case:
img[src$="freeleech.gif"]: 0
img[src$="gold.gif"]: 0
img[src$="silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[src$="2x.gif"]: 2
img[src$="3x.gif"]: 3
img[src$="4x.gif"]: 4
img[src$="5x.gif"]: 5
img[src$="6x.gif"]: 6
img[src$="7x.gif"]: 7
img[src$="8x.gif"]: 8
img[src$="9x.gif"]: 9
img[src$="10x.gif"]: 10
"*": 1
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# xbtit

View File

@@ -7,6 +7,8 @@ type: public
encoding: UTF-8
links:
- https://filelisting.com/
- https://filelisting.nocensor.sbs/
legacylinks:
- https://filelisting.nocensor.biz/
caps:

View File

@@ -1,9 +1,9 @@
---
id: fouducinema
name: Fou-Du-Cinema
description: "Fou-Du-Cinema (FdC) is a FRENCH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
description: "Fou-Du-Cinema (FdC) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: semi-private
type: private
encoding: UTF-8
links:
- https://fou-du-cinema.net/

View File

@@ -7,13 +7,14 @@ type: public
encoding: UTF-8
links:
- https://www.gamestorrents.fm/
- https://gamestorrents.nocensor.biz/
- https://gamestorrents.nocensor.sbs/
legacylinks:
- https://www.gamestorrents.com/
- https://www.gamestorrents.tv/
- https://www.gamestorrents.nu/
- https://gamestorrents.nocensor.space/
- https://gamestorrents.nocensor.work/
- https://gamestorrents.nocensor.biz/
caps:
categorymappings:

View File

@@ -6,6 +6,8 @@ language: en-US
type: private
encoding: UTF-8
links:
- https://www.gaytor.rent/
legacylinks:
- https://www.gaytorrent.ru/
settings:

View File

@@ -88,10 +88,24 @@ 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
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
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
@@ -124,8 +138,6 @@ search:
selector: details_link
download:
selector: download_link
size:
selector: size
magnet:
selector: magnet_link
optional: true
@@ -134,8 +146,6 @@ search:
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
- name: replace
args: ["https://via.placeholder.com/400x600", ""]
imdbid:
selector: imdb_id
tmdbid:
@@ -153,12 +163,18 @@ search:
date:
# 2021-10-18T00:34:50.000000Z"
selector: created_at
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
@@ -168,4 +184,4 @@ search:
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 5.3.0
# json UNIT3D 6.0.4

View File

@@ -8,16 +8,8 @@ encoding: UTF-8
followredirect: true
links:
- https://www.gktorrents.org/
- https://gktorrent.nocensor.biz/
- https://gktorrent.nocensor.sbs/
legacylinks:
- https://www.gktorrent.com/
- http://www.gktorrent.com/
- http://ww1.gktorrent.com/
- http://ww2.gktorrent.com/
- https://ww2.gktorrent.com/
- https://ww3.gktorrent.com/
- http://www.gktorrent.net/
- https://ww4.gktorrent.com/
- http://www.gktorrent.co/
- https://www.gktorrent.co/
- https://www.gktorrent.ws/
@@ -37,6 +29,7 @@ legacylinks:
- https://www.gktorrents.com/
- https://gktorrent.nocensor.work/
- https://www.gktorrents.net/
- https://gktorrent.nocensor.biz/
caps:
categorymappings:

View File

@@ -8,13 +8,13 @@ encoding: UTF-8
followredirect: true
links:
- https://glodls.to/
- https://gtdb.cc/
- https://www.gtdb.to/
- https://glotorrents.unblockit.day/
- https://glotorrents.nocensor.biz/
- https://glotorrents.nocensor.sbs/
legacylinks:
- https://glodls.rocks/
- https://gtdb.to/
- https://glotorrents.unblockit.dev/
- https://glotorrents.unblockit.ltd/
- https://glotorrents.unblockit.link/
- https://glotorrents.unblockit.buzz/
@@ -32,6 +32,7 @@ legacylinks:
- https://glotorrents.unblockit.tv/
- https://glotorrents.unblockit.how/
- https://glotorrents.unblockit.cam/
- https://glotorrents.nocensor.biz/
caps:
categorymappings:

View File

@@ -5,6 +5,8 @@ description: "HDCity is a SPANISH site for HD content"
language: es-ES
type: private
encoding: ISO-8859-1
certificates:
- a10f2f7a863cd3fba9663185b0943cde01698451 # expired 25 October 2021
links:
- https://hdcity.li/

View File

@@ -1,156 +0,0 @@
---
id: hdhouse
name: HDhouse
description: "HDhouse (HDReactor) is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
language: ru-RU
type: public
encoding: windows-1251
links:
- https://hdreactor.club/
- https://hdreactor.net/
legacylinks:
- https://hdreactor.guru/
- https://hdreactor.su/
- https://hdhouse.club/
caps:
categorymappings:
- {id: 2001, cat: Movies/HD, desc: "Кино HD"}
- {id: 5006, cat: Movies/UHD, desc: "Кино UHD"}
- {id: 2007, cat: TV/Anime, desc: "Мультфильмы"}
- {id: 2006, cat: TV/HD, desc: "Сериалы HD"}
- {id: 2004, cat: Audio/Lossless, desc: "Музыка A"}
- {id: 5007, cat: Audio/Video, desc: "Музыка V"}
- {id: 2003, cat: XXX, desc: "18+ HD"}
- {id: 2005, cat: PC/Games, desc: "Игры"}
- {id: 5005, cat: TV/Sport, desc: "Спорт HD"} # not shown in list
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: striprussian
type: checkbox
label: Strip Russian Letters
default: false
- name: sort
type: select
label: Sort requested from site
default: date
options:
date: created
title: 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:
# https://hdreactor.net/index.php?do=search&subaction=search&showposts=1&story=2020&catlist[]=2001&catlist[]=2006
paths:
- path: index.php
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to Сезон 1
args: ["(?i)\\bS0*(\\d+)\\b", " Сезон $1"]
- name: re_replace # S01E01 to Сезон 1 Серии 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", " Сезон $1 Серии $2"]
inputs:
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
do: search
subaction: search
showposts: 1
# 0 in article, 1 in comments ,2 in static pages, 3 in article titles
titleonly: 3
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
sortby: "{{ .Config.sort }}"
resorder: "{{ .Config.type }}"
headers:
# site presents hcaptcha challenge for Jackett's User-Agent, so slightly alter it here (e.g. Safari/537.36 > Safari/537.35)
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.35"]
rows:
selector: div.movie-item
fields:
category:
selector: div.movie-item__meta > span > a
case:
a[href$="/1/"]: 2001
a[href$="/4k_uhd/"]: 5006
a[href$="/7/"]: 2007
a[href$="/6/"]: 2006
a[href$="/4/"]: 2004
a[href$="/9/"]: 5007
a[href$="/3/"]: 2003
a[href$="/5/"]: 2005
a[href$="/sport-hd/"]: 5005 # not shown in list
title:
selector: span.movie-item__title
filters:
# normalize to SXXEYY format
- name: re_replace
args: ["[\\.\\,\\:\\-\\/\\|\\[\\]]", " "]
- name: re_replace
args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ия]\\s*(\\d+)\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
- name: re_replace
args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ия]\\s*(\\d+)\\s*(\\d+)\\s*(.*)", "$1 S$2E$3-$4 rus $5"]
- name: re_replace
args: ["(.*)[CСcс]езон\\s*(\\d+)\\s*[CСcс]ери[ия]\\s*(\\d+)\\s*из\\s*\\d+(.*)", "$1 S$2E$3 rus $4"]
- name: re_replace
args: ["(.*)[CСcс]езон\\s*(\\d+)(.*)", "$1 S$2 rus $3"]
- name: re_replace
args: ["(.*)[CСcс]]ери[ия]\\s*(\\d+)(.*)", "$1 E$2 rus $3"]
- name: re_replace
args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- name: replace
args: ["WEBRip", "WEBDL"]
- name: replace
args: ["WEB DL", "WEBDL"]
- name: replace
args: ["WEBDLRip", "WEBDL"]
- name: replace
args: ["HDTVRip", "HDTV"]
details:
selector: div.movie-item__desc > a
attribute: href
download:
selector: div.movie-item__desc > a
attribute: href
poster:
selector: img
attribute: src
size:
text: "512 MB"
seeders:
text: 1
leechers:
text: 1
date:
selector: div.movie-item__meta > span:nth-child(2)
filters:
# 5-03-2021, 21:59
- name: replace
args: [",", ""]
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "2-01-2006 15:04 -07:00"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# DataLife

View File

@@ -132,13 +132,13 @@ search:
size:
selector: td:nth-child(4)
date:
# 19.Jul<br>2021<br>06:57
# 15.11.21<br>07:47
selector: td:nth-child(5)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "2.Jan200615:04 -07:00"
args: "2.01.0615:04 -07:00"
grabs:
selector: td:nth-child(7)
seeders:

View File

@@ -16,7 +16,7 @@ caps:
- {id: 5, cat: TV, desc: "Série"}
- {id: 6, cat: TV/Anime, desc: "Série anim"}
- {id: 7, cat: Movies/Other, desc: "Film d'animation"}
- {id: 7, cat: Audio/Video, desc: "Concert"}
- {id: 9, cat: Audio/Video, desc: "Concert"}
- {id: 11, cat: TV/Documentary, desc: "Documentaire"}
- {id: 13, cat: Movies/Other, desc: "Court-métrage"}
- {id: 14, cat: Movies/Other, desc: "Clip"}

View File

@@ -0,0 +1,144 @@
---
id: hidden-palace
name: Hidden-Palace
description: "Hidden-Palace is a Private torrent site for MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
links:
- https://hidden-palace.net/
legacylinks:
- https://hidden-palace.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
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://hidden-palace.net/\" target =_blank>Hidden-Palace</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
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
count:
selector: meta.total
fields:
categorydesc:
selector: category
title:
selector: name
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
minimumratio:
text: 1.0
minimumseedtime:
# 1 day (as seconds = 1 x 24 x 60 x 60)
text: 86400
# json UNIT3D 6.0.4

View File

@@ -0,0 +1,176 @@
---
id: houseofdevil
name: House of Devil
description: "House of Devil is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: de-DE
type: private
encoding: UTF-8
links:
- https://h-o-d.org/
caps:
categorymappings:
- {id: 117, cat: TV, desc: "Allgemein - Serien"}
- {id: 119, cat: Other, desc: "Bilder"}
- {id: 120, cat: Books, desc: "EBook"}
- {id: 138, cat: Movies/3D, desc: "Filme - 3D"}
- {id: 101, cat: TV/Anime, desc: "Filme - Animie"}
- {id: 102, cat: Movies/BluRay, desc: "Filme - Bluray"}
- {id: 131, cat: Movies/Other, desc: "Filme - Bollywood"}
- {id: 103, cat: Movies/DVD, desc: "Filme - DVD"}
- {id: 104, cat: Movies/DVD, desc: "Filme - DVD-R"}
- {id: 135, cat: Movies/HD, desc: "Filme - HD"}
- {id: 132, cat: Movies/DVD, desc: "Filme - HD2DVD"}
- {id: 130, cat: Movies, desc: "Filme - Klassiker"}
- {id: 134, cat: Movies/SD, desc: "Filme - SD"}
- {id: 136, cat: Movies/UHD, desc: "Filme - UHD"}
- {id: 105, cat: Movies/HD, desc: "Filme - x264"}
- {id: 106, cat: Movies/SD, desc: "Filme - XviD / DivX"}
- {id: 127, cat: Movies, desc: "Fuer Unsere Kleinsten"}
- {id: 121, cat: PC/Mobile-Other, desc: "Handy-Stuff"}
- {id: 124, cat: Audio, desc: "Musik - Alben"}
- {id: 140, cat: Audio, desc: "Musik - Diskografie"}
- {id: 122, cat: Audio/Audiobook, desc: "Musik - Hoerbuch"}
- {id: 123, cat: Audio, desc: "Musik - Mixe"}
- {id: 133, cat: Audio/MP3, desc: "Musik - MP3"}
- {id: 125, cat: Audio/Video, desc: "Musik - Video"}
- {id: 113, cat: PC, desc: "Programme - Linux"}
- {id: 114, cat: PC/Mac, desc: "Programme - Mac"}
- {id: 115, cat: PC/0day, desc: "Programme - Windows"}
- {id: 116, cat: TV/Documentary, desc: "Serien - Dokus"}
- {id: 118, cat: TV/Sport, desc: "Serien - Sport"}
- {id: 129, cat: Other, desc: "Sonstiges"}
- {id: 109, cat: PC/Mobile-Other, desc: "Spiele - Handy"}
- {id: 112, cat: Console, desc: "Spiele - Konsolen"}
- {id: 111, cat: PC/Games, desc: "Spiele - Mac / Linux"}
- {id: 110, cat: PC/Games, desc: "Spiele - PC"}
- {id: 137, cat: Console/Other, desc: "Wimmelspiele"}
- {id: 69, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: pin
type: text
label: Pin
- name: onlyupload
type: checkbox
label: Filter OnlyUpload only
default: false
- name: info_free
type: info
label: About OnlyUpload at H-O-D
default: <li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech).</li>
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeds: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents pro Seite:</b> setting to <b>100</b> on your Control Panel. The default is <i>15</i>.
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
pin: "{{ .Config.pin }}"
error:
- selector: .tablea:contains("Fehler")
test:
path: /
selector: a[href="logout.php"]
search:
# https://h-o-d.org/browse.php?showsearch=1&c117=1&c116=1&c118=1&search=&incldead=1&orderby=added&sort=desc
path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
showsearch: 1
search: "{{ .Keywords }}"
# 0 active, 1 all, 2 dead
incldead: 1
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
# site does not support imdbid search from the browse.php page or return imdb links in results
rows:
selector: "table.tableinborder[cellspacing=\"1\"][cellpadding=\"0\"]:not(:has(a[href=\"index.php\"])) > tbody > tr:has(a[href^=\"download.php\"]){{ if .Config.onlyupload }}:has(img[src=\"/pic/free.gif\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php"]
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
poster:
selector: a[href^="details.php"]
attribute: onMouseOver
filters:
- name: regexp
args: "src=(.*?) width"
size:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(1)
files:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(2)
seeders:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) b:nth-child(1)
leechers:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) > b:nth-of-type(2)
grabs:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(3) b:nth-child(1)
date:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(5)
filters:
- name: append
args: " +01:00" # CET
- name: replace
args: ["\xA0", " "]
- name: dateparse
args: "02.01.2006 15:04:05 -07:00"
downloadvolumefactor:
case:
img[src="/pic/free.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# engine n/a

View File

@@ -11,7 +11,7 @@ links:
- https://ilcorsaronero.fun/
- https://ilcorsaronero.pro/
- https://ilcorsaronero.torrentbay.to/
- https://ilcorsaronero.nocensor.biz/
- https://ilcorsaronero.nocensor.sbs/
legacylinks:
- https://ilcorsaronero.live/
- https://ilcorsaronero.vip/
@@ -27,6 +27,7 @@ legacylinks:
- https://ilcorsaronero.unblockit.pw/
- https://ilcorsaronero.nocensor.space/
- https://ilcorsaronero.nocensor.work/
- https://ilcorsaronero.nocensor.biz/
caps:
categorymappings:

View File

@@ -0,0 +1,161 @@
---
id: jme-reunit3d
name: JME-REUNIT3D
description: "JME-REUNIT3D is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://jme-reunit3d.eu/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music-Audio"}
- {id: 4, cat: Console, desc: "Game"}
- {id: 5, cat: PC, desc: "Application"}
- {id: 7, cat: TV/Sport, desc: "Sport"}
- {id: 8, cat: XXX, desc: "XXX"}
- {id: 9, cat: Books, desc: "E-Books"}
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/filter
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
uploader: ""
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: "{{ .Query.TVDBID }}"
tmdb: "{{ .Query.TMDBID }}"
mal: ""
igdb: ""
start_year: ""
end_year: ""
sorting: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
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:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: prepend
args: "https://images.weserv.nl/?url=" # for display on dashboard
- name: append
args: "&w=180&h=270" # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&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:
- name: append
args: " ago"
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:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# UNIT3D 3.0.0

View File

@@ -116,6 +116,9 @@ search:
fields:
category:
text: 24
category|noappend:
optional: true
selector: a[href^="browse.php?cat="]
attribute: href
filters:

View File

@@ -10,13 +10,24 @@ links:
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: 1, cat: Movies, desc: "Peliculas"}
- {id: 2, cat: TV, desc: "TV Series"}
- {id: 3, cat: Audio, desc: "Musica"}
- {id: 4, cat: Console, desc: "Juegos"}
- {id: 5, cat: TV/Anime, desc: "Anime"}
- {id: 6, cat: Movies/Other, desc: "Retro Pelicula"}
- {id: 7, cat: TV/Other, desc: "Retro Serie TV"}
- {id: 8, cat: TV/Foreign, desc: "Telenovelas y Teleseries"}
- {id: 3, cat: Audio, desc: "Musica"}
- {id: 9, cat: Audio/Video, desc: "Conciertos"}
- {id: 10, cat: TV/Documentary, desc: "Documentales"}
- {id: 11, cat: Other, desc: "Videotutoriales y Educativo"}
- {id: 12, cat: XXX, desc: "XXX"}
- {id: 16, cat: TV/Sport, desc: "Deportes"}
- {id: 17, cat: PC, desc: "Sistemas Operativos"}
- {id: 18, cat: Books, desc: "E-Books"}
- {id: 19, cat: Audio/Audiobook, desc: "Audiolibros"}
- {id: 20, cat: Movies/Other, desc: "Películas Oscars"}
- {id: 21, cat: Audio/Video, desc: "VideoMixes"}
modes:
search: [q]

View File

@@ -11,7 +11,7 @@ links:
- https://www.limetorrents.pro/
- https://limetorrents.unblockit.day/
- https://limetorrents.unblockninja.com/
- https://limetorrents.nocensor.biz/
- https://limetorrents.nocensor.sbs/
legacylinks:
- https://www.limetorrents.io/
- https://www.limetorrents.cc/
@@ -22,7 +22,6 @@ legacylinks:
- https://www.limetorrents.co/
- https://limetor.com/
- https://www.limetor.pro/
- https://limetorrents.unblockit.li/
- https://limetorrents.unblockit.uno/
- https://limetorrents.unblockit.ch/
- https://limetorrents.nocensor.space/
@@ -33,6 +32,7 @@ legacylinks:
- https://limetorrents.unblockit.tv/
- https://limetorrents.unblockit.how/
- https://limetorrents.unblockit.cam/
- https://limetorrents.nocensor.biz/
caps:
categorymappings:

View File

@@ -6,13 +6,14 @@ language: el-GR
type: private
encoding: UTF-8
links:
- https://trelas.club/
- https://trellas.net/
legacylinks:
- https://magico.info/
- https://magico.one/
- https://magico.club/
- https://magico.fun/
- https://trellas.info/
- https://trelas.club/
caps:
categorymappings:

View File

@@ -72,6 +72,9 @@ caps:
- {id: 16, cat: Books, desc: Marine Engineer's Library-MAN B&W"}
- {id: 17, cat: Books, desc: Marine Engineer's Library-Wärtsilä & Sulzer"}
- {id: 7, cat: Books, desc: "Technical Books (Not maritime)"}
- {id: 328, cat: Books, desc: "Technical Books (Not maritime)-Hydraulics"}
- {id: 327, cat: Books, desc: "Technical Books (Not maritime)-Mechanics"}
- {id: 326, cat: Books, desc: "Technical Books (Not maritime)-Electricity"}
- {id: 10, cat: Books, desc: "English for seamen"}
- {id: 266, cat: Books, desc: "English for seamen-English for Deck Officers"}
- {id: 267, cat: Books, desc: "English for seamen-English for Marine Engineers"}
@@ -133,6 +136,7 @@ caps:
- {id: 289, cat: Books, desc: "Shipmodeling-Ships in Bottles"}
- {id: 197, cat: Books, desc: "Marine bulletins"}
- {id: 219, cat: Books, desc: "Marine History"}
- {id: 323, cat: Books, desc: "Marine History-History of Submarines"}
- {id: 282, cat: Books, desc: "Marine History-Fleets history"}
- {id: 281, cat: Books, desc: "Marine History-History of Merchant Marine"}
- {id: 280, cat: Books, desc: "Marine History-Historic ships"}
@@ -147,7 +151,6 @@ caps:
- {id: 275, cat: Books, desc: "Marine History-Accidents and disasters at sea"}
- {id: 264, cat: Books, desc: "Marine History-Marine cartography"}
- {id: 274, cat: Books, desc: "Marine History-Pirates"}
- {id: 323, cat: Books, desc: "Marine History-Submarines"}
- {id: 218, cat: Books, desc: "Maritime Fiction"}
- {id: 198, cat: Books, desc: "Navy"}
- {id: 272, cat: Books, desc: "Navy-Naval magazines"}
@@ -161,14 +164,14 @@ caps:
- {id: 245, cat: Books, desc: "Rarity-1800 - 1900"}
- {id: 246, cat: Books, desc: "Rarity-1700 - 1800"}
- {id: 247, cat: Books, desc: "Rarity-1600 - 1700"}
- {id: 324, cat: Other, desc: "Posters, placards, signs"}
- {id: 187, cat: Books, desc: "Others (not maritime)"}
- {id: 162, cat: Books, desc: "Archive"}
# - {id: 325, cat: Other, desc: "Corrupt torrents (hash errors)"} # we filter these out in the rows selector
- {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"}
- {id: 324, cat: Other, desc: "Posters, placards, signs"}
# - {id: 325, cat: Other, desc: "Corrupt torrents (hash errors)"} # we filter these out in the rows selector
modes:
search: [q]

View File

@@ -51,7 +51,7 @@ settings:
- name: info_free
type: info
label: About Freeleech and OnlyUpload at MNV
default: <li>FreeLeech are torrents where neither the download or upload is counted.</li><li>OnlyUpload are torrents where download is not counted but upload is. Good for buiding your Ratio up.</li><li>Do not set both FreeLeech and OnlyUpload check boxes, there are no torrents with both these flags so you will get a no-results error.</li>
default: <li>FreeLeech are torrents where neither the download or upload is counted.</li><li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up.</li><li>Do not set both FreeLeech and OnlyUpload check boxes, there are no torrents with both these flags so you will get a no-results error.</li>
- name: sort
type: select
label: Sort requested from site

View File

@@ -7,9 +7,10 @@ type: public
encoding: UTF-8
links:
- https://www.newpct.net/
- https://newpct.nocensor.biz/
- https://newpct.nocensor.sbs/
legacylinks:
- https://www.newpct.me/
- https://newpct.nocensor.biz/
caps:
categories:

View File

@@ -7,6 +7,7 @@ type: public
encoding: UTF-8
links:
- https://nyaa.si/
- https://nyaa.iss.ink/
legacylinks:
- https://nyaa.black-mirror.xyz/
- https://nyaa.unblocked.casa/

View File

@@ -23,6 +23,9 @@ caps:
- {id: 16, cat: Audio, desc: "独立(Indie)"}
- {id: 17, cat: Audio, desc: "嘻哈(Hip Hop)"}
- {id: 18, cat: Audio, desc: "音乐剧(Musical)"}
- {id: 19, cat: Audio, desc: "乡村(Country)"}
- {id: 20, cat: Audio, desc: "另类(Alternative)"}
- {id: 21, cat: Audio, desc: "世界音樂(World))"}
- {id: 9, cat: Audio, desc: "其它类型(Others)"}
modes:
@@ -109,17 +112,22 @@ search:
td[title="独立"]: 16
td[title="嘻哈"]: 17
td[title="音乐剧"]: 18
td[title="乡村(Country)"]: 19
td[title="另类(Alternative)"]: 20
td[title="世界音樂(World)"]: 21
td[title="其它类型"]: 9
# Some torrents have no title set on td
td:not([title]): 9
title_default:
selector: a[href^="plugin_details.php?id="]
selector: a[href*="details.php?id="]
title_optional:
optional: true
selector: a[title][href^="plugin_details.php?id="]
selector: a[title][href*="details.php?id="]
attribute: title
title:
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
details:
selector: a[href^="plugin_details.php?id="]
selector: a[href*="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]

View File

@@ -43,6 +43,7 @@ caps:
- {id: 325, cat: XXX, desc: "Movies XXX: Granny"}
- {id: 340, cat: XXX, desc: "Movies XXX: Oral & Blowjob"}
- {id: 360, cat: XXX, desc: "Movies XXX: Parody"}
- {id: 370, cat: XXX, desc: "Movies XXX: Pregnants"}
- {id: 380, cat: XXX, desc: "Movies XXX: Public & Car, Outdoors"}
- {id: 385, cat: XXX, desc: "Movies XXX: Rape Roleplay"}
- {id: 400, cat: XXX, desc: "Movies XXX: Russian"}

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.oxtorrent.re/
- https://oxtorrent.unblockit.day/
- https://oxtorrent.nocensor.biz/
- https://oxtorrent.nocensor.sbs/
legacylinks:
- https://www.oxtorrent.bz/
- https://www.oxtorrent.ws/
@@ -19,7 +19,6 @@ legacylinks:
- https://www.oxtorrent.co/
- https://www.oxtorrent.io/
- https://www.oxtorrent.cx/
- https://oxtorrent.unblockit.ws/
- https://www.oxtorrent.nz/
- https://oxtorrent.nocensor.work/
- https://oxtorrent.unblockit.kim/
@@ -31,6 +30,7 @@ legacylinks:
- https://oxtorrent.unblockit.how/
- https://www.oxtorrent.be/
- https://oxtorrent.unblockit.cam/
- https://oxtorrent.nocensor.biz/
caps:
categorymappings:

View File

@@ -149,7 +149,7 @@ search:
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: tr[id^="tor_"]
selector: tr[id^="tor_"]:has(span.tor-approved) # only approved tors have .torrent and magnets.
filters:
- name: andmatch

View File

@@ -1,15 +1,16 @@
---
id: baibako
name: BaibaKo
description: "BaibaKo is a RUSSIAN Semi-Private Torrent Tracker for TV"
id: rudub
name: RUDUB
description: "RUDUB (ex-BaibaKoTV) is a RUSSIAN Semi-Private Torrent Tracker for TV"
language: ru-RU
type: semi-private
encoding: windows-1251
links:
- http://bko.baibako.tv/ # https is unsupported ERR_CONNECTION_REFUSED
- http://rudub.tv/ # https is unsupported ERR_CONNECTION_REFUSED
legacylinks:
- http://baibako.tv/
- https://baibako.tv/
- http://bko.baibako.tv/
caps:
categorymappings:
@@ -65,6 +66,7 @@ login:
search:
paths:
# http://rudub.tv/browse.php?search=&incldead=1&sort=4&type=desc
- path: browse.php
inputs:
search: "{{.Keywords }}"
@@ -77,7 +79,7 @@ search:
args: ["[s|S](\\d+)[e|E][\\d]+", "/s$1"]
rows:
selector: table > tbody > tr:has(a[href^="details.php?id="])
selector: div.card__torlist__browse_2
fields:
category:
@@ -112,63 +114,33 @@ search:
details:
selector: a[href^="details.php?id="]
attribute: href
poster:
selector: img[src^="/posters/"]
attribute: src
download:
selector: a[href^="download.php?id="]
attribute: href
date:
selector: small
# 2022-03-28 01:28:07
selector: li[title="Дата"]
filters:
- name: replace
args: ["Загружена: ", ""]
- name: replace
args: [" в ", " "]
- name: replace
args: ["января", "January"]
- name: replace
args: ["февраля", "February"]
- name: replace
args: ["марта", "March"]
- name: replace
args: ["апреля", "April"]
- name: replace
args: ["мая", "May"]
- name: replace
args: ["июня", "June"]
- name: replace
args: ["июля", "July"]
- name: replace
args: ["августа", "August"]
- name: replace
args: ["сентября", "September"]
- name: replace
args: ["октября", "October"]
- name: replace
args: ["ноября", "November"]
- name: replace
args: ["декабря", "December"]
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "2 January 2006 15:04:05 -07:00"
args: "2006-01-02 15:04:05 -07:00"
files:
selector: td:nth-last-child(5)
selector: li[title="Файлов"]
size:
selector: td:nth-last-child(3)
selector: li[title="Размер"]
seeders:
selector: td:nth-last-child(2)
selector: li[title="Активность"]
filters:
- name: split
args: ["|", 0]
- name: regexp
args: (\d+)\s+\d+
leechers:
selector: td:nth-last-child(2)
selector: li[title="Активность"]
filters:
- name: split
args: ["|", 1]
- name: regexp
args: \d+\s+(\d+)
grabs:
selector: td:nth-last-child(1)
selector: li[title="Завершено"]
downloadvolumefactor:
case:
"a[href^=\"details.php?id=\"]:contains(\"(Золото)\")": 0

View File

@@ -8,6 +8,7 @@ encoding: UTF-8
links:
- http://rutor.info/ # site does not support https ERR_CONNECTION_REFUSED
- http://rutor.is/ # site does not support https ERR_CONNECTION_REFUSED
- http://6tor.org/
legacylinks:
- http://live-rutor.org/ # domain expired 9 Feb 2020
- http://new-rutor.org/ # ERR_NAME_NOT_RESOLVED

View File

@@ -1,170 +0,0 @@
---
id: sexxi
name: Sexxi
description: "Sexxi is a RUSSIAN Public Torrent Tracker for 3X"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://sexxi.club/
caps:
# don't forget to update the search fields category case block
categorymappings:
- {id: 1, cat: XXX, desc: "Любительское"}
- {id: 20, cat: XXX, desc: "Орал"}
- {id: 13, cat: XXX, desc: "Минет"}
- {id: 2, cat: XXX, desc: "Анал"}
- {id: 31, cat: XXX, desc: "Куннилингус"}
- {id: 32, cat: XXX, desc: "Большие сиськи"}
- {id: 27, cat: XXX, desc: "HD-видео"}
- {id: 10, cat: XXX, desc: "Хардкор"}
- {id: 35, cat: XXX, desc: "Втроем"}
- {id: 19, cat: XXX, desc: "Мастурбация"}
- {id: 34, cat: XXX, desc: "Русские"}
- {id: 7, cat: XXX, desc: "Молодые"}
- {id: 17, cat: XXX, desc: "Зрелые"}
- {id: 5, cat: XXX, desc: "Блондинки"}
- {id: 6, cat: XXX, desc: "Брюнетки"}
- {id: 3, cat: XXX, desc: "Азиатки"}
- {id: 15, cat: XXX, desc: "Лесбиянки"}
- {id: 12, cat: XXX, desc: "Межрасовый"}
- {id: 30, cat: XXX, desc: "Групповое"}
- {id: 36, cat: XXX, desc: "От первого лица"}
- {id: 22, cat: XXX, desc: "ПорноЗвезды"}
- {id: 11, cat: XXX, desc: "Кастинг"}
- {id: 33, cat: XXX, desc: "Ролевая игра"}
- {id: 14, cat: XXX, desc: "Фетиш"}
- {id: 25, cat: XXX, desc: "Униформа"}
- {id: 18, cat: XXX, desc: "Пьяные"}
- {id: 21, cat: XXX, desc: "Колготки"}
- {id: 28, cat: XXX, desc: "Волосатые"}
- {id: 23, cat: XXX, desc: "Рыжая"}
- {id: 24, cat: XXX, desc: "Ретро"}
- {id: 29, cat: XXX, desc: "Нудизм"}
- {id: 4, cat: XXX, desc: "БДСМ"}
- {id: 8, cat: XXX, desc: "Эротика"}
modes:
search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: date
options:
date: created
title: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
download:
selectors:
- selector: a[href*="index.php?do=download&id="]
attribute: href
search:
headers:
Referer: ["{{ .Config.sitelink }}"]
paths:
- path: index.php
inputs:
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
do: search
subaction: search
search_start: 0
full_search: 1
result_from: 1
all_word_seach: 0
showposts: 0
# 0 in article 1 in comments 2 in static pages 3 in article titles
titleonly: 3
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
sortby: "{{ .Config.sort }}"
resorder: "{{ .Config.type }}"
rows:
selector: div.short-item
fields:
category:
selector: p a:last-child
case:
a[href$="/amateur/"]: 1
a[href$="/pornstars/"]: 22
a[href$="/hdvideo/"]: 27
a[href$="/blonde/"]: 5
a[href$="/hairy/"]: 28
a[href$="/brunette/"]: 6
a[href$="/russians/"]: 34
a[href$="/asian/"]: 3
a[href$="/redhead/"]: 23
a[href$="/anal/"]: 2
a[href$="/oral/"]: 20
a[href$="/bdsm/"]: 4
a[href$="/erotic/"]: 8
a[href$="/hardcore/"]: 10
a[href$="/uniforms/"]: 25
a[href$="/masturbation/"]: 19
a[href$="/big_boobs/"]: 32
a[href$="/role-playing-game/"]: 33
a[href$="/interracial/"]: 12
a[href$="/lesbians/"]: 15
a[href$="/young/"]: 7
a[href$="/threesome/"]: 35
a[href$="/kasting/"]: 11
a[href$="/blowjob/"]: 13
a[href$="/retro/"]: 24
a[href$="/fetish/"]: 14
a[href$="/mature/"]: 17
a[href$="/drunk/"]: 18
a[href$="/nudism/"]: 29
a[href$="/pantyhose/"]: 21
a[href$="/group/"]: 30
a[href$="/cunnilingus/"]: 31
a[href$="/first_person/"]: 36
"*": 27
title:
selector: a.short-title
details:
selector: a.short-title
attribute: href
download:
selector: a.short-title
attribute: href
poster:
selector: img
attribute: src
size:
text: "512 MB"
seeders:
text: 1
leechers:
text: 1
cat_tags:
selector: p.argcat
description:
selector: ul.short-list
filters:
- name: append
args: "</br>{{ .Result.cat_tags }}"
date:
selector: div.short-meta-item:has(span.fa-calendar-alt)
filters:
# 28.10.2021
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "02.01.2006 -07:00"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# DataLife

View File

@@ -1,22 +1,23 @@
---
id: uhd-heaven
name: UHD-HEAVEN
description: "UHD-HEAVEN is a Private Torrent Tracker for UHD MOVIES / TV"
id: skipthetrailers
name: SkipTheTrailers
description: "SkipTheTrailers (STT) is a Private Torrent Tracker for MOVIES"
language: en-US
type: private
encoding: UTF-8
links:
- https://uhd-heaven.xyz/
- https://skipthetrailers.xyz/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
@@ -25,7 +26,7 @@ settings:
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://uhd-heaven.xyz/\" target =_blank>UHD-HEAVEN</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
default: "Find or Generate a new API Token by accessing your <a href=\"https://skipthetrailers.xyz/\" target =_blank>SkipTheTrailers</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
@@ -75,6 +76,10 @@ search:
perPage: 100
page: 1
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
@@ -130,10 +135,9 @@ search:
case:
0: 1 # normal
1: 2 # double
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
# minimumratio:
# text: 0.4
minimumratio:
text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 6.0.0
# 7 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 6.0.4

View File

@@ -41,7 +41,7 @@ download:
search:
paths:
- path: "{{ if .Keywords }}?do=search&subaction=search&search_start=0&full_search=1&result_from=1&story={{ .Keywords }}&titleonly=3catlist[]=0&searchdate=0&resorder=desc{{ else }}lastnews/{{ end }}"
- path: "{{ if .Keywords }}?do=search&subaction=search&search_start=0&full_search=1&result_from=1&story={{ .Keywords }}&titleonly=3&catlist[]=0&searchdate=0&resorder=desc{{ else }}lastnews/{{ end }}"
rows:
selector: tr.fr_viewn_in:has(td.frs:contains("B"))

View File

@@ -9,6 +9,7 @@ links:
- https://tasmanit.es/
certificates:
- 23C30AC9655A8A7351A549538062B8C6B0D01A78 # expired 24 Jan 2022
- 4325e8f1f13f6074f2bed6a6186fe183791ab32d # expired 1 March 2022
caps:
categorymappings:

View File

@@ -0,0 +1,243 @@
---
id: teamctgame
name: Team CT Game
description: "Team CT Game (TCTG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
links:
- https://tctg.pm/
legacylinks:
- https://teamctgame.co/
- http://teamctgame.xyz/
- https://teamctgame.xyz/
- https://tctg.in/
caps:
categorymappings:
- {id: 409, cat: Books/Comics, desc: "BD"}
- {id: 410, cat: Books/Mags, desc: "Ebooks - Presse"}
- {id: 411, cat: Audio/Audiobook, desc: "Ebooks - Audiobooks"}
- {id: 412, cat: Books/EBook, desc: "Ebooks - Ebooks"}
- {id: 413, cat: Movies/3D, desc: "Films - 3D"}
- {id: 414, cat: Movies/HD, desc: "Films - 4K"}
- {id: 415, cat: Movies/UHD, desc: "Films - 4K HDR"}
- {id: 416, cat: Movies/UHD, desc: "Films - 4K Light"}
- {id: 417, cat: Movies/UHD, desc: "Films - 4K Remux"}
- {id: 418, cat: Movies, desc: "Films - Animation"}
- {id: 419, cat: Movies/BluRay, desc: "Films - BDRip / BRRip"}
- {id: 420, cat: Movies/DVD, desc: "Films - DVD-R"}
- {id: 421, cat: Movies/DVD, desc: "Films - DVDRip"}
- {id: 422, cat: Movies/BluRay, desc: "Films - Full Bluray"}
- {id: 423, cat: Movies/HD, desc: "Films - HDTV"}
- {id: 424, cat: Movies/HD, desc: "Films - HD 1080p"}
- {id: 425, cat: Movies/HD, desc: "Films - HD 720p"}
- {id: 426, cat: Movies/HD, desc: "Films - HDLiGHT / M-HD"}
- {id: 427, cat: Movies/HD, desc: "Films - HDRiP"}
- {id: 428, cat: Movies, desc: "Films - Pack"}
- {id: 429, cat: Movies, desc: "Films - Remux"}
- {id: 430, cat: TV, desc: "Films - TVRip"}
- {id: 431, cat: Movies, desc: "Films - VO"}
- {id: 432, cat: Movies, desc: "Films - VOSTFR"}
- {id: 433, cat: Movies/WEB-DL, desc: "Films - Web"}
- {id: 434, cat: Movies/HD, desc: "Films - x265"}
- {id: 436, cat: Console, desc: "Jeux - Consoles"}
- {id: 437, cat: PC/Games, desc: "Jeux - PC"}
- {id: 438, cat: PC/0day, desc: "Logiciels - Windows"}
- {id: 439, cat: Other, desc: "Logiciels - Graph / Wallpaper"}
- {id: 440, cat: TV/HD, desc: "Series - 4K HDR"}
- {id: 441, cat: TV/HD, desc: "Series TV - Pack HD"}
- {id: 442, cat: TV/HD, desc: "Series TV - Episode HD"}
- {id: 443, cat: TV/HD, desc: "Series TV - Pack HD VOSTFR"}
- {id: 444, cat: TV/HD, desc: "Series TV - Episode HD VOSTFR"}
- {id: 445, cat: TV/SD, desc: "Series TV - Pack SD"}
- {id: 446, cat: TV/SD, desc: "Series TV - Episode SD"}
- {id: 447, cat: TV/SD, desc: "Series TV - Pack SD VOSTFR"}
- {id: 448, cat: TV/SD, desc: "Series TV - Episode SD VOSTFR"}
- {id: 449, cat: TV/Anime, desc: "Series - Animés"}
- {id: 450, cat: TV, desc: "Spectacles - Tous"}
- {id: 451, cat: TV, desc: "TV - Emissions"}
- {id: 452, cat: TV/Documentary, desc: "TV - Documentaires"}
- {id: 453, cat: TV/Sport, desc: "TV - Sports"}
- {id: 435, cat: XXX, desc: "Films - XXX"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
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: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: multilang
type: checkbox
label: Replace MULTI by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTI by this language
default: FRENCH
options:
FRENCH: FRENCH
MULTI.FRENCH: MULTI.FRENCH
ENGLISH: ENGLISH
MULTI.ENGLISH: MULTI.ENGLISH
VOSTFR: VOSTFR
MULTI.VOSTFR: MULTI.VOSTFR
- name: vostfr
type: checkbox
label: Replace VOSTFR with ENGLISH
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: 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[alt="CAPTCHA"]
input: imagestring
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
securelogin: ""
error:
- selector: td.embedded:has(h2:contains("Erreur")) # invalid captcha
- selector: td.embedded:has(h2:contains("Échec")) # invalid uid or pwd
message:
selector: td.text
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
categories: ["!", 435]
- path: special.php
categories: [435]
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
inclbookmarked: 0
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
# 0 AND, 1 OR, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_phase1:
selector: a[href^="details.php?id="] b
title_multilang:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
title_phase2:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
- name: re_replace
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
title:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2006-01-02 15:04:05 -07:00"
date_added:
# time added
selector: td:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 1.0
# NexusPHP Standard v1.6 Beta 12

View File

@@ -0,0 +1,178 @@
---
id: the-crazy-ones
name: The-Crazy-Ones
description: "The-Crazy-Ones (T-C-O) is a Private GERMAN tracker for MOVIES / TV / MUSIC"
language: de-DE
type: private
encoding: UTF-8
links:
- https://thecrazyones.hopto.org/
caps:
categorymappings:
- {id: 62, cat: Books, desc: "EBook"}
- {id: 30, cat: TV/Anime, desc: "Filme - Animie"}
- {id: 28, cat: Movies/BluRay, desc: "Filme - Bluray"}
- {id: 31, cat: Movies/Other, desc: "Filme - Bollywood"}
- {id: 32, cat: Movies/DVD, desc: "Filme - DVD"}
- {id: 33, cat: Movies/HD, desc: "Filme - HD"}
- {id: 34, cat: Movies, desc: "Filme - Klassiker"}
- {id: 35, cat: Movies, desc: "Filme - Pack"}
- {id: 36, cat: Movies/SD, desc: "Filme - SD"}
- {id: 37, cat: Movies/UHD, desc: "Filme - UHD"}
- {id: 38, cat: Movies/HD, desc: "Filme - x264"}
- {id: 63, cat: Movies, desc: "Fuer Unsere Kleinsten"}
- {id: 64, cat: PC/Mobile-Other, desc: "Handy-Stuff"}
- {id: 39, cat: Audio, desc: "Musik - Alben"}
- {id: 40, cat: Audio, desc: "Musik - Diskografie"}
- {id: 41, cat: Audio/Audiobook, desc: "Musik - Hoerbuch"}
- {id: 42, cat: Audio, desc: "Musik - Mixe"}
- {id: 43, cat: Audio/MP3, desc: "Musik - MP3"}
- {id: 66, cat: Audio, desc: "Musik - Pack"}
- {id: 44, cat: Audio/Video, desc: "Musik - Video"}
- {id: 45, cat: PC, desc: "Programme - Linux"}
- {id: 48, cat: PC/Mac, desc: "Programme - Mac"}
- {id: 49, cat: PC/0day, desc: "Programme - Windows"}
- {id: 65, cat: TV, desc: "Serien - Allgemein"}
- {id: 50, cat: TV/Documentary, desc: "Serien - Dokus"}
- {id: 51, cat: TV, desc: "Serien - Klassiker"}
- {id: 52, cat: TV, desc: "Serien - Pack"}
- {id: 53, cat: TV/Sport, desc: "Serien - Sport"}
- {id: 60, cat: Other, desc: "Sonstiges"}
- {id: 54, cat: PC/Mobile-Other, desc: "Spiele - Handy"}
- {id: 55, cat: Console, desc: "Spiele - Konsolen"}
- {id: 57, cat: PC/Games, desc: "Spiele - Mac / Linux / PC"}
- {id: 58, cat: Console/Other, desc: "Spiele - Wimmel"}
- {id: 59, cat: XXX, desc: "XXX"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: pin
type: text
label: Pin
- name: freeleech
type: checkbox
label: Filter FreeLeech only
default: false
- name: onlyupload
type: checkbox
label: Filter OnlyUpload only
default: false
- name: info_free
type: info
label: About Freeleech and OnlyUpload at T-C-O
default: <li>FreeLeech are torrents where neither the download or upload is counted. (On the Jackett dashboard search results these are tagged as NoUpload).</li><li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech).</li>
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeds: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents pro Seite:</b> setting to <b>100</b> on your Control Panel. The default is <i>15</i>.
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
secure_pin: "{{ .Config.pin }}"
error:
- selector: .tablea:contains("Fehler")
test:
path: index.php
selector: a[href="logout.php"]
search:
# https://thecrazyones.hopto.org/browse.php?showsearch=1&c65=1&c51=1&c52=1&search=&incldead=1&orderby=added&sort=desc
path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
showsearch: 1
search: "{{ .Keywords }}"
# 0 active, 1 all, 2 dead
incldead: 1
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
# site does not support imdbid search from the browse.php page or return imdb links in results
rows:
selector: "table.tableinborder[cellspacing=\"1\"][cellpadding=\"0\"] > tbody > tr:has(a[href^=\"download.php\"]){{ if .Config.freeleech }}:has(img[src=\"pic/freeleech.gif\"]){{ else }}{{ end }}{{ if .Config.onlyupload }}:has(img[src=\"pic/oupic.gif\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php"]
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
poster:
selector: div[id^="details"] img
attribute: src
size:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(1)
files:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(1) b:nth-child(2)
seeders:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) b:nth-child(1)
leechers:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(2) > b:nth-of-type(2)
grabs:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(3) b:nth-child(1)
date:
selector: td.tablea table tbody tr:nth-child(2) td:nth-child(5)
filters:
- name: append
args: " +01:00" # CET
- name: replace
args: ["\xA0", " "]
- name: dateparse
args: "02.01.2006 15:04:05 -07:00"
downloadvolumefactor:
case:
img[src="pic/oupic.gif"]: 0
img[src="pic/freeleech.gif"]: 0
"*": 1
uploadvolumefactor:
case:
img[src="pic/freeleech.gif"]: 0
"*": 1
minimumratio:
text: 0.7
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a

View File

@@ -0,0 +1,194 @@
---
id: the-devils-lounge
name: The-Devils-Lounge
description: "The-Devils-Lounge is a Private torrent site for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
testlinktorrent: false
links:
- https://the-devils-lounge.xyz/
caps:
categorymappings:
- {id: 39, cat: Audio/Audiobook, desc: "Abook: Abook"}
- {id: 1, cat: PC/0day, desc: "Application: 0-Day"}
- {id: 2, cat: PC, desc: "Application: Pc"}
- {id: 3, cat: PC/Mac, desc: "Application: Mac"}
- {id: 38, cat: Books/EBook, desc: "Ebooks: Ebook"}
- {id: 32, cat: TV/Anime, desc: "Episodes: Anime"}
- {id: 33, cat: TV, desc: "Episodes: Classic"}
- {id: 34, cat: TV/Foreign, desc: "Episodes: Foreign"}
- {id: 35, cat: TV/HD, desc: "Episodes: TvHD"}
- {id: 36, cat: TV/SD, desc: "Episodes: TvSD"}
- {id: 37, cat: TV/Sport, desc: "Episodes: TVsports"}
- {id: 22, cat: PC/Games, desc: "Games: Pc"}
- {id: 23, cat: Console/PS4, desc: "Games: Ps4"}
- {id: 24, cat: Console/PS3, desc: "Games: Ps3"}
- {id: 25, cat: Console/PSP, desc: "Games: Ps1"}
- {id: 26, cat: Console/PSP, desc: "Games: Ps2"}
- {id: 27, cat: Console/PSP, desc: "Games: PsP"}
- {id: 28, cat: Console/XBox, desc: "Games: xbox"}
- {id: 29, cat: Console/Wii, desc: "Games: Wii"}
- {id: 30, cat: Console/NDS, desc: "Games: Nintendo"}
- {id: 31, cat: Console/Other, desc: "Games: Dreamcast"}
- {id: 4, cat: Movies/HD, desc: "Movies: 1080P"}
- {id: 5, cat: TV/Anime, desc: "Movies: Anime"}
- {id: 6, cat: Movies/DVD, desc: "Movies: DvdR"}
- {id: 7, cat: Movies/SD, desc: "Movies: Camer"}
- {id: 8, cat: Movies/3D, desc: "Movies: 3D"}
- {id: 9, cat: Movies/WEB-DL, desc: "Movies: WEBRip"}
- {id: 10, cat: XXX, desc: "Movies: XxX"}
- {id: 11, cat: Movies/UHD, desc: "Movies: Real-4K"}
- {id: 12, cat: Movies, desc: "Movies: Classic"}
- {id: 13, cat: Movies/Foreign, desc: "Movies: Foreign"}
- {id: 14, cat: Movies, desc: "Movies: Remux"}
- {id: 15, cat: Movies/HD, desc: "Movies: HD"}
- {id: 16, cat: Movies/SD, desc: "Movies: SD"}
- {id: 17, cat: Movies, desc: "Movies: Packs"}
- {id: 18, cat: Movies, desc: "Movies: Animation"}
- {id: 19, cat: Audio, desc: "Music: Audio"}
- {id: 20, cat: Audio, desc: "Music: Packs"}
- {id: 21, cat: Audio/Video, desc: "Music: Video"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
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: id
options:
id: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: account-login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: /
error:
- selector: div.myFrame:contains("Access Denied")
test:
path: /
selector: a[href="account-logout.php"]
download:
before:
path: thanks.php
method: post
inputs:
torrent: "{{ .DownloadUri.Query.id }}"
selectors:
- selector: a[href^="download.php?id="]
attribute: href
search:
# https://the-devils-lounge.xyz/torrents.php?search=&cat=0&incldead=0&freeleech=0&inclexternal=0&lang=0
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
cat: 0
# 0 active, 1 incldead, 2 onlydead
incldead: 1
# 0 all, 1 notfree, 2 onlyfree
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 both, 1 local, 2 external
inclexternal: 0
# 0 all, 1 English, 2 etc...
lang: 0
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not support imdbid searching or display imdbid links.
keywordsfilters:
- name: re_replace
args: ["(\\w+)", " +$1"] # prepend + to each word
rows:
selector: tr.t-row
fields:
category:
selector: td a[href^="torrents.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: td a[href^="torrents-details.php?id="]
details:
selector: td a[href^="torrents-details.php?id="]
attribute: href
download:
selector: td a[href^="torrents-details.php?id="]
attribute: href
poster:
selector: td a[href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "img\\ssrc=\\\\'(http.+?)\\\\'"
date:
selector: td a[href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "Date\\sAdded\\s:(\\d{2}-\\d{2}-\\d{4})"
- name: dateparse
args: "02-01-2006"
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7) font:first-of-type
filters:
- name: replace
args: [",", ""]
leechers:
selector: td:nth-child(7) font:last-of-type
filters:
- name: replace
args: [",", ""]
description:
selector: td:last-of-type img
attribute: title
downloadvolumefactor:
case:
img[src$="/images/free.gif"]: 0
td:last-of-type img[title="Extern"]: 0 # all external torrents are free
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
# FMEDition 3 (TorrentTrader)

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
links:
- https://www.tokyotosho.info/
- https://tokyotosho.nocensor.biz/
- https://tokyotosho.nocensor.sbs/
legacylinks:
- https://tokyotosho.black-mirror.xyz/
- https://tokyotosho.unblocked.casa/
@@ -21,6 +21,7 @@ legacylinks:
- https://tokyotosho.unblocked.monster/
- https://tokyotosho.nocensor.space/
- https://tokyotosho.nocensor.work/
- https://tokyotosho.nocensor.biz/
settings:
- name: cat

View File

@@ -11,10 +11,9 @@ links:
- https://www.torlock2.com/
- https://www.torlock.icu/
- https://torlock.unblockit.day/
- https://torlock.nocensor.biz/
- https://torlock.nocensor.sbs/
legacylinks:
- https://torlock.com/
- https://torlock.unblockit.lat/
- https://torlock.unblockit.app/
- https://torlock.unblockit.dev/
- https://torlock.unblockit.ltd/
@@ -33,6 +32,7 @@ legacylinks:
- https://torlock.unblockit.tv/
- https://torlock.unblockit.how/
- https://torlock.unblockit.cam/
- https://torlock.nocensor.biz/
caps:
# dont forget to update the search fields category case block

View File

@@ -7,6 +7,8 @@ type: public
encoding: UTF-8
links:
- https://gw1.torlook.info/
- https://torlook.nocensor.sbs/
legacylinks:
- https://torlook.nocensor.biz/
caps:

View File

@@ -1,118 +0,0 @@
---
id: toros
name: TOROS
description: "TOROS is a Public torrent index"
language: en-US
type: public
encoding: UTF-8
links:
- https://www.toros.co/
- https://toros.nocensor.biz/
legacylinks:
- https://toros.nocensor.space/
- https://toros.nocensor.work/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: Movies}
- {id: 2, cat: Audio, desc: Music}
- {id: 3, cat: TV, desc: Television}
- {id: 4, cat: PC/Games, desc: Games}
- {id: 5, cat: PC, desc: Software}
- {id: 6, cat: TV/Anime, desc: Anime}
- {id: 7, cat: XXX, desc: Adult}
- {id: 8, cat: Books, desc: Ebooks}
- {id: 9, cat: TV/Anime, desc: Animation}
- {id: 10, cat: Other, desc: Other}
- {id: 0, cat: Other, desc: TBC}
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: added
options:
added: created
seeds: 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:
paths:
# https://www.toros.co/all/torrents/capital-hill.html?v=&smi=&sma=&i=100&sort=added&o=desc
- path: "{{ if .Keywords }}all/torrents/{{ .Keywords }}.html?v=&smi=&sma=&i=100&sort={{ .Config.sort }}&o={{ .Config.type }}{{ else }}top100.html{{ end }}"
keywordsfilters:
- name: re_replace
args: ["[\\s]+", "-"]
- name: tolower
rows:
selector: table.table-responsive tr:has(a[href^="/torrent/"])
filters:
- name: andmatch
fields:
category:
selector: td:nth-child(1)
attribute: class
filters:
- name: regexp
args: (\d+)
title:
selector: a[href^="/torrent/"]
details:
selector: a[href^="/torrent/"]
attribute: href
download:
selector: a[href^="/torrent/"]
attribute: href
date_day:
selector: td:nth-child(2):contains("day")
optional: true
filters:
- name: fuzzytime
date_ago:
selector: td:nth-child(2):contains("ago")
optional: true
filters:
- name: timeago
date_year:
selector: td:nth-child(2):not(:contains("ago")):not(:contains("day"))
optional: true
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2 Jan -07:00"
date:
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(3)
seeders:
selector: td:nth-child(4)
leechers:
selector: td:nth-child(5)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -8,41 +8,12 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrent9.nl/
- https://torrent9.nocensor.biz/
- https://torrent9.nocensor.sbs/
legacylinks:
- https://www.torrents9.pw/
- https://www.torrent9.ch/
- https://www1.torrent9.ch/
- https://www2.torrent9.ch/
- https://wwv.torrent9.vg/
- https://www.torrent9.vc/
- https://wvw.torrent9.vc/
- https://www.torrent9.lol/
- https://wvw.torrent9.lol/
- https://wwv.torrent9.lol/
- https://ww1.torrent9.lol/
- https://ww5.torrent9.lol/
- https://ww6.torrent9.lol/
- https://www.torrent9.tw/
- https://ww7.torrent9.lol/
- https://www.torrent9.dev/
- https://www.torrent9.sx/
- https://ww1.torrent9.sx/
- https://www.t9.re/
- https://www.t9.vc/
- https://www.torrent9.ai/
- https://torrent9.black-mirror.xyz/
- https://torrent9.unblocked.casa/
- https://torrent9.proxyportal.fun/
- https://torrent9.uk-unblock.xyz/
- https://torrent9.ind-unblock.xyz/
- https://www.torrent9.pl/
- https://www.torrent9.ac/
- https://torrent9.unblocked.bar/
- https://torrent9.proxyportal.pw/
- https://torrent9.uk-unblock.pro/
- https://torrent9.unblockninja.com/ # this is a proxy for torrent9
- https://torrent9.unblocked.rest/
- https://www.torrent9.so/
- https://wvw.torrent9.sh/
- https://www.torrent9.sh/
@@ -58,6 +29,7 @@ legacylinks:
- https://torrent9.nocensor.work/
- https://www.torrent9.pw/
- https://www.torrent9.si/
- https://torrent9.nocensor.biz/
caps:
categorymappings:

View File

@@ -9,9 +9,8 @@ followredirect: true
links:
- https://www.torrentdownload.info/
- https://torrentdownload.unblockit.day/
- https://torrentdownload.nocensor.biz/
- https://torrentdownload.nocensor.sbs/
legacylinks:
- https://torrentdownload.unblockit.app/
- https://torrentdownload.unblocked.rest/
- https://torrentdownload.unblockit.dev/
- https://torrentdownload.unblockit.ltd/
@@ -31,6 +30,7 @@ legacylinks:
- https://torrentdownload.unblockit.tv/
- https://torrentdownload.unblockit.how/
- https://torrentdownload.unblockit.cam/
- https://torrentdownload.nocensor.biz/
caps:
categorymappings:

View File

@@ -10,9 +10,8 @@ links:
- https://www.torrentdownloads.info/
- https://www.torrentdownloads.pro/
- https://torrentdownloads.unblockit.day/
- https://torrentdownloads.nocensor.biz/
- https://torrentdownloads.nocensor.sbs/
legacylinks:
- https://torrentdownloads.unblocked.rest/
- https://torrentdownloads.unblockit.dev/
- https://torrentdownloads.unblockit.ltd/
- https://torrentdownloads.unblockit.link/
@@ -32,6 +31,7 @@ legacylinks:
- https://torrentdownloads.unblockit.tv/
- https://torrentdownloads.unblockit.how/
- https://torrentdownloads.unblockit.cam/
- https://torrentdownloads.nocensor.biz/
caps:
categorymappings:

View File

@@ -10,9 +10,8 @@ links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- https://torrentfunk.unblockit.day/
- https://torrentfunk.nocensor.biz/
- https://torrentfunk.nocensor.sbs/
legacylinks:
- https://torrentfunk.unblockit.top/
- https://torrentfunk.unblockit.lat/
- https://torrentfunk.unblockit.app/
- https://torrentfunk.unblockit.dev/
@@ -32,6 +31,7 @@ legacylinks:
- https://torrentfunk.unblockit.tv/
- https://torrentfunk.unblockit.how/
- https://torrentfunk.unblockit.cam/
- https://torrentfunk.nocensor.biz/
caps:
categorymappings:

View File

@@ -12,11 +12,10 @@ links:
- https://torrentgalaxy.su/
- https://torrentgalaxy.unblockninja.com/
- https://torrentgalaxy.unblockit.day/
- https://torrentgalaxy.nocensor.biz/
- https://torrentgalaxy.nocensor.sbs/
legacylinks:
- https://torrentgalaxy.org/ # redirects to *.to
- https://torrentgalaxy.pw/ # proxy list only
- https://torrentgalaxy.unblockit.dev/
- https://torrentgalaxy.unblockit.ltd/
- https://torrentgalaxy.unblockit.link/
- https://torrentgalaxy.unblockit.buzz/
@@ -34,6 +33,7 @@ legacylinks:
- https://torrentgalaxy.unblockit.tv/
- https://torrentgalaxy.unblockit.how/
- https://torrentgalaxy.unblockit.cam/
- https://torrentgalaxy.nocensor.biz/
caps:
categorymappings:
@@ -75,8 +75,8 @@ caps:
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
@@ -119,7 +119,7 @@ search:
path: torrents.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
lang: 0
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
@@ -157,6 +157,12 @@ search:
magnet:
selector: div a[href^="magnet:?"]
attribute: href
imdbid:
selector: a[href^="/torrents.php?search=tt"]
attribute: href
filters:
- name: regexp
args: tt(\d+)
size:
selector: div span[style^="border-radius"]
seeders:

View File

@@ -13,6 +13,7 @@ caps:
- {id: 92, cat: Books/EBook, desc: "e-Book (ENG)"}
- {id: 78, cat: Books/EBook, desc: "e-Book (HUN)"}
- {id: 80, cat: Other, desc: "Egyéb"}
- {id: 111, cat: Movies/SD, desc: "Film - Cam (HUN)"}
- {id: 85, cat: Movies/DVD, desc: "Film - DVD/9 (ENG)"}
- {id: 66, cat: Movies/DVD, desc: "Film - DVD/9 (HUN)"}
- {id: 84, cat: Movies/HD, desc: "Film - HD (ENG)"}
@@ -32,8 +33,8 @@ caps:
- {id: 97, cat: TV/HD, desc: "Sorozat - HD (HUN)"}
- {id: 86, cat: TV/SD, desc: "Sorozat - XviD (ENG)"}
- {id: 90, cat: TV/SD, desc: "Sorozat - XviD (HUN)"}
- {id: 98, cat: XXX/x264, desc: "XXX - HD"}
- {id: 99, cat: XXX/DVD, desc: "XXX - DVD"}
- {id: 98, cat: XXX/x264, desc: "XXX - HD"}
- {id: 76, cat: XXX/ImageSet, desc: "XXX - Képek"}
- {id: 69, cat: XXX/XviD, desc: "XXX - XviD"}
- {id: 70, cat: Audio, desc: "Zene - HUN"}

View File

@@ -1,99 +0,0 @@
---
id: torrentmax
name: TorrentMax
description: "TorrentMax (토렌트맥스) is a Public KOREAN tracker for Korean media."
language: ko-KR
type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentmax2.net/
legacylinks:
- https://torrentmax15.com/
- https://torrentmax1.net/
caps:
categorymappings:
- {id: "ANIMATION", cat: TV/Anime, desc: "애니 (Animation)"}
- {id: "GAME", cat: Console, desc: "게임 (Games)"}
- {id: "MOVIE_EN", cat: Movies/Foreign, desc: "영화 (Movie EN)"}
- {id: "MOVIE", cat: Movies, desc: "한국영화 (Movie)"}
- {id: "MOVIE_4K", cat: Movies/UHD, desc: "고화질영화 (Movie 4K)"}
- {id: "DRAMA", cat: TV, desc: "드라마 (Drama)"}
- {id: "DRAMA_EN", cat: TV/Foreign, desc: "넷플릭스 (Drama EN)"}
- {id: "DOCU", cat: TV/Documentary, desc: "다큐 (Documentary)"}
- {id: "VARIETY", cat: TV, desc: "예능 (Variety)"}
- {id: "MUSIC", cat: Audio, desc: "한국음악 (Music)"}
- {id: "MUSIK", cat: Audio/Foreign, desc: "외국음악 (Music Foreign)"}
- {id: "MOBILE", cat: PC/Mobile-Other, desc: "모바일 (Mobile)"}
- {id: "UTIL", cat: PC, desc: "유틸 (Software)"}
modes:
search: [q]
tv-search: [q]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- 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.
download:
infohash:
hash:
selector: a[href^="magnet:?xt="]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
title:
selector: h3.panel-title
filters:
- name: trim
- name: validfilename
search:
paths:
# https://torrentmax2.net/search?srows=10&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx=2021&sop=and
- path: "search?srows=50&sfl=wr_subject&sop=and&gr_id={{ if .Keywords }}&stx={{ .Keywords }}{{ else }}tv&stx={{ .Today.Year }}{{ end }}"
- path: "search?srows=50&sfl=wr_subject&sop=and&gr_id={{ if .Keywords }}&stx={{ .Keywords }}&page=2{{ else }}movie&stx={{ .Today.Year }}{{ end }}"
rows:
selector: div.search-media div.media:not(:has(a[href*="/max/PHOTO/"])):not(:has(a[href*="/max/GIRL/"])):not(:has(a[href*="/max/CAM/"])):not(:has(a[href*="/max/notice/"])):not(:has(a[href*="/max/humor/"]))
fields:
category:
selector: div.media-heading a
attribute: href
filters:
- name: regexp
args: "\\/max\\/(.+?)\\/"
title:
selector: div.media-heading a
details:
selector: div.media-heading a
attribute: href
download:
selector: div.media-heading a
attribute: href
poster:
selector: div.photo img
attribute: src
date:
# 2021-01-29T20:44:20+09:00
selector: time
attribute: datetime
size:
text: "512 MB"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -7,12 +7,8 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq133.com/
- https://torrentqq136.com/
legacylinks:
- https://torrentqq115.com/
- https://torrentqq117.com/
- https://torrentqq118.com/
- https://torrentqq119.com/
- https://torrentqq120.com/
- https://torrentqq121.com/
- https://torrentqq122.com/
@@ -25,6 +21,9 @@ legacylinks:
- https://torrentqq130.com/
- https://torrentqq131.com/
- https://torrentqq132.com/
- https://torrentqq133.com/
- https://torrentqq134.com/
- https://torrentqq135.com/
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentsir51.com/
- https://torrentsir52.com/
legacylinks:
- https://torrentsir36.com/
- https://torrentsir37.com/
@@ -24,6 +24,7 @@ legacylinks:
- https://torrentsir48.com/
- https://torrentsir49.com/
- https://torrentsir50.com/
- https://torrentsir51.com/
caps:
categorymappings:

View File

@@ -15,45 +15,28 @@ caps:
# note: when refreshing cats use the tracker.php not the search.php!
# Кино, Видео и ТВ
- {id: 8, cat: Movies, desc: "Арт-хаус и авторское кино"}
- {id: 12, cat: Movies, desc: "Аниме"}
- {id: 371, cat: Movies, desc: "HD"}
- {id: 932, cat: Movies, desc: "HD Полнометражные"}
- {id: 119, cat: Movies, desc: "OST"}
- {id: 149, cat: Movies, desc: "Манга"}
- {id: 148, cat: Movies, desc: "Онгоинги"}
- {id: 215, cat: Movies, desc: "Полнометражные"}
- {id: 202, cat: Movies, desc: "Фэндом"}
- {id: 6, cat: Movies, desc: "Зарубежное кино"}
- {id: 592, cat: Movies, desc: "Азиатские фильмы"}
- {id: 160, cat: Movies, desc: "Индийские фильмы"}
- {id: 813, cat: Movies, desc: "Коллекции"}
- {id: 591, cat: Movies, desc: "Фильмы до 1960 года"}
- {id: 590, cat: Movies, desc: "Фильмы 1961 - 2000"}
- {id: 589, cat: Movies, desc: "Фильмы 2001 - 2005"}
- {id: 588, cat: Movies, desc: "Фильмы 2006 - 2010"}
- {id: 945, cat: Movies, desc: "Фильмы 2011 - 2015"}
- {id: 978, cat: Movies, desc: "Фильмы 2016 - 2019"}
- {id: 479, cat: Movies, desc: "Фильмы на языке оригинала"}
- {id: 978, cat: Movies, desc: "Фильмы 2016 - 2021"}
- {id: 10, cat: Movies, desc: "Мультфильмы"}
- {id: 759, cat: Movies, desc: "Короткометражные"}
- {id: 475, cat: Movies, desc: "СССР"}
- {id: 7, cat: Movies, desc: "Отечественное кино"}
- {id: 227, cat: Movies, desc: "СССР"}
- {id: 888, cat: Movies, desc: "3D и 4K Видео"}
- {id: 399, cat: Movies, desc: "3D и 4K Кинофильмы"}
- {id: 339, cat: Movies, desc: "3D и 4K Мультфильмы"}
- {id: 948, cat: Movies, desc: "3D и 4K Документальные фильмы"}
- {id: 212, cat: Movies, desc: "Театр"}
# DVD/HD видео"
- {id: 832, cat: Movies/HD, desc: "Арт-хаус и авторское кино HD"}
- {id: 835, cat: Movies/HD, desc: "Классика зарубежного кино"}
- {id: 842, cat: Movies/HD, desc: "Зарубежное кино HD"}
- {id: 876, cat: Movies/HD, desc: "HD Коллекции"}
- {id: 845, cat: Movies/HD, desc: "HD до 2000 года"}
- {id: 844, cat: Movies/HD, desc: "HD 2001 - 2005"}
- {id: 843, cat: Movies/HD, desc: "HD 2006 - 2010"}
- {id: 870, cat: Movies/HD, desc: "HD 2011 - 2015"}
- {id: 980, cat: Movies/HD, desc: "HD 2016 - 2019"}
- {id: 980, cat: Movies/HD, desc: "HD 2016 - 2021"}
- {id: 846, cat: Movies/HD, desc: "Мультфильмы HD"}
- {id: 849, cat: Movies/HD, desc: "Отечественное кино DVD/HD"}
- {id: 851, cat: Movies/HD, desc: "Отечественное кино DVD"}
@@ -115,7 +98,7 @@ caps:
- {id: 738, cat: TV, desc: "Теория Лжи (Обмани меня) / Lie to me"}
- {id: 129, cat: TV, desc: "Флэш / The Flash"}
- {id: 161, cat: TV, desc: "Ходячие мертвецы / The Walking Dead; Бойтесь хо..."}
- {id: 986, cat: TV, desc: "Хранилище 13 / Warehouse 13"}
- {id: 984, cat: TV, desc: "Чёрный список / The Blacklist"}
- {id: 472, cat: TV, desc: "Шерлок / Sherlock"}
- {id: 1008, cat: TV, desc: "Штамм / The Strain"}
- {id: 11, cat: TV, desc: "Мультсериалы"}
@@ -131,243 +114,66 @@ caps:
- {id: 584, cat: TV, desc: "Убойная сила"}
- {id: 651, cat: TV, desc: "Улицы разбитых фонарей"}
- {id: 136, cat: TV, desc: "Универ"}
# Документалистика, юмор, спорт"
- {id: 57, cat: TV, desc: "Документальные фильмы и телепередачи"}
- {id: 155, cat: TV, desc: "BBC"}
- {id: 186, cat: TV, desc: "Discovery Channel"}
- {id: 570, cat: TV, desc: "HD"}
- {id: 634, cat: TV, desc: "IMAX/3D"}
- {id: 403, cat: TV, desc: "National Geographic"}
- {id: 824, cat: TV, desc: "Авиация"}
- {id: 855, cat: TV, desc: "Биографии. Личности и кумиры"}
- {id: 856, cat: TV, desc: "Видовые, релаксационные"}
- {id: 443, cat: TV, desc: "Военное дело"}
- {id: 554, cat: TV, desc: "Живая планета"}
- {id: 830, cat: TV, desc: "За рулем"}
- {id: 867, cat: TV, desc: "Информационно-аналитические передачи и публицистика"}
- {id: 633, cat: TV, desc: "История и мировая культура"}
- {id: 531, cat: TV, desc: "Космос"}
- {id: 185, cat: TV, desc: "Криминальная документалистика"}
- {id: 965, cat: TV, desc: "Научно-популярные фильмы"}
- {id: 866, cat: TV, desc: "Паранормальные явления и экстрасенсорика"}
- {id: 523, cat: TV, desc: "Политика и экономика"}
- {id: 58, cat: TV, desc: "Развлекательные телепередачи и шоу, приколы и юмор"}
- {id: 154, cat: TV, desc: "Comedy Club"}
- {id: 551, cat: TV, desc: "Top Gear"}
- {id: 621, cat: TV, desc: "Пост-КВН и Молодежные скетч-шоу"}
# Книги, аудиокниги, обучающие видео"
- {id: 15, cat: Books, desc: "Книги (общий раздел)"}
- {id: 1015, cat: Books, desc: "Собрание сочинений"}
- {id: 1016, cat: Books, desc: "Издательские серии и циклы"}
- {id: 852, cat: Books, desc: "Библиотеки и собрания книг"}
- {id: 1018, cat: Books, desc: "Естественные и формальные науки"}
- {id: 358, cat: Books, desc: "Научно-популярная литература"}
- {id: 1032, cat: Books, desc: "Головоломки, логические задачи и игры"}
- {id: 942, cat: Books, desc: "Иностранные языки"}
- {id: 20, cat: Books, desc: "Авто и мото"}
- {id: 359, cat: Books, desc: "Детские книги и журналы"}
- {id: 97, cat: Books, desc: "Журналы (общий раздел)"}
- {id: 972, cat: Books, desc: "Искусство. Культурология. Путеводители"}
- {id: 356, cat: Books, desc: "Искусство фотографии"}
- {id: 354, cat: Books, desc: "Историческая литература и военное дело"}
- {id: 116, cat: Books, desc: "Комиксы"}
- {id: 973, cat: Books, desc: "Кулинария"}
- {id: 352, cat: Books, desc: "Медицина и здоровье"}
- {id: 816, cat: Books, desc: "Многопредметные энциклопедии и словари"}
- {id: 446, cat: Books, desc: "Ноты и музыкальная литература"}
- {id: 946, cat: Books, desc: "Психология. Философия. Эзотерика."}
- {id: 756, cat: Books, desc: "Радиоэлектроника"}
- {id: 355, cat: Books, desc: "Рисунок, графический дизайн"}
- {id: 353, cat: Books, desc: "Спорт, боевые искусства"}
- {id: 357, cat: Books, desc: "Строительство и ремонт"}
- {id: 94, cat: Books, desc: "Учебные"}
- {id: 93, cat: Books, desc: "Художественные"}
- {id: 640, cat: Books, desc: "Хобби и увлечения, коллекционирование (разное)"}
- {id: 1019, cat: Books, desc: "Художественная литература"}
- {id: 1020, cat: Books, desc: "Собрание сочинений (классическая литература)"}
- {id: 1021, cat: Books, desc: "Собрание сочинений (классическая фантастика/фэнтези)"}
- {id: 1022, cat: Books, desc: "Собрание сочинений (современная литература)"}
- {id: 1023, cat: Books, desc: "Собрание сочинений (современная фантастика/фэнтези)"}
- {id: 1024, cat: Books, desc: "Издательские серии и циклы"}
- {id: 1025, cat: Books, desc: "Библиотеки и собрания книг"}
- {id: 1026, cat: Books, desc: "Классическая русская литература"}
- {id: 1027, cat: Books, desc: "Классическая зарубежная литература"}
- {id: 1036, cat: Books, desc: "Классический детектив"}
- {id: 1028, cat: Books, desc: "Классическая фантастика и фэнтези"}
- {id: 1035, cat: Books, desc: "Классическое фэнтези"}
- {id: 1037, cat: Books, desc: "Современная классика"}
- {id: 1029, cat: Books, desc: "Современная литература"}
- {id: 1030, cat: Books, desc: "Современная фантастика и фэнтези"}
- {id: 1038, cat: Books, desc: "Современная фэнтези"}
- {id: 1040, cat: Books, desc: "Детективы и триллеры"}
- {id: 1041, cat: Books, desc: "Мистика и ужасы"}
- {id: 1043, cat: Books, desc: "Приключения и путешествия. Природа и животные"}
- {id: 1044, cat: Books, desc: "Биографии и мемуары"}
- {id: 1045, cat: Books, desc: "Легенды и мифы, сказки народов мира"}
- {id: 1042, cat: Books, desc: "Детская и подростковая литература"}
- {id: 1039, cat: Books, desc: "Поэзия"}
- {id: 1031, cat: Books, desc: "Ранобэ"}
- {id: 16, cat: Books, desc: "Компьютерная литература"}
- {id: 1033, cat: Books, desc: "Машинное обучение и data mining"}
- {id: 344, cat: Books, desc: "Unix-подобная операционная система"}
- {id: 346, cat: Books, desc: "Веб-дизайн и программирование"}
- {id: 348, cat: Books, desc: "Графика"}
- {id: 351, cat: Books, desc: "Железо (книги о ПК)"}
- {id: 341, cat: Books, desc: "Компьютерные журналы"}
- {id: 347, cat: Books, desc: "Программирование"}
- {id: 1034, cat: Books, desc: "Программирование (теория)"}
- {id: 343, cat: Books, desc: "Программы"}
- {id: 342, cat: Books, desc: "Программы от Microsoft"}
- {id: 349, cat: Books, desc: "Сети"}
- {id: 345, cat: Books, desc: "Базы данных, СУБД"}
- {id: 350, cat: Books, desc: "Хакинг и безопасность"}
- {id: 17, cat: Books, desc: "Аудиокниги"}
- {id: 941, cat: Books, desc: "Детская литература"}
- {id: 940, cat: Books, desc: "Иностранные языки"}
- {id: 468, cat: Books, desc: "Классическая литература (Аудиокниги)"}
- {id: 853, cat: Books, desc: "Психология, тренинги, саморазвитие (Аудиокниги)"}
- {id: 95, cat: Books, desc: "Современная литература (Аудиокниги)"}
- {id: 96, cat: Books, desc: "Учебные аудиокниги (разное)"}
- {id: 854, cat: Books, desc: "Фантастика / Фэнтези / Мистика (Аудиокниги)"}
- {id: 19, cat: Books, desc: "Видеоуроки и обучающие интерактивные DVD"}
- {id: 629, cat: Books, desc: "Авто и мото"}
- {id: 596, cat: Books, desc: "Беременность, роды, уход за новорождённым"}
- {id: 439, cat: Books, desc: "Бизнес"}
- {id: 575, cat: Books, desc: "Для детей"}
- {id: 522, cat: Books, desc: "Иностранные языки"}
- {id: 426, cat: Books, desc: "Йога"}
- {id: 595, cat: Books, desc: "Кулинария"}
- {id: 744, cat: Books, desc: "Массаж"}
- {id: 577, cat: Books, desc: "Медицина и здоровье"}
- {id: 219, cat: Books, desc: "Музыка"}
- {id: 811, cat: Books, desc: "Пикап, правила общения"}
- {id: 217, cat: Books, desc: "ПО"}
- {id: 593, cat: Books, desc: "Психология, тренинги, саморазвитие"}
- {id: 654, cat: Books, desc: "Рисование"}
- {id: 218, cat: Books, desc: "Рыбалка"}
- {id: 747, cat: Books, desc: "Секреты красоты"}
- {id: 576, cat: Books, desc: "Строительство и ремонт"}
- {id: 474, cat: Books, desc: "Танцы"}
- {id: 743, cat: Books, desc: "Фокусы и трюки"}
- {id: 82, cat: Books, desc: "Подкасты"}
# Музыка"
- {id: 216, cat: Audio, desc: "Rocksteady, Ska, Reggae, Dub"}
- {id: 83, cat: Audio, desc: "World Music, Ethnic, Folk"}
- {id: 401, cat: Audio, desc: "Сборники"}
- {id: 598, cat: Audio, desc: "Башкирская, татарская"}
- {id: 617, cat: Audio, desc: "Видео"}
- {id: 616, cat: Audio, desc: "Сборники клипов"}
- {id: 615, cat: Audio, desc: "Сборники"}
- {id: 637, cat: Audio, desc: "Юмор"}
- {id: 22, cat: Audio, desc: "Джаз и Блюз"}
- {id: 606, cat: Audio, desc: "Lossless"}
- {id: 23, cat: Audio, desc: "Классическая музыка"}
- {id: 607, cat: Audio, desc: "Lossless"}
- {id: 27, cat: Audio, desc: "Музыка других жанров"}
- {id: 608, cat: Audio, desc: "Lossless"}
- {id: 24, cat: Audio, desc: "Поп музыка"}
- {id: 470, cat: Audio, desc: "Зарубежная"}
- {id: 599, cat: Audio, desc: "Зарубежная (lossless)"}
- {id: 469, cat: Audio, desc: "Отечественная"}
- {id: 600, cat: Audio, desc: "Отечественная (lossless)"}
- {id: 471, cat: Audio, desc: "Сборники"}
- {id: 25, cat: Audio, desc: "Рэп, Хип-Хоп, R'n'B"}
- {id: 925, cat: Audio, desc: "WebRip Видео (Зарубежное)"}
- {id: 880, cat: Audio, desc: "WebRip Видео (Отечественное)"}
- {id: 410, cat: Audio, desc: "DVD видео"}
- {id: 411, cat: Audio, desc: "HD видео"}
- {id: 420, cat: Audio, desc: "Instrumental"}
- {id: 235, cat: Audio, desc: "Зарубежный Рэп, Хип-Хоп"}
- {id: 611, cat: Audio, desc: "Зарубежный Рэп, Хип-Хоп, R'n'B (lossless)"}
- {id: 921, cat: Audio, desc: "Зарубежный R'n'B"}
- {id: 922, cat: Audio, desc: "Отечественный R'n'B"}
- {id: 234, cat: Audio, desc: "Отечественный Рэп, Хип-Хоп"}
- {id: 612, cat: Audio, desc: "Отечественный Рэп, Хип-Хоп, R'n'B (lossless)"}
- {id: 409, cat: Audio, desc: "Видео (Заруб.)"}
- {id: 412, cat: Audio, desc: "Видео (Отеч.)"}
- {id: 26, cat: Audio, desc: "Саундтреки и Караоке"}
- {id: 484, cat: Audio, desc: "Саундтреки к играм"}
- {id: 579, cat: Audio, desc: "Саундтреки к играм (lossless)"}
- {id: 485, cat: Audio, desc: "Саундтреки к фильмам и сериалам"}
- {id: 580, cat: Audio, desc: "Саундтреки к фильмам и сериалам (lossless)"}
- {id: 735, cat: Audio, desc: "Караоке"}
- {id: 156, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
- {id: 676, cat: Audio, desc: "Шансон"}
- {id: 677, cat: Audio, desc: "Авторская и Военная песня"}
- {id: 678, cat: Audio, desc: "Сборники"}
- {id: 239, cat: Audio, desc: "Видео (Музыка)"}
- {id: 241, cat: Audio, desc: "DVD"}
- {id: 240, cat: Audio, desc: "HD"}
- {id: 376, cat: Audio, desc: "Клипы (Зарубежные)"}
- {id: 375, cat: Audio, desc: "Клипы (Отечественные)"}
- {id: 549, cat: Audio, desc: "Сборники Клипов"}
# Рок-музыка"
- {id: 30, cat: Audio, desc: "Зарубежная Alternative"}
- {id: 267, cat: Audio, desc: "Alternative"}
- {id: 562, cat: Audio, desc: "Alternative (lossless)"}
- {id: 368, cat: Audio, desc: "Emo / Hardcore"}
- {id: 563, cat: Audio, desc: "Emo / Hardcore (lossless)"}
- {id: 369, cat: Audio, desc: "Industrial"}
- {id: 564, cat: Audio, desc: "Industrial (lossless)"}
- {id: 266, cat: Audio, desc: "Punk"}
- {id: 565, cat: Audio, desc: "Punk (lossless)"}
- {id: 364, cat: Audio, desc: "Отечественная Alternative"}
- {id: 370, cat: Audio, desc: "Alternative"}
- {id: 566, cat: Audio, desc: "Alternative (lossless)"}
- {id: 365, cat: Audio, desc: "Emo / Hardcore"}
- {id: 567, cat: Audio, desc: "Emo / Hardcore (lossless)"}
- {id: 366, cat: Audio, desc: "Industrial"}
- {id: 568, cat: Audio, desc: "Industrial (lossless)"}
- {id: 367, cat: Audio, desc: "Punk"}
- {id: 569, cat: Audio, desc: "Punk (lossless)"}
- {id: 29, cat: Audio, desc: "Зарубежный Metal"}
- {id: 254, cat: Audio, desc: "Avant-garde, Experimental"}
- {id: 498, cat: Audio, desc: "Avant-garde, Experimental (lossless)"}
- {id: 253, cat: Audio, desc: "Black, Folk, Pagan, Viking"}
- {id: 499, cat: Audio, desc: "Black, Folk, Pagan, Viking (lossless)"}
- {id: 252, cat: Audio, desc: "Death, Doom, Sludge, Stoner"}
- {id: 500, cat: Audio, desc: "Death, Doom, Sludge, Stoner (lossless)"}
- {id: 251, cat: Audio, desc: "Gothic Metal"}
- {id: 501, cat: Audio, desc: "Gothic Metal (lossless)"}
- {id: 250, cat: Audio, desc: "Grind, Brutal Death"}
- {id: 502, cat: Audio, desc: "Grind, Brutal Death (lossless)"}
- {id: 249, cat: Audio, desc: "Heavy, Power, Progressive"}
- {id: 503, cat: Audio, desc: "Heavy, Power, Progressive (lossless)"}
- {id: 895, cat: Audio, desc: "Symphonic, Operatic"}
- {id: 909, cat: Audio, desc: "Symphonic, Operatic (lossless)"}
- {id: 247, cat: Audio, desc: "Thrash, Speed"}
- {id: 504, cat: Audio, desc: "Thrash, Speed (lossless)"}
- {id: 28, cat: Audio, desc: "Зарубежный Rock"}
- {id: 260, cat: Audio, desc: "Classic Rock & Hard Rock"}
- {id: 505, cat: Audio, desc: "Classic Rock & Hard Rock (lossless)"}
- {id: 258, cat: Audio, desc: "Folk-Rock"}
- {id: 506, cat: Audio, desc: "Folk-Rock (lossless)"}
- {id: 444, cat: Audio, desc: "Garage Rock, Post-Punk, Gothic Rock, Synth Pop"}
- {id: 507, cat: Audio, desc: "Garage Rock, Post-Punk, Gothic Rock, Synth Pop (lossless)"}
- {id: 256, cat: Audio, desc: "Instrumental"}
- {id: 508, cat: Audio, desc: "Instrumental (lossless)"}
- {id: 257, cat: Audio, desc: "Indie Rock, Britpop, Pop-Rock, Soft Rock"}
- {id: 509, cat: Audio, desc: "Indie Rock, Britpop, Pop-Rock, Soft Rock (lossless)"}
- {id: 259, cat: Audio, desc: "Progressive & Art-Rock"}
- {id: 510, cat: Audio, desc: "Progressive & Art-Rock (lossless)"}
- {id: 255, cat: Audio, desc: "Rockabilly, Psychobilly, Rock'n'Roll"}
- {id: 511, cat: Audio, desc: "Rockabilly, Psychobilly, Rock'n'Roll (lossless)"}
- {id: 99, cat: Audio, desc: "Отечественный Метал"}
- {id: 336, cat: Audio, desc: "Black, Folk, Pagan, Viking"}
- {id: 512, cat: Audio, desc: "Black, Folk, Pagan, Viking (lossless)"}
- {id: 338, cat: Audio, desc: "Death, Grind"}
- {id: 513, cat: Audio, desc: "Death, Grind (lossless)"}
- {id: 335, cat: Audio, desc: "Doom, Gothic"}
- {id: 514, cat: Audio, desc: "Doom, Gothic (lossless)"}
- {id: 333, cat: Audio, desc: "Hard & Heavy, Power, Speed, Thrash"}
- {id: 515, cat: Audio, desc: "Hard & Heavy, Power, Speed, Thrash (lossless)"}
- {id: 334, cat: Audio, desc: "Progressive, Art"}
- {id: 516, cat: Audio, desc: "Progressive, Art (lossless)"}
- {id: 31, cat: Audio, desc: "Отечественный Рок"}
- {id: 360, cat: Audio, desc: "Classic Rock & Hard Rock & Rock'n'Roll"}
- {id: 517, cat: Audio, desc: "Classic Rock & Hard Rock & Rock'n..."}
- {id: 361, cat: Audio, desc: "Progressive & Art-Rock"}
- {id: 518, cat: Audio, desc: "Progressive & Art-Rock (lossless)"}
- {id: 362, cat: Audio, desc: "Pop-Rock & Soft Rock & Folk Rock"}
- {id: 519, cat: Audio, desc: "Pop-Rock & Soft Rock & Folk Rock (lossless)"}
- {id: 141, cat: Audio, desc: "Experimental"}
@@ -375,45 +181,27 @@ caps:
- {id: 32, cat: Audio, desc: "Видео (Рок-музыка)"}
- {id: 374, cat: Audio, desc: "Alternative"}
- {id: 238, cat: Audio, desc: "DVD"}
- {id: 573, cat: Audio, desc: "Experimental"}
- {id: 237, cat: Audio, desc: "HD"}
- {id: 574, cat: Audio, desc: "J-Rock / Pop / Visual Kei"}
- {id: 571, cat: Audio, desc: "Metal"}
- {id: 572, cat: Audio, desc: "Rock"}
- {id: 373, cat: Audio, desc: "Документалистика"}
- {id: 400, cat: Audio, desc: "Сборники Рок-Музыки"}
# Электронная музыка"
- {id: 33, cat: Audio, desc: "Trance, Goa-Trance, Psy-Trance, PsyChill, Ambient Dub"}
- {id: 429, cat: Audio, desc: "Trance - Albums, Compilations"}
- {id: 430, cat: Audio, desc: "Trance - Radioshows, Livesets, Mixes"}
- {id: 874, cat: Audio, desc: "Trance - Singles, EPs"}
- {id: 533, cat: Audio, desc: "Trance - Singles, Albums, LPs (lossless)"}
- {id: 428, cat: Audio, desc: "Goa-Trance / Psychedelic / Psy-Chill / Ambient Dub"}
- {id: 534, cat: Audio, desc: "Goa-Trance / Psychedelic / Psy-Chill / Ambient Dub..."}
- {id: 658, cat: Audio, desc: "Сборники"}
- {id: 34, cat: Audio, desc: "House, Techno"}
- {id: 438, cat: Audio, desc: "Techno / Minimal / Tech House"}
- {id: 435, cat: Audio, desc: "House / Electro House"}
- {id: 536, cat: Audio, desc: "House / Electro House (lossless)"}
- {id: 659, cat: Audio, desc: "Сборники House / Electro House"}
- {id: 436, cat: Audio, desc: "Progressive House / Deep House"}
- {id: 35, cat: Audio, desc: "Drum & Bass, Jungle, Electro, Breakbeat, IDM,..."}
- {id: 416, cat: Audio, desc: "Breakbeat / Beats"}
- {id: 540, cat: Audio, desc: "Breakbeat / Beats (lossless)"}
- {id: 415, cat: Audio, desc: "Drum & Bass / Jungle"}
- {id: 543, cat: Audio, desc: "Drum & Bass / Jungle (lossless)"}
- {id: 417, cat: Audio, desc: "Electro"}
- {id: 419, cat: Audio, desc: "Hardcore / Hardstyle"}
- {id: 418, cat: Audio, desc: "Idm"}
- {id: 660, cat: Audio, desc: "Сборники"}
- {id: 36, cat: Audio, desc: "Chillout, Lounge, Downtempo, Trip-Hop"}
- {id: 538, cat: Audio, desc: "Lossless"}
- {id: 402, cat: Audio, desc: "Сборники"}
- {id: 84, cat: Audio, desc: "Industrial"}
- {id: 242, cat: Audio, desc: "Видео (Электронная музыка)"}
- {id: 244, cat: Audio, desc: "DVD"}
- {id: 243, cat: Audio, desc: "HD"}
- {id: 377, cat: Audio, desc: "Клипы"}
# Игры для PC"
- {id: 40, cat: PC/Games, desc: "Новые раздачи"}
- {id: 65, cat: PC/Games, desc: "Горячие Новинки"}
@@ -424,7 +212,6 @@ caps:
- {id: 902, cat: PC/Games, desc: "Counter Strike"}
- {id: 102, cat: PC/Games, desc: "Horror"}
- {id: 456, cat: PC/Games, desc: "Horror до 2003 г."}
- {id: 822, cat: PC/Games, desc: "Азартные игры"}
- {id: 68, cat: PC/Games, desc: "Аркады"}
- {id: 464, cat: PC/Games, desc: "Аркады до 2003 г."}
- {id: 73, cat: PC/Games, desc: "Гонки"}
@@ -445,14 +232,6 @@ caps:
- {id: 74, cat: PC/Games, desc: "Другие симуляторы"}
- {id: 71, cat: PC/Games, desc: "Автосимуляторы"}
- {id: 72, cat: PC/Games, desc: "Авиасимуляторы"}
- {id: 70, cat: PC/Games, desc: "Стратегии"}
- {id: 459, cat: PC/Games, desc: "Стратегии до 2003 г."}
- {id: 903, cat: PC/Games, desc: "TBS (пошаговые стратегии)"}
- {id: 904, cat: PC/Games, desc: "RTS (стратегии в реальном времени)"}
- {id: 905, cat: PC/Games, desc: "Экономические стратегии"}
- {id: 496, cat: PC/Games, desc: "Файтинги"}
- {id: 906, cat: PC/Games, desc: "Репаки от R.G.Packers Torrents.Local"}
- {id: 961, cat: PC/Games, desc: "Игры с эмуляторами"}
# Программы и дизайн"
- {id: 918, cat: PC, desc: "Новые раздачи"}
- {id: 50, cat: PC, desc: "Веб-разработка и Программирование"}
@@ -505,28 +284,18 @@ caps:
- {id: 285, cat: PC, desc: "Работа с жёстким диском"}
- {id: 301, cat: PC, desc: "Резервное копирование"}
- {id: 288, cat: PC, desc: "Серверное ПО для Windows"}
- {id: 298, cat: PC, desc: "Сервисное обслуживание компьютера"}
- {id: 286, cat: PC, desc: "Скринсейверы"}
- {id: 54, cat: PC, desc: "Разное"}
- {id: 622, cat: PC, desc: "Обучающие программы, энциклопедии, электронные пособия ..."}
- {id: 303, cat: PC, desc: "Системы для бизнеса, офиса, научной и проектной работы"}
- {id: 313, cat: PC, desc: "Медицинский софт"}
- {id: 305, cat: PC, desc: "Офисные системы"}
- {id: 312, cat: PC, desc: "Программы для архитекторов и дизайнеров интерьеров"}
- {id: 314, cat: PC, desc: "Прочие справочные системы"}
- {id: 308, cat: PC, desc: "Работа с PDF и DjVu"}
- {id: 307, cat: PC, desc: "Распознавание текста, звука и синтез речи"}
- {id: 311, cat: PC, desc: "САПР"}
- {id: 306, cat: PC, desc: "Системы для бизнеса"}
- {id: 310, cat: PC, desc: "Системы для научной работы"}
- {id: 309, cat: PC, desc: "Словари, переводчики"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
@@ -563,11 +332,11 @@ login:
"login_username": "{{ .Config.username }}"
"login_password": "{{ .Config.password }}"
autologin: 1
login: "Log in"
login: "Вход"
error:
- selector: h4.text-danger
test:
path: tracker.php
path: /
selector: a[href="./login.php?logout=1"]
search:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentview52.com/
- https://torrentview53.com/
legacylinks:
- https://torrentview.net/
- https://torrentview.co/
@@ -24,6 +24,7 @@ legacylinks:
- https://torrentview47.com/
- https://torrentview49.com/
- https://torrentview50.com/
- https://torrentview52.com/
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentwiz39.com/
- https://torrentwiz40.com/
legacylinks:
- https://torrentwiz24.me/
- https://torrentwiz25.me/
@@ -24,6 +24,7 @@ legacylinks:
- https://torrentwiz36.com/
- https://torrentwiz37.com/
- https://torrentwiz38.com/
- https://torrentwiz39.com/
caps:
categorymappings:

View File

@@ -70,6 +70,7 @@ caps:
- {id: 48, cat: PC, desc: "Programlar Windows"}
- {id: 49, cat: PC, desc: "Programlar MaC"}
- {id: 50, cat: PC, desc: "Programlar Mobile"}
- {id: 96, cat: PC, desc: "Programlar Linux"}
modes:
search: [q]

View File

@@ -27,7 +27,7 @@ caps:
- {id: 6300, cat: TV/Anime, desc: "Animations - Hentai"}
- {id: 6900, cat: TV/Anime, desc: "Animations - Other"}
- {id: 6120, cat: TV/Anime, desc: "Animations - Shoujo Ai"}
- {id: 6330, cat: TV/Anime, desc: "Animations - Shounen Ai"}
- {id: 6130, cat: TV/Anime, desc: "Animations - Shounen Ai"}
- {id: 6320, cat: TV/Anime, desc: "Animations - Yaoi"}
- {id: 6310, cat: TV/Anime, desc: "Animations - Yuri"}
- {id: 14000, cat: PC, desc: "Applications - All"}

View File

@@ -0,0 +1,192 @@
---
id: xthor-api
name: Xthor (API)
description: "General French Private Tracker"
language: fr-FR
type: private
encoding: windows-1252
requestDelay: 2.5
links:
- https://xthor.tk/
legacylinks:
- https://xthor.bz/
- https://xthor.to/
caps:
categorymappings:
# Movies / Films
- {id: 118, cat: Movies/BluRay, desc: "Films/2160p/Bluray"}
- {id: 119, cat: Movies/UHD, desc: "Films/2160p/Remux"}
- {id: 107, cat: Movies/UHD, desc: "Films/2160p/x265"}
- {id: 1, cat: Movies/BluRay, desc: "Films/1080p/BluRay"}
- {id: 2, cat: Movies/HD, desc: "Films/1080p/Remux"}
- {id: 100, cat: Movies/HD, desc: "Films/1080p/x265"}
- {id: 4, cat: Movies/HD, desc: "Films/1080p/x264"}
- {id: 5, cat: Movies/HD, desc: "Films/720p/x264"}
- {id: 7, cat: Movies/SD, desc: "Films/SD/x264"}
- {id: 3, cat: Movies/3D, desc: "Films/3D"}
- {id: 6, cat: Movies/SD, desc: "Films/XviD"}
- {id: 8, cat: Movies/DVD, desc: "Films/DVD"}
- {id: 122, cat: Movies/HD, desc: "Films/HDTV"}
- {id: 94, cat: Movies/WEB-DL, desc: "Films/WEBDL"}
- {id: 95, cat: Movies/WEB-DL, desc: "Films/WEBRiP"}
- {id: 12, cat: TV/Documentary, desc: "Films/Documentaire"}
- {id: 31, cat: Movies/Other, desc: "Films/Animation"}
- {id: 33, cat: Movies/Other, desc: "Films/Spectacle"}
- {id: 125, cat: TV/Sport, desc: "Films/Sports"}
- {id: 20, cat: Audio/Video, desc: "Films/Concerts, Clips"}
- {id: 9, cat: Movies/Other, desc: "Films/VOSTFR"}
# TV Series / Series TV
- {id: 104, cat: TV/Other, desc: "Series/BluRay"}
- {id: 13, cat: TV, desc: "Series/Pack VF"}
- {id: 15, cat: TV/HD, desc: "Series/HD VF"}
- {id: 14, cat: TV/SD, desc: "Series/SD VF"}
- {id: 98, cat: TV/Other, desc: "Series/Pack VOSTFR"}
- {id: 17, cat: TV/HD, desc: "Series/HD VOSTFR"}
- {id: 16, cat: TV/SD, desc: "Series/SD VOSTFR"}
- {id: 101, cat: TV/Anime, desc: "Series/Packs Anime"}
- {id: 32, cat: TV/Anime, desc: "Series/Animes"}
- {id: 110, cat: TV/Anime, desc: "Series/Anime VOSTFR"}
- {id: 123, cat: TV/Other, desc: "Series/Animation"}
- {id: 109, cat: TV/Documentary, desc: "Series/DOC"}
- {id: 34, cat: TV/Sport, desc: "Series/Sport"}
- {id: 30, cat: TV/Other, desc: "Series/Emission TV"}
# Porn / XxX
- {id: 36, cat: XXX, desc: "MISC/XxX/Films"}
- {id: 105, cat: XXX, desc: "MISC/XxX/Séries"}
- {id: 114, cat: XXX, desc: "MISC/XxX/Lesbiennes"}
- {id: 115, cat: XXX, desc: "MISC/XxX/Gays"}
- {id: 113, cat: XXX, desc: "MISC/XxX/Hentai"}
- {id: 120, cat: XXX, desc: "MISC/XxX/Magazines"}
# Books / Livres
- {id: 24, cat: Books/EBook, desc: "Livres/Romans"}
- {id: 124, cat: Audio/Audiobook, desc: "Livres/Audio Books"}
- {id: 96, cat: Books/Mags, desc: "Livres/Magazines"}
- {id: 99, cat: Books/Other, desc: "Livres/Bandes dessinées"}
- {id: 116, cat: Books/EBook, desc: "Livres/Romans Jeunesse"}
- {id: 102, cat: Books/Comics, desc: "Livres/Comics"}
- {id: 103, cat: Books/Other, desc: "Livres/Mangas"}
# Softwares / Logiciels
- {id: 25, cat: PC/Games, desc: "Logiciels/Jeux PC"}
- {id: 27, cat: Console/PS3, desc: "Logiciels/Playstation"}
- {id: 111, cat: PC/Mac, desc: "Logiciels/Jeux MAC"}
- {id: 26, cat: Console/XBox 360, desc: "Logiciels/XboX"}
- {id: 112, cat: PC, desc: "Logiciels/Jeux Linux"}
- {id: 28, cat: Console/Wii, desc: "Logiciels/Nintendo"}
- {id: 29, cat: Console/NDS, desc: "Logiciels/NDS"}
- {id: 117, cat: PC, desc: "Logiciels/ROM"}
- {id: 21, cat: PC, desc: "Logiciels/Applis PC"}
- {id: 22, cat: PC/Mac, desc: "Logiciels/Applis Mac"}
- {id: 23, cat: PC/Mobile-Android, desc: "Logiciels/Smartphone"}
modes:
search: [q]
movie-search: [q, tmdbid]
tv-search: [q, season, ep]
book-search: [q]
settings:
- name: passkey
type: text
label: Passkey
- name: info_key
type: info
label: About your Passkey
default: "Find your Passkey on <a href=\"https://xthor.tk/api_doc.php\" target =_blank>Xthor > API page</a>."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: multilanguage
type: text
label: Replace MULTI by
default: MULTI
- name: subfrench
type: text
label: Replace "VOSTFR/SUBFRENCH" by
default: ""
search:
paths:
# https://api.xthor.tk/?passkey=<redacted>&search=&category=&freeleech=&tmdbid=&size=&accent=&price=&page=
- path: "https://api.xthor.tk/"
inputs:
passkey: "{{ .Config.passkey }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}}+{{end}}{{ else }}{{ end }}"
search: "{{ if .Query.TMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
tmdbid: "{{ .Query.TMDBID }}"
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
response:
type: json
rows:
selector: torrents
# jackett yml json does not currently support andmatch #13083
# filters:
# - name: andmatch
fields:
id:
selector: id
category:
selector: category
title_original:
selector: name
title_multi:
text: "{{ .Result.title_original }}"
filters:
- name: re_replace
args: ["(?i)[\\.\\s\\[\\-]multi[\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}."]
title_multi_out:
text: "{{ if .Config.multilanguage }}{{ .Result.title_multi }}{{ else }}{{ .Result.title_original }}{{ end }}"
title_vostfr:
text: "{{ .Result.title_multi_out }}"
filters:
- name: re_replace
args: ["(?i)[\\.\\s\\[\\-]vostfr[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}."]
- name: re_replace
args: ["(?i)[\\.\\s\\[\\-]subfrench[\\.\\s\\]\\-]", ".{{ .Config.subfrench }}."]
title:
text: "{{ if .Config.subfrench }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_multi_out }}{{ end }}"
details:
text: "{{ .Config.sitelink }}details.php?id={{ .Result.id }}"
download:
selector: download_link
poster:
selector: descr
filters:
- name: regexp
args: ["({{ .Config.sitelink }}info_images\\/allocine\\/covers\\/film\\/small_\\d+?\\.jpg)"]
tmdbid:
selector: tmdb_id
files:
selector: numfiles
date:
selector: added
size:
selector: size
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
downloadvolumefactor:
# api returns 0=false, 1=true
selector: freeleech
case:
0: 1 # not free
1: 0 # freeleech
uploadvolumefactor:
text: 1
minimumseedtime:
# 24 hours (as seconds = 1 x 24 x 60 x 60)
text: 86400
minimumratio:
# minimum ratio per torrent is 0.8
text: 0.8
# json api

View File

@@ -12,8 +12,12 @@ legacylinks:
caps:
categorymappings:
- {id: 74, cat: TV/Sport, desc: "AEW"}
- {id: 75, cat: TV/Sport, desc: "AEW HD"}
- {id: 74, cat: TV/Sport, desc: "AEW Dynamite"}
- {id: 75, cat: TV/Sport, desc: "AEW Dynamite HD"}
- {id: 78, cat: TV/Sport, desc: "AEW PPV's"}
- {id: 79, cat: TV/Sport, desc: "AEW PPV's HD"}
- {id: 76, cat: TV/Sport, desc: "AEW Rampage"}
- {id: 77, cat: TV/Sport, desc: "AEW Rampage HD"}
- {id: 47, cat: TV/Sport, desc: "Boxing"}
- {id: 14, cat: Movies, desc: "Documentary"}
- {id: 20, cat: TV/Sport, desc: "DVD"}

View File

@@ -8,11 +8,12 @@ encoding: UTF-8
links:
- https://yourbittorrent.com/
- https://yourbittorrent2.com/
- https://yourbittorrent.nocensor.biz/
- https://yourbittorrent.nocensor.sbs/
legacylinks:
- https://yourbittorrent.host/
- https://yourbittorrent.nocensor.space/
- https://yourbittorrent.nocensor.work/
- https://yourbittorrent.nocensor.biz/
caps:
categorymappings:

View File

@@ -11,12 +11,11 @@ links:
- https://yts.mx/
- https://yts.unblockit.day/
- https://yts.unblockninja.com/
- https://yts.nocensor.biz/
- https://yts.nocensor.sbs/
legacylinks:
- https://yts.ag/
- https://yts.am/
- https://yts.lt/
- https://yts.root.yt/
- https://yts.unblockit.ltd/
- https://yts.unblockit.buzz/
- https://yts.unblockit.club/
@@ -33,6 +32,7 @@ legacylinks:
- https://yts.unblockit.tv/
- https://yts.unblockit.how/
- https://yts.unblockit.cam/
- https://yts.nocensor.biz/
caps:
categorymappings:

View File

@@ -120,7 +120,8 @@ search:
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 1
# blank = incldead
incldead: ""
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"

View File

@@ -6,7 +6,7 @@ language: fr-FR
type: public
encoding: UTF-8
links:
- https://www.zetorrents.bz/
- https://www.zetorrents.nl/
legacylinks:
- https://www.zetorrents.co/
- https://www.zetorrents.io/
@@ -18,6 +18,7 @@ legacylinks:
- https://wvw.zetorrents.org/
- https://www.zetorrents.cc/
- https://www.zetorrents.tv/
- https://www.zetorrents.bz/
caps:
categories:

View File

@@ -10,9 +10,8 @@ links:
- https://zooqle.com/
- https://zooqle.unblockninja.com/
- https://zooqle.unblockit.day/
- https://zooqle.nocensor.biz/
- https://zooqle.nocensor.sbs/
legacylinks:
- https://zooqle.unblockit.app/
- https://zooqle.unblocked.rest/
- https://zooqle.unblockit.dev/
- https://zooqle.unblockit.ltd/
@@ -32,6 +31,7 @@ legacylinks:
- https://zooqle.unblockit.tv/
- https://zooqle.unblockit.how/
- https://zooqle.unblockit.cam/
- https://zooqle.nocensor.biz/
caps:
categorymappings:
@@ -83,6 +83,10 @@ search:
title:
selector: td:nth-child(2) a
category:
text: other
category|noappend:
# cat may be missing
optional: true
selector: td:nth-child(2) > i
attribute: class
filters:

View File

@@ -99,6 +99,7 @@ login:
search:
paths:
# http://ztracker.cc/browse_old.php?keywords=&search_type=t_both&cat=0&ts_type=1
- path: browse_old.php
keywordsfilters:
- name: re_replace
@@ -108,6 +109,8 @@ search:
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# t_name, t_description, t_both, t_uploader
search_type: "{{ if .Query.IMDBID }}t_description{{ else }}t_name{{ end }}"
# 0 active, 1 both, 2 inactive, 3 free, 19 bluray, 4 silver, 10 doubleup, 5 today, 6 yesterday, 7 week, 8 month, 9 last ten, external
ts_type: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not return imdb link in results

View File

@@ -252,7 +252,7 @@ namespace Jackett.Common.Indexers
var completed = torrent.QuerySelector("td:nth-of-type(3)").TextContent; // Completed
var seeders = torrent.QuerySelector("td.text-green").TextContent; // Seeders
var leechers = torrent.QuerySelector("td.text-red").TextContent; // Leechers
var size = torrent.QuerySelector("td:nth-of-type(5)").TextContent; // Size
var size = torrent.QuerySelector("td:nth-of-type(6)").TextContent; // Size
var release = new ReleaseInfo
{

View File

@@ -33,6 +33,7 @@ namespace Jackett.Common.Indexers
"https://cinecalidad.unbl0ck.xyz/",
"https://cinecalidad.u4m.club/",
"https://cinecalidad.mrunblock.icu/",
"https://www.cinecalidad.lat/",
"https://www.cine-calidad.com/"
};
@@ -41,7 +42,7 @@ namespace Jackett.Common.Indexers
: base(id: "cinecalidad",
name: "Cinecalidad",
description: "Películas Full HD en Latino Dual.",
link: "https://www.cinecalidad.lat/",
link: "https://cinecalidad3.com/",
caps: new TorznabCapabilities
{
MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q }

View File

@@ -56,6 +56,7 @@ namespace Jackett.Common.Indexers
"https://www.divxtotal.li/",
"https://www.divxtotal.nu/",
"https://www.divxtotal.se/",
"https://www.divxtotal.pm/",
"https://www.divxtotal.nl/"
};
@@ -64,7 +65,7 @@ namespace Jackett.Common.Indexers
: base(id: "divxtotal",
name: "DivxTotal",
description: "DivxTotal is a SPANISH site for Movies, TV series and Software",
link: "https://www.divxtotal.pm/",
link: "https://www.divxtotal.re/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>

View File

@@ -39,10 +39,11 @@ namespace Jackett.Common.Indexers
private const string SearchUrl = "buscar/";
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://dontorrent.pm/",
"https://dontorrent.wf/",
"https://todotorrents.net/",
"https://tomadivx.net/",
"https://seriesblanco.one/"
"https://seriesblanco.one/",
"https://verdetorrent.com/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
@@ -53,6 +54,8 @@ namespace Jackett.Common.Indexers
"https://dontorrent.sk/",
"https://dontorrent.li/",
"https://dontorrent.top/",
"https://dontorrent.pm/",
"https://dontorrent.re/",
"https://dontorrent.eu/"
};
@@ -71,7 +74,7 @@ namespace Jackett.Common.Indexers
: base(id: "dontorrent",
name: "DonTorrent",
description: "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL",
link: "https://dontorrent.pm/",
link: "https://dontorrent.wf/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>

View File

@@ -21,12 +21,13 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://www.erai-raws.info/",
"https://beta.erai-raws.info/",
"https://erairaws.nocensor.biz/"
"https://erairaws.nocensor.sbs/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
"https://erairaws.nocensor.space/",
"https://erairaws.nocensor.work/"
"https://erairaws.nocensor.work/",
"https://erairaws.nocensor.biz/"
};
public EraiRaws(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,

View File

@@ -66,36 +66,36 @@ namespace Jackett.Common.Indexers
Type = "private";
AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime");
AddCategoryMapping(3, TorznabCatType.BooksOther, "Tutorials");
AddCategoryMapping(5, TorznabCatType.BooksEBook, "Ebooks");
AddCategoryMapping(29, TorznabCatType.AudioAudiobook, "Abooks");
AddCategoryMapping(9, TorznabCatType.ConsoleNDS, "Game-NIN");
AddCategoryMapping(10, TorznabCatType.PCGames, "Game-WIN");
AddCategoryMapping(11, TorznabCatType.ConsolePS3, "Game-PS");
AddCategoryMapping(12, TorznabCatType.ConsoleXBox, "Game-XBOX");
AddCategoryMapping(7, TorznabCatType.Audio, "Music");
AddCategoryMapping(2, TorznabCatType.PCMac, "App-MAC");
AddCategoryMapping(4, TorznabCatType.PC0day, "App-WIN");
AddCategoryMapping(27, TorznabCatType.PC, "App-LINUX");
AddCategoryMapping(29, TorznabCatType.AudioAudiobook, "Books (a)");
AddCategoryMapping(5, TorznabCatType.BooksEBook, "Books (e)");
AddCategoryMapping(27, TorznabCatType.PC, "LINUX");
AddCategoryMapping(2, TorznabCatType.PCMac, "MAC");
AddCategoryMapping(6, TorznabCatType.PCMobileOther, "Mobile");
AddCategoryMapping(7, TorznabCatType.Audio, "Music");
AddCategoryMapping(8, TorznabCatType.Other, "Other");
AddCategoryMapping(20, TorznabCatType.TVHD, "TV-HD");
AddCategoryMapping(21, TorznabCatType.TVSD, "TV-SD");
AddCategoryMapping(22, TorznabCatType.TVHD, "TV-x265");
AddCategoryMapping(23, TorznabCatType.TV, "TV-Packs");
AddCategoryMapping(24, TorznabCatType.TVSD, "TV-Retail-SD");
AddCategoryMapping(25, TorznabCatType.TVHD, "TV-Retail-HD");
AddCategoryMapping(28, TorznabCatType.TVSport, "TV-Sports");
AddCategoryMapping(28, TorznabCatType.TVSport, "Sports");
AddCategoryMapping(3, TorznabCatType.BooksOther, "Tutorials");
AddCategoryMapping(9, TorznabCatType.ConsoleNDS, "Game-NIN");
AddCategoryMapping(11, TorznabCatType.ConsolePS3, "Game-PS");
AddCategoryMapping(10, TorznabCatType.PCGames, "Game-WIN");
AddCategoryMapping(12, TorznabCatType.ConsoleXBox, "Game-XBOX");
AddCategoryMapping(13, TorznabCatType.Movies3D, "Movie-3D");
AddCategoryMapping(26, TorznabCatType.MoviesUHD, "Movie-4K");
AddCategoryMapping(14, TorznabCatType.MoviesBluRay, "Movie-Bluray");
AddCategoryMapping(15, TorznabCatType.MoviesDVD, "Movie-DVDR");
AddCategoryMapping(18, TorznabCatType.Movies, "Movie-Packs");
AddCategoryMapping(16, TorznabCatType.MoviesHD, "Movie-x264");
AddCategoryMapping(17, TorznabCatType.MoviesHD, "Movie-x265");
AddCategoryMapping(18, TorznabCatType.Movies, "Movie-Packs");
AddCategoryMapping(19, TorznabCatType.MoviesSD, "Movie-XVID");
AddCategoryMapping(26, TorznabCatType.MoviesUHD, "Movie-4K");
AddCategoryMapping(20, TorznabCatType.TVHD, "TV-HD");
AddCategoryMapping(21, TorznabCatType.TVSD, "TV-SD");
AddCategoryMapping(25, TorznabCatType.TVHD, "TV-Retail-HD");
AddCategoryMapping(24, TorznabCatType.TVSD, "TV-Retail-SD");
AddCategoryMapping(23, TorznabCatType.TV, "TV-Packs");
AddCategoryMapping(22, TorznabCatType.TVHD, "TV-x265");
AddCategoryMapping(50, TorznabCatType.XXXx264, "xXx-HD");
AddCategoryMapping(49, TorznabCatType.XXXSD, "xXx-SD");
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
@@ -139,9 +139,8 @@ namespace Jackett.Common.Indexers
{
foreach (var cat in MapTorznabCapsToTrackers(query))
queryCollection.Add("c" + cat, "1");
queryCollection.Add("incldead", "0");
}
queryCollection.Add("incldead", "1");
searchUrl += "?" + queryCollection.GetQueryString();
var response = await RequestWithCookiesAndRetryAsync(searchUrl, referer: BrowseUrl);
if (response.IsRedirect)
@@ -185,18 +184,23 @@ namespace Jackett.Common.Indexers
var qLink = row.QuerySelector("td:nth-of-type(3) a");
release.Link = new Uri(SiteLink + qLink.GetAttribute("href"));
var added = row.QuerySelector("td:nth-of-type(7)").TextContent.Trim(); //column changed from 7 to 6
var added = row.QuerySelector("td:nth-of-type(7)").TextContent.Trim();
var date = added.Substring(0, 10);
var time = added.Substring(11, 8); //date layout wasn't quite right
var dateTime = date + time;
release.PublishDate = DateTime.ParseExact(dateTime, "yyyy-MM-ddHH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToLocalTime();
var sizeStr = row.QuerySelector("td:nth-of-type(6)").TextContent.Trim(); //size column moved from 8 to 5
var sizeStr = row.QuerySelector("td:nth-of-type(6)").TextContent.Trim();
release.Size = ReleaseInfo.GetBytes(sizeStr);
release.Files = ParseUtil.CoerceInt(row.QuerySelector("td:nth-of-type(8)").TextContent.Trim());
release.Grabs = ParseUtil.CoerceInt(row.QuerySelector("td:nth-of-type(10)").TextContent.Trim());
release.Seeders = ParseUtil.CoerceInt(row.QuerySelector("td:nth-of-type(11)").TextContent.Trim());
release.Peers = ParseUtil.CoerceInt(row.QuerySelector("td:nth-of-type(12)").TextContent.Trim()) + release.Seeders;
release.DownloadVolumeFactor = 0;
release.UploadVolumeFactor = 1;
releases.Add(release);
}
}

View File

@@ -132,7 +132,7 @@ namespace Jackett.Common.Indexers
Language = "ru-RU";
Type = "semi-private";
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "25234600906DF82792DE9F4AA75A5AED2F226577"); // for *.run expired 07/Jun/21
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "98D43B6E740B42C02A9BD1A9D1A813E4350BE332"); // for *.win expired 26/Mar/22
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "34287FB53A58EC6AE590E7DD7E03C70C0263CADC"); // for *.tw expired 01/Apr/21
// TODO: review if there is only this category (movie search is enabled)

View File

@@ -37,8 +37,8 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://www.mejortorrentes.org/",
"https://mejortorrent.nocensor.biz/",
"https://mejortorrent.unblockit.day/"
"https://mejortorrent.unblockit.day/",
"https://mejortorrent.nocensor.sbs/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
@@ -62,7 +62,8 @@ namespace Jackett.Common.Indexers
"https://www.mejortorrentes.net/",
"https://mejortorrent.unblockit.how/",
"https://mejortorrent.unblockit.tv/",
"https://mejortorrent.unblockit.cam/"
"https://mejortorrent.unblockit.cam/",
"https://mejortorrent.nocensor.biz/"
};
public MejorTorrent(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,

View File

@@ -1,729 +0,0 @@
using System;
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;
using AngleSharp.Html.Parser;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
using Jackett.Common.Services.Interfaces;
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
{
[ExcludeFromCodeCoverage]
public class NewPCT : BaseCachingWebIndexer
{
private enum ReleaseType
{
Tv,
Movie
}
private class NewpctRelease : ReleaseInfo
{
public ReleaseType NewpctReleaseType;
public string SeriesName;
public int? Season;
public int? Episode;
public int? EpisodeTo;
public int Score;
public NewpctRelease()
{
}
public NewpctRelease(NewpctRelease copyFrom) :
base(copyFrom)
{
NewpctReleaseType = copyFrom.NewpctReleaseType;
SeriesName = copyFrom.SeriesName;
Season = copyFrom.Season;
Episode = copyFrom.Episode;
EpisodeTo = copyFrom.EpisodeTo;
Score = copyFrom.Score;
}
public override object Clone() => new NewpctRelease(this);
}
private readonly char[] _wordSeparators = { ' ', '.', ',', ';', '(', ')', '[', ']', '-', '_' };
private readonly int _wordNotFoundScore = 100000;
private readonly Regex _searchStringRegex = new Regex(@"(.+?)S(\d{2})(E(\d{2}))?$", RegexOptions.IgnoreCase);
// Defending Jacob Temp. 1 Capitulo 1
private readonly Regex _seriesChapterTitleRegex = new Regex(@"(.+)Temp. (\d+) Capitulo (\d+)", RegexOptions.IgnoreCase);
// 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 int _maxMoviesPages = 6;
private readonly int[] _allTvCategories = (new[] { TorznabCatType.TV }).Concat(TorznabCatType.TV.SubCategories).Select(c => c.ID).ToArray();
private readonly int[] _allMoviesCategories = (new[] { TorznabCatType.Movies }).Concat(TorznabCatType.Movies.SubCategories).Select(c => c.ID).ToArray();
private bool _includeVo;
private bool _filterMovies;
private bool _removeMovieAccents;
private bool _removeMovieYear;
private DateTime _dailyNow;
private int _dailyResultIdx;
private readonly string _dailyUrl = "ultimas-descargas/";
private readonly string _searchJsonUrl = "get/result/";
private readonly string[] _seriesLetterUrls = { "series/letter/{0}", "series-hd/letter/{0}" };
private readonly string[] _seriesVoLetterUrls = { "series-vo/letter/{0}" };
private readonly string[] _voUrls = { "serie-vo", "serievo" };
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://atomixhq.link/",
"https://pctmix1.unblockit.day/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
"https://pctnew.site",
"https://descargas2020.site",
"http://torrentrapid.com/",
"http://tumejortorrent.com/",
"http://pctnew.com/",
"https://descargas2020.org/",
"https://pctnew.org/",
"https://pctreload.com/",
"https://pctmix1.unblockit.ch/",
"https://pctmix1.unblockit.ws/",
"https://pctmix1.unblockit.li/",
"https://pctmix.com/",
"https://pctmix1.com/",
"https://pctreload1.com/",
"https://maxitorrent.com",
"https://pctmix1.unblockit.kim/",
"https://atomixhq.com/",
"https://pctmix1.unblockit.bz/",
"https://atomixhq.one/",
"https://pctmix1.unblockit.tv/",
"https://atomixhq.top/",
"https://pctmix1.unblockit.how/",
"https://atomixhq.art/",
"https://atomixhq.net/",
"https://pctmix1.unblockit.cam/"
};
public NewPCT(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
ICacheService cs)
: base(id: "newpct",
name: "NewPCT",
description: "NewPCT - Descargar peliculas, series y estrenos torrent gratis",
link: "https://atomixhq.link/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>
{
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
},
MovieSearchParams = new List<MovieSearchParam>
{
MovieSearchParam.Q
}
},
configService: configService,
client: wc,
logger: l,
p: ps,
cacheService: cs,
configData: new ConfigurationData())
{
Encoding = Encoding.GetEncoding("windows-1252");
Language = "es-ES";
Type = "public";
var voItem = new BoolConfigurationItem("Include original versions in search results") { Value = false };
configData.AddDynamic("IncludeVo", voItem);
var filterMoviesItem = new BoolConfigurationItem("Only full match movies") { Value = true };
configData.AddDynamic("FilterMovies", filterMoviesItem);
var removeMovieAccentsItem = new BoolConfigurationItem("Remove accents in movie searches") { Value = true };
configData.AddDynamic("RemoveMovieAccents", removeMovieAccentsItem);
var removeMovieYearItem = new BoolConfigurationItem("Remove year from movie results (enable for Radarr)") { Value = false };
configData.AddDynamic("RemoveMovieYear", removeMovieYearItem);
AddCategoryMapping(1, TorznabCatType.Movies);
AddCategoryMapping(2, TorznabCatType.TV);
AddCategoryMapping(3, TorznabCatType.TVSD);
AddCategoryMapping(4, TorznabCatType.TVHD);
}
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
{
LoadValuesFromJson(configJson);
var results = await PerformQuery(new TorznabQuery());
if (!results.Any())
throw new Exception("Found 0 releases!");
IsConfigured = true;
SaveConfig();
return IndexerConfigurationStatus.Completed;
}
public override async Task<byte[]> Download(Uri linkParam)
{
Uri uriLink = null;
var downloadLink = linkParam.AbsoluteUri.Replace("/descargar/", "/descargar/torrent/");
var downloadHost = "https://atomtt.com/";
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)
{
string downloadUrl = downloadHost + "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(new Uri(SiteLink), result.ContentString);
}
if (uriLink == null)
throw new Exception("Download link not found!");
return await base.Download(uriLink, RequestType.GET, downloadHost);
}
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
var releases = new List<ReleaseInfo>();
_includeVo = ((BoolConfigurationItem)configData.GetDynamic("IncludeVo")).Value;
_filterMovies = ((BoolConfigurationItem)configData.GetDynamic("FilterMovies")).Value;
_removeMovieAccents = ((BoolConfigurationItem)configData.GetDynamic("RemoveMovieAccents")).Value;
_removeMovieYear = ((BoolConfigurationItem)configData.GetDynamic("RemoveMovieYear")).Value;
_dailyNow = DateTime.Now;
_dailyResultIdx = 0;
var rssMode = string.IsNullOrEmpty(query.SanitizedSearchTerm);
if (rssMode)
{
var results = await RequestWithCookiesAndRetryAsync(SiteLink + _dailyUrl, referer: SiteLink);
var items = ParseDailyContent(results.ContentString);
releases.AddRange(items);
}
else
{
var isTvSearch = query.Categories == null || query.Categories.Length == 0 ||
query.Categories.Any(c => _allTvCategories.Contains(c));
if (isTvSearch)
releases.AddRange(await TvSearch(query));
var isMovieSearch = query.Categories == null || query.Categories.Length == 0 ||
query.Categories.Any(c => _allMoviesCategories.Contains(c));
if (isMovieSearch)
releases.AddRange(await MovieSearch(query));
}
// Database lost on 2018/04/05, all previous torrents don't have download links
var failureDay = new DateTime(2018, 04, 05);
releases = releases.Where(r => r.PublishDate > failureDay).ToList();
return releases;
}
private async Task<IEnumerable<ReleaseInfo>> TvSearch(TorznabQuery query)
{
var seriesName = query.SanitizedSearchTerm;
var season = query.Season > 0 ? (int?)query.Season : null;
int? episode = null;
if (!string.IsNullOrWhiteSpace(query.Episode) && int.TryParse(query.Episode, out var episodeTemp))
episode = episodeTemp;
//If query has no season/episode info, try to parse title
if (season == null && episode == null)
{
var searchMatch = _searchStringRegex.Match(query.SanitizedSearchTerm);
if (searchMatch.Success)
{
seriesName = searchMatch.Groups[1].Value.Trim();
season = int.Parse(searchMatch.Groups[2].Value);
episode = searchMatch.Groups[4].Success ? (int?)int.Parse(searchMatch.Groups[4].Value) : null;
}
}
var releases = new List<ReleaseInfo>();
//Search series url
foreach (var seriesListUrl in SeriesListUris(seriesName))
releases.AddRange(await GetReleasesFromUri(seriesListUrl, seriesName));
//Sonarr removes "the" from shows. If there is nothing try prepending "the"
if (releases.Count == 0 && !(seriesName.ToLower().StartsWith("the")))
{
seriesName = "The " + seriesName;
foreach (var seriesListUrl in SeriesListUris(seriesName))
releases.AddRange(await GetReleasesFromUri(seriesListUrl, seriesName));
}
// remove duplicates
releases = releases.GroupBy(x => x.Guid).Select(y => y.First()).ToList();
//Filter only episodes needed
return releases.Where(r =>
{
var nr = r as NewpctRelease;
return (
nr.Season.HasValue != season.HasValue || //Can't determine if same season
nr.Season.HasValue && season.Value == nr.Season.Value && //Same season and ...
(
nr.Episode.HasValue != episode.HasValue || //Can't determine if same episode
nr.Episode.HasValue &&
(
nr.Episode.Value == episode.Value || //Same episode
nr.EpisodeTo.HasValue && episode.Value >= nr.Episode.Value && episode.Value <= nr.EpisodeTo.Value //Episode in interval
)
)
);
});
}
private async Task<List<ReleaseInfo>> GetReleasesFromUri(Uri uri, string seriesName)
{
var releases = new List<ReleaseInfo>();
// Episodes list
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, referer: seriesEpisodesUrl);
var items = ParseEpisodesListContent(results.ContentString);
if (items != null && items.Any())
releases.AddRange(items);
}
return releases;
}
private IEnumerable<Uri> SeriesListUris(string seriesName)
{
IEnumerable<string> lettersUrl;
if (!_includeVo)
lettersUrl = _seriesLetterUrls;
else
lettersUrl = _seriesLetterUrls.Concat(_seriesVoLetterUrls);
var seriesLetter = !char.IsDigit(seriesName[0]) ? seriesName[0].ToString() : "0-9";
return lettersUrl.Select(
urlFormat => new Uri(SiteLink + string.Format(urlFormat, seriesLetter.ToLower())));
}
private List<NewpctRelease> ParseDailyContent(string content)
{
var parser = new HtmlParser();
var doc = parser.ParseDocument(content);
var releases = new List<NewpctRelease>();
try
{
var rows = doc.QuerySelectorAll("div.page-box > ul > li");
foreach (var row in rows)
{
var qDiv = row.QuerySelector("div.info");
var title = qDiv.QuerySelector("h2").TextContent.Trim();
var detailsUrl = SiteLink + qDiv.QuerySelector("a").GetAttribute("href").TrimStart('/');
// TODO: move this check to GetReleaseFromData to apply all releases
if (!_includeVo && _voUrls.Any(vo => detailsUrl.ToLower().Contains(vo.ToLower())))
continue;
var span = qDiv.QuerySelector("span");
var quality = span.ChildNodes[0].TextContent.Trim();
var releaseType = ReleaseTypeFromQuality(quality);
var sizeString = span.ChildNodes[1].TextContent.Replace("Tama\u00F1o", "").Trim();
var size = ReleaseInfo.GetBytes(sizeString);
var language = qDiv.QuerySelector("div > strong").TextContent.Trim();
_dailyResultIdx++;
var publishDate = _dailyNow - TimeSpan.FromMilliseconds(_dailyResultIdx);
var poster = "https:" + row.QuerySelector("img").GetAttribute("src");
var release = GetReleaseFromData(releaseType, title, detailsUrl, quality, language, size, publishDate, poster);
releases.Add(release);
}
}
catch (Exception ex)
{
OnParseError(content, ex);
}
return releases;
}
private string ParseSeriesListContent(string content, string title)
{
var titleLower = title.Trim().ToLower();
var parser = new HtmlParser();
var doc = parser.ParseDocument(content);
try
{
var rows = doc.QuerySelectorAll(".pelilist li a");
foreach (var row in rows)
if (titleLower.Equals(row.QuerySelector("h2").TextContent.Trim().ToLower()))
return row.GetAttribute("href");
}
catch (Exception ex)
{
OnParseError(content, ex);
}
return null;
}
private List<NewpctRelease> ParseEpisodesListContent(string content)
{
var parser = new HtmlParser();
var doc = parser.ParseDocument(content);
var releases = new List<NewpctRelease>();
try
{
var rows = doc.QuerySelectorAll("ul.buscar-list > li");
foreach (var row in rows)
{
var qDiv = row.QuerySelector("div.info");
var qTitle = qDiv.QuerySelector("h2");
if (qTitle.Children.Length == 0)
continue; // we skip episodes with old title (those torrents can't be downloaded anyway)
var title = qTitle.Children[0].TextContent.Trim();
var language = qTitle.Children[1].TextContent.Trim();
var quality = qTitle.Children[2].TextContent.Replace("[", "").Replace("]", "").Trim();
var detailsUrl = qDiv.QuerySelector("a").GetAttribute("href");
var publishDate = DateTime.ParseExact(qDiv.ChildNodes[3].TextContent.Trim(), "dd-MM-yyyy", null);
var size = ReleaseInfo.GetBytes(qDiv.ChildNodes[5].TextContent.Trim());
var poster = "https:" + row.QuerySelector("img").GetAttribute("src");
var release = GetReleaseFromData(ReleaseType.Tv, title, detailsUrl, quality, language, size, publishDate, poster);
releases.Add(release);
}
}
catch (Exception ex)
{
OnParseError(content, ex);
}
return releases;
}
private async Task<IEnumerable<ReleaseInfo>> MovieSearch(TorznabQuery query)
{
var releases = new List<NewpctRelease>();
var searchStr = query.SanitizedSearchTerm;
if (_removeMovieAccents)
searchStr = RemoveDiacritics(searchStr);
// we always remove the year in the search, even if _removeMovieYear is disabled
// and we save the year to add it in the title if required
var year = "";
var matchYear = _titleYearRegex.Match(searchStr);
if (matchYear.Success)
{
year = matchYear.Groups[1].Value;
searchStr = _titleYearRegex.Replace(searchStr, "");
}
var searchJsonUrl = SiteLink + _searchJsonUrl;
var pg = 1;
while (pg <= _maxMoviesPages)
{
var queryCollection = new Dictionary<string, string>
{
{"ordenar", "Lo+Ultimo"},
{"inon", "Descendente"},
{"s", searchStr},
{"pg", pg.ToString()}
};
var results = await RequestWithCookiesAsync(searchJsonUrl, method: RequestType.POST, data: queryCollection, referer: SiteLink);
var items = ParseSearchJsonContent(results.ContentString, year);
if (!items.Any())
break;
releases.AddRange(items);
pg++;
}
ScoreReleases(releases, searchStr);
if (_filterMovies)
releases = releases.Where(r => r.Score < _wordNotFoundScore).ToList();
return releases;
}
private List<NewpctRelease> ParseSearchJsonContent(string content, string year)
{
var releases = new List<NewpctRelease>();
if (string.IsNullOrWhiteSpace(content))
return releases;
try
{
var jo = JObject.Parse(content);
var numItems = int.Parse(jo["data"]["items"].ToString());
for (var i = 0; i < numItems; i++)
{
var item = jo["data"]["torrents"]["0"][i.ToString()];
var title = item["torrentName"].ToString();
var detailsUrl = SiteLink + item["guid"];
var quality = item["calidad"].ToString();
var sizeString = item["torrentSize"].ToString();
var size = !sizeString.Contains("NAN") ? ReleaseInfo.GetBytes(sizeString) : 0;
DateTime.TryParseExact(item["torrentDateAdded"].ToString(), "dd/MM/yyyy", null, DateTimeStyles.None, out var publishDate);
var poster = SiteLink + item["imagen"].ToString().TrimStart('/');
// we have another search for series
var titleLower = title.ToLower();
var isSeries = (quality != null && quality.ToLower().Contains("hdtv")) ||
detailsUrl.Contains("/serie-") || detailsUrl.Contains("/series/");
var isGame = titleLower.Contains("pcdvd");
if (isSeries || isGame)
continue;
// at this point we assume that this is a movie release, we need to parse the title. examples:
// Quien Es Harry Crumb (1989) [BluRay 720p X264 MKV][AC3 5.1 Castellano][www.descargas2020.ORG]
// Harry Potter y la orden del Fenix [4K UHDrip][2160p][HDR][AC3 5.1 Castellano DTS 5.1-Ingles+Subs][ES-EN]
// Harry Potter Y El Misterio Del Principe [DVDFULL][Spanish][2009]
// Harry Potter 2 Y La Camara Secreta [DVD9 FULL][Spanish_English][Inc Subs.]
// The Avengers [DVDRIP][VOSE English_Subs. Español][2012]
// Harry Potter y las Reliquias de la Muerte Parte I.DVD5 [ DVDR] [AC3 5.1] [Multilenguaje] [2010]
// Joker (2019) 720p [Web Screener 720p ][Castellano][www.descargas2020.ORG][www.pctnew.ORG]
// remove quality and language from the title
var titleParts = title.Split('[');
title = titleParts[0].Replace("720p", "").Trim();
// quality in the field quality/calidad is wrong in many cases
if (!string.IsNullOrWhiteSpace(quality))
{
if (titleLower.Contains("720") && !quality.Contains("720"))
quality += " 720p";
if (titleLower.Contains("265") || titleLower.Contains("hevc"))
quality += " x265";
if (titleLower.Contains("dvdfull") || titleLower.Contains("dvd5") || titleLower.Contains("dvd9"))
quality = "DVDR";
if (titleLower.Contains("[web screener]") || titleLower.Contains("[hd-tc]"))
quality = "TS Screener";
}
else if (titleParts.Length > 2)
quality = titleParts[1].Replace("]", "").Replace("MKV", "").Trim();
// we have to guess the language (words DUAL or MULTI are not supported in Radarr)
var language = "spanish";
if (titleLower.Contains("latino"))
language += " latino";
if ((titleLower.Contains("castellano") && titleLower.Contains("ingles")) ||
(titleLower.Contains("spanish") && titleLower.Contains("english")) ||
titleLower.Contains("[es-en]") || titleLower.Contains("multilenguaje"))
language += " english";
else if (titleLower.Contains("vose"))
language = "english vose";
// remove the movie year if the user chooses (the year in the title is wrong in many cases)
if (_removeMovieYear)
title = _titleYearRegex.Replace(title, "");
// we add the year from search if it's not in the title
if (!string.IsNullOrWhiteSpace(year) && !_titleYearRegex.Match(title).Success)
title += " " + year;
var release = GetReleaseFromData(ReleaseType.Movie, title, detailsUrl, quality, language, size, publishDate, poster);
releases.Add(release);
}
}
catch (Exception ex)
{
OnParseError(content, ex);
}
return releases;
}
private void ScoreReleases(IEnumerable<NewpctRelease> releases, string searchTerm)
{
var searchWords = searchTerm.ToLower().Split(_wordSeparators, StringSplitOptions.None).
Select(s => s.Trim()).
Where(s => !string.IsNullOrEmpty(s)).ToArray();
foreach (var release in releases)
{
release.Score = 0;
var releaseWords = release.Title.ToLower().Split(_wordSeparators, StringSplitOptions.None).
Select(s => s.Trim()).
Where(s => !string.IsNullOrEmpty(s)).ToArray();
foreach (var search in searchWords)
{
var index = Array.IndexOf(releaseWords, search);
if (index >= 0)
{
release.Score += index;
releaseWords[index] = null;
}
else
release.Score += _wordNotFoundScore;
}
}
}
private static ReleaseType ReleaseTypeFromQuality(string quality) =>
quality.Trim().ToLower().StartsWith("hdtv")
? ReleaseType.Tv
: ReleaseType.Movie;
private NewpctRelease GetReleaseFromData(ReleaseType releaseType, string title, string detailsUrl, string quality,
string language, long size, DateTime publishDate, string poster)
{
var result = new NewpctRelease
{
NewpctReleaseType = releaseType
};
//Sanitize
title = title.Replace("-", "");
title = Regex.Replace(title, @"\s+", " ");
if (releaseType == ReleaseType.Tv)
{
var match = _seriesChapterTitleRegex.Match(title);
if (match.Success)
{
result.SeriesName = match.Groups[1].Value.Trim();
result.Season = int.Parse(match.Groups[2].Value);
result.Episode = int.Parse(match.Groups[3].Value);
}
else
{
match = _seriesChaptersTitleRegex.Match(title);
if (match.Success)
{
result.SeriesName = match.Groups[1].Value.Trim();
result.Season = int.Parse(match.Groups[2].Value);
result.Episode = int.Parse(match.Groups[3].Value);
result.EpisodeTo = int.Parse(match.Groups[4].Value);
}
}
// tv series
var episodeText = "S" + result.Season.ToString().PadLeft(2, '0');
episodeText += "E" + result.Episode.ToString().PadLeft(2, '0');
episodeText += result.EpisodeTo.HasValue ? "-" + result.EpisodeTo.ToString().PadLeft(2, '0') : "";
result.Title = $"{result.SeriesName} {episodeText}";
if (!string.IsNullOrWhiteSpace(quality) && (quality.Contains("720") || quality.Contains("1080")))
result.Category = new List<int> { TorznabCatType.TVHD.ID };
else
result.Category = new List<int> { TorznabCatType.TV.ID };
}
else
{
// movie
result.Title = title;
result.Category = new List<int> { TorznabCatType.Movies.ID };
}
result.Title = FixedTitle(result, quality, language);
result.Link = new Uri(detailsUrl);
result.Guid = result.Link;
result.Details = result.Link;
result.PublishDate = publishDate;
result.Poster = new Uri(poster);
result.Seeders = 1;
result.Peers = 2;
result.Size = size;
result.DownloadVolumeFactor = 0;
result.UploadVolumeFactor = 1;
return result;
}
private string FixedTitle(NewpctRelease release, string quality, string language)
{
var fixedLanguage = language.ToLower()
.Replace("español", "spanish")
.Replace("espanol", "spanish")
.Replace("castellano", "spanish")
.ToUpper();
var qualityLower = quality.ToLower();
var fixedQuality = quality.Replace("-", " ");
if (qualityLower.Contains("full"))
fixedQuality = qualityLower.Contains("4k") ? "BluRay 2160p COMPLETE x265" : "BluRay COMPLETE";
else if (qualityLower.Contains("remux"))
fixedQuality = qualityLower.Contains("4k") ? "BluRay 2160p REMUX x265" : "BluRay REMUX";
else if (qualityLower.Contains("4k")) // filter full and remux before 4k (there are 4k full and remux)
fixedQuality = "BluRay 2160p x265";
else if (qualityLower.Contains("microhd"))
fixedQuality = qualityLower.Contains("720") ? "BluRay 720p MicroHD" : "BluRay 1080p MicroHD";
else if (qualityLower.Contains("blurayrip"))
fixedQuality = "BluRay 720p";
else if (qualityLower.Contains("dvdrip"))
fixedQuality = "DVDRip";
else if (qualityLower.Contains("htdv"))
fixedQuality = "HDTV";
// BluRay and DVD Screener are not supported in Radarr
else if (qualityLower.Contains("screener") || qualityLower.Contains("screeener"))
{
if (qualityLower.Contains("720p") || qualityLower.Contains("dvd"))
fixedQuality = "Screener 720p";
else if (qualityLower.Contains("bluray")) // there are bluray with 720p (condition after 720p)
fixedQuality = "Screener 1080p";
else
fixedQuality = "TS Screener";
}
return $"{release.Title} {fixedLanguage} {fixedQuality}";
}
private string RemoveDiacritics(string text)
{
var normalizedString = text.Normalize(NormalizationForm.FormD);
// https://stackoverflow.com/a/14812065/9719178
// TODO Better performance version in .Net-Core:
// return string.Concat(normalizedString.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark))
// .Normalize(NormalizationForm.FormC);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString)
{
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark)
stringBuilder.Append(c);
}
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}
}
}

View File

@@ -33,7 +33,8 @@ namespace Jackett.Common.Indexers
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://rutracker.org/",
"https://rutracker.net/"
"https://rutracker.net/",
"https://rutracker.nl/"
};
private Regex _regexToFindTagsInReleaseTitle = new Regex(@"\[[^\[]+\]|\([^(]+\)");
@@ -42,7 +43,7 @@ namespace Jackett.Common.Indexers
ICacheService cs)
: base(id: "rutracker",
name: "RuTracker",
description: "RuTracker is a Semi-Private Russian torrent site with a thriving file-sharing community",
description: "RuTracker is a Private Russian torrent site with a thriving file-sharing community",
link: "https://rutracker.org/",
caps: new TorznabCapabilities
{
@@ -72,7 +73,7 @@ namespace Jackett.Common.Indexers
{
Encoding = Encoding.GetEncoding("windows-1251");
Language = "ru-RU";
Type = "semi-private";
Type = "private";
// note: when refreshing the categories use the tracker.php page and NOT the search.php page!
AddCategoryMapping(22, TorznabCatType.Movies, "Наше кино");
AddCategoryMapping(941, TorznabCatType.Movies, "|- Кино СССР");

View File

@@ -22,12 +22,13 @@ namespace Jackett.Common.Indexers
{
public override string[] AlternativeSiteLinks { get; protected set; } = {
"https://subsplease.org/",
"https://subsplease.nocensor.biz/"
"https://subsplease.nocensor.sbs/"
};
public override string[] LegacySiteLinks { get; protected set; } = {
"https://subsplease.nocensor.space/",
"https://subsplease.nocensor.work/"
"https://subsplease.nocensor.work/",
"https://subsplease.nocensor.biz/"
};
private string ApiEndpoint => SiteLink + "/api/?";

View File

@@ -1,659 +0,0 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig;
using Jackett.Common.Services.Interfaces;
using Jackett.Common.Utils;
using Jackett.Common.Utils.Clients;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
using WebRequest = Jackett.Common.Utils.Clients.WebRequest;
namespace Jackett.Common.Indexers
{
[ExcludeFromCodeCoverage]
public class Xthor : BaseCachingWebIndexer
{
private static string ApiEndpoint => "https://api.xthor.tk/";
private int MaxPagesHardLimit => 4;
private string TorrentDetailsUrl => SiteLink + "details.php?id={id}";
private string WebRequestDelay => ((SingleSelectConfigurationItem)configData.GetDynamic("webRequestDelay")).Value;
private int MaxPages => Convert.ToInt32(((SingleSelectConfigurationItem)configData.GetDynamic("maxPages")).Value);
private bool MaxPagesBypassForTMDB => ((BoolConfigurationItem)configData.GetDynamic("maxPagesBypassForTMDB")).Value;
private int DropCategories => Convert.ToInt32(((SingleSelectConfigurationItem)configData.GetDynamic("dropCategories")).Value);
private string MultiReplacement => ((StringConfigurationItem)configData.GetDynamic("multiReplacement")).Value;
private bool SubReplacement => ((BoolConfigurationItem)configData.GetDynamic("subReplacement")).Value;
private bool EnhancedAnimeSearch => ((BoolConfigurationItem)configData.GetDynamic("enhancedAnimeSearch")).Value;
private string SpecificLanguageAccent => ((SingleSelectConfigurationItem)configData.GetDynamic("specificLanguageAccent")).Value;
private bool FreeleechOnly => ((BoolConfigurationItem)configData.GetDynamic("freeleechOnly")).Value;
public override string[] LegacySiteLinks { get; protected set; } = {
"https://xthor.bz/",
"https://xthor.to"
};
private ConfigurationDataPasskey ConfigData => (ConfigurationDataPasskey)configData;
public Xthor(IIndexerConfigurationService configService, Utils.Clients.WebClient w, Logger l,
IProtectionService ps, ICacheService cs)
: base(id: "xthor-api",
name: "Xthor API",
description: "General French Private Tracker",
link: "https://xthor.tk/",
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>
{
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
},
MovieSearchParams = new List<MovieSearchParam>
{
MovieSearchParam.Q, MovieSearchParam.TmdbId
},
MusicSearchParams = new List<MusicSearchParam>
{
MusicSearchParam.Q
},
BookSearchParams = new List<BookSearchParam>
{
BookSearchParam.Q
}
},
configService: configService,
client: w,
logger: l,
p: ps,
cacheService: cs,
downloadBase: "https://xthor.tk/download.php?torrent=",
configData: new ConfigurationDataPasskey()
)
{
Encoding = Encoding.UTF8;
Language = "fr-FR";
Type = "private";
// Movies / Films
AddCategoryMapping(118, TorznabCatType.MoviesBluRay, "Films 2160p/Bluray");
AddCategoryMapping(119, TorznabCatType.MoviesBluRay, "Films 2160p/Remux");
AddCategoryMapping(107, TorznabCatType.MoviesUHD, "Films 2160p/x265");
AddCategoryMapping(1, TorznabCatType.MoviesBluRay, "Films 1080p/BluRay");
AddCategoryMapping(2, TorznabCatType.MoviesBluRay, "Films 1080p/Remux");
AddCategoryMapping(100, TorznabCatType.MoviesHD, "Films 1080p/x265");
AddCategoryMapping(4, TorznabCatType.MoviesHD, "Films 1080p/x264");
AddCategoryMapping(5, TorznabCatType.MoviesHD, "Films 720p/x264");
AddCategoryMapping(7, TorznabCatType.MoviesSD, "Films SD/x264");
AddCategoryMapping(3, TorznabCatType.Movies3D, "Films 3D");
AddCategoryMapping(6, TorznabCatType.MoviesSD, "Films XviD");
AddCategoryMapping(8, TorznabCatType.MoviesDVD, "Films DVD");
AddCategoryMapping(122, TorznabCatType.MoviesHD, "Films HDTV");
AddCategoryMapping(94, TorznabCatType.MoviesWEBDL, "Films WEBDL");
AddCategoryMapping(95, TorznabCatType.MoviesWEBDL, "Films WEBRiP");
AddCategoryMapping(12, TorznabCatType.TVDocumentary, "Films Documentaire");
AddCategoryMapping(31, TorznabCatType.MoviesOther, "Films Animation");
AddCategoryMapping(33, TorznabCatType.MoviesOther, "Films Spectacle");
AddCategoryMapping(125, TorznabCatType.TVSport, "Films Sports");
AddCategoryMapping(20, TorznabCatType.AudioVideo, "Films Concerts, Clips");
AddCategoryMapping(9, TorznabCatType.MoviesOther, "Films VOSTFR");
// TV / Series
AddCategoryMapping(104, TorznabCatType.TVOther, "Series BluRay");
AddCategoryMapping(13, TorznabCatType.TVOther, "Series Pack VF");
AddCategoryMapping(15, TorznabCatType.TVHD, "Series HD VF");
AddCategoryMapping(14, TorznabCatType.TVSD, "Series SD VF");
AddCategoryMapping(98, TorznabCatType.TVOther, "Series Pack VOSTFR");
AddCategoryMapping(17, TorznabCatType.TVHD, "Series HD VOSTFR");
AddCategoryMapping(16, TorznabCatType.TVSD, "Series SD VOSTFR");
AddCategoryMapping(101, TorznabCatType.TVAnime, "Series Packs Anime");
AddCategoryMapping(32, TorznabCatType.TVAnime, "Series Animes");
AddCategoryMapping(110, TorznabCatType.TVAnime, "Series Anime VOSTFR");
AddCategoryMapping(123, TorznabCatType.TVOther, "Series Animation");
AddCategoryMapping(109, TorznabCatType.TVDocumentary, "Series DOC");
AddCategoryMapping(34, TorznabCatType.TVOther, "Series Sport");
AddCategoryMapping(30, TorznabCatType.TVOther, "Series Emission TV");
// XxX / MISC
AddCategoryMapping(36, TorznabCatType.XXX, "MISC XxX/Films");
AddCategoryMapping(105, TorznabCatType.XXX, "MISC XxX/Séries");
AddCategoryMapping(114, TorznabCatType.XXX, "MISC XxX/Lesbiennes");
AddCategoryMapping(115, TorznabCatType.XXX, "MISC XxX/Gays");
AddCategoryMapping(113, TorznabCatType.XXX, "MISC XxX/Hentai");
AddCategoryMapping(120, TorznabCatType.XXX, "MISC XxX/Magazines");
// Books / Livres
AddCategoryMapping(24, TorznabCatType.BooksEBook, "Livres Romans");
AddCategoryMapping(124, TorznabCatType.AudioAudiobook, "Livres Audio Books");
AddCategoryMapping(96, TorznabCatType.BooksMags, "Livres Magazines");
AddCategoryMapping(99, TorznabCatType.BooksOther, "Livres Bandes dessinées");
AddCategoryMapping(116, TorznabCatType.BooksEBook, "Livres Romans Jeunesse");
AddCategoryMapping(102, TorznabCatType.BooksComics, "Livres Comics");
AddCategoryMapping(103, TorznabCatType.BooksOther, "Livres Mangas");
// SOFTWARE / Logiciels
AddCategoryMapping(25, TorznabCatType.PCGames, "Logiciels Jeux PC");
AddCategoryMapping(27, TorznabCatType.ConsolePS3, "Logiciels Playstation");
AddCategoryMapping(111, TorznabCatType.PCMac, "Logiciels Jeux MAC");
AddCategoryMapping(26, TorznabCatType.ConsoleXBox360, "Logiciels XboX");
AddCategoryMapping(112, TorznabCatType.PC, "Logiciels Jeux Linux");
AddCategoryMapping(28, TorznabCatType.ConsoleWii, "Logiciels Nintendo");
AddCategoryMapping(29, TorznabCatType.ConsoleNDS, "Logiciels NDS");
AddCategoryMapping(117, TorznabCatType.PC, "Logiciels ROM");
AddCategoryMapping(21, TorznabCatType.PC, "Logiciels Applis PC");
AddCategoryMapping(22, TorznabCatType.PCMac, "Logiciels Applis Mac");
AddCategoryMapping(23, TorznabCatType.PCMobileAndroid, "Logiciels Smartphone");
// Dynamic Configuration
ConfigData.AddDynamic("optionsConfigurationWarning", new DisplayInfoConfigurationItem(string.Empty, "<center><b>Available Options</b></center>,<br /><br /> <ul><li><b>Freeleech Only</b>: (<i>Restrictive</i>) If you want to discover only freeleech torrents to not impact your ratio, check the related box. So only torrents marked as freeleech will be returned instead of all.</li><br /><li><b>Specific Language</b>: (<i>Restrictive</i>) You can scope your searches with a specific language / accent.</li></ul>"));
var ConfigFreeleechOnly = new BoolConfigurationItem("Do you want to discover only freeleech tagged torrents ?");
ConfigData.AddDynamic("freeleechOnly", ConfigFreeleechOnly);
var ConfigSpecificLanguageAccent = new SingleSelectConfigurationItem("Do you want to scope your searches with a specific language ? (Accent)", new Dictionary<string, string>
{
{"0", "All Voices (default)"},
{"1", "Françaises"},
{"2", "Quebecoises"},
{"47", "Françaises et Québécoises"},
{"3", "Anglaises"},
{"4", "Japonaises"},
{"5", "Espagnoles"},
{"6", "Allemandes"},
{"7", "Chinoises"},
{"8", "Italiennes"},
{"9", "Coréennes"},
{"10", "Danoises"},
{"11", "Russes"},
{"12", "Portugaises"},
{"13", "Hindi"},
{"14", "Hollandaises"},
{"15", "Suédoises"},
{"16", "Norvégiennes"},
{"17", "Thaïlandaises"},
{"18", "Hébreu"},
{"19", "Persanes"},
{"20", "Arabes"},
{"21", "Turques"},
{"22", "Hongroises"},
{"23", "Polonaises"},
{"24", "Finnoises"},
{"25", "Indonésiennes"},
{"26", "Roumaines"},
{"27", "Malaisiennes"},
{"28", "Estoniennes"},
{"29", "Islandaises"},
{"30", "Grecques"},
{"31", "Serbes"},
{"32", "Norvégiennes"},
{"33", "Ukrainiennes"},
{"34", "Bulgares"},
{"35", "Tagalogues"},
{"36", "Xhosa"},
{"37", "Kurdes"},
{"38", "Bengali"},
{"39", "Amhariques"},
{"40", "Bosniaques"},
{"41", "Malayalam"},
{"42", "Télougou"},
{"43", "Bambara"},
{"44", "Catalanes"},
{"45", "Tchèques"},
{"46", "Afrikaans"}
})
{ Value = "0" };
ConfigData.AddDynamic("specificLanguageAccent", ConfigSpecificLanguageAccent);
ConfigData.AddDynamic("advancedConfigurationWarning", new DisplayInfoConfigurationItem(string.Empty, "<center><b>Advanced Configuration</b></center>,<br /><br /> <center><b><u>WARNING !</u></b> <i>Be sure to read instructions before editing options bellow, you can <b>drastically reduce performance</b> of queries or have <b>non-accurate results</b>.</i></center><br/><br/><ul><li><b>Delay betwwen Requests</b>: (<i>not recommended</i>) you can increase delay to requests made to the tracker, but a minimum of 2.1s is enforced as there is an anti-spam protection.</li><br /><li><b>Max Pages</b>: (<i>not recommended</i>) you can increase max pages to follow when making a request. But be aware that others apps can consider this indexer not working if jackett take too many times to return results. Another thing is that API is very buggy on tracker side, most of time, results of next pages are same ... as the first page. Even if we deduplicate rows, you will loose performance for the same results. You can check logs to see if an higher pages following is not benefical, you will see an error percentage (duplicates) with recommandations.</li><br /><li><b>Bypass for TMDB</b>: (<i>recommended</i>) this indexer is compatible with TMDB queries (<i>for movies only</i>), so when requesting content with an TMDB ID, we will search directly ID on API instead of name. Results will be more accurate, so you can enable a max pages bypass for this query type. You will be at least limited by the hard limit of 4 pages.</li><br /><li><b>Drop categories</b>: (<i>recommended</i>) this indexer has some problems when too many categories are requested for filtering, so you will have better results by dropping categories from TMDB queries or selecting fewer categories in 3rd apps.</li><br /><li><b>Enhanced Anime</b>: if you have \"Anime\", this will improve queries made to this tracker related to this type when making searches.</li><br /><li><b>Multi Replacement</b>: you can dynamically replace the word \"MULTI\" with another of your choice like \"MULTI.FRENCH\" for better analysis of 3rd party softwares.</li><br /><li><b>Sub Replacement</b>: you can dynamically replace the word \"VOSTFR\" or \"SUBFRENCH\" with the word \"ENGLISH\" for better analysis of 3rd party softwares.</li></ul>"));
var ConfigWebRequestDelay = new SingleSelectConfigurationItem("Which delay do you want to apply between each requests made to tracker ?", new Dictionary<string, string>
{
{"2.1", "2.1s (minimum)"},
{"2.2", "2.2s"},
{"2.3", "2.3s"},
{"2.4", "2.4s" },
{"2.5", "2.5s"},
{"2.6", "2.6s"}
})
{ Value = "2.1" };
ConfigData.AddDynamic("webRequestDelay", ConfigWebRequestDelay);
var ConfigMaxPages = new SingleSelectConfigurationItem("How many pages do you want to follow ?", new Dictionary<string, string>
{
{"1", "1 (32 results - default / best perf.)"},
{"2", "2 (64 results)"},
{"3", "3 (96 results)"},
{"4", "4 (128 results - hard limit max)" },
})
{ Value = "1" };
ConfigData.AddDynamic("maxPages", ConfigMaxPages);
var ConfigMaxPagesBypassForTMDB = new BoolConfigurationItem("Do you want to bypass max pages for TMDB searches ? (Radarr) - Hard limit of 4") { Value = true };
ConfigData.AddDynamic("maxPagesBypassForTMDB", ConfigMaxPagesBypassForTMDB);
var ConfigDropCategories = new SingleSelectConfigurationItem("Drop requested categories", new Dictionary<string, string>
{
{"0", "Disabled"},
{"1", "Yes, only for TMDB requests (default)"},
{"2", "Yes, for all requests"},
})
{ Value = "1" };
ConfigData.AddDynamic("dropCategories", ConfigDropCategories);
var ConfigEnhancedAnimeSearch = new BoolConfigurationItem("Do you want to use enhanced ANIME search ?") { Value = false };
ConfigData.AddDynamic("enhancedAnimeSearch", ConfigEnhancedAnimeSearch);
var ConfigMultiReplacement = new StringConfigurationItem("Do you want to replace \"MULTI\" keyword in release title by another word ?") { Value = "MULTI.FRENCH" };
ConfigData.AddDynamic("multiReplacement", ConfigMultiReplacement);
var ConfigSubReplacement = new BoolConfigurationItem("Do you want to replace \"VOSTFR\" and \"SUBFRENCH\" with \"ENGLISH\" word ?") { Value = false };
ConfigData.AddDynamic("subReplacement", ConfigSubReplacement);
// Api has 1req/2s limit (minimum)
webclient.requestDelay = Convert.ToDouble(WebRequestDelay);
}
/// <summary>
/// Configure our Provider
/// </summary>
/// <param name="configJson">Our params in Json</param>
/// <returns>Configuration state</returns>
// Warning 1998 is async method with no await calls inside
// TODO: Remove pragma by wrapping return in Task.FromResult and removing async
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
{
// Provider not yet configured
IsConfigured = false;
// Retrieve config values set by Jackett's user
LoadValuesFromJson(configJson);
logger.Debug("\nXthor - Validating Settings ... \n");
// Check Passkey Setting
if (string.IsNullOrEmpty(ConfigData.Passkey.Value))
{
throw new ExceptionWithConfigData("You must provide your passkey for this tracker to be allowed to use API !", ConfigData);
}
else
{
logger.Debug("Xthor - Validated Setting -- PassKey (auth) => " + ConfigData.Passkey.Value);
}
// Tracker is now configured
IsConfigured = true;
// Saving data
SaveConfig();
return IndexerConfigurationStatus.RequiresTesting;
}
/// <summary>
/// Execute our search query
/// </summary>
/// <param name="query">Query</param>
/// <returns>Releases</returns>
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
{
var releases = new List<ReleaseInfo>();
var searchTerm = query.SanitizedSearchTerm + " " + query.GetEpisodeSearchString();
if (EnhancedAnimeSearch && query.HasSpecifiedCategories && (query.Categories.Contains(TorznabCatType.TVAnime.ID) || query.Categories.Contains(100032) || query.Categories.Contains(100101) || query.Categories.Contains(100110)))
{
var regex = new Regex(" ([0-9]+)");
searchTerm = regex.Replace(searchTerm, " E$1");
}
searchTerm = searchTerm.Trim();
searchTerm = searchTerm.ToLower();
searchTerm = searchTerm.Replace(" ", ".");
// Multiple page support
var nextPage = 1;
var followingPages = true;
do
{
// Build our query
var request = BuildQuery(searchTerm, query, ApiEndpoint, nextPage);
// Getting results
logger.Info("\nXthor - Querying API page " + nextPage);
var results = await QueryTrackerAsync(request);
// Torrents Result Count
var torrentsCount = 0;
try
{
// Deserialize our Json Response
var xthorResponse = JsonConvert.DeserializeObject<XthorResponse>(results);
// Check Tracker's State
CheckApiState(xthorResponse.Error);
// If contains torrents
if (xthorResponse.Torrents != null)
{
// Store torrents rows count result
torrentsCount = xthorResponse.Torrents.Count();
logger.Info("\nXthor - Found " + torrentsCount + " torrents on current page.");
// Adding each torrent row to releases
// Exclude hidden torrents (category 106, example => search 'yoda' in the API) #10407
releases.AddRange(xthorResponse.Torrents
.Where(torrent => torrent.Category != 106).Select(torrent =>
{
//issue #3847 replace multi keyword
if (!string.IsNullOrEmpty(MultiReplacement))
{
var regex = new Regex("(?i)([\\.\\- ])MULTI([\\.\\- ])");
torrent.Name = regex.Replace(torrent.Name, "$1" + MultiReplacement + "$2");
}
// issue #8759 replace vostfr and subfrench with English
if (SubReplacement)
torrent.Name = torrent.Name.Replace("VOSTFR", "ENGLISH").Replace("SUBFRENCH", "ENGLISH");
var publishDate = DateTimeUtil.UnixTimestampToDateTime(torrent.Added);
//TODO replace with download link?
var guid = new Uri(TorrentDetailsUrl.Replace("{id}", torrent.Id.ToString()));
var details = new Uri(TorrentDetailsUrl.Replace("{id}", torrent.Id.ToString()));
var link = new Uri(torrent.Download_link);
var release = new ReleaseInfo
{
// Mapping data
Category = MapTrackerCatToNewznab(torrent.Category.ToString()),
Title = torrent.Name,
Seeders = torrent.Seeders,
Peers = torrent.Seeders + torrent.Leechers,
MinimumRatio = 1,
MinimumSeedTime = 345600,
PublishDate = publishDate,
Size = torrent.Size,
Grabs = torrent.Times_completed,
Files = torrent.Numfiles,
UploadVolumeFactor = 1,
DownloadVolumeFactor = (torrent.Freeleech == 1 ? 0 : 1),
Guid = guid,
Details = details,
Link = link,
TMDb = torrent.Tmdb_id
};
return release;
}));
nextPage++;
}
else
{
logger.Info("\nXthor - No results found on page " + nextPage + ", stopping follow of next page.");
// No results or no more results available
followingPages = false;
break;
}
}
catch (Exception ex)
{
OnParseError("Unable to parse result \n" + ex.StackTrace, ex);
}
// Stop ?
if (query.IsTmdbQuery && MaxPagesBypassForTMDB)
{
if (nextPage > MaxPagesHardLimit)
{
logger.Info("\nXthor - Stopping follow of next page " + nextPage + " due to page hard limit reached.");
break;
}
logger.Info("\nXthor - Continue to next page " + nextPage + " due to TMDB request and activated max page bypass for this type of query. Max page hard limit: 4.");
continue;
}
else
{
if (torrentsCount < 32)
{
logger.Info("\nXthor - Stopping follow of next page " + nextPage + " due max available results reached.");
break;
}
else if (nextPage > MaxPages)
{
logger.Info("\nXthor - Stopping follow of next page " + nextPage + " due to page limit reached.");
break;
}
else if (query.IsTest)
{
logger.Info("\nXthor - Stopping follow of next page " + nextPage + " due to index test query.");
break;
}
}
} while (followingPages);
// Check if there is duplicate and return unique rows - Xthor API can be very buggy !
var uniqReleases = releases.GroupBy(x => x.Guid).Select(x => x.First()).ToList();
var errorPercentage = 1 - ((double)uniqReleases.Count() / releases.Count());
if (errorPercentage >= 0.25)
{
logger.Warn("\nXthor - High percentage error detected: " + string.Format("{0:0.0%}", errorPercentage) + "\nWe strongly recommend that you lower max page to 1, as there is no benefit to grab additionnals.\nTracker API sent us duplicated pages with same results, even if we deduplicate returned rows, please consider to lower as it's unnecessary and increase time used for query for the same result.");
}
// Return found releases
return uniqReleases;
}
/// <summary>
/// Response from Tracker's API
/// </summary>
public class XthorResponse
{
public XthorError Error { get; set; }
public XthorUser User { get; set; }
public List<XthorTorrent> Torrents { get; set; }
}
/// <summary>
/// State of API
/// </summary>
public class XthorError
{
public int Code { get; set; }
public string Descr { get; set; }
}
/// <summary>
/// User Informations
/// </summary>
public class XthorUser
{
public int Id { get; set; }
public string Username { get; set; }
public long Uploaded { get; set; }
public long Downloaded { get; set; }
public int Uclass { get; set; } // Class is a reserved keyword.
public decimal Bonus_point { get; set; }
public int Hits_and_run { get; set; }
public string Avatar_url { get; set; }
}
/// <summary>
/// Torrent Informations
/// </summary>
public class XthorTorrent
{
public int Id { get; set; }
public int Category { get; set; }
public int Seeders { get; set; }
public int Leechers { get; set; }
public string Name { get; set; }
public int Times_completed { get; set; }
public long Size { get; set; }
public int Added { get; set; }
public int Freeleech { get; set; }
public int Numfiles { get; set; }
public string Release_group { get; set; }
public string Download_link { get; set; }
public int Tmdb_id { get; set; }
public override string ToString() => string.Format("[XthorTorrent: id={0}, category={1}, seeders={2}, leechers={3}, name={4}, times_completed={5}, size={6}, added={7}, freeleech={8}, numfiles={9}, release_group={10}, download_link={11}, tmdb_id={12}]", Id, Category, Seeders, Leechers, Name, Times_completed, Size, Added, Freeleech, Numfiles, Release_group, Download_link, Tmdb_id);
}
/// <summary>
/// Build query to process
/// </summary>
/// <param name="term">Term to search</param>
/// <param name="query">Torznab Query for categories mapping</param>
/// <param name="url">Search url for provider</param>
/// <returns>URL to query for parsing and processing results</returns>
private string BuildQuery(string term, TorznabQuery query, string url, int page = 1)
{
var parameters = new NameValueCollection();
var categoriesList = MapTorznabCapsToTrackers(query);
// Passkey
parameters.Add("passkey", ConfigData.Passkey.Value);
if (query.IsTmdbQuery)
{
logger.Info("\nXthor - Search requested for movie with TMDB ID n°" + query.TmdbID.ToString());
parameters.Add("tmdbid", query.TmdbID.ToString());
}
else
{
if (!string.IsNullOrWhiteSpace(term))
{
// Add search term
logger.Info("\nXthor - Search requested for movie with title \"" + term + "\"");
parameters.Add("search", WebUtility.UrlEncode(term));
}
}
// Loop on categories needed
if (categoriesList.Count > 0)
{
switch (DropCategories)
{
case 1:
// Drop categories for TMDB query only.
if (!query.IsTmdbQuery)
{ goto default; }
break;
case 2:
// Drop categories enabled for all requests
break;
default:
// Default or disabled state (0 value of config switch)
parameters.Add("category", string.Join("+", categoriesList));
break;
}
}
// If Only Freeleech Enabled
if (FreeleechOnly)
{
parameters.Add("freeleech", "1");
}
// If Specific Language Accent Requested
if (!string.IsNullOrEmpty(SpecificLanguageAccent) && SpecificLanguageAccent != "0")
{
parameters.Add("accent", SpecificLanguageAccent);
}
// Pages handling
if (page > 1 && !query.IsTest)
{
parameters.Add("page", page.ToString());
}
// Building our query -- Cannot use GetQueryString due to UrlEncode (generating wrong category param)
url += "?" + string.Join("&", parameters.AllKeys.Select(a => a + "=" + parameters[a]));
logger.Info("\nXthor - Builded query: " + url);
// Return our search url
return url;
}
/// <summary>
/// Get Torrents Page from Tracker by Query Provided
/// </summary>
/// <param name="request">URL created by Query Builder</param>
/// <returns>Results from query</returns>
private async Task<string> QueryTrackerAsync(string request)
{
// Cache mode not enabled or cached file didn't exist for our query
logger.Debug("\nQuerying tracker for results....");
// Build WebRequest for index
var myIndexRequest = new WebRequest
{
Type = RequestType.GET,
Url = request,
Encoding = Encoding
};
// Request our first page
var results = await webclient.GetResultAsync(myIndexRequest);
if (results.Status == HttpStatusCode.InternalServerError) // See issue #2110
throw new Exception("Internal Server Error (" + results.ContentString + "), probably you reached the API limits, please reduce the number of queries");
// Return results from tracker
return results.ContentString;
}
/// <summary>
/// Check API's state
/// </summary>
/// <param name="state">State of API</param>
private void CheckApiState(XthorError state)
{
// Switch on state
switch (state.Code)
{
case 0:
// Everything OK
logger.Debug("\nXthor - API State : Everything OK ... -> " + state.Descr);
break;
case 1:
// Passkey not found
logger.Error("\nXthor - API State : Error, Passkey not found in tracker's database, aborting... -> " + state.Descr);
throw new Exception("Passkey not found in tracker's database");
case 2:
// No results
logger.Info("\nXthor - API State : No results for query ... -> " + state.Descr);
break;
case 3:
// Power Saver
logger.Warn("\nXthor - API State : Power Saver mode, only cached query with no parameters available ... -> " + state.Descr);
break;
case 4:
// DDOS Attack, API disabled
logger.Error("\nXthor - API State : Tracker is under DDOS attack, API disabled, aborting ... -> " + state.Descr);
throw new Exception("Tracker is under DDOS attack, API disabled");
case 8:
// AntiSpam Protection
logger.Warn("\nXthor - API State : Triggered AntiSpam Protection -> " + state.Descr);
throw new Exception("Triggered AntiSpam Protection, please delay your requests !");
default:
// Unknown state
logger.Error("\nXthor - API State : Unknown state, aborting querying ... -> " + state.Descr);
throw new Exception("Unknown state, aborting querying");
}
}
}
}

View File

@@ -41,12 +41,13 @@ namespace Jackett.Common.Services
private readonly Dictionary<string, string> renamedIndexers = new Dictionary<string, string>
{
{"audiobooktorrents", "abtorrents"},
{"baibako", "rudub"},
{"broadcastthenet", "broadcasthenet"},
{"hdreactor", "hdhouse"},
{"casatorrent", "teamctgame"},
{"icetorrent", "speedapp"},
{"kickasstorrent-kathow", "kickasstorrents-ws"},
{"legacyhd", "reelflix"},
{"leaguehd", "lemonhd"},
{"legacyhd", "reelflix"},
{"metaliplayro", "romanianmetaltorrents"},
{"nnm-club", "noname-club"},
{"passtheheadphones", "redacted"},

View File

@@ -278,7 +278,9 @@ namespace Jackett.Updater
"Definitions/awesomehd.yml", // migrated to C#
"Definitions/b2s-share.yml",
"Definitions/beyond-hd-oneurl.yml", // #12993
"Definitions/baibako.yml", // renamed rudub #5673
"Definitions/bithq.yml",
"Definitions/bit-titan.yml",
"Definitions/bigtorrent.yml", // merged with eStone #12352
"Definitions/bigtower.yml",
"Definitions/bitme.yml",
@@ -296,6 +298,7 @@ namespace Jackett.Updater
"Definitions/btstornet.yml",
"Definitions/btworld.yml",
"Definitions/btxpress.yml",
"Definitions/casatorrent.yml", // renamed to teamctgame
"Definitions/casstudiotv.yml",
"Definitions/channelx.yml",
"Definitions/cili180.yml", // renamed to liaorencili
@@ -307,6 +310,7 @@ namespace Jackett.Updater
"Definitions/cztorrent.yml",
"Definitions/darmowetorenty.yml", // migrated to C#
"Definitions/danishbytes.yml", // migrated to C#
"Definitions/darktracker.yml",
"Definitions/DasUnerwartete.yml",
"Definitions/datascene.yml", // switch to *-API #8682
"Definitions/demonsite.yml",
@@ -361,6 +365,7 @@ namespace Jackett.Updater
"Definitions/hdbc.yml", // renamed to hdbitscom
"Definitions/hdclub.yml",
"Definitions/hddisk.yml",
"Definitions/hdhouse.yml",
"Definitions/hdolimpo.yml", // migrated to UNIT3D API
"Definitions/hdplus.yml",
"Definitions/hdreactor.yml", // renamed to hdhouse
@@ -388,6 +393,7 @@ namespace Jackett.Updater
"Definitions/latinop2p.yml",
"Definitions/leaguehd.yml", // renamed to lemonhd
"Definitions/lechaudron.yml",
"Definitions/legacyhd.yml", // renamed realflix
"Definitions/lemencili.yml",
"Definitions/leparadisdunet.yml",
"Definitions/leporno.yml",
@@ -450,6 +456,7 @@ namespace Jackett.Updater
"Definitions/sdkino.yml",
"Definitions/secretcinema.yml", // migrated to C# gazelle base tracker
"Definitions/seedpeer.yml",
"Definitions/sexxi.yml",
"Definitions/sharefiles.yml",
"Definitions/shareisland.yml", // switch to *-API #8682
"Definitions/sharespacedb.yml",
@@ -478,7 +485,6 @@ namespace Jackett.Updater
"Definitions/tfile.yml",
"Definitions/the-madhouse.yml",
"Definitions/themoviecave.yml",
"Definitions/the-devils-lounge.yml",
"Definitions/theresurrection.yml",
"Definitions/thespit.yml",
"Definitions/thetorrents.yml",
@@ -488,6 +494,7 @@ namespace Jackett.Updater
"Definitions/tntfork.yml",
"Definitions/tntvillage.yml",
"Definitions/topnow.yml",
"Definitions/toros.yml",
"Definitions/torrent-paradise-ml.yml",
"Definitions/torrent4you.yml",
"Definitions/torrentbomb.yml",
@@ -496,6 +503,7 @@ namespace Jackett.Updater
"Definitions/torrentgalaxyorg.yml", // renamed to torrentgalaxy
"Definitions/torrenthane.yml",
"Definitions/torrentkim.yml",
"Definitions/torrentmax.yml",
"Definitions/torrentproject.yml",
"Definitions/torrentquest.yml",
"Definitions/torrentrex.yml",
@@ -514,6 +522,7 @@ namespace Jackett.Updater
"Definitions/ttobogo.yml",
"Definitions/turknova.yml",
"Definitions/u-torrents.yml",
"Definitions/uhd-heaven.yml",
"Definitions/ultimategamerclub.yml",
"Definitions/ultrahdclub.yml",
"Definitions/uniotaku.yml", // to be migrated to c#