mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-09 21:24:42 +02:00
Compare commits
91 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
89dc15ad80 | ||
![]() |
32128b5c61 | ||
![]() |
76644c380b | ||
![]() |
9ec189367e | ||
![]() |
56c3a0c21b | ||
![]() |
d47f059031 | ||
![]() |
5f8c2de953 | ||
![]() |
4963cacc07 | ||
![]() |
c95fb103fe | ||
![]() |
a3225049e7 | ||
![]() |
3b87b862da | ||
![]() |
655262e76b | ||
![]() |
47b6e1594f | ||
![]() |
d31e084f4f | ||
![]() |
a3dfdc6aaf | ||
![]() |
ce11beb6e1 | ||
![]() |
4773e3bc4c | ||
![]() |
e47d2b1961 | ||
![]() |
319e196341 | ||
![]() |
30fee2b231 | ||
![]() |
80d3f4c1a0 | ||
![]() |
aae061e7a9 | ||
![]() |
48ba07f500 | ||
![]() |
144957821f | ||
![]() |
8d468be93a | ||
![]() |
97e8196edd | ||
![]() |
b5f457e06f | ||
![]() |
8b5ef12567 | ||
![]() |
674ddc09b8 | ||
![]() |
51d5eee095 | ||
![]() |
a78a0e94d5 | ||
![]() |
a4f7c7a826 | ||
![]() |
c2b2d51875 | ||
![]() |
6f761d1bc4 | ||
![]() |
ed8be733fc | ||
![]() |
5584438a94 | ||
![]() |
b68ba1b338 | ||
![]() |
d06272a26a | ||
![]() |
6015da3e4c | ||
![]() |
4d3e2ba323 | ||
![]() |
61578e8412 | ||
![]() |
11ae92c79e | ||
![]() |
67ee2eb252 | ||
![]() |
9c7310aa44 | ||
![]() |
c19d743010 | ||
![]() |
4ef9f0b846 | ||
![]() |
bf08302e1e | ||
![]() |
22bcbd0032 | ||
![]() |
eda5ca45dc | ||
![]() |
b6e114f877 | ||
![]() |
a928bf37ac | ||
![]() |
ceec867659 | ||
![]() |
ae27a4e9ce | ||
![]() |
9dc3c4a8b4 | ||
![]() |
6982841754 | ||
![]() |
39d224e676 | ||
![]() |
3db4168f13 | ||
![]() |
cb7dc73b0e | ||
![]() |
1161585df1 | ||
![]() |
3fcaf289b5 | ||
![]() |
c2b92157b6 | ||
![]() |
b8c981af5a | ||
![]() |
9c62e96190 | ||
![]() |
d7afabbeed | ||
![]() |
9a8ba604ae | ||
![]() |
4e53fb2c84 | ||
![]() |
fed126fac2 | ||
![]() |
b83c130090 | ||
![]() |
e9d0f95d63 | ||
![]() |
1440b129c9 | ||
![]() |
1477c1caae | ||
![]() |
99458b2f90 | ||
![]() |
1c34fcdbf0 | ||
![]() |
58e8ed0672 | ||
![]() |
b7b0ec8885 | ||
![]() |
e2a711ca15 | ||
![]() |
4ce2ba5b0d | ||
![]() |
73a3dc22b0 | ||
![]() |
dfaedc2fbe | ||
![]() |
b5c060efd1 | ||
![]() |
c707d4d2c2 | ||
![]() |
0130783075 | ||
![]() |
cce7c20114 | ||
![]() |
f0f7378ff3 | ||
![]() |
68b54c2c30 | ||
![]() |
e0674620fb | ||
![]() |
54ad25b902 | ||
![]() |
067a88bffb | ||
![]() |
a0ae7144fe | ||
![]() |
de7d2f55af | ||
![]() |
8fb6d4dcc4 |
22
README.md
22
README.md
@@ -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
|
||||
|
@@ -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:
|
||||
|
155
src/Jackett.Common/Definitions/animeitalia.yml
Normal file
155
src/Jackett.Common/Definitions/animeitalia.yml
Normal 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
|
@@ -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:
|
||||
|
@@ -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
|
@@ -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
|
||||
|
@@ -7,6 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.biz/
|
||||
|
||||
caps:
|
||||
|
@@ -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
|
@@ -55,7 +55,7 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "?s={{ .Keywords }}"
|
||||
- path: "?s={{ .Keywords }}&"
|
||||
|
||||
rows:
|
||||
selector: article.post-entry
|
||||
|
@@ -7,6 +7,8 @@ type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.crazyspirits.com/
|
||||
certificates:
|
||||
- cb68471b631304b3b4cec6315cfbad5a6780eb84 # self-signed 13 Mar 2022
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -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 - "все в одном""}
|
||||
- {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: " | Общий архив раздела "Справочно-правовые системы""}
|
||||
- {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
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
181
src/Jackett.Common/Definitions/fenyarnyek-tracker.yml
Normal file
181
src/Jackett.Common/Definitions/fenyarnyek-tracker.yml
Normal 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
|
@@ -7,6 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://filelisting.com/
|
||||
- https://filelisting.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://filelisting.nocensor.biz/
|
||||
|
||||
caps:
|
||||
|
@@ -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/
|
||||
|
@@ -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:
|
||||
|
@@ -6,6 +6,8 @@ language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.gaytor.rent/
|
||||
legacylinks:
|
||||
- https://www.gaytorrent.ru/
|
||||
|
||||
settings:
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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/
|
||||
|
||||
|
@@ -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
|
@@ -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:
|
||||
|
@@ -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"}
|
||||
|
144
src/Jackett.Common/Definitions/hidden-palace.yml
Normal file
144
src/Jackett.Common/Definitions/hidden-palace.yml
Normal 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
|
176
src/Jackett.Common/Definitions/houseofdevil.yml
Normal file
176
src/Jackett.Common/Definitions/houseofdevil.yml
Normal 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
|
@@ -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:
|
||||
|
161
src/Jackett.Common/Definitions/jme-reunit3d.yml
Normal file
161
src/Jackett.Common/Definitions/jme-reunit3d.yml
Normal 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
|
@@ -116,6 +116,9 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 24
|
||||
category|noappend:
|
||||
optional: true
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
|
@@ -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]
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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]
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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/
|
||||
|
@@ -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="]
|
||||
|
@@ -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"}
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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
|
@@ -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
|
||||
|
@@ -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
|
@@ -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
|
@@ -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"))
|
||||
|
@@ -9,6 +9,7 @@ links:
|
||||
- https://tasmanit.es/
|
||||
certificates:
|
||||
- 23C30AC9655A8A7351A549538062B8C6B0D01A78 # expired 24 Jan 2022
|
||||
- 4325e8f1f13f6074f2bed6a6186fe183791ab32d # expired 1 March 2022
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
243
src/Jackett.Common/Definitions/teamctgame.yml
Normal file
243
src/Jackett.Common/Definitions/teamctgame.yml
Normal 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
|
178
src/Jackett.Common/Definitions/the-crazy-ones.yml
Normal file
178
src/Jackett.Common/Definitions/the-crazy-ones.yml
Normal 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
|
194
src/Jackett.Common/Definitions/the-devils-lounge.yml
Normal file
194
src/Jackett.Common/Definitions/the-devils-lounge.yml
Normal 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)
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -7,6 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://gw1.torlook.info/
|
||||
- https://torlook.nocensor.sbs/
|
||||
legacylinks:
|
||||
- https://torlook.nocensor.biz/
|
||||
|
||||
caps:
|
||||
|
@@ -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
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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"}
|
||||
|
@@ -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
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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]
|
||||
|
@@ -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"}
|
||||
|
192
src/Jackett.Common/Definitions/xthor-api.yml
Normal file
192
src/Jackett.Common/Definitions/xthor-api.yml
Normal 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
|
@@ -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"}
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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 }}"
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
{
|
||||
|
@@ -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 }
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@@ -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, "|- Кино СССР");
|
||||
|
@@ -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/?";
|
||||
|
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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"},
|
||||
|
@@ -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#
|
||||
|
Reference in New Issue
Block a user