mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-13 07:24:08 +02:00
Compare commits
171 Commits
v0.22.844
...
v0.22.1036
Author | SHA1 | Date | |
---|---|---|---|
![]() |
af4f731df4 | ||
![]() |
a59b173014 | ||
![]() |
4a0348f3dd | ||
![]() |
4390d7acac | ||
![]() |
0a8bc6f7a1 | ||
![]() |
9139deea4b | ||
![]() |
57f941557e | ||
![]() |
b2703b7668 | ||
![]() |
4d7185cb66 | ||
![]() |
c9d5db7401 | ||
![]() |
55c18d730d | ||
![]() |
600aa9bb26 | ||
![]() |
a75f1d8c48 | ||
![]() |
57d53bc231 | ||
![]() |
98b6692a1e | ||
![]() |
9f000669f5 | ||
![]() |
5453fc8f25 | ||
![]() |
4ba6a6b910 | ||
![]() |
88300e7f28 | ||
![]() |
7bdce70db7 | ||
![]() |
f8ef344dd5 | ||
![]() |
02d8637b92 | ||
![]() |
d5aa3cdd83 | ||
![]() |
503a081379 | ||
![]() |
e77e5f499b | ||
![]() |
433709b57a | ||
![]() |
89a8a60b0f | ||
![]() |
7c8416c64a | ||
![]() |
df7ebdb2b0 | ||
![]() |
90dc1bd645 | ||
![]() |
5df7ede721 | ||
![]() |
142f3a2ea2 | ||
![]() |
77c23257b2 | ||
![]() |
1b5c52c2d8 | ||
![]() |
5af2875ed4 | ||
![]() |
4318ff3689 | ||
![]() |
820437f522 | ||
![]() |
ef37ec4533 | ||
![]() |
ba962a6382 | ||
![]() |
ca802f998e | ||
![]() |
bec9908854 | ||
![]() |
2690efea1d | ||
![]() |
12a380ed35 | ||
![]() |
60a76cf8c8 | ||
![]() |
be590002a7 | ||
![]() |
23d5545072 | ||
![]() |
2e098ae13b | ||
![]() |
93f853abf0 | ||
![]() |
44bfba5f2c | ||
![]() |
8a656b6839 | ||
![]() |
25f8db676e | ||
![]() |
335cd2f3eb | ||
![]() |
e1a53faf19 | ||
![]() |
33787dcb16 | ||
![]() |
015f1414d2 | ||
![]() |
0c5bda00b6 | ||
![]() |
9faeb4cf45 | ||
![]() |
2c159ccf9b | ||
![]() |
fc1a4e963a | ||
![]() |
620a2ab5a3 | ||
![]() |
778cbeeed3 | ||
![]() |
e0209750b2 | ||
![]() |
187ad905b9 | ||
![]() |
3fb8d930aa | ||
![]() |
23afd21e11 | ||
![]() |
404bd92921 | ||
![]() |
75f8061eec | ||
![]() |
b6551a5afb | ||
![]() |
825be26ddc | ||
![]() |
4ca5961844 | ||
![]() |
932d47718b | ||
![]() |
9575f75547 | ||
![]() |
75a002b853 | ||
![]() |
f10652f0ea | ||
![]() |
71c18ee5ed | ||
![]() |
e3c4b91488 | ||
![]() |
3e68e45c14 | ||
![]() |
b90bf95fdd | ||
![]() |
12d952d0f5 | ||
![]() |
409407f38b | ||
![]() |
cc9c89241b | ||
![]() |
9271095b61 | ||
![]() |
31847f6e81 | ||
![]() |
cd2b96cfb0 | ||
![]() |
ddfe681685 | ||
![]() |
a128b517d5 | ||
![]() |
bc82ecfebe | ||
![]() |
75d6b08713 | ||
![]() |
063f9ab3b1 | ||
![]() |
61c03e82d9 | ||
![]() |
bbe6a9ed41 | ||
![]() |
835dc2cb15 | ||
![]() |
7b78cacc9d | ||
![]() |
5537a53d30 | ||
![]() |
95384a92ee | ||
![]() |
197b66ea64 | ||
![]() |
f8024be5cf | ||
![]() |
9d0e2adcca | ||
![]() |
6084287e4c | ||
![]() |
76d3eaa4ec | ||
![]() |
90bde6d62f | ||
![]() |
a7cfedbe82 | ||
![]() |
6d5c486011 | ||
![]() |
d24704a6c0 | ||
![]() |
86da01df19 | ||
![]() |
6fa840a70a | ||
![]() |
baa19b3067 | ||
![]() |
a4555501e2 | ||
![]() |
b347bed4f1 | ||
![]() |
248a3d2fb8 | ||
![]() |
25a8b26403 | ||
![]() |
a3ebd0e2ac | ||
![]() |
9cf2cb5ced | ||
![]() |
06d8682583 | ||
![]() |
e784e38355 | ||
![]() |
be939745a6 | ||
![]() |
7d58649c40 | ||
![]() |
d057bcfeeb | ||
![]() |
ff2683c911 | ||
![]() |
07c1d9d61d | ||
![]() |
e7f8b5af3c | ||
![]() |
f9db68ca8b | ||
![]() |
038ec05a64 | ||
![]() |
c705778ec3 | ||
![]() |
07c1efa686 | ||
![]() |
88b51d9895 | ||
![]() |
dc3a1d5626 | ||
![]() |
283f95429c | ||
![]() |
65af1dfead | ||
![]() |
17fef0064d | ||
![]() |
6ac3faa395 | ||
![]() |
d791a5c358 | ||
![]() |
bbf5b7b56e | ||
![]() |
5499e4714a | ||
![]() |
f141e6fad6 | ||
![]() |
d24ebe7781 | ||
![]() |
8139f3ba1f | ||
![]() |
03931906da | ||
![]() |
ebf1e302b3 | ||
![]() |
73d6068cb3 | ||
![]() |
abbbb34c6c | ||
![]() |
b2a8221ab1 | ||
![]() |
46e99d1d50 | ||
![]() |
94b20baabd | ||
![]() |
5b76d876a1 | ||
![]() |
8362bf5767 | ||
![]() |
a9a7cc4752 | ||
![]() |
6a5b6e8a30 | ||
![]() |
2079192f0b | ||
![]() |
885b92137e | ||
![]() |
24de1f95cc | ||
![]() |
5995fed99e | ||
![]() |
abc07864d1 | ||
![]() |
6073138fd0 | ||
![]() |
eb2ef44140 | ||
![]() |
4a2afa2b04 | ||
![]() |
27c03c1d14 | ||
![]() |
9b0ea775c5 | ||
![]() |
1cae15b996 | ||
![]() |
6682682fb1 | ||
![]() |
2ae92864a5 | ||
![]() |
4a27912ffd | ||
![]() |
1b37296598 | ||
![]() |
f8d899445a | ||
![]() |
564d390473 | ||
![]() |
84fbcbb82d | ||
![]() |
726482ca0e | ||
![]() |
542891a78a | ||
![]() |
f7f251f967 | ||
![]() |
15f8e3832d | ||
![]() |
dd0c30a0c2 |
26
README.md
26
README.md
@@ -94,6 +94,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* NNTT
|
||||
* NoNaMe Club (NNM-Club)
|
||||
* Nyaa.si
|
||||
* NyaaPantsu
|
||||
* OneJAV
|
||||
* OxTorrent
|
||||
* OxTorrent-vip
|
||||
@@ -136,7 +137,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Torrents.csv
|
||||
* TorrentSir (토렌트썰)
|
||||
* TorrentView (토렌트뷰)
|
||||
* TorrentWhiz (토렌트위즈)
|
||||
* Torrentz2nz
|
||||
* TrahT
|
||||
* truPornolabs
|
||||
@@ -200,6 +200,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* NetHD (VietTorrent)
|
||||
* Newstudio (login)
|
||||
* NoNaMe Club (NNM-Club) (login)
|
||||
* Polskie-Torrenty
|
||||
* PornoLab
|
||||
* PussyTorrents
|
||||
* Rainbow Tracker
|
||||
@@ -275,7 +276,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Bitpalace
|
||||
* BitPorn
|
||||
* Bitspyder
|
||||
* BitStream
|
||||
* BitTorrentFiles
|
||||
* BiTTuRK
|
||||
* BJ-Share (BJ) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -295,7 +295,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CapybaraBR
|
||||
* Carp-Hunter
|
||||
* Carpathians
|
||||
* CarPT
|
||||
* CarPT [![(invite needed)][inviteneeded]](#)
|
||||
* Cathode-Ray.Tube (CRT)
|
||||
* CD File
|
||||
* CeskeForum
|
||||
@@ -320,8 +320,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Dark-Shadow
|
||||
* Das Unerwartete (D-U)
|
||||
* DataScene (DS)
|
||||
* DenOfSimps (DoS)
|
||||
* DesiTorrents
|
||||
* DesiTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Diablo Torrent
|
||||
* DICMusic [![(invite needed)][inviteneeded]](#)
|
||||
* DigitalCore
|
||||
@@ -358,7 +357,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Gay-Torrents.org
|
||||
* GAYtorrent.ru
|
||||
* GazelleGames (GGn)
|
||||
* Generation-Free
|
||||
* Generation-Free [![(invite needed)][inviteneeded]](#)
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT)
|
||||
* GiroTorrent
|
||||
@@ -375,13 +374,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HD-Olimpo [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Only (HDO)
|
||||
* HD-Space (HDS)
|
||||
* HD-Torrents (HDT) [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Torrents (HDT)
|
||||
* HD-UNiT3D
|
||||
* HD4FANS [![(invite needed)][inviteneeded]](#)
|
||||
* HDArea (HDA)
|
||||
* HDAtmos
|
||||
* HDBits [![(invite needed)][inviteneeded]](#)
|
||||
* HDCiTY (HDC) [![(invite needed)][inviteneeded]](#)
|
||||
* HDClone
|
||||
* HDFans
|
||||
* HDHome (HDBigger) [![(invite needed)][inviteneeded]](#)
|
||||
* HDKylin (麒麟)
|
||||
@@ -397,6 +397,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Hebits
|
||||
* HellasHut
|
||||
* HHanClub
|
||||
* HHD
|
||||
* HomePornTorrents (HPT)
|
||||
* House of Devil
|
||||
* HUDBT (蝴蝶) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -420,7 +421,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Karagarga [![(invite needed)][inviteneeded]](#)
|
||||
* Keep Friends [![(invite needed)][inviteneeded]](#)
|
||||
* Kelu
|
||||
* KIMOJI
|
||||
* Korsar [![(invite needed)][inviteneeded]](#)
|
||||
* KrazyZone
|
||||
* Kufei (库非)
|
||||
@@ -434,6 +434,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* LearnBits
|
||||
* LearnFlakes
|
||||
* Leech24
|
||||
* LemonHD [![(invite needed)][inviteneeded]](#)
|
||||
* Lesbians4u
|
||||
* Libble
|
||||
* LibraNet (LN)
|
||||
@@ -521,10 +522,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Resurrect The Net [![(invite needed)][inviteneeded]](#)
|
||||
* RetroFlix
|
||||
* RevolutionTT [![(invite needed)][inviteneeded]](#)
|
||||
* RocketHD
|
||||
* Romanian Metal Torrents (RMT)
|
||||
* RoTorrent
|
||||
* Rousi
|
||||
* RPTScene (RPTorrents)
|
||||
* SATClubbing
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* SceneRush
|
||||
@@ -569,6 +570,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* The-New-Fun
|
||||
* TheEmpire (TE)
|
||||
* TheLeachZone (TLZ)
|
||||
* ThePiratedShip
|
||||
* TheScenePlace (TSP)
|
||||
* TJUPT (北洋园PT)
|
||||
* TLFBits [![(invite needed)][inviteneeded]](#)
|
||||
@@ -601,7 +603,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TranceTraffic
|
||||
* Trellas (Magico) [![(invite needed)][inviteneeded]](#)
|
||||
* TreZzoR
|
||||
* TurkNova
|
||||
* TurkSeed
|
||||
* TurkTorrent (TT)
|
||||
* TV Chaos UK (TVCUK)
|
||||
@@ -620,14 +621,13 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* White Angel
|
||||
* WinterSakura
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* World-of-Tomorrow
|
||||
* World-of-Tomorrow [![(invite needed)][inviteneeded]](#)
|
||||
* Wukong (悟空问道)
|
||||
* x-ite.me (XM)
|
||||
* Xider-Torrent
|
||||
* XperienceBytes (XPB)
|
||||
* XSpeeds (XS)
|
||||
* Xthor [![(invite needed)][inviteneeded]](#)
|
||||
* xTorrenty
|
||||
* xTorrenty [![(invite needed)][inviteneeded]](#)
|
||||
* XtremeBytes
|
||||
* XWT-Classics
|
||||
* XWTorrents (XWT)
|
||||
|
@@ -51,14 +51,14 @@ stages:
|
||||
artifactName: Jackett.Binaries.Windows.zip
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-12
|
||||
imageName: macOS-13
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
macOSARM64:
|
||||
buildDescription: macOS ARM64
|
||||
imageName: macOS-12
|
||||
imageName: macOS-13
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-arm64
|
||||
archiveType: tar
|
||||
@@ -427,7 +427,7 @@ stages:
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-12
|
||||
imageName: macOS-13
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
@@ -521,7 +521,7 @@ stages:
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-12
|
||||
imageName: macOS-13
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
|
@@ -47,6 +47,8 @@ login:
|
||||
vb_login_password: "{{ .Config.password }}"
|
||||
cookieuser: 1
|
||||
do: login
|
||||
error:
|
||||
- selector: div.restore:contains("invalid username or password")
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
@@ -152,7 +152,7 @@ search:
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " -01:00" # EGT
|
||||
args: " +00:00" # UTC
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
@@ -188,4 +188,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 8.3.1 (custom)
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -193,4 +193,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.2.0
|
||||
# json UNIT3D 8.3.4
|
||||
|
@@ -106,6 +106,8 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: :root:contains("Sikertelen bejelentkezés")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?c="]
|
||||
|
@@ -7,6 +7,7 @@ type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://127.0.0.1:3333/
|
||||
- http://bitmagnet:3333/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -188,4 +188,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.2
|
||||
# json UNIT3D 8.3.4
|
||||
|
@@ -356,44 +356,32 @@ search:
|
||||
|
||||
rows:
|
||||
# results without sizes are just pre-release announcements
|
||||
selector: div.short_search:has(div.shor_subtitles span:nth-child(2):contains(" "))
|
||||
selector: a.search_res:has(div.search_res_sub span:nth-child(2):contains(" "))
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
year:
|
||||
selector: div.shor_subtitles span
|
||||
selector: div.search_res_sub span
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
title:
|
||||
selector: div.short_titles > a
|
||||
selector: a.search_res
|
||||
filters:
|
||||
- name: append
|
||||
args: " [{{ .Result.year }}]"
|
||||
details:
|
||||
selector: div.short_titles > a
|
||||
selector: a.search_res
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.short_titles > a
|
||||
selector: a.search_res
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
selector: img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ".*/(\\d{4}-\\d{2})/.*"
|
||||
- name: dateparse
|
||||
args: "yyyy-MM"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
size_rus:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("Б")
|
||||
selector: div.search_res_sub span:nth-child(2):contains("Б")
|
||||
optional: true
|
||||
default: "0 B"
|
||||
filters:
|
||||
@@ -406,9 +394,15 @@ search:
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
size:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("B")
|
||||
selector: div.search_res_sub span:nth-child(2):contains("B")
|
||||
optional: true
|
||||
default: "{{ .Result.size_rus }}"
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -195,4 +195,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.2 (custom)
|
||||
# json UNIT3D 8.3.3 (custom)
|
||||
|
@@ -72,6 +72,8 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.main:contains("Sikertelen bejelentkezés")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
@@ -190,4 +190,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 8.2.0
|
||||
# json UNIT3D 8.3.4
|
||||
|
@@ -110,7 +110,7 @@ search:
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -113,7 +113,7 @@ search:
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname):has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -148,7 +148,7 @@ search:
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -158,7 +158,7 @@ search:
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -168,17 +168,17 @@ search:
|
||||
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)
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
optional: true
|
||||
default: 1
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
optional: true
|
||||
default: 1
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
optional: true
|
||||
default: 1
|
||||
downloadvolumefactor:
|
||||
@@ -204,7 +204,7 @@ search:
|
||||
span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:"
|
||||
span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
filters:
|
||||
- name: prepend
|
||||
|
@@ -72,6 +72,10 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_password
|
||||
type: info
|
||||
label: About Password Expiry
|
||||
default: "Dark Shadow has an <b>8 week Password Expiry</b> regime. So if the Indexer has stopped working then the first thing you should do is check if your password has expired by login in at <a href=\"https://dark-shadow.me/login.php\" target=\"_blank\">Dark-Shadow</a>, and if necessary use the <b>Passwort anfordern</b> (<i>Request password</i>) button to renew it."
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
|
@@ -62,6 +62,8 @@ login:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: table.main:contains("Login failed")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
@@ -100,6 +100,8 @@ login:
|
||||
login: 1
|
||||
belepes: 1
|
||||
rhash: 123
|
||||
error:
|
||||
- selector: :root:contains("{\"hiba\":true,")
|
||||
test:
|
||||
path: browse
|
||||
selector: a[href*="logout"]
|
||||
|
@@ -65,7 +65,7 @@ settings:
|
||||
default: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTi POLISH: MULTIi POLISH
|
||||
MULTi POLISH: MULTi POLISH
|
||||
|
||||
login:
|
||||
# using cookie method because login page has embedded Google reCAPTCHA
|
||||
|
@@ -95,7 +95,7 @@ search:
|
||||
# 0 all, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 polish, 5 dubbed, 6 subs, 2 non-polish, 3 freeleech, 4 highlighted
|
||||
polish: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
polish: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
|
@@ -22,6 +22,7 @@ caps:
|
||||
- {id: 10, cat: TV/Sport, desc: "DTM"}
|
||||
- {id: 11, cat: TV/Sport, desc: "Rally"}
|
||||
- {id: 12, cat: TV/Sport, desc: "WEC"}
|
||||
- {id: 13, cat: TV/Sport, desc: "Other Series"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -75,7 +75,6 @@ search:
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
noResultsMessage: "No Torrents Found"
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
@@ -183,7 +182,10 @@ search:
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# Maintain global ratio above 0.7 or downloads will get disabled. No MST.
|
||||
minimumratio:
|
||||
text: 0.71
|
||||
# json UNIT3D 8.3.0
|
||||
# global MR is 0.71 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.71
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -114,6 +114,16 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(a[href*="login.php?error=1"])
|
||||
message:
|
||||
text: "ERROR: Incorrect username!"
|
||||
- selector: table:has(a[href*="login.php?error=4"])
|
||||
message:
|
||||
text: "ERROR: Incorrect password!"
|
||||
- selector: table:has(a[href*="login.php?error="])
|
||||
message:
|
||||
text: "ERROR: Something went wrong during login!"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="/logout.php"]
|
||||
|
@@ -111,6 +111,8 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.panel:has(h3:contains("Login failed"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href$="/logout.php"]
|
||||
|
@@ -8,6 +8,7 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://glodls.to/
|
||||
- https://gtso.cc/
|
||||
- https://glodls.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://glodls.rocks/
|
||||
- https://gtdb.to/
|
||||
@@ -15,7 +16,6 @@ legacylinks:
|
||||
- https://www.gtdb.to/
|
||||
- https://glotorrents.mrunblock.bond/
|
||||
- https://glotorrents.nocensor.cloud/
|
||||
- https://glodls.unblockninja.com/ # blank
|
||||
- https://glodls.ninjaproxy1.com/ # blank
|
||||
- https://glotorrents.unblockit.download/
|
||||
|
||||
|
@@ -153,4 +153,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 5.3.0
|
||||
# json UNIT3D 5.3.0 (custom 0.5.0)
|
||||
|
@@ -184,4 +184,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 8.3.1
|
||||
# json UNIT3D 8.3.2
|
||||
|
201
src/Jackett.Common/Definitions/hdclone.yml
Normal file
201
src/Jackett.Common/Definitions/hdclone.yml
Normal file
@@ -0,0 +1,201 @@
|
||||
---
|
||||
id: hdclone
|
||||
name: HDClone
|
||||
description: "HDClone is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.hdclone.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫、动画"}
|
||||
- {id: 408, cat: Audio/Video, desc: "Playlet/短剧"}
|
||||
- {id: 410, cat: Audio/Video, desc: "MV/演唱会"}
|
||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 407, cat: Other, desc: "Others/其他(慎选)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the HDClone Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
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
|
||||
- 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: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li> Users with a parked account will be deleted if they do not log in for 80 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 60 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 10 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ 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 }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow: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
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.11 2024-03-27
|
@@ -188,4 +188,4 @@ search:
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# as a pay site there is no MR or MST
|
||||
# json UNIT3D 8.3.1 (custom)
|
||||
# json UNIT3D 8.3.3 (custom)
|
||||
|
@@ -184,4 +184,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 8.2.0
|
||||
# json UNIT3D 8.3.2
|
||||
|
@@ -95,7 +95,7 @@ settings:
|
||||
default: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTi POLISH: MULTIi POLISH
|
||||
MULTi POLISH: MULTi POLISH
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
|
@@ -1,30 +1,23 @@
|
||||
---
|
||||
id: denofsimps-api
|
||||
name: DenOfSimps (API)
|
||||
description: "DenOfSimps (DoS) is a Private Torrent Tracker for 3X Fansite content only"
|
||||
id: hhd-api
|
||||
name: HHD (API)
|
||||
description: "HHD is a Private Torrent Tracker for MOVIES / TV / GAMES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://denofsimps.club/
|
||||
- https://homiehelpdesk.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: XXX/WEB-DL, desc: "OnlyFans"}
|
||||
- {id: 2, cat: XXX/WEB-DL, desc: "Fansly"}
|
||||
- {id: 3, cat: XXX/WEB-DL, desc: "ManyVids"}
|
||||
- {id: 4, cat: XXX/WEB-DL, desc: "Clips4Sale"}
|
||||
- {id: 15, cat: XXX/WEB-DL, desc: "iWantClips"}
|
||||
- {id: 6, cat: XXX/WEB-DL, desc: "Privacy"}
|
||||
- {id: 10, cat: XXX/WEB-DL, desc: "Chaturbate"}
|
||||
- {id: 11, cat: XXX/WEB-DL, desc: "LoyalFans"}
|
||||
- {id: 12, cat: XXX/WEB-DL, desc: "CamSoda"}
|
||||
- {id: 8, cat: XXX/WEB-DL, desc: "MyDirtyHobby"}
|
||||
- {id: 5, cat: XXX/WEB-DL, desc: "JustForFans"}
|
||||
- {id: 14, cat: XXX/WEB-DL, desc: "Other"}
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 4, cat: Console, desc: "Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -33,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://denofsimps.club/\" target=\"_blank\">DenOfSimps</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://homiehelpdesk.net/\" target=\"_blank\">HHD</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -58,10 +51,6 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Unused accounts may be pruned without warning."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
@@ -84,12 +73,18 @@ search:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 50
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -100,8 +95,6 @@ search:
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
_id:
|
||||
selector: ..id
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
@@ -120,9 +113,23 @@ search:
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
text: "{{ .Config.sitelink }}files/img/torrent-cover_{{ .Result._id }}.jpg"
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: type
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
seeders:
|
||||
@@ -136,7 +143,7 @@ search:
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
args: " -11:00" # SST
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
@@ -166,10 +173,9 @@ search:
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 1.0 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
minimumratio:
|
||||
text: 7.0
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 8.1.3 (custom)
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.3
|
@@ -85,6 +85,7 @@ caps:
|
||||
- {id: 45, cat: PC/Mobile-iOS, desc: "iOS", default: true}
|
||||
- {id: 46, cat: PC/Mac, desc: "Mac", default: true}
|
||||
- {id: 47, cat: PC/ISO, desc: "Linux", default: true}
|
||||
- {id: 102, cat: Other, desc: "3D STL", default: true}
|
||||
# Dokumentarni
|
||||
- {id: 95, cat: TV/Documentary, desc: "Dokumentarni Film", default: true}
|
||||
- {id: 96, cat: TV/Documentary, desc: "Dokumentarna Serija", default: true}
|
||||
@@ -145,7 +146,7 @@ login:
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [14, 15, 16, 20, 21, 49, 50, 51, 52, 55, 71, 72, 73, 74, 77, 97, 99, 100, 23, 24, 75, 76, 78, 79, 80, 81, 82, 98, 26, 56, 93, 29, 30, 31, 34, 83, 42, 43, 53, 54, 62, 37, 85, 86, 87, 88, 89, 90, 91, 38, 39, 40, 41, 44, 45, 46, 47, 95, 96]
|
||||
categories: [14, 15, 16, 20, 21, 49, 50, 51, 52, 55, 71, 72, 73, 74, 77, 97, 99, 100, 23, 24, 75, 76, 78, 79, 80, 81, 82, 98, 26, 56, 93, 29, 30, 31, 34, 83, 42, 43, 53, 54, 62, 37, 85, 86, 87, 88, 89, 90, 91, 38, 39, 40, 41, 44, 45, 46, 47, 102, 95, 96]
|
||||
- path: xxx.php
|
||||
categories: [60, 61, 66, 67, 68, 69, 84]
|
||||
inputs:
|
||||
|
@@ -25,6 +25,7 @@ caps:
|
||||
- {id: 16, cat: TV, desc: "Boxsets"}
|
||||
- {id: 18, cat: Audio, desc: "Music"}
|
||||
- {id: 19, cat: Movies, desc: "Film"}
|
||||
- {id: 20, cat: Movies, desc: "VIP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -43,6 +44,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: novip
|
||||
type: checkbox
|
||||
label: Hide VIP releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -84,8 +89,7 @@ search:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 filename, 1 file&descr, 2 descr, 3 uploaders, 18 genre, 4 imdb, 5 gold, 6 silver, 7 bronze, 8-17 upload multiplier 1x-10x
|
||||
# note the options are exclusive, so searching for gold means the search keywords are ignored
|
||||
# 0 filename, 1 file&descr, 2 descr, 3 uploaders
|
||||
options: 0
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
@@ -98,7 +102,7 @@ search:
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: "table.lista > tbody > tr:has(a[href^=\"download.php?id=\"]):not(:has(a[href^=\"index.php?page=userdetails\"])){{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}, able.lista > tbody > tr:has(a[href^=\"download.php?id=\"]):not(:has(a[href^=\"index.php?page=userdetails\"])){{ if .Config.freeleech }}:has(img[src$=\"freeleech.gif\"]){{ else }}{{ end }}"
|
||||
selector: "table.lista > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.novip }}:not(:has(a[href$=\"category=20\"])){{ else }}{{ end }}{{ if .Config.freeleech }}:has(img[src$=\"gold.gif\"]){{ else }}{{ end }}, table.lista > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.novip }}:not(:has(a[href$=\"category=20\"])){{ else }}{{ end }}{{ if .Config.freeleech }}:has(img[src$=\"freeleech.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -134,20 +138,27 @@ search:
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
# Size: 2.00 GB
|
||||
selector: td:has(a[href^="download.php?id="]) p:contains("Size:")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d.+[B]$)
|
||||
date:
|
||||
selector: td:has(a[href^="download.php?id="]) ~ td ~ td
|
||||
# AddDate: 12:54:01 24/10/2024
|
||||
selector: td:has(a[href^="download.php?id="]) p:contains("AddDate:")
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{2}:\d{2}:\d{2}\s\d{1,2}\/\d{2}\/\d{4})
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy"
|
||||
args: "HH:mm:ss d/MM/yyyy"
|
||||
seeders:
|
||||
selector: td:has(a[href^="download.php?id="]) ~ td ~ td ~ td
|
||||
selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a
|
||||
leechers:
|
||||
selector: td:has(a[href^="download.php?id="]) ~ td ~ td ~ td ~ td
|
||||
selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a:nth-child(2)
|
||||
grabs:
|
||||
selector: td:has(a[href^="download.php?id="]) ~ td ~ td ~ td ~ td ~ td
|
||||
size:
|
||||
selector: "td:has(a[href^=\"download.php?id=\"]) ~ td ~ td ~ td ~ td ~ td ~ td"
|
||||
selector: td:has(a[href^="download.php?id="]) p:contains("Seeds:") > a:nth-child(3)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech.gif"]: 0
|
||||
@@ -172,4 +183,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# xbtitFM v4.1.28
|
||||
# xbtitFM v4.1.31
|
||||
|
@@ -6,12 +6,12 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://isohunt.nz/
|
||||
- https://isohunt.ch/
|
||||
legacylinks:
|
||||
- https://isohunt2.net/ # redirects to torrentproject.cc
|
||||
- https://isohunt.fun/ # redirects to torrentproject.cc
|
||||
- https://isohunt.tv/ # redirects to torrentproject.cc
|
||||
- https://isohunt.nz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -200,4 +200,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.2 (custom)
|
||||
# json UNIT3D 8.3.3 (custom)
|
||||
|
@@ -6,6 +6,8 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://jav-torrent.net/
|
||||
legacylinks:
|
||||
- https://jav-torrent.org/
|
||||
|
||||
caps:
|
||||
|
@@ -71,6 +71,9 @@ search:
|
||||
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}4/?sortby={{ .Config.sort }}&sort={{ .Config.type }}"
|
||||
- path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}5/?sortby={{ .Config.sort }}&sort={{ .Config.type }}"
|
||||
|
||||
error:
|
||||
- selector: h1:contains("403 Forbidden")
|
||||
|
||||
rows:
|
||||
selector: table.data tr.odd:has(a[class="cellMainLink"]), table.data tr.even:has(a[class="cellMainLink"])
|
||||
filters:
|
||||
|
@@ -1,151 +0,0 @@
|
||||
---
|
||||
id: kimoji
|
||||
name: KIMOJI
|
||||
description: "KIMOJI is a CHINESE Private Torrent Tracker for MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://kimoji.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-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://kimoji.club/\" target=\"_blank\">KIMOJI</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
_id:
|
||||
selector: ..id
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
text: "{{ .Config.sitelink }}files/img/torrent-cover_{{ .Result._id }}.jpg"
|
||||
genre:
|
||||
selector: distributor
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Hard Rock)", "Hard_Rock"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(World Music)", "World_Music"]
|
||||
- name: replace
|
||||
args: ["/", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
# global MR is 1.0 but torrents must be seeded for 3 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 7.1.3 (custom)
|
@@ -1,160 +0,0 @@
|
||||
---
|
||||
id: knaben
|
||||
name: Knaben
|
||||
description: "Knaben is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://knaben.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1000000, cat: Audio, desc: "Audio"}
|
||||
- {id: 1001000, cat: Audio/MP3, desc: "MP3"}
|
||||
- {id: 1002000, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 1003000, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: 1004000, cat: Audio/Video, desc: "Audio Video"}
|
||||
- {id: 1005000, cat: Audio/Other, desc: "Radio"}
|
||||
- {id: 1006000, cat: Audio/Other, desc: "Audio Other"}
|
||||
- {id: 2000000, cat: TV, desc: "TV"}
|
||||
- {id: 2001000, cat: TV/HD, desc: "TV HD"}
|
||||
- {id: 2002000, cat: TV/SD, desc: "TV SD"}
|
||||
- {id: 2003000, cat: TV/UHD, desc: "TV UHD"}
|
||||
- {id: 2004000, cat: TV/Documentary, desc: "Documentary"}
|
||||
- {id: 2005000, cat: TV/Foreign, desc: "TV Foreign"}
|
||||
- {id: 2006000, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 2007000, cat: TV/Other, desc: "Cartoon"}
|
||||
- {id: 2008000, cat: TV/Other, desc: "TV Other"}
|
||||
- {id: 3000000, cat: Movies, desc: "Movies"}
|
||||
- {id: 3001000, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 3002000, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 3003000, cat: Movies/UHD, desc: "Movies UHD"}
|
||||
- {id: 3004000, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 3005000, cat: Movies/Foreign, desc: "Movies Foreign"}
|
||||
- {id: 3006000, cat: Movies/Foreign, desc: "Movies Bollywood"}
|
||||
- {id: 3007000, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 3008000, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: 4000000, cat: PC, desc: "PC"}
|
||||
- {id: 4001000, cat: PC/Games, desc: "Games"}
|
||||
- {id: 4002000, cat: PC/0day, desc: "Software"}
|
||||
- {id: 4003000, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 4004000, cat: PC/ISO, desc: "Unix"}
|
||||
- {id: 5000000, cat: XXX, desc: "XXX"}
|
||||
- {id: 5001000, cat: XXX/x264, desc: "XXX Video"}
|
||||
- {id: 5002000, cat: XXX/ImageSet, desc: "XXX ImageSet"}
|
||||
- {id: 5003000, cat: XXX/Other, desc: "XXX Games"}
|
||||
- {id: 5004000, cat: XXX/Other, desc: "XXX Hentai"}
|
||||
- {id: 5005000, cat: XXX/Other, desc: "XXX Other"}
|
||||
- {id: 6000000, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 6001000, cat: TV/Anime, desc: "Anime Subbed"}
|
||||
- {id: 6002000, cat: TV/Anime, desc: "Anime Dubbed"}
|
||||
- {id: 6003000, cat: TV/Anime, desc: "Anime Dual audio"}
|
||||
- {id: 6004000, cat: TV/Anime, desc: "Anime Raw"}
|
||||
- {id: 6005000, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 6006000, cat: Books/Other, desc: "Literature"}
|
||||
- {id: 6007000, cat: Audio/Other, desc: "Music"}
|
||||
- {id: 6008000, cat: TV/Anime, desc: "Anime non-english translated"}
|
||||
- {id: 7000000, cat: Console, desc: "Console"}
|
||||
- {id: 7001000, cat: Console/PS4, desc: "PS4"}
|
||||
- {id: 7002000, cat: Console/PS3, desc: "PS3"}
|
||||
- {id: 7003000, cat: Console/PS3, desc: "PS2"}
|
||||
- {id: 7004000, cat: Console/PS3, desc: "PS1"}
|
||||
- {id: 7005000, cat: Console/PS Vita, desc: "PS Vita"}
|
||||
- {id: 7006000, cat: Console/PSP, desc: "PSP"}
|
||||
- {id: 7007000, cat: Console/XBox 360, desc: "Xbox 360"}
|
||||
- {id: 7008000, cat: Console/XBox, desc: "Xbox"}
|
||||
- {id: 7009000, cat: Console/NDS, desc: "Switch"}
|
||||
- {id: 7010000, cat: Console/NDS, desc: "NDS"}
|
||||
- {id: 7011000, cat: Console/Wii, desc: "Wii"}
|
||||
- {id: 7012000, cat: Console/WiiU, desc: "WiiU"}
|
||||
- {id: 7013000, cat: Console/3DS, desc: "3DS"}
|
||||
- {id: 7014000, cat: Console/Wii, desc: "GameCube"}
|
||||
- {id: 7015000, cat: Console/Other, desc: "Other"}
|
||||
- {id: 8000000, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 8001000, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 8002000, cat: PC/Mobile-iOS, desc: "IOS"}
|
||||
- {id: 8003000, cat: PC/Mobile-Other, desc: "PC Other"}
|
||||
- {id: 9000000, cat: Books, desc: "Books"}
|
||||
- {id: 9001000, cat: Books/EBook, desc: "EBooks"}
|
||||
- {id: 9002000, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 9003000, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 9004000, cat: Books/Technical, desc: "Technical"}
|
||||
- {id: 9005000, cat: Books/Other, desc: "Books Other"}
|
||||
- {id: 10000000, cat: Other, desc: "Other"}
|
||||
- {id: 10001000, cat: Other/Misc, desc: "Other Misc"}
|
||||
|
||||
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: date
|
||||
options:
|
||||
date: created
|
||||
seeders: seeders
|
||||
bytes: size
|
||||
title: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: "+"
|
||||
options:
|
||||
"+": desc
|
||||
"-": asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search/{{ .Keywords }}{{ else }}browse{{ end }}/0/1/{{ .Config.type }}{{ .Config.sort }}"
|
||||
|
||||
rows:
|
||||
selector: tr[title^="Cached "], tr[title^="Checked "]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/browse/"]:last-child
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
# replace subcat with cat: 1001069 > 1001000
|
||||
- name: re_replace
|
||||
args: ["(\\d{3})$", "000"]
|
||||
title:
|
||||
selector: td:nth-child(2) a
|
||||
details:
|
||||
selector: td:last-child a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: href
|
||||
description:
|
||||
selector: td:last-child a
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "Source: "
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -13,15 +13,15 @@ legacylinks:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Films: General"}
|
||||
- {id: 33, cat: Movies/Other, desc: "Films: [TMDB UnListed]"}
|
||||
- {id: 21, cat: Movies/3D, desc: "Films: 3D"}
|
||||
- {id: 25, cat: Movies/Other, desc: "Films: Musical"}
|
||||
- {id: 18, cat: Movies/Other, desc: "Films: Silent"}
|
||||
- {id: 24, cat: Movies/Other, desc: "Films: Holiday"}
|
||||
- {id: 19, cat: Movies/Other, desc: "Films: Shorts"}
|
||||
- {id: 42, cat: Movies/Other, desc: "Films: Shorts [TMDB UnListed]"}
|
||||
- {id: 17, cat: TV/Documentary, desc: "Films: Documentary"}
|
||||
- {id: 12, cat: Movies/Other, desc: "Films: FanEdits/Restorations"}
|
||||
- {id: 33, cat: Movies/Other, desc: "Films: [TMDB UnListed]"}
|
||||
- {id: 42, cat: Movies/Other, desc: "Films: Shorts [TMDB UnListed]"}
|
||||
- {id: 27, cat: Movies/Foreign, desc: "Films SP1: Dub or Vid issues"}
|
||||
- {id: 22, cat: Movies/Foreign, desc: "Films SP2: No English"}
|
||||
- {id: 28, cat: Movies/Other, desc: "Films SP3: Other"}
|
||||
@@ -42,15 +42,15 @@ caps:
|
||||
- {id: 35, cat: TV/Sport, desc: "Culture: Sports"}
|
||||
- {id: 37, cat: TV/Other, desc: "Culture: Firearms and Freedom"}
|
||||
- {id: 36, cat: TV/Other, desc: "Culture: Roms"}
|
||||
- {id: 6, cat: XXX, desc: "XXX: Smut [TMDB Listed]"}
|
||||
- {id: 30, cat: XXX, desc: "XXX: Smut [TMDB UnListed]"}
|
||||
- {id: 15, cat: XXX/Pack, desc: "XXX: MegaPacks"}
|
||||
- {id: 10, cat: XXX, desc: "XXX: Hentai"}
|
||||
- {id: 14, cat: XXX/Other, desc: "XXX: Creators Corner"}
|
||||
- {id: 39, cat: XXX/Other, desc: "XXX: Pain and Violence"}
|
||||
- {id: 13, cat: XXX/Other, desc: "XXX: Other"}
|
||||
- {id: 11, cat: XXX/Other, desc: "XXX: Zoo"}
|
||||
- {id: 26, cat: Other, desc: "FuckedUpShit"}
|
||||
- {id: 6, cat: XXX, desc: "Mature: NSFW [TMDB Listed]"}
|
||||
- {id: 30, cat: XXX, desc: "Mature: NSFW [TMDB UnListed]"}
|
||||
- {id: 15, cat: XXX/Pack, desc: "Mature: NSFW MegaPacks"}
|
||||
- {id: 10, cat: XXX, desc: "Mature: Hentai"}
|
||||
- {id: 14, cat: XXX/Other, desc: "Mature: Creators Corner"}
|
||||
- {id: 39, cat: XXX/Other, desc: "Mature: NSFL [Listed]"}
|
||||
- {id: 11, cat: XXX/Other, desc: "Mature: NSFL [Unlisted]"}
|
||||
- {id: 44, cat: XXX/Other, desc: "Mature: Audio"}
|
||||
- {id: 43, cat: Other, desc: "Internal Testing"}
|
||||
- {id: 23, cat: Other, desc: "Other_Or_Not_Sure"}
|
||||
|
||||
modes:
|
||||
|
@@ -46,6 +46,10 @@ caps:
|
||||
- {id: 14, cat: TV/WEB-DL, desc: "SERIE WEB.720p"}
|
||||
- {id: 12, cat: TV/WEB-DL, desc: "SERIE WEB"}
|
||||
- {id: 110, cat: TV, desc: "SERIE Nouveautés 2024"}
|
||||
# ANIMEE
|
||||
- {id: 113, cat: TV/Anime, desc: "ANIMEE Nouveautées 2024"}
|
||||
- {id: 114, cat: Movies/Other, desc: "ANIMEE Fim"}
|
||||
- {id: 115, cat: TV/Anime, desc: "ANIMEE Serie"}
|
||||
# LOGICIELS
|
||||
- {id: 56, cat: PC/ISO, desc: "LOGICIELS Linux"}
|
||||
- {id: 24, cat: PC/Mac, desc: "LOGICIELS Apple"}
|
||||
@@ -58,6 +62,7 @@ caps:
|
||||
# MUSIC
|
||||
- {id: 5, cat: Audio/Video, desc: "MUSIC clip video"}
|
||||
- {id: 109, cat: Audio/Video, desc: "MUSIC Spectacles.Theatre"}
|
||||
- {id: 112, cat: Audio/Video, desc: "MUSIC Concert filmé"}
|
||||
# JEUX
|
||||
- {id: 96, cat: PC/Games, desc: "JEUX Apple"}
|
||||
- {id: 8, cat: Console/PS3, desc: "JEUX PS3"}
|
||||
|
173
src/Jackett.Common/Definitions/lemonhd.yml
Normal file
173
src/Jackett.Common/Definitions/lemonhd.yml
Normal file
@@ -0,0 +1,173 @@
|
||||
---
|
||||
id: lemonhd
|
||||
name: LemonHD
|
||||
description: "LemonHD is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://lemonhd.club/
|
||||
legacylinks:
|
||||
- https://leaguehd.com/
|
||||
- https://lemonhd.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 411, cat: Audio, desc: "Music/无损音乐"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/音乐MV"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 410, cat: Movies/3D, desc: "Movies 3D"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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: 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
|
||||
- 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.
|
||||
|
||||
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: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href$="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 justdead
|
||||
incldead: 0
|
||||
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdb, 5 douban
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}5{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="details.php?id="] > b[title]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow: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
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP Standard v1.5 Beta 4
|
@@ -16,6 +16,18 @@ caps:
|
||||
search: [q]
|
||||
music-search: [q, artist]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info_login
|
||||
type: info
|
||||
label: About LosslessClub Forum versus LosslessClub Tracker
|
||||
default: "The <a href=\"https://losslessclub.com/\" target=\"_blank\">LosslessClub Forum</a> credentials are different from the <a href=\"https://losslessclub.com/login.php\" target=\"_blank\">LosslessClub Tracker</a> credentials so if the indexer is giving you 'Error Username or password is incorrect' then you are likely using the Forum credentials to access the Tracker."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
|
@@ -23,9 +23,19 @@ settings:
|
||||
type: info_flaresolverr
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href$=".torrent"]
|
||||
before:
|
||||
pathselector:
|
||||
selector: a[href^="/download?"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/download?", "/download/?"]
|
||||
selectors:
|
||||
- selector: script:contains("downloadLink")
|
||||
usebeforeresponse: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "downloadLink = '(.+?)';"
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -5,8 +5,15 @@ description: "Magnet Cat is a Public Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# current domain finder https://魔法猫咪.lol/ or https://哆啦a猫.com/
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.clm446.buzz/
|
||||
- https://www.clm447.buzz/
|
||||
- https://www.clm448.buzz/
|
||||
- https://www.clm449.buzz/
|
||||
- https://www.clm450.buzz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -76,14 +83,14 @@ search:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
date:
|
||||
selector: div.sbar > span:contains("Date added:") > b
|
||||
selector: div.sbar > span:contains("Date added:") > b, div.sbar > span:contains("添加时间:") > b
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: div.sbar > span:contains("Size:") > b
|
||||
selector: div.sbar > span:contains("Size:") > b, div.sbar > span:contains("大小:") > b
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
|
@@ -86,16 +86,7 @@ caps:
|
||||
- {id: 170, cat: PC, desc: "Програмне забезпечення Офіс, текстові редактори"}
|
||||
- {id: 171, cat: PC, desc: "Програмне забезпечення Аудіо, відео обробка"}
|
||||
- {id: 173, cat: PC, desc: "Програмне забезпечення Інше"}
|
||||
# Закритий розділ
|
||||
- {id: 160, cat: Audio, desc: "Закритий розділ Rock, Alternative, Punk, Metal"}
|
||||
- {id: 161, cat: Audio, desc: "Закритий розділ Pop"}
|
||||
- {id: 181, cat: Audio, desc: "Закритий розділ Synthpop, Futurepop, New Wave, Electropop"}
|
||||
- {id: 165, cat: Audio, desc: "Закритий розділ Jazz, Blues, Soul"}
|
||||
- {id: 180, cat: Audio, desc: "Закритий розділ New Age & Meditative"}
|
||||
- {id: 163, cat: Audio, desc: "Закритий розділ Rap, Hip-hop, RnB, Reggae"}
|
||||
- {id: 166, cat: Audio, desc: "Закритий розділ Country, Country pop, Bluegrass, Southern rock"}
|
||||
- {id: 162, cat: Audio, desc: "Закритий розділ Electronic"}
|
||||
- {id: 164, cat: Audio, desc: "Закритий розділ Other Styles"}
|
||||
- {id: 185, cat: PC, desc: "Програмне забезпечення Ігри"}
|
||||
# archive, not in tracker search category pulldown
|
||||
- {id: 23, cat: Other, desc: "Архів"}
|
||||
|
||||
|
@@ -5,6 +5,8 @@ description: "MyPornClub is a Public Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 21debda35c67d63e823d122df5824a3f8465759a # expired 2 Nov 2024
|
||||
links:
|
||||
- https://myporn.club/
|
||||
|
||||
|
@@ -187,4 +187,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.2
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -74,7 +74,7 @@ settings:
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Note your account will be DISABLED for the reason below:<ol><li>NOT log in your account in 30 days in a row. Except! VIP and VVIP users.</li><li>Park account or NO new download or other activity on the site in 152 days. Except! VIP and VVIP users.</li></ol>"
|
||||
default: "Note your account will be DISABLED for the reason below:<ol><li>NOT log in your account in 365 days in a row. Except! VIP and VVIP users.</li><li>Park account or NO new download or other activity on the site in 365 days. Except! VIP and VVIP users.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
|
158
src/Jackett.Common/Definitions/nyaapantsu.yml
Normal file
158
src/Jackett.Common/Definitions/nyaapantsu.yml
Normal file
@@ -0,0 +1,158 @@
|
||||
---
|
||||
id: nyaapantsu
|
||||
name: NyaaPantsu
|
||||
description: "NyaaPantsu is a Public site for dedicated to Asian ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://ouo.si/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3_, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3_12, cat: TV/Anime, desc: "Anime - Anime Music Video"}
|
||||
- {id: 3_5, cat: TV/Anime, desc: "Anime - English-translated"}
|
||||
- {id: 3_13, cat: TV/Anime, desc: "Anime - Non-English-translated"}
|
||||
- {id: 3_6, cat: TV/Anime, desc: "Anime - Raw"}
|
||||
# Anime as Movies (Radarr uses t=movie):
|
||||
- {id: 3_, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 3_12, cat: Movies/Other, desc: "Anime - Anime Music Video"}
|
||||
- {id: 3_5, cat: Movies/Other, desc: "Anime - English-translated"}
|
||||
- {id: 3_13, cat: Movies/Other, desc: "Anime - Non-English-translated"}
|
||||
- {id: 3_6, cat: Movies/Other, desc: "Anime - Raw"}
|
||||
- {id: 2_, cat: Audio, desc: "Audio"}
|
||||
- {id: 2_3, cat: Audio, desc: "Audio - Lossless"}
|
||||
- {id: 2_4, cat: Audio, desc: "Audio - Lossy"}
|
||||
- {id: 4_, cat: Books, desc: "Literature"}
|
||||
- {id: 4_7, cat: Books, desc: "Literature - English-translated"}
|
||||
- {id: 4_14, cat: Books, desc: "Literature - Non-English-translated"}
|
||||
- {id: 4_8, cat: Books, desc: "Literature - Raw"}
|
||||
- {id: 5_, cat: TV, desc: "Live Action"}
|
||||
- {id: 5_9, cat: TV, desc: "Live Action - English-translated"}
|
||||
- {id: 5_10, cat: TV, desc: "Live Action - Idol/Promotional Video"}
|
||||
- {id: 5_18, cat: TV, desc: "Live Action - Non-English-translated"}
|
||||
- {id: 5_11, cat: TV, desc: "Live Action - Raw"}
|
||||
- {id: 6_, cat: Other, desc: "Pictures"}
|
||||
- {id: 6_15, cat: Other, desc: "Pictures - Graphics"}
|
||||
- {id: 6_16, cat: Other, desc: "Pictures - Photos"}
|
||||
- {id: 1_, cat: PC, desc: "Software"}
|
||||
- {id: 1_1, cat: PC/ISO, desc: "Software - Applications"}
|
||||
- {id: 1_2, cat: PC/Games, desc: "Software - Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: prefer_magnet_links
|
||||
type: checkbox
|
||||
label: Prefer Magnet Links
|
||||
default: true
|
||||
- name: cat-id
|
||||
type: select
|
||||
label: Category
|
||||
default: _
|
||||
options:
|
||||
_: "All categories"
|
||||
3_: "Anime"
|
||||
3_12: "Anime - Anime Music Video"
|
||||
3_5: "Anime - English-translated"
|
||||
3_13: "Anime - Non-English-translated"
|
||||
3_6: "Anime - Raw"
|
||||
2_: "Audio"
|
||||
2_3: "Audio - Lossless"
|
||||
2_4: "Audio - Lossy"
|
||||
4_: "Literature"
|
||||
4_7: "Literature - English-translated"
|
||||
4_14: "Literature - Non-English-translated"
|
||||
4_8: "Literature - Raw"
|
||||
1_: "Software"
|
||||
1_1: "Software - Applications"
|
||||
1_2: "Software - Games"
|
||||
5_: "Live Action"
|
||||
5_10: "Live Action - Trailers"
|
||||
5_9: "Live Action - English subtitled"
|
||||
5_18: "Live Action - Non-English subtitled"
|
||||
5_11: "Live Action - Raw"
|
||||
6_: "Pictures"
|
||||
6_15: "Pictures - Graphics"
|
||||
6_16: "Pictures - Photos"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
5: seeders
|
||||
4: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: false
|
||||
options:
|
||||
false: desc
|
||||
true: asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ .Keywords }}"
|
||||
c: "{{ .Config.cat-id }}"
|
||||
# 0 All, 2 Remakes, 3 uploaded by trusted users, 4 A+
|
||||
s: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
limit: 100
|
||||
|
||||
rows:
|
||||
selector: tr.torrent-info
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/search?c="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: c
|
||||
title:
|
||||
selector: a[href^="/view/"]
|
||||
details:
|
||||
selector: a[href^="/view/"]
|
||||
attribute: href
|
||||
download_optional:
|
||||
selector: a[href^="/download/"]
|
||||
attribute: href
|
||||
optional: true
|
||||
download:
|
||||
text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
|
||||
optional: true
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.tr-size
|
||||
date:
|
||||
# Nov 15, 2020
|
||||
selector: td.date-full
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["UTC+0", "+00:00"]
|
||||
- name: dateparse
|
||||
args: "MM/d/yyyy, h:mm:ss tt zzz"
|
||||
seeders:
|
||||
selector: td.tr-se
|
||||
leechers:
|
||||
selector: td.tr-le
|
||||
grabs:
|
||||
selector: td.tr-dl
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -27,46 +27,41 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1_0, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 1_1, cat: TV/Anime, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: TV/Anime, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: TV/Anime, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: TV/Anime, desc: "Raw animes"}
|
||||
- {id: 1_1, cat: TV/Anime, desc: "Anime - Anime Music Video"}
|
||||
- {id: 1_2, cat: TV/Anime, desc: "Anime - English-translated"}
|
||||
- {id: 1_3, cat: TV/Anime, desc: "Anime - Non-English-translated"}
|
||||
- {id: 1_4, cat: TV/Anime, desc: "Anime - Raw"}
|
||||
# Anime as Movies (Radarr uses t=movie):
|
||||
- {id: 1_0, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 1_1, cat: Movies/Other, desc: "Anime music videos"}
|
||||
- {id: 1_2, cat: Movies/Other, desc: "English subtitled animes"}
|
||||
- {id: 1_3, cat: Movies/Other, desc: "Non-english subtitled animes"}
|
||||
- {id: 1_4, cat: Movies/Other, desc: "Raw animes"}
|
||||
# Audio
|
||||
- {id: 1_1, cat: Movies/Other, desc: "Anime - Anime Music Video"}
|
||||
- {id: 1_2, cat: Movies/Other, desc: "Anime - English-translated"}
|
||||
- {id: 1_3, cat: Movies/Other, desc: "Anime - Non-English-translated"}
|
||||
- {id: 1_4, cat: Movies/Other, desc: "Anime - Raw"}
|
||||
- {id: 2_0, cat: Audio, desc: "Audio"}
|
||||
- {id: 2_1, cat: Audio, desc: "Lossless audio"}
|
||||
- {id: 2_2, cat: Audio, desc: "Lossy audio"}
|
||||
# Literature
|
||||
- {id: 2_1, cat: Audio, desc: "Audio - Lossless"}
|
||||
- {id: 2_2, cat: Audio, desc: "Audio - Lossy"}
|
||||
- {id: 3_0, cat: Books, desc: "Literature"}
|
||||
- {id: 3_1, cat: Books, desc: "Literature english translated"}
|
||||
- {id: 3_2, cat: Books, desc: "Literature non-english translated"}
|
||||
- {id: 3_3, cat: Books, desc: "Raw literature"}
|
||||
# Live
|
||||
- {id: 3_1, cat: Books, desc: "Literature English-translated"}
|
||||
- {id: 3_2, cat: Books, desc: "Literature - Non-English-translated"}
|
||||
- {id: 3_3, cat: Books, desc: "Literature - Raw"}
|
||||
- {id: 4_0, cat: TV, desc: "Live Action"}
|
||||
- {id: 4_1, cat: TV, desc: "Live Action - English"}
|
||||
- {id: 4_2, cat: TV, desc: "Live Action - Idol/PV"}
|
||||
- {id: 4_3, cat: TV, desc: "Live Action - Non-English"}
|
||||
- {id: 4_1, cat: TV, desc: "Live Action - English-translated"}
|
||||
- {id: 4_2, cat: TV, desc: "Live Action - Idol/Promotional Video"}
|
||||
- {id: 4_3, cat: TV, desc: "Live Action - Non-English-translated"}
|
||||
- {id: 4_4, cat: TV, desc: "Live Action - Raw"}
|
||||
# Pics
|
||||
- {id: 5_0, cat: Other, desc: "Pictures"}
|
||||
- {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
|
||||
- {id: 5_2, cat: Other, desc: "Pictures - Photos"}
|
||||
# Software
|
||||
- {id: 5_1, cat: Other, desc: "Pictures - Graphics"}
|
||||
- {id: 5_2, cat: Other, desc: "Pictures - Photos"}
|
||||
- {id: 6_0, cat: PC, desc: "Software"}
|
||||
- {id: 6_1, cat: PC/ISO, desc: "Applications"}
|
||||
- {id: 6_2, cat: PC/Games, desc: "Games"}
|
||||
- {id: 6_1, cat: PC/ISO, desc: "Software - Applications"}
|
||||
- {id: 6_2, cat: PC/Games, desc: "Software - Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
@@ -151,6 +146,7 @@ search:
|
||||
q: "{{ if .Keywords }}{{ re_replace .Keywords \"\\b0(\\d{1})\\b\" \"$1\" }}{{ else }}{{ end }}"
|
||||
p: "{{ if .Keywords }}{{ else }}2{{ end }}"
|
||||
inputs:
|
||||
# 0 all, 1 no remakes, 2 trusted only
|
||||
f: "{{ .Config.filter-id }}"
|
||||
c: "{{ .Config.cat-id }}"
|
||||
s: "{{ .Config.sort }}"
|
||||
|
@@ -33,6 +33,8 @@ caps:
|
||||
- {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
|
||||
- {id: 122, cat: Movies/HD, desc: "Movies: MicroHD"}
|
||||
- {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
|
||||
- {id: 130, cat: Movies/WEB-DL, desc: "Movies: WEBRip / 1080p"}
|
||||
- {id: 129, cat: Movies/WEB-DL, desc: "Movies: WEBRip / 720p"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 50, cat: Movies/HD, desc: "Movies HD: BluRay / 1080p"}
|
||||
- {id: 51, cat: Movies/UHD, desc: "Movies HD: BluRay / 4K (UHD)"}
|
||||
@@ -215,4 +217,9 @@ search:
|
||||
case:
|
||||
img[src$="/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.8.0
|
||||
|
@@ -77,7 +77,6 @@ search:
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
noResultsMessage: "No Torrents Found"
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
@@ -94,7 +93,7 @@ search:
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 75
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -191,4 +190,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 8.3.0
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -184,4 +184,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 8.3.1
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -70,7 +70,7 @@ login:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
selector: a[href*="logout.php?token="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -11,24 +11,25 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 6, cat: PC/0day, desc: "Aplikacje/Programy"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Bajki"}
|
||||
- {id: 30, cat: TV/Anime, desc: "TV Seriale Bajki"}
|
||||
- {id: 31, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 4, cat: Movies, desc: "Bajki"}
|
||||
- {id: 30, cat: TV, desc: "TV Seriale Bajki"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Filmy HD"}
|
||||
- {id: 13, cat: Movies/DVD, desc: "DVD5/9"}
|
||||
- {id: 12, cat: Movies/BluRay, desc: "BD25/50_5/9"}
|
||||
- {id: 14, cat: Movies/3D, desc: "Filmy 3D"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Filmy SD"}
|
||||
- {id: 17, cat: Movies/Other, desc: "Filmy inne"}
|
||||
- {id: 24, cat: PC/Games, desc: "Gry dodatki"}
|
||||
- {id: 5, cat: PC/Games, desc: "Gry pc"}
|
||||
- {id: 18, cat: PC/Mobile-Android, desc: "Mobile"}
|
||||
- {id: 24, cat: PC/Games, desc: "Gry dodatki"}
|
||||
- {id: 10, cat: Console, desc: "Gry Konsole"}
|
||||
- {id: 18, cat: PC/Mobile-Android, desc: "Mobile"}
|
||||
- {id: 19, cat: Other, desc: "Inne"}
|
||||
- {id: 8, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 11, cat: Movies, desc: "Paczki"}
|
||||
- {id: 20, cat: Books, desc: "Book"}
|
||||
- {id: 27, cat: TV/Other, desc: "Teatr Telewizyjny"}
|
||||
- {id: 25, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: 20, cat: Books, desc: "Book"}
|
||||
- {id: 21, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 29, cat: Movies, desc: "Stare Filmy"}
|
||||
- {id: 22, cat: TV/SD, desc: "TV Seriale SD"}
|
||||
|
213
src/Jackett.Common/Definitions/polskie-torrenty.yml
Normal file
213
src/Jackett.Common/Definitions/polskie-torrenty.yml
Normal file
@@ -0,0 +1,213 @@
|
||||
---
|
||||
id: polskie-torrenty
|
||||
name: Polskie-Torrenty
|
||||
description: "Polskie-Torrenty is a POLISH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-PL
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://polskie-torrenty.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Filmy
|
||||
- {id: 27, cat: Movies/DVD, desc: "Filmy DVD"}
|
||||
- {id: 30, cat: Movies/SD, desc: "Filmy DivX/XviD"}
|
||||
- {id: 71, cat: Movies/3D, desc: "Filmy 3D"}
|
||||
- {id: 72, cat: Movies/HD, desc: "Filmy x264/1080p"}
|
||||
- {id: 73, cat: Movies/HD, desc: "Filmy x264/720p"}
|
||||
- {id: 74, cat: Movies/HD, desc: "Filmy x265/h265"}
|
||||
- {id: 75, cat: Movies/HD, desc: "Filmy x264/h264"}
|
||||
- {id: 76, cat: Movies/HD, desc: "Filmy HD 1080p AVC"}
|
||||
- {id: 77, cat: Movies/UHD, desc: "Filmy 4K UHD"}
|
||||
- {id: 78, cat: Movies/SD, desc: "Filmy IVO"}
|
||||
- {id: 79, cat: Movies/SD, desc: "Filmy TS/CAM"}
|
||||
- {id: 88, cat: Movies/HD, desc: "Filmy x265/1080p"}
|
||||
- {id: 89, cat: Movies/HD, desc: "Filmy x265/720p"}
|
||||
# Seriale
|
||||
- {id: 25, cat: TV, desc: "Seriale Polskie"}
|
||||
- {id: 26, cat: TV/Foreign, desc: "Seriale Zagraniczne"}
|
||||
# Dla Dzieci
|
||||
- {id: 32, cat: Movies, desc: "Filmy/Bajki"}
|
||||
- {id: 111, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: 112, cat: Console, desc: "Gry"}
|
||||
- {id: 113, cat: Other, desc: "Inne"}
|
||||
- {id: 114, cat: Books, desc: "Kolorowanki"}
|
||||
- {id: 115, cat: Books, desc: "Książki"}
|
||||
- {id: 116, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 117, cat: PC, desc: "Programy"}
|
||||
- {id: 118, cat: Audio/Video, desc: "Teledyski"}
|
||||
# Gry
|
||||
- {id: 34, cat: PC/Games, desc: "Gry PC"}
|
||||
- {id: 35, cat: Console/PSP, desc: "PS2/PS3/PS4/PSP/PS VITA"}
|
||||
- {id: 36, cat: Console/XBox, desc: "Xbox One/XBOX 360/Xbox"}
|
||||
- {id: 37, cat: Console/NDS, desc: "NINTENDO / WII / DS"}
|
||||
# Muzyka
|
||||
- {id: 38, cat: Audio/Foreign, desc: "Muzyka Zagraniczna"}
|
||||
- {id: 39, cat: Audio, desc: "Soundtracki"}
|
||||
- {id: 40, cat: Audio/Video, desc: "Teledyski"}
|
||||
- {id: 80, cat: Audio, desc: "Muzyka Polska"}
|
||||
- {id: 81, cat: Audio/Video, desc: "Koncerty"}
|
||||
# GSM/PDA
|
||||
- {id: 42, cat: PC/Mobile-Other, desc: "Tapety GSM/PDA"}
|
||||
- {id: 43, cat: PC/Mobile-Other, desc: "Programy GSM/PDA"}
|
||||
- {id: 44, cat: PC/Mobile-Other, desc: "Filmy GSM/PDA"}
|
||||
- {id: 45, cat: PC/Mobile-Other, desc: "Dzwonki GSM/PDA"}
|
||||
- {id: 46, cat: PC/Mobile-Other, desc: "Gry GSM/PDA"}
|
||||
# Ksiazki
|
||||
- {id: 47, cat: Books/EBook, desc: "E-Booki"}
|
||||
- {id: 48, cat: Audio/Audiobook, desc: "Audio-Booki"}
|
||||
- {id: 49, cat: Books/Mags, desc: "Czasopisma"}
|
||||
- {id: 50, cat: Books/Comics, desc: "Komiksy"}
|
||||
# Programy
|
||||
- {id: 51, cat: PC/0day, desc: "Windows"}
|
||||
- {id: 52, cat: PC, desc: "Linux"}
|
||||
- {id: 53, cat: PC/Mac, desc: "Macintosh"}
|
||||
# Erotyka
|
||||
- {id: 58, cat: XXX/Other, desc: "Czasopisma"}
|
||||
- {id: 59, cat: XXX/ImageSet, desc: "Zdjęcia"}
|
||||
- {id: 60, cat: XXX/x264, desc: "Filmy"}
|
||||
- {id: 61, cat: XXX/Other, desc: "Gry"}
|
||||
- {id: 63, cat: XXX/Other, desc: "Hentai+18"}
|
||||
# Anime
|
||||
- {id: 69, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 70, cat: XXX/Other, desc: "Hentai"}
|
||||
- {id: 121, cat: Books/Comics, desc: "Manga"}
|
||||
# Inne
|
||||
- {id: 55, cat: Other, desc: "Tapety"}
|
||||
- {id: 57, cat: Other, desc: "Pozostale"}
|
||||
- {id: 86, cat: Other, desc: "Śmieszne"}
|
||||
- {id: 105, cat: Other, desc: "Design www"}
|
||||
- {id: 106, cat: Other, desc: "Filmy (S)VCD"}
|
||||
- {id: 107, cat: Other, desc: "Flash/Shockwave"}
|
||||
- {id: 108, cat: Other, desc: "Fotografia"}
|
||||
- {id: 109, cat: Other, desc: "Kursy"}
|
||||
- {id: 110, cat: Other, desc: "Modelarstwo"}
|
||||
# Sport
|
||||
- {id: 92, cat: TV/Sport, desc: "Boks"}
|
||||
- {id: 93, cat: TV/Sport, desc: "Hokej"}
|
||||
- {id: 94, cat: TV/Sport, desc: "Koszykówka"}
|
||||
- {id: 95, cat: TV/Sport, desc: "Kulturystyka i fitness"}
|
||||
- {id: 96, cat: TV/Sport, desc: "MMA"}
|
||||
- {id: 97, cat: TV/Sport, desc: "Motorowe"}
|
||||
- {id: 98, cat: TV/Sport, desc: "Piłka nożna"}
|
||||
- {id: 99, cat: TV/Sport, desc: "Rowerowe"}
|
||||
- {id: 100, cat: TV/Sport, desc: "Siatkówka"}
|
||||
- {id: 101, cat: TV/Sport, desc: "Wodne"}
|
||||
- {id: 102, cat: TV/Sport, desc: "Wrestling"}
|
||||
- {id: 103, cat: TV/Sport, desc: "Zapasy"}
|
||||
- {id: 104, cat: TV/Sport, desc: "Zimowe"}
|
||||
|
||||
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: 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: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTi POLISH: MULTi POLISH
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[name="login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: font[color="#FF0000"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://polskie-torrenty.eu/torrents.php?c115=1&c116=1&c117=1&c118=1&search=
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# does not support sorting results, or imdbid searching, or have imdb in results
|
||||
|
||||
rows:
|
||||
selector: div.boxcontent > table > tbody > tr:has(a.link1)
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div.link1 > font
|
||||
title_phase1:
|
||||
selector: a.link1
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: f=(.+?)\.torrent
|
||||
- name: urldecode
|
||||
- name: htmldecode
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(pl)\\b", "POLISH"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.link1
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{4})"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy"
|
||||
size:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Rozmiar: (\\d+\\.\\d+ [T|G|M|K|k]B)"
|
||||
seeders:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Seedów: (\\d+)"
|
||||
leechers:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Peerów: (\\d+)"
|
||||
grabs:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Pobrano: (\\d+)"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -22,6 +22,7 @@ caps:
|
||||
- {id: 28, cat: XXX, desc: "порно видео зрелых"}
|
||||
- {id: 29, cat: XXX, desc: "видео кастинг"}
|
||||
- {id: 32, cat: XXX, desc: "девушки с красивыми попами"}
|
||||
- {id: 33, cat: XXX, desc: "порно с мулатками"}
|
||||
- {id: 21, cat: XXX, desc: "любительское видео"}
|
||||
- {id: 3, cat: XXX, desc: "порно фильмы"}
|
||||
- {id: 30, cat: XXX, desc: "зарубежные порно фильмы"}
|
||||
|
@@ -186,4 +186,4 @@ search:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# json UNIT3D 8.3.2
|
||||
# json UNIT3D 8.3.4
|
||||
|
@@ -1,12 +1,12 @@
|
||||
---
|
||||
id: bitstream-api
|
||||
name: BitStream (API)
|
||||
description: "BitStream is a SPANISH Private tracker for H.265 MOVIES / TV"
|
||||
language: es-ES
|
||||
id: rockethd
|
||||
name: RocketHD (API)
|
||||
description: "RocketHD is a GERMAN Private Torrent Tracker for MOVIES / TV"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitstream.click/
|
||||
- https://r0k3t.li/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -25,7 +25,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://bitstream.click/\" target=\"_blank\">BitStream</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://r0k3t.li/\" target=\"_blank\">RocketHD</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -50,10 +50,6 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Not logging in for a month will result in the account being deactivated or banned. If an account does not register downloads in a month, it will be banned for users with the User rank. Other ranks will be given a timeframe determined by staff."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
@@ -108,7 +104,7 @@ search:
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }} Spanish"
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
@@ -129,6 +125,8 @@ search:
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
@@ -175,6 +173,6 @@ search:
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
minimumseedtime:
|
||||
# 15 days (as seconds = 15 x 24 x 60 x 60)
|
||||
text: 1296000
|
||||
# json UNIT3D 8.2.0
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 8.3.3
|
@@ -1,177 +0,0 @@
|
||||
---
|
||||
id: rptscene
|
||||
name: RPTScene
|
||||
description: "RPTScene is a Private tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://rptscene.xyz/
|
||||
legacylinks:
|
||||
- https://rpthd.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 6, cat: PC/0day, desc: "Apps: Windows"}
|
||||
- {id: 7, cat: PC/Mac, desc: "Apps: Mac"}
|
||||
- {id: 8, cat: PC, desc: "Apps: Linux"}
|
||||
- {id: 75, cat: Movies/DVD, desc: "Movies: DVD"}
|
||||
- {id: 26, cat: Movies/BluRay, desc: "Movies: Blu-Ray"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies: FHD-HD"}
|
||||
- {id: 50, cat: Movies/WEB-DL, desc: "Movies: Web-Dl"}
|
||||
- {id: 74, cat: Movies/SD, desc: "Movies: SD"}
|
||||
- {id: 49, cat: Movies/UHD, desc: "Movies: 4k"}
|
||||
- {id: 46, cat: Movies/3D, desc: "Movies: 3D"}
|
||||
- {id: 24, cat: Movies, desc: "Movies: Packs"}
|
||||
- {id: 28, cat: Movies/Other, desc: "Movies: Cartoons"}
|
||||
- {id: 47, cat: XXX, desc: "Movies: XXX"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV: HD"}
|
||||
- {id: 52, cat: TV/WEB-DL, desc: "TV: WEB-DL"}
|
||||
- {id: 48, cat: TV, desc: "TV: Packs"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "TV: Documentaries"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music: MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music: FLAC"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music: Video"}
|
||||
- {id: 27, cat: Audio, desc: "Music: Pack"}
|
||||
- {id: 53, cat: PC/Games, desc: "Games: Pc"}
|
||||
- {id: 54, cat: Console, desc: "Games: PsP"}
|
||||
- {id: 76, cat: Audio/Audiobook, desc: "Books: Audio"}
|
||||
- {id: 77, cat: Books/EBook, desc: "Books: eBooks"}
|
||||
- {id: 78, cat: TV/UHD, desc: "TV: 4k"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: 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
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are not getting results, then access the site with your browser and mark as read all PMs."
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Be active here, you must login at least once a month. Also, not downloading anything is considered being inactive (except if you're an uploader or VIP). The accounts inactive for 3 months are deleted."
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.myFrame:contains("Access Denied")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://rptscene.xyz/torrents-search.php?c22=1&c23=1&c76=1&c77=1&search=&incldead=0&freeleech=0&inclrosub=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 only active 1 incl dead 2 only dead
|
||||
incldead: 1
|
||||
# 0 all 1 not freeleech 2 only freeleech
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents-details.php?id="]:not(a[onmouseover*="images/nocover.png"])
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
# 15.11.21<br>07:47
|
||||
selector: td:nth-child(5)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "d.MM.yyHH:mm"
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
genre:
|
||||
selector: a:contains("Genre:")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Genre: ", ""]
|
||||
_source:
|
||||
case:
|
||||
img[src="images/t_extern.png"]: External
|
||||
"*": Local
|
||||
description:
|
||||
text: "{{ .Result._source }} - {{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/t_extern.png"]: 0
|
||||
img[src="images/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
# engine n/a
|
@@ -9,38 +9,38 @@ type: semi-private
|
||||
encoding: windows-1251
|
||||
followredirect: true
|
||||
links:
|
||||
- https://26october.rudub.online/
|
||||
- https://04december.rudub.online/
|
||||
legacylinks:
|
||||
- https://rudub.online/
|
||||
- https://27september.rudub.online/
|
||||
- https://28september.rudub.online/
|
||||
- https://29september.rudub.online/
|
||||
- https://30september.rudub.online/
|
||||
- https://01october.rudub.online/
|
||||
- https://02october.rudub.online/
|
||||
- https://03october.rudub.online/
|
||||
- https://04october.rudub.online/
|
||||
- https://05october.rudub.online/
|
||||
- https://06october.rudub.online/
|
||||
- https://07october.rudub.online/
|
||||
- https://08october.rudub.online/
|
||||
- https://09october.rudub.online/
|
||||
- https://10october.rudub.online/
|
||||
- https://11october.rudub.online/
|
||||
- https://12october.rudub.online/
|
||||
- https://13october.rudub.online/
|
||||
- https://14october.rudub.online/
|
||||
- https://15october.rudub.online/
|
||||
- https://16october.rudub.online/
|
||||
- https://17october.rudub.online/
|
||||
- https://18october.rudub.online/
|
||||
- https://19october.rudub.online/
|
||||
- https://20october.rudub.online/
|
||||
- https://21october.rudub.online/
|
||||
- https://22october.rudub.online/
|
||||
- https://23october.rudub.online/
|
||||
- https://24october.rudub.online/
|
||||
- https://25october.rudub.online/
|
||||
- https://04november.rudub.online/
|
||||
- https://05november.rudub.online/
|
||||
- https://06november.rudub.online/
|
||||
- https://07november.rudub.online/
|
||||
- https://08november.rudub.online/
|
||||
- https://09november.rudub.online/
|
||||
- https://10november.rudub.online/
|
||||
- https://11november.rudub.online/
|
||||
- https://12november.rudub.online/
|
||||
- https://13november.rudub.online/
|
||||
- https://14november.rudub.online/
|
||||
- https://15november.rudub.online/
|
||||
- https://16november.rudub.online/
|
||||
- https://17november.rudub.online/
|
||||
- https://18november.rudub.online/
|
||||
- https://19november.rudub.online/
|
||||
- https://20november.rudub.online/
|
||||
- https://21november.rudub.online/
|
||||
- https://22november.rudub.online/
|
||||
- https://23november.rudub.online/
|
||||
- https://24november.rudub.online/
|
||||
- https://25november.rudub.online/
|
||||
- https://26november.rudub.online/
|
||||
- https://27november.rudub.online/
|
||||
- https://28november.rudub.online/
|
||||
- https://29november.rudub.online/
|
||||
- https://30november.rudub.online/
|
||||
- https://01december.rudub.online/
|
||||
- https://02december.rudub.online/
|
||||
- https://03december.rudub.online/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -4,7 +4,7 @@ name: Rustorka
|
||||
description: "Rustorka is a RUSSIAN Semi-Private Torrent Tracker for TV / MOVIES / GENERAL"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://rustorka.com/
|
||||
legacylinks:
|
||||
@@ -779,12 +779,11 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
@@ -815,15 +814,9 @@ settings:
|
||||
1: asc
|
||||
|
||||
login:
|
||||
path: forum/login.php
|
||||
method: post
|
||||
method: cookie
|
||||
inputs:
|
||||
login_username: "{{ .Config.username }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
autologin: 1
|
||||
login: Вход
|
||||
error:
|
||||
- selector: h4.warnColor1.mrg_16
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: forum/index.php
|
||||
selector: a[href="./login.php?logout=1"]
|
||||
|
@@ -13,44 +13,42 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC, desc: "Apps"}
|
||||
- {id: 2, cat: Movies, desc: "XVID"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 4, cat: TV, desc: "TV XVID"}
|
||||
- {id: 5, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 6, cat: Movies/HD, desc: "HD"}
|
||||
- {id: 7, cat: XXX, desc: "XXX"}
|
||||
- {id: 8, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 9, cat: Audio, desc: "Audio"}
|
||||
- {id: 10, cat: Other, desc: "Other"}
|
||||
- {id: 11, cat: Console/XBox 360, desc: "XBOX 360"}
|
||||
- {id: 12, cat: Console/PSP, desc: "PSP"}
|
||||
- {id: 13, cat: TV/Documentary, desc: "Doc"}
|
||||
- {id: 14, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 15, cat: Console, desc: "PS2"}
|
||||
- {id: 16, cat: TV/Sport, desc: "TV WWE"}
|
||||
- {id: 17, cat: TV/HD, desc: "TV X264"}
|
||||
- {id: 18, cat: TV, desc: "TV DVD"}
|
||||
- {id: 19, cat: XXX/DVD, desc: "XXX DVD"}
|
||||
- {id: 20, cat: TV/Anime, desc: "Anime DVD"}
|
||||
- {id: 21, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 23, cat: Movies, desc: "Boxset"}
|
||||
- {id: 31, cat: Other, desc: "OFF"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "BluRay"}
|
||||
- {id: 33, cat: Console/Wii, desc: "WII"}
|
||||
- {id: 34, cat: Console/PS3, desc: "PS3"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime HD"}
|
||||
- {id: 36, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 37, cat: Movies/DVD, desc: "Custom DVDR"}
|
||||
- {id: 15, cat: Console/PS3, desc: "JOGO-PS"}
|
||||
- {id: 11, cat: Console/XBox, desc: "JOGO-XBOX"}
|
||||
- {id: 5, cat: PC/Games, desc: "JOGO-PC"}
|
||||
- {id: 33, cat: Console/NDS, desc: "JOGO-ND"}
|
||||
- {id: 38, cat: Movies/Other, desc: "CAM TS"}
|
||||
- {id: 23, cat: Movies, desc: "FILME-PACK"}
|
||||
- {id: 53, cat: Movies/SD, desc: "FILME-SD"}
|
||||
- {id: 6, cat: Movies/HD, desc: "FILME-HD"}
|
||||
- {id: 46, cat: Movies/UHD, desc: "FILME-4K"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "FILME-BRAY"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "FILME-DVD"}
|
||||
- {id: 42, cat: Movies/WEB-DL, desc: "FILME-WEB"}
|
||||
- {id: 9, cat: Audio, desc: "ALBUNS"}
|
||||
- {id: 14, cat: Audio/Video, desc: "MUSIC-VID"}
|
||||
- {id: 1, cat: PC, desc: "APPS"}
|
||||
- {id: 21, cat: PC/Mac, desc: "MAC"}
|
||||
- {id: 36, cat: PC/Mobile-Android, desc: "ANDROID"}
|
||||
- {id: 4, cat: TV/SD, desc: "TV-SD"}
|
||||
- {id: 17, cat: TV/HD, desc: "TV-HD"}
|
||||
- {id: 48, cat: TV/UHD, desc: "TV-4K"}
|
||||
- {id: 47, cat: TV/Other, desc: "TV-PACK"}
|
||||
- {id: 16, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 44, cat: TV/Sport, desc: "SPORTS"}
|
||||
- {id: 13, cat: TV/Documentary, desc: "DOC"}
|
||||
- {id: 49, cat: TV/Anime, desc: "ANIME-4K"}
|
||||
- {id: 20, cat: TV/Anime, desc: "ANIME-DVD"}
|
||||
- {id: 35, cat: TV/Anime, desc: "ANIME-HD"}
|
||||
- {id: 50, cat: TV/Anime, desc: "ANIME-PACK"}
|
||||
- {id: 8, cat: TV/Anime, desc: "ANIME-SD"}
|
||||
- {id: 51, cat: TV/Anime, desc: "ANIME-WEB"}
|
||||
- {id: 7, cat: XXX, desc: "XXX"}
|
||||
- {id: 43, cat: Books/EBook, desc: "EBOOK"}
|
||||
- {id: 52, cat: Books/Other, desc: "CURSOS"}
|
||||
- {id: 31, cat: Other, desc: "OFF"}
|
||||
- {id: 10, cat: Other, desc: "OUTROS"}
|
||||
- {id: 39, cat: Other, desc: "GPS"}
|
||||
- {id: 40, cat: Console/PS4, desc: "PS4"}
|
||||
- {id: 41, cat: Movies/BluRay, desc: "BDRIP"}
|
||||
- {id: 42, cat: Movies/WEB-DL, desc: "WEB DL"}
|
||||
- {id: 43, cat: Books, desc: "Ebook"}
|
||||
- {id: 44, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 46, cat: Movies/UHD, desc: "4K"}
|
||||
- {id: 47, cat: TV/HD, desc: "TV X265"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -125,44 +123,42 @@ search:
|
||||
category:
|
||||
selector: td:first-of-type
|
||||
case:
|
||||
div.cat-4k: 46
|
||||
div.cat-filme-4k: 46
|
||||
div.cat-albuns: 9
|
||||
div.cat-android: 36
|
||||
div.cat-anime: 8
|
||||
div.cat-anime-dvdr: 20
|
||||
div.cat-anime-dvd: 20
|
||||
div.cat-anime-hd: 35
|
||||
div.cat-anime-pack: 50
|
||||
div.cat-anime-web: 51
|
||||
div.cat-anime-4k: 49
|
||||
div.cat-apps: 1
|
||||
div.cat-brip: 41
|
||||
div.cat-blu-ray: 32
|
||||
div.cat-boxset: 23
|
||||
div.cat-cam-ts: 38
|
||||
div.cat-dvd-custom: 37
|
||||
div.cat-sports: 44
|
||||
div.cat-cursos: 52
|
||||
div.cat-doc: 13
|
||||
div.cat-dvdr: 3
|
||||
div.cat-e-book: 43
|
||||
div.cat-ebook: 43
|
||||
div.cat-filme-bray: 32
|
||||
div.cat-filme-dvd: 3
|
||||
div.cat-filme-hd: 6
|
||||
div.cat-filme-pack: 23
|
||||
div.cat-filme-sd: 53
|
||||
div.cat-filme-web: 42
|
||||
div.cat-gps: 39
|
||||
div.cat-hd: 6
|
||||
div.cat-games: 5
|
||||
div.cat-ps2: 15
|
||||
div.cat-ps3: 34
|
||||
div.cat-ps4: 40
|
||||
div.cat-psp: 12
|
||||
div.cat-wii: 33
|
||||
div.cat-mdvdr: 14
|
||||
div.cat-jogo-nd: 33
|
||||
div.cat-jogo-pc: 5
|
||||
div.cat-jogo-ps: 15
|
||||
div.cat-jogo-xbox: 11
|
||||
div.cat-mac: 21
|
||||
div.cat-music-vid: 14
|
||||
div.cat-off: 31
|
||||
div.cat-other: 10
|
||||
div.cat-series: 4
|
||||
div.cat-series-dvdr: 18
|
||||
div.cat-series-x264: 17
|
||||
div.cat-series-x265: 47
|
||||
div.cat-web-dl: 42
|
||||
div.cat-outros: 10
|
||||
div.cat-sports: 44
|
||||
div.cat-tv-4k: 48
|
||||
div.cat-tv-hd: 17
|
||||
div.cat-tv-pack: 47
|
||||
div.cat-tv-sd: 4
|
||||
div.cat-wwe: 16
|
||||
div.cat-xbox360: 11
|
||||
div.cat-xvid: 2
|
||||
div.cat-xxx: 7
|
||||
div.cat-xxx-dvdr: 19
|
||||
_audiopt:
|
||||
selector: i.fg-audiopt
|
||||
attribute: title
|
||||
|
@@ -7,6 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://seedoff.zannn.top/
|
||||
legacylinks:
|
||||
- https://forum.zannn.top/
|
||||
|
||||
caps:
|
||||
@@ -189,24 +190,24 @@ download:
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
headers:
|
||||
cookie: ["gophp=gop; trololofm=test; bookcontent=0"]
|
||||
paths:
|
||||
# https://seedoff.zannn.top/search?page=ajax&search=&active=0&category=0&options=0&recommend=0&have_quality=0&types_search=0&period=0&genres=&order=3&by=2
|
||||
- path: search
|
||||
# https://seedoff.zannn.top/index.php?page=ajax&active=0&options=0&recommend=0&sticky=0&period=0&options=0&order=3&by=2&pages=1
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: ajax
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
category: 0
|
||||
# 0 name, 1 name & desc
|
||||
options: 0
|
||||
recommend: 0
|
||||
have_quality: 0
|
||||
# 0 whole word, 1 partial word
|
||||
types_search: 0
|
||||
sticky: 0
|
||||
period: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
pages: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace # S01 to сезон 1
|
||||
@@ -216,6 +217,9 @@ search:
|
||||
- name: re_replace # S01E02 to сезон 1 сери 2
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сери $2"]
|
||||
|
||||
error:
|
||||
- selector: td.lista:contains("Поиск временно не работает")
|
||||
|
||||
rows:
|
||||
selector: table.lista tbody tr:has(a[href^="/torrent/"])
|
||||
|
||||
|
@@ -13,7 +13,7 @@ caps:
|
||||
- {id: 2, cat: TV, desc: "TV Show"}
|
||||
- {id: 1, cat: Movies, desc: "Movie"}
|
||||
- {id: 10, cat: Movies/UHD, desc: "4K Movie"}
|
||||
- {id: 13, cat: Movies, desc: "BoxSet"}
|
||||
- {id: 13, cat: TV, desc: "TV Boxsets"}
|
||||
- {id: 12, cat: PC/Games, desc: "Linux Game"}
|
||||
- {id: 3, cat: PC/Games, desc: "PC Game"}
|
||||
- {id: 5, cat: Audio/Lossless, desc: "Music"}
|
||||
@@ -32,8 +32,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
tv-search: [q, season, ep, tmdbid]
|
||||
movie-search: [q, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
@@ -96,9 +96,7 @@ search:
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
@@ -135,12 +133,8 @@ search:
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
@@ -199,4 +193,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 10 days (as seconds = 10 x 24 x 60 x 60)
|
||||
text: 864000
|
||||
# json UNIT3D 8.2.0
|
||||
# json UNIT3D 8.2.0 (custom)
|
||||
|
@@ -188,7 +188,7 @@ search:
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
@@ -224,4 +224,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 6 days (as seconds = 6 x 24 x 60 x 60)
|
||||
text: 518400
|
||||
# json UNIT3D 8.3.2 (custom)
|
||||
# json UNIT3D 8.3.3 (custom)
|
||||
|
@@ -7,11 +7,11 @@ type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://solidtorrents.to/
|
||||
- https://solidtorrents.eu/
|
||||
legacylinks:
|
||||
- https://solidtorrents.net/
|
||||
- https://solidtorrents.eu/
|
||||
- https://solidtorrents.nocensor.cloud/
|
||||
- https://solidtorrents.to/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -39,6 +39,7 @@ caps:
|
||||
"Other/Source Code": PC
|
||||
"Other/Video": TV
|
||||
Softwares: PC/0day
|
||||
"Softwares/Mac": PC/Mac
|
||||
"Softwares/Windows": PC/0day
|
||||
TV: TV
|
||||
Unknown: Other
|
||||
|
@@ -7,6 +7,7 @@ type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://superbits.org/
|
||||
- https://superbits.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -151,7 +152,7 @@ search:
|
||||
selector: added
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # CEST
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
|
@@ -205,7 +205,7 @@ search:
|
||||
attribute: data-src
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -215,7 +215,7 @@ search:
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -225,13 +225,13 @@ search:
|
||||
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)
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
description:
|
||||
case:
|
||||
span[title="Autorisé"]: "Verified"
|
||||
|
@@ -87,7 +87,6 @@ caps:
|
||||
- {id: 78, cat: PC/0day, desc: "Security Tools"}
|
||||
- {id: 70, cat: PC/0day, desc: "Utility Tools"}
|
||||
- {id: 74, cat: PC/0day, desc: "Web Tools"}
|
||||
- {id: 80, cat: PC/0day, desc: "Windows Phone Apps"}
|
||||
- {id: 81, cat: PC/0day, desc: "Developers"}
|
||||
- {id: 82, cat: PC/0day, desc: "Designers"}
|
||||
- {id: 84, cat: PC, desc: "TEAM OS Other Stuff Releases"}
|
||||
@@ -98,6 +97,7 @@ caps:
|
||||
- {id: 87, cat: Other, desc: "Wallpapers, Themes & Screensavers"}
|
||||
- {id: 89, cat: PC, desc: "Other Releases"}
|
||||
- {id: 100, cat: Other, desc: "Tutorials"} # undocumented
|
||||
- {id: 103, cat: Other, desc: "Other Topic"} # undocumented
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -119,6 +119,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and read any mandatory notices that the site presents. You cannot browse torrents with unread notices outstanding."
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
|
@@ -126,6 +126,11 @@ login:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download_ssl.php?torrent="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: selection.php
|
||||
@@ -155,7 +160,7 @@ search:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download_ssl.php?torrent="]
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
|
164
src/Jackett.Common/Definitions/thepiratedship.yml
Normal file
164
src/Jackett.Common/Definitions/thepiratedship.yml
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
id: thepiratedship
|
||||
name: ThePiratedShip
|
||||
description: "ThePiratedShip is a Private tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://thepiratedship.co.uk/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# - {id: 8, cat: Movies/Other, desc: "Torrent Releases"}
|
||||
# - {id: 32, cat: Movies, desc: "Movies"}
|
||||
- {id: 10, cat: Movies/SD, desc: "Cams TS & TC/PPV/VOD/HDTV *Ratio Free*"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Screeners/R3/R5/R6/HDRip/Webrip/WEB-DL/Recodes"}
|
||||
- {id: 13, cat: Movies/HD, desc: "DVDRip/BRRip/BDRip"}
|
||||
- {id: 14, cat: Movies/DVD, desc: "DVDR"}
|
||||
- {id: 15, cat: Movies/UHD, desc: "High Definition MKV/MP4"}
|
||||
- {id: 16, cat: Movies/UHD, desc: "4k Ultra High Definition *Ratio Free*"}
|
||||
- {id: 17, cat: Movies/Other, desc: "Movies Requests"}
|
||||
# - {id: 20, cat: TV, desc: "TV Shows"}
|
||||
- {id: 21, cat: TV, desc: "Sci-Fi / Supernatural / Horror"}
|
||||
- {id: 22, cat: TV, desc: "Comedy"}
|
||||
- {id: 23, cat: TV, desc: "Action/Adventure"}
|
||||
- {id: 24, cat: TV, desc: "Drama"}
|
||||
- {id: 25, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 27, cat: TV/Sport, desc: "Sport TV"}
|
||||
- {id: 28, cat: TV/Other, desc: "Misc TV"}
|
||||
- {id: 29, cat: TV/Other, desc: "TV Shows Requests"}
|
||||
# - {id: 33, cat: Audio, desc: "Music"}
|
||||
- {id: 34, cat: Audio, desc: "Rock/Heavy Metal/Alternative"}
|
||||
- {id: 38, cat: Audio, desc: "Album & Singles Packs"}
|
||||
- {id: 35, cat: Audio, desc: "Singles"}
|
||||
- {id: 36, cat: Audio, desc: "Pop albums"}
|
||||
- {id: 37, cat: Audio, desc: "Trance/Dance/House"}
|
||||
- {id: 39, cat: Audio, desc: "Drum & Bass/Breakbeat/Garage/Hardcore"}
|
||||
- {id: 40, cat: Audio, desc: "Golden Oldies/Easy Listening"}
|
||||
- {id: 41, cat: Audio, desc: "Reggae/DUB/SKA/2 Tone"}
|
||||
- {id: 42, cat: Audio, desc: "Hip-Hop/RnB/Soul"}
|
||||
- {id: 43, cat: Audio, desc: "Country/Folk"}
|
||||
- {id: 44, cat: Audio, desc: "Jazz 'n' Blues"}
|
||||
- {id: 45, cat: Audio, desc: "Classical"}
|
||||
- {id: 46, cat: Audio, desc: "Soundtracks"}
|
||||
- {id: 47, cat: Audio, desc: "Amateur Creations/Live DJ Sets etc/Karaoke"}
|
||||
- {id: 48, cat: Audio/Video, desc: "Music DVD & Videos"}
|
||||
- {id: 49, cat: Audio, desc: "Misc/Compilation albums"}
|
||||
- {id: 50, cat: Audio/Lossless, desc: "Lossless Format Albums"}
|
||||
# - {id: 54, cat: PC/Games, desc: "Games"}
|
||||
- {id: 55, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 56, cat: Console/XBox, desc: "X BOX"}
|
||||
- {id: 57, cat: Console/Other, desc: "Nintendo Switch"}
|
||||
- {id: 58, cat: Console/PS3, desc: "Playstation"}
|
||||
- {id: 59, cat: Console/PSP, desc: "SONY PSP"}
|
||||
- {id: 60, cat: Console/NDS, desc: "Nintendo DS"}
|
||||
- {id: 61, cat: PC/Games, desc: "DVDR Interactive Games & Quizzes"}
|
||||
- {id: 62, cat: PC/Mac, desc: "Mac & Other OS Games"}
|
||||
- {id: 63, cat: Console/Other, desc: "All Other Console Roms & Emulators"}
|
||||
# - {id: 67, cat: PC, desc: "Applications"}
|
||||
- {id: 68, cat: PC, desc: "Artistry"}
|
||||
- {id: 69, cat: PC, desc: "Internet & Web"}
|
||||
- {id: 70, cat: PC, desc: "Utilities"}
|
||||
- {id: 71, cat: PC, desc: "Sound & Vision"}
|
||||
- {id: 72, cat: PC, desc: "Misc Applications"}
|
||||
- {id: 73, cat: PC, desc: "Windows Operating Systems & MS Apps"}
|
||||
- {id: 74, cat: PC, desc: "Applications Requests"}
|
||||
# - {id: 78, cat: Other, desc: "Practice Area"}
|
||||
- {id: 89, cat: Other, desc: Test"}
|
||||
# undocumented
|
||||
- {id: 100, cat: Books, desc: Comics/Magazines"}
|
||||
- {id: 96, cat: Movies, desc: "Animation Releases"}
|
||||
|
||||
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
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
login: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: 1
|
||||
_xfRedirect: ""
|
||||
selectorinputs:
|
||||
_xfToken:
|
||||
selector: input[name="_xfToken"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.blockMessage--error:contains(" not be found")
|
||||
- selector: div.blockMessage--error:contains("Incorrect password")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/index.php?account/preferences"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# supports only single cat search, so defaulting to all
|
||||
- path: "index.php?torrents/&freeleech={{ if .Config.freeleech }}1{{ else }}{{ end }}&filename={{ .Keywords }}"
|
||||
# imdb and tmdb not supported
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: table.dataList-table > tbody.normal-torrents > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/index.php?forums/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)/$
|
||||
title:
|
||||
selector: div.structItem-title a
|
||||
details:
|
||||
selector: li.structItem-startDate a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/index.php?attachments/"]
|
||||
attribute: href
|
||||
description:
|
||||
selector: a[href^="/index.php?forums/"]
|
||||
date:
|
||||
selector: time
|
||||
attribute: datetime
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.label--accent: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
# XenForo
|
@@ -8,13 +8,13 @@ encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.torlock.com/
|
||||
- https://www.torlock2.com/
|
||||
legacylinks:
|
||||
- https://torlock.com/
|
||||
- https://www.torlock.icu/
|
||||
- https://torlock.nocensor.cloud/
|
||||
- https://torlock.mrunblock.bond/
|
||||
- https://torlock.unblockit.download/
|
||||
- https://www.torlock2.com/ # 400 Bad Request No required SSL certificate was sent
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
|
@@ -84,6 +84,10 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_password
|
||||
type: info
|
||||
label: About Password Expiry
|
||||
default: "Torrent-Explosiv has an <b>8 week Password Expiry</b> regime. So if the Indexer has stopped working then the first thing you should do is check if your password has expired by login in at <a href=\"https://torrent-explosiv.me/login.php\" target=\"_blank\">Torrent-Explosiv</a>, and if necessary use the <b>Passwort anfordern</b> (<i>Request password</i>) button to renew it."
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
|
@@ -9,7 +9,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.protege-torrent.com/Torrent9
|
||||
links:
|
||||
- https://www.torrent9.ing/
|
||||
- https://www.torrent9.cv/
|
||||
legacylinks:
|
||||
- https://www.protege-liens.com/
|
||||
- https://www.protege-liens.net/
|
||||
@@ -21,8 +21,6 @@ legacylinks:
|
||||
- https://www.torrent.onl/
|
||||
- https://torrent9.news/
|
||||
# actual legacylinks
|
||||
- https://www.torrent9.mn/
|
||||
- https://www.torrent9.city/
|
||||
- https://www.torrent9.gy/
|
||||
- https://www.torrent9.sbs/
|
||||
- https://www.torrent9.sb/
|
||||
@@ -37,6 +35,8 @@ legacylinks:
|
||||
- https://www.torrent9.gl/
|
||||
- https://www.torrent9.cyou/
|
||||
- https://www.torrent9.gd/
|
||||
- https://www.torrent9.ing/
|
||||
- https://www.torrent9.run/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -10,7 +10,6 @@ testlinktorrent: false
|
||||
links:
|
||||
- https://ww1.torrent9.fm/
|
||||
- https://torrent9.to/
|
||||
- https://torrent9.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://ww1.torrent9.uno/
|
||||
- https://wvw.t9.pe/
|
||||
@@ -35,6 +34,7 @@ legacylinks:
|
||||
- https://torrent9.ninjaproxy1.com/ # no response data
|
||||
- https://torrent9.proxyninja.org/ # Error 1007
|
||||
- https://www.torrent9.se/
|
||||
- https://torrent9.unblockninja.com/ # 403 forbidden
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
|
@@ -103,6 +103,7 @@ login:
|
||||
search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
Referer: ["{{ .Config.sitelink }}index.php?initK&all"]
|
||||
|
||||
paths:
|
||||
- path: ajgettorrents.php
|
||||
|
@@ -7,14 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq339.com/
|
||||
- https://torrentegg31.com/
|
||||
- https://torrentqq344.com/
|
||||
- https://torrentegg36.com/
|
||||
legacylinks:
|
||||
- https://torrentqq324.com/
|
||||
- https://torrentqq325.com/
|
||||
- https://torrentqq326.com/
|
||||
- https://torrentqq327.com/
|
||||
- https://torrentqq328.com/
|
||||
- https://torrentqq329.com/
|
||||
- https://torrentqq330.com/
|
||||
- https://torrentqq331.com/
|
||||
@@ -28,6 +23,16 @@ legacylinks:
|
||||
- https://torrentegg29.com/
|
||||
- https://torrentqq338.com/
|
||||
- https://torrentegg30.com/
|
||||
- https://torrentqq339.com/
|
||||
- https://torrentegg31.com/
|
||||
- https://torrentqq340.com/
|
||||
- https://torrentegg32.com/
|
||||
- https://torrentegg33.com/
|
||||
- https://torrentqq341.com/
|
||||
- https://torrentqq342.com/
|
||||
- https://torrentegg34.com/
|
||||
- https://torrentqq343.com/
|
||||
- https://torrentegg35.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,16 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir156.com/
|
||||
- https://torrentsir160.com/
|
||||
legacylinks:
|
||||
- http://torrentsir147.com/
|
||||
- https://torrentsir147.com/
|
||||
- http://torrentsir148.com/
|
||||
- https://torrentsir148.com/
|
||||
- http://torrentsir149.com/
|
||||
- https://torrentsir149.com/
|
||||
- http://torrentsir150.com/
|
||||
- https://torrentsir150.com/
|
||||
- http://torrentsir151.com/
|
||||
- https://torrentsir151.com/
|
||||
- http://torrentsir152.com/
|
||||
@@ -28,6 +20,14 @@ legacylinks:
|
||||
- http://torrentsir155.com/
|
||||
- https://torrentsir155.com/
|
||||
- http://torrentsir156.com/
|
||||
- https://torrentsir156.com/
|
||||
- http://torrentsir157.com/
|
||||
- https://torrentsir157.com/
|
||||
- http://torrentsir158.com/
|
||||
- https://torrentsir158.com/
|
||||
- http://torrentsir159.com/
|
||||
- https://torrentsir159.com/
|
||||
- http://torrentsir160.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -6,7 +6,7 @@ language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- abea2b6915578cf69e6270980e75b518abb5af73 # expired 4th August 2024
|
||||
- 314a854715f68440d92c14d2414065410785cf26 # expired 9th November 2024
|
||||
links:
|
||||
- https://torrents-local.xyz/
|
||||
|
||||
|
@@ -1,110 +0,0 @@
|
||||
---
|
||||
id: torrentwhiz
|
||||
name: TorrentWhiz
|
||||
description: "TorrentWhiz ( 토렌트위즈) is a Public KOREAN tracker for Korean media."
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentwiz68.com/
|
||||
legacylinks:
|
||||
- https://torrentwiz51.com/
|
||||
- https://torrentwiz52.com/
|
||||
- https://torrentwiz54.com/
|
||||
- https://torrentwiz55.com/
|
||||
- https://torrentwiz56.com/
|
||||
- https://torrentwiz57.com/
|
||||
- https://torrentwiz58.com/
|
||||
- https://torrentwiz59.com/
|
||||
- https://torrentwiz60.com/
|
||||
- https://torrentwiz61.com/
|
||||
- https://torrentwiz62.com/
|
||||
- https://torrentwiz63.com/
|
||||
- https://torrentwiz64.com/
|
||||
- https://torrentwiz66.com/
|
||||
- https://torrentwiz67.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "netflix", cat: TV, desc: "넷플릭스 (Netflix)"}
|
||||
- {id: "tv", cat: TV, desc: "시사 (TV)"}
|
||||
- {id: "mov", cat: Movies, desc: "영화 (Movie)"}
|
||||
- {id: "drama", cat: TV, desc: "드라마 (Drama)"}
|
||||
- {id: "enter", cat: TV, desc: "예능 (Entertainment)"}
|
||||
- {id: "music", cat: Audio, desc: "음원 (Music)"}
|
||||
- {id: "util", cat: PC, desc: "유틸 (Software)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: h1.panel-title
|
||||
filters:
|
||||
- name: trim
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://torrentwiz31.com/bbs/search.php?url=&stx=sin&srows=100&gr_id=&sfl=wr_subject&sop=and
|
||||
- path: bbs/search.php
|
||||
inputs:
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: wr_subject
|
||||
# or, and
|
||||
sop: and
|
||||
|
||||
rows:
|
||||
selector: div.search-media div.media
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.media-heading a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: bo_table
|
||||
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
|
@@ -1,196 +0,0 @@
|
||||
---
|
||||
id: turknova
|
||||
name: TurkNova
|
||||
description: "TurkNova is a TURKISH Private Torrent Tracker for MOVIES / TV / GENERAL. This Indexer is for English only."
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://turknova.org/
|
||||
legacylinks:
|
||||
- https://www.turknova.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 64, cat: Movies/UHD, desc: "4K - UHD"}
|
||||
- {id: 40, cat: Movies/HD, desc: "1080p - 720p - BDRip - mRip"}
|
||||
- {id: 71, cat: Movies/HD, desc: "H265 - HECV"}
|
||||
- {id: 39, cat: Movies, desc: "BOXSET"}
|
||||
- {id: 43, cat: Movies/HD, desc: "NETFLIX"}
|
||||
- {id: 84, cat: TV, desc: "DISNEY+"}
|
||||
- {id: 85, cat: TV, desc: "AMZN PRIME"}
|
||||
- {id: 92, cat: TV, desc: "DISCOVERY+"}
|
||||
- {id: 88, cat: TV, desc: "BLUTV"}
|
||||
- {id: 74, cat: TV, desc: "EXXEN"}
|
||||
- {id: 77, cat: TV, desc: "GAIN"}
|
||||
- {id: 87, cat: TV, desc: "TOD"}
|
||||
- {id: 91, cat: TV, desc: "TABII"}
|
||||
- {id: 94, cat: TV, desc: "MUBI"}
|
||||
- {id: 59, cat: Movies/WEB-DL, desc: "WEB-DL / WEBRip"}
|
||||
- {id: 34, cat: TV/Documentary, desc: "Belgesel"}
|
||||
- {id: 60, cat: TV/Foreign, desc: "Yabancı Dizi"}
|
||||
- {id: 72, cat: TV/Anime, desc: "Animasyon"}
|
||||
- {id: 48, cat: TV/HD, desc: "HDTV - Rip"}
|
||||
- {id: 55, cat: TV, desc: "Türk Filmi"}
|
||||
- {id: 95, cat: Other, desc: "Yeşilçam"}
|
||||
- {id: 46, cat: Other, desc: "Eğitim"}
|
||||
- {id: 53, cat: Other, desc: "Resim"}
|
||||
- {id: 50, cat: Audio, desc: "Müzik"}
|
||||
- {id: 52, cat: PC, desc: "Program"}
|
||||
- {id: 62, cat: PC, desc: "İşletim Sistemi"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: info_layout
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.<li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b><li>And set the <b>Language (Dil)</b> to <b>English</b><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error: <b>An error has occurred!You can't view this page unless you read all your unread messages</b>, then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#sls_form
|
||||
submitpath: ajax/login.php
|
||||
inputs:
|
||||
action: login
|
||||
loginbox_membername: "{{ .Config.username }}"
|
||||
loginbox_password: "{{ .Config.password }}"
|
||||
loginbox_remember: 1
|
||||
selectorinputs:
|
||||
securitytoken:
|
||||
selector: "script:contains(\"stKey: \")"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "stKey: \"(.+?)\","
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: a#logout
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||
inputs:
|
||||
p: torrents
|
||||
pid: 32
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name, description, both, uploader
|
||||
search_type: name
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
error:
|
||||
- selector: div.error:not(:contains("Hiçbir sonuç bulunamadı.")):not(:contains("There are no results found."))
|
||||
# does not support imdbid search and does not return imdb link in results.
|
||||
|
||||
rows:
|
||||
selector: "table#torrents_table_classic > tbody > tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[title=\"FREE!\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.category_image > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
details:
|
||||
# href="https://turknova.org/?p=torrents&pid=10&action=details&tid=40737"
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
attribute: href
|
||||
download:
|
||||
# from details page href="https://turknova.org/?p=torrents&pid=10&action=download&tid=40774"
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
poster:
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
date_day:
|
||||
optional: true
|
||||
# Uploaded Friday at 05:11 by
|
||||
# Uploaded Today at 00:48 by
|
||||
# Uploaded Yesterday at 23:57 by
|
||||
selector: td.torrent_name:contains(" at ")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: replace
|
||||
args: [" at ", " "]
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
# Uploaded 30-01-2019 15:02 by
|
||||
selector: td.torrent_name:not(:contains(" at "))
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title=\"FREE!\"]": 0
|
||||
"img[title=\"Download Multiplier: 0.5\"]": 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"img[title=\"Upload Multiplier: 2\"]": 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TSUE 2.2
|
@@ -15,15 +15,14 @@ caps:
|
||||
- {id: 413, cat: TV/Anime, desc: "Web"}
|
||||
- {id: 12, cat: TV/Anime, desc: "BDRip"}
|
||||
- {id: 13, cat: TV/Anime, desc: "DVDRip"}
|
||||
- {id: 14, cat: TV/Anime, desc: "HDTVRip"}
|
||||
- {id: 14, cat: TV/Anime, desc: "HDTV"}
|
||||
- {id: 15, cat: TV/Anime, desc: "DVDISO"}
|
||||
- {id: 16, cat: TV/Anime, desc: "BDMV"}
|
||||
- {id: 17, cat: TV/Anime, desc: "LQRip"}
|
||||
- {id: 410, cat: TV/Anime, desc: "外挂结构 (TV Series)"}
|
||||
- {id: 412, cat: TV/Anime, desc: "加流重灌 (Modded Blu-rays)"}
|
||||
- {id: 21, cat: Books, desc: "Raw Books"}
|
||||
- {id: 22, cat: Books, desc: "港译漫画 (HK Books)"}
|
||||
- {id: 23, cat: Books, desc: "台译漫画 (TW Books)"}
|
||||
- {id: 21, cat: Books, desc: "原版漫画 (Raw Books)"}
|
||||
- {id: 22, cat: Books, desc: "翻译漫画 (Translated Books)"}
|
||||
- {id: 30, cat: Audio, desc: "Lossless Music"}
|
||||
- {id: 40, cat: Other, desc: "Others"}
|
||||
# Anime as Movies (Radarr uses t=movie):
|
||||
@@ -32,7 +31,7 @@ caps:
|
||||
- {id: 413, cat: Movies/Other, desc: "Web"}
|
||||
- {id: 12, cat: Movies/HD, desc: "BDRip"}
|
||||
- {id: 13, cat: Movies/Other, desc: "DVDRip"}
|
||||
- {id: 14, cat: Movies/Other, desc: "HDTVRip"}
|
||||
- {id: 14, cat: Movies/Other, desc: "HDTV"}
|
||||
- {id: 15, cat: Movies/Other, desc: "DVDISO"}
|
||||
- {id: 16, cat: Movies/BluRay, desc: "BDMV"}
|
||||
- {id: 17, cat: Movies/Other, desc: "LQRip"}
|
||||
@@ -85,6 +84,11 @@ login:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?key="]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
@@ -93,7 +97,7 @@ search:
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%, 8 all promotions
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%, 8 custom promotion
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 AniDB, 5 infohash
|
||||
search_area: 0
|
||||
@@ -113,22 +117,17 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > time[title]
|
||||
selector: td.rowfollow:nth-child(3) > time[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -138,7 +137,7 @@ search:
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(time[title]) > time
|
||||
selector: td.rowfollow:nth-child(3):not(time[title])
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -148,13 +147,13 @@ search:
|
||||
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)
|
||||
selector: td.rowfollow:nth-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
downloadvolumefactor_custom:
|
||||
selector: td.embedded > img.arrowdown + b
|
||||
optional: true
|
||||
@@ -169,19 +168,19 @@ search:
|
||||
args: (.*)X
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_custom: "{{ .Result.downloadvolumefactor_custom }}"
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
span.free: 0
|
||||
span.twoupfree: 0
|
||||
span.custompromotion: "{{ .Result.downloadvolumefactor_custom }}"
|
||||
span.halfdown: 0.5
|
||||
span.twouphalfdown: 0.5
|
||||
span.thirtypercent: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
img.pro_custom: "{{ .Result.uploadvolumefactor_custom }}"
|
||||
span.twouphalfdown: 2
|
||||
span.twoupfree: 2
|
||||
span.twoup: 2
|
||||
span.custompromotion: "{{ .Result.uploadvolumefactor_custom }}"
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
|
@@ -184,4 +184,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 8.2.0
|
||||
# json UNIT3D 8.3.3
|
||||
|
@@ -29,7 +29,9 @@ caps:
|
||||
- {id: 38, cat: Audio, desc: "Christmas Audio"}
|
||||
- {id: 39, cat: Movies, desc: "Christmas Movie"}
|
||||
- {id: 40, cat: TV, desc: "Christmas TV"}
|
||||
- {id: 29, cat: Console, desc: "Games / All"}
|
||||
- {id: 29, cat: Console, desc: "Games"}
|
||||
- {id: 42, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 43, cat: Console/Wii, desc: "Games Wii"}
|
||||
- {id: 28, cat: Audio, desc: "Karaoke"}
|
||||
- {id: 7, cat: Movies/HD, desc: "Movie 1080p"}
|
||||
- {id: 6, cat: Movies/UHD, desc: "Movie 4K"}
|
||||
|
@@ -5,6 +5,8 @@ description: "Xider-Torrent is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 2191bbeb4c86d287861b0a63d26aecc0983d5087 # Expired 18th November 2024
|
||||
links:
|
||||
- https://xider.eu/
|
||||
|
||||
|
@@ -1,152 +0,0 @@
|
||||
---
|
||||
id: xperiencebytes-api
|
||||
name: XperienceBytes (API)
|
||||
description: "XperienceBytes (XPB) is a BRAZILIAN Private site for ANIME"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://xperiencebytes.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 6, cat: Movies, desc: "Tipo Filme"}
|
||||
- {id: 7, cat: TV, desc: "Tipo Série"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
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://xperiencebytes.me/\" target=\"_blank\">XPB</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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "After 3 months without any log in or usage of your account, it will be pruned and can only be reactivated by a staff member. Make sure to keep your account active and do not use programs to keep your account active, as your account may still get pruned."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
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:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
selector: double_upload
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# json UNIT3D 6.0.0
|
@@ -148,7 +148,7 @@ search:
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " -03:00" # BRT
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
|
@@ -28,10 +28,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Id => "divxtotal";
|
||||
public override string Name => "DivxTotal";
|
||||
public override string Description => "DivxTotal is a SPANISH site for Movies, TV series and Software";
|
||||
public override string SiteLink { get; protected set; } = "https://www5.divxtotal.mov/";
|
||||
public override string SiteLink { get; protected set; } = "https://divxtotal.io/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www.divxtotal.re/",
|
||||
"https://www.divxtotal.nl/",
|
||||
"https://www.divxtotal.ac/",
|
||||
"https://www.divxtotal.dev/",
|
||||
@@ -46,6 +45,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://www2.divxtotal.mov/",
|
||||
"https://www3.divxtotal.mov/",
|
||||
"https://www4.divxtotal.mov/",
|
||||
"https://www5.divxtotal.mov/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
@@ -28,10 +28,10 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL";
|
||||
// in the event the redirect is inactive https://t.me/s/dontorrent should have the latest working domain
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.equipment/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.yoga/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.equipment/",
|
||||
"https://dontorrent.yoga/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -40,9 +40,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.fyi/",
|
||||
"https://dontorrent.sbs/",
|
||||
"https://dontorrent.cc/",
|
||||
"https://dontorrent.esq/",
|
||||
"https://dontorrent.city/",
|
||||
"https://dontorrent.cologne/",
|
||||
@@ -55,6 +52,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.exposed/",
|
||||
"https://dontorrent.faith/",
|
||||
"https://dontorrent.gratis/",
|
||||
"https://dontorrent.equipment/",
|
||||
"https://dontorrent.fashion/",
|
||||
"https://dontorrent.gallery/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
@@ -35,7 +35,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
const string RSS_PATH = "feed/?type=magnet";
|
||||
const string RSS_PATH = "feed/?type=magnet&token=";
|
||||
|
||||
public EraiRaws(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
|
||||
IProtectionService ps, ICacheService cs)
|
||||
@@ -91,7 +91,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
private bool IsTitleDetailParsingEnabled => ((BoolConfigurationItem)configData.GetDynamic("title-detail-parsing")).Value;
|
||||
private bool IsSubsEnabled => ((BoolConfigurationItem)configData.GetDynamic("include-subs")).Value;
|
||||
|
||||
public string RssFeedUri => SiteLink + RSS_PATH + "&" + RSSKey;
|
||||
public string RssFeedUri => SiteLink + RSS_PATH + RSSKey;
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
@@ -122,7 +122,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
var result = await RequestWithCookiesAndRetryAsync(RssFeedUri);
|
||||
if (result.IsRedirect)
|
||||
result = await FollowIfRedirect(result);
|
||||
if (result.ContentString.Contains("403 Forbidden"))
|
||||
if (result.ContentString.Contains("<status>403</status>"))
|
||||
{
|
||||
logger.Error("[EraiRaws] 403 Forbidden");
|
||||
throw new Exception("The RSSkey may need to be replaced as EraiRaws returned 403 Forbidden.");
|
||||
@@ -265,6 +265,10 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
var description = rssItem.SelectSingleNode("description")?.InnerText;
|
||||
var quality = rssItem.SelectSingleNode("erai:resolution", nsm)?.InnerText;
|
||||
var subs = rssItem.SelectSingleNode("erai:subtitles", nsm)?.InnerText;
|
||||
if (string.IsNullOrEmpty(subs))
|
||||
{
|
||||
subs = "[]";
|
||||
}
|
||||
|
||||
item = new RssFeedItem
|
||||
{
|
||||
|
@@ -187,7 +187,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
Seeders = row.Seeders,
|
||||
Peers = row.Seeders + row.Leechers,
|
||||
Imdb = imdbId,
|
||||
PublishDate = DateTime.Parse(row.UploadDate + " +0300", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal),
|
||||
PublishDate = DateTime.Parse(row.UploadDate + " +0200", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal),
|
||||
DownloadVolumeFactor = isFreeleech ? 0 : 1,
|
||||
UploadVolumeFactor = row.DoubleUp ? 2 : 1,
|
||||
MinimumRatio = 1,
|
||||
|
@@ -62,6 +62,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
configData: new ConfigurationDataBasicLogin("For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile."))
|
||||
{
|
||||
configData.AddDynamic("freeleech", new BoolConfigurationItem("Search freeleech only") { Value = false });
|
||||
configData.AddDynamic("flaresolverr", new DisplayInfoConfigurationItem("FlareSolverr", "This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href=\"https://github.com/Jackett/Jackett#configuring-flaresolverr\" target=\"_blank\">FlareSolverr</a> to access it."));
|
||||
configData.AddDynamic("accountinactivity", new DisplayInfoConfigurationItem("Account Inactivity", "If you do not log in for 50 days, your account will be disabled for inactivity. If you are VIP you won't be disabled until the VIP period is over."));
|
||||
}
|
||||
|
||||
private TorznabCapabilities SetCapabilities()
|
||||
@@ -111,6 +113,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
|
||||
// XXX
|
||||
caps.Categories.AddCategoryMapping("58", TorznabCatType.XXX, "XXX/Blu-ray");
|
||||
caps.Categories.AddCategoryMapping("78", TorznabCatType.XXX, "XXX/Remux");
|
||||
caps.Categories.AddCategoryMapping("74", TorznabCatType.XXX, "XXX/UHD/Blu-ray");
|
||||
caps.Categories.AddCategoryMapping("48", TorznabCatType.XXX, "XXX/1080p/i");
|
||||
caps.Categories.AddCategoryMapping("47", TorznabCatType.XXX, "XXX/720p");
|
||||
|
@@ -291,6 +291,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
if (query.IsImdbQuery)
|
||||
{
|
||||
searchQuery.Add($"+({query.ImdbID})");
|
||||
|
||||
// search in description
|
||||
qc.Set("qf", "all");
|
||||
}
|
||||
else if (query.IsGenreQuery)
|
||||
{
|
||||
|
@@ -203,7 +203,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
var results = await RequestWithCookiesAndRetryAsync(searchUrl);
|
||||
|
||||
// Occasionally the cookies become invalid, login again if that happens
|
||||
if (results.ContentString.Contains("You do not have permission to access this page."))
|
||||
if (!results.ContentString.Contains("logout.php"))
|
||||
{
|
||||
await ApplyConfiguration(null);
|
||||
results = await RequestWithCookiesAndRetryAsync(searchUrl);
|
||||
|
310
src/Jackett.Common/Indexers/Definitions/Knaben.cs
Normal file
310
src/Jackett.Common/Indexers/Definitions/Knaben.cs
Normal file
@@ -0,0 +1,310 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Extensions;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class Knaben : IndexerBase
|
||||
{
|
||||
public override string Id => "knaben";
|
||||
public override string Name => "Knaben";
|
||||
public override string Description => "Knaben is a Public torrent meta-search engine";
|
||||
public override string SiteLink { get; protected set; } = "https://knaben.eu/";
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "public";
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
public Knaben(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationData())
|
||||
{
|
||||
}
|
||||
|
||||
private static TorznabCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q
|
||||
}
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(1000000, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(1001000, TorznabCatType.AudioMP3, "MP3");
|
||||
caps.Categories.AddCategoryMapping(1002000, TorznabCatType.AudioLossless, "Lossless");
|
||||
caps.Categories.AddCategoryMapping(1003000, TorznabCatType.AudioAudiobook, "Audiobook");
|
||||
caps.Categories.AddCategoryMapping(1004000, TorznabCatType.AudioVideo, "Audio Video");
|
||||
caps.Categories.AddCategoryMapping(1005000, TorznabCatType.AudioOther, "Radio");
|
||||
caps.Categories.AddCategoryMapping(1006000, TorznabCatType.AudioOther, "Audio Other");
|
||||
caps.Categories.AddCategoryMapping(2000000, TorznabCatType.TV, "TV");
|
||||
caps.Categories.AddCategoryMapping(2001000, TorznabCatType.TVHD, "TV HD");
|
||||
caps.Categories.AddCategoryMapping(2002000, TorznabCatType.TVSD, "TV SD");
|
||||
caps.Categories.AddCategoryMapping(2003000, TorznabCatType.TVUHD, "TV UHD");
|
||||
caps.Categories.AddCategoryMapping(2004000, TorznabCatType.TVDocumentary, "Documentary");
|
||||
caps.Categories.AddCategoryMapping(2005000, TorznabCatType.TVForeign, "TV Foreign");
|
||||
caps.Categories.AddCategoryMapping(2006000, TorznabCatType.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(2007000, TorznabCatType.TVOther, "Cartoon");
|
||||
caps.Categories.AddCategoryMapping(2008000, TorznabCatType.TVOther, "TV Other");
|
||||
caps.Categories.AddCategoryMapping(3000000, TorznabCatType.Movies, "Movies");
|
||||
caps.Categories.AddCategoryMapping(3001000, TorznabCatType.MoviesHD, "Movies HD");
|
||||
caps.Categories.AddCategoryMapping(3002000, TorznabCatType.MoviesSD, "Movies SD");
|
||||
caps.Categories.AddCategoryMapping(3003000, TorznabCatType.MoviesUHD, "Movies UHD");
|
||||
caps.Categories.AddCategoryMapping(3004000, TorznabCatType.MoviesDVD, "Movies DVD");
|
||||
caps.Categories.AddCategoryMapping(3005000, TorznabCatType.MoviesForeign, "Movies Foreign");
|
||||
caps.Categories.AddCategoryMapping(3006000, TorznabCatType.MoviesForeign, "Movies Bollywood");
|
||||
caps.Categories.AddCategoryMapping(3007000, TorznabCatType.Movies3D, "Movies 3D");
|
||||
caps.Categories.AddCategoryMapping(3008000, TorznabCatType.MoviesOther, "Movies Other");
|
||||
caps.Categories.AddCategoryMapping(4000000, TorznabCatType.PC, "PC");
|
||||
caps.Categories.AddCategoryMapping(4001000, TorznabCatType.PCGames, "Games");
|
||||
caps.Categories.AddCategoryMapping(4002000, TorznabCatType.PC0day, "Software");
|
||||
caps.Categories.AddCategoryMapping(4003000, TorznabCatType.PCMac, "Mac");
|
||||
caps.Categories.AddCategoryMapping(4004000, TorznabCatType.PCISO, "Unix");
|
||||
caps.Categories.AddCategoryMapping(5000000, TorznabCatType.XXX, "XXX");
|
||||
caps.Categories.AddCategoryMapping(5001000, TorznabCatType.XXXx264, "XXX Video");
|
||||
caps.Categories.AddCategoryMapping(5002000, TorznabCatType.XXXImageSet, "XXX ImageSet");
|
||||
caps.Categories.AddCategoryMapping(5003000, TorznabCatType.XXXOther, "XXX Games");
|
||||
caps.Categories.AddCategoryMapping(5004000, TorznabCatType.XXXOther, "XXX Hentai");
|
||||
caps.Categories.AddCategoryMapping(5005000, TorznabCatType.XXXOther, "XXX Other");
|
||||
caps.Categories.AddCategoryMapping(6000000, TorznabCatType.TVAnime, "Anime");
|
||||
caps.Categories.AddCategoryMapping(6001000, TorznabCatType.TVAnime, "Anime Subbed");
|
||||
caps.Categories.AddCategoryMapping(6002000, TorznabCatType.TVAnime, "Anime Dubbed");
|
||||
caps.Categories.AddCategoryMapping(6003000, TorznabCatType.TVAnime, "Anime Dual audio");
|
||||
caps.Categories.AddCategoryMapping(6004000, TorznabCatType.TVAnime, "Anime Raw");
|
||||
caps.Categories.AddCategoryMapping(6005000, TorznabCatType.AudioVideo, "Music Video");
|
||||
caps.Categories.AddCategoryMapping(6006000, TorznabCatType.BooksOther, "Literature");
|
||||
caps.Categories.AddCategoryMapping(6007000, TorznabCatType.AudioOther, "Music");
|
||||
caps.Categories.AddCategoryMapping(6008000, TorznabCatType.TVAnime, "Anime non-english translated");
|
||||
caps.Categories.AddCategoryMapping(7000000, TorznabCatType.Console, "Console");
|
||||
caps.Categories.AddCategoryMapping(7001000, TorznabCatType.ConsolePS4, "PS4");
|
||||
caps.Categories.AddCategoryMapping(7002000, TorznabCatType.ConsolePS3, "PS3");
|
||||
caps.Categories.AddCategoryMapping(7003000, TorznabCatType.ConsolePS3, "PS2");
|
||||
caps.Categories.AddCategoryMapping(7004000, TorznabCatType.ConsolePS3, "PS1");
|
||||
caps.Categories.AddCategoryMapping(7005000, TorznabCatType.ConsolePSVita, "PS Vita");
|
||||
caps.Categories.AddCategoryMapping(7006000, TorznabCatType.ConsolePSP, "PSP");
|
||||
caps.Categories.AddCategoryMapping(7007000, TorznabCatType.ConsoleXBox360, "Xbox 360");
|
||||
caps.Categories.AddCategoryMapping(7008000, TorznabCatType.ConsoleXBox, "Xbox");
|
||||
caps.Categories.AddCategoryMapping(7009000, TorznabCatType.ConsoleNDS, "Switch");
|
||||
caps.Categories.AddCategoryMapping(7010000, TorznabCatType.ConsoleNDS, "NDS");
|
||||
caps.Categories.AddCategoryMapping(7011000, TorznabCatType.ConsoleWii, "Wii");
|
||||
caps.Categories.AddCategoryMapping(7012000, TorznabCatType.ConsoleWiiU, "WiiU");
|
||||
caps.Categories.AddCategoryMapping(7013000, TorznabCatType.Console3DS, "3DS");
|
||||
caps.Categories.AddCategoryMapping(7014000, TorznabCatType.ConsoleWii, "GameCube");
|
||||
caps.Categories.AddCategoryMapping(7015000, TorznabCatType.ConsoleOther, "Other");
|
||||
caps.Categories.AddCategoryMapping(8000000, TorznabCatType.PCMobileOther, "Mobile");
|
||||
caps.Categories.AddCategoryMapping(8001000, TorznabCatType.PCMobileAndroid, "Android");
|
||||
caps.Categories.AddCategoryMapping(8002000, TorznabCatType.PCMobileiOS, "IOS");
|
||||
caps.Categories.AddCategoryMapping(8003000, TorznabCatType.PCMobileOther, "PC Other");
|
||||
caps.Categories.AddCategoryMapping(9000000, TorznabCatType.Books, "Books");
|
||||
caps.Categories.AddCategoryMapping(9001000, TorznabCatType.BooksEBook, "EBooks");
|
||||
caps.Categories.AddCategoryMapping(9002000, TorznabCatType.BooksComics, "Comics");
|
||||
caps.Categories.AddCategoryMapping(9003000, TorznabCatType.BooksMags, "Magazines");
|
||||
caps.Categories.AddCategoryMapping(9004000, TorznabCatType.BooksTechnical, "Technical");
|
||||
caps.Categories.AddCategoryMapping(9005000, TorznabCatType.BooksOther, "Books Other");
|
||||
caps.Categories.AddCategoryMapping(10000000, TorznabCatType.Other, "Other");
|
||||
caps.Categories.AddCategoryMapping(10001000, TorznabCatType.OtherMisc, "Other Misc");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new KnabenRequestGenerator(TorznabCaps);
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
{
|
||||
return new KnabenParser(TorznabCaps.Categories);
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
|
||||
var releases = await PerformQuery(new TorznabQuery());
|
||||
|
||||
await ConfigureIfOK(string.Empty, releases.Any(), () => throw new Exception("Could not find releases from this URL"));
|
||||
|
||||
return IndexerConfigurationStatus.Completed;
|
||||
}
|
||||
}
|
||||
|
||||
public class KnabenRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
private readonly TorznabCapabilities _capabilities;
|
||||
|
||||
public KnabenRequestGenerator(TorznabCapabilities capabilities)
|
||||
{
|
||||
_capabilities = capabilities;
|
||||
}
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(TorznabQuery query)
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var postData = new Dictionary<string, object>
|
||||
{
|
||||
{ "order_by", "date" },
|
||||
{ "order_direction", "desc" },
|
||||
{ "from", 0 },
|
||||
{ "size", 100 },
|
||||
{ "hide_unsafe", true }
|
||||
};
|
||||
|
||||
var searchString = query.GetQueryString().Trim();
|
||||
|
||||
if (searchString.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
postData.Add("search_type", "100%");
|
||||
postData.Add("search_field", "title");
|
||||
postData.Add("query", searchString);
|
||||
}
|
||||
|
||||
var categories = _capabilities.Categories.MapTorznabCapsToTrackers(query);
|
||||
|
||||
if (categories.Any())
|
||||
{
|
||||
postData.Add("categories", categories.Select(int.Parse).Distinct().ToArray());
|
||||
}
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(postData));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
||||
private IEnumerable<IndexerRequest> GetPagedRequests(Dictionary<string, object> postData)
|
||||
{
|
||||
var request = new WebRequest
|
||||
{
|
||||
Url = "https://api.knaben.eu/v1",
|
||||
Type = RequestType.POST,
|
||||
Headers = new Dictionary<string, string>
|
||||
{
|
||||
{ "Accept", "application/json" },
|
||||
{ "Content-Type", "application/json" }
|
||||
},
|
||||
RawBody = JsonConvert.SerializeObject(postData)
|
||||
};
|
||||
|
||||
yield return new IndexerRequest(request);
|
||||
}
|
||||
}
|
||||
|
||||
public class KnabenParser : IParseIndexerResponse
|
||||
{
|
||||
private readonly TorznabCapabilitiesCategories _categories;
|
||||
|
||||
private static readonly Regex DateTimezoneRegex = new Regex(@"[+-]\d{2}:\d{2}$", RegexOptions.Compiled);
|
||||
|
||||
public KnabenParser(TorznabCapabilitiesCategories categories)
|
||||
{
|
||||
_categories = categories;
|
||||
}
|
||||
|
||||
public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
|
||||
var jsonResponse = JsonConvert.DeserializeObject<KnabenResponse>(indexerResponse.Content);
|
||||
|
||||
if (jsonResponse?.Hits == null)
|
||||
{
|
||||
return releases;
|
||||
}
|
||||
|
||||
var rows = jsonResponse.Hits.Where(r => r.Seeders > 0).ToList();
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
// Not all entries have the TZ in the "date" field
|
||||
var publishDate = row.Date.IsNotNullOrWhiteSpace() && !DateTimezoneRegex.IsMatch(row.Date) ? $"{row.Date}+01:00" : row.Date;
|
||||
|
||||
var releaseInfo = new ReleaseInfo
|
||||
{
|
||||
Guid = new Uri(row.InfoUrl),
|
||||
Title = row.Title,
|
||||
Details = new Uri(row.InfoUrl),
|
||||
Link = row.DownloadUrl.IsNotNullOrWhiteSpace() && Uri.TryCreate(row.DownloadUrl, UriKind.Absolute, out var downloadUrl) ? downloadUrl : null,
|
||||
MagnetUri = row.MagnetUrl.IsNotNullOrWhiteSpace() && Uri.TryCreate(row.MagnetUrl, UriKind.Absolute, out var magnetUrl) ? magnetUrl : null,
|
||||
Category = row.CategoryIds.SelectMany(cat => _categories.MapTrackerCatToNewznab(cat.ToString())).Distinct().ToList(),
|
||||
InfoHash = row.InfoHash,
|
||||
Size = row.Size,
|
||||
Seeders = row.Seeders,
|
||||
Peers = row.Leechers + row.Seeders,
|
||||
PublishDate = DateTime.Parse(publishDate, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal),
|
||||
DownloadVolumeFactor = 0,
|
||||
UploadVolumeFactor = 1
|
||||
};
|
||||
|
||||
releases.Add(releaseInfo);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed record KnabenResponse
|
||||
{
|
||||
public IReadOnlyCollection<KnabenRelease> Hits { get; set; } = Array.Empty<KnabenRelease>();
|
||||
}
|
||||
|
||||
internal sealed record KnabenRelease
|
||||
{
|
||||
public string Title { get; set; }
|
||||
|
||||
[JsonProperty("categoryId")]
|
||||
public IReadOnlyCollection<int> CategoryIds { get; set; } = Array.Empty<int>();
|
||||
|
||||
[JsonProperty("hash")]
|
||||
public string InfoHash { get; set; }
|
||||
|
||||
[JsonProperty("details")]
|
||||
public string InfoUrl { get; set; }
|
||||
|
||||
[JsonProperty("link")]
|
||||
public string DownloadUrl { get; set; }
|
||||
|
||||
public string MagnetUrl { get; set; }
|
||||
|
||||
[JsonProperty("bytes")]
|
||||
public long Size { get; set; }
|
||||
|
||||
public int Seeders { get; set; }
|
||||
|
||||
[JsonProperty("peers")]
|
||||
public int Leechers { get; set; }
|
||||
|
||||
public string Date { get; set; }
|
||||
}
|
||||
}
|
@@ -27,11 +27,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Id => "mejortorrent";
|
||||
public override string Name => "MejorTorrent";
|
||||
public override string Description => "MejorTorrent - Hay veces que un torrent viene mejor! :)";
|
||||
public override string SiteLink { get; protected set; } = "https://www22.mejortorrent.zip/";
|
||||
public override string SiteLink { get; protected set; } = "https://www24.mejortorrent.zip/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www7.mejortorrent.rip/",
|
||||
"https://www8.mejortorrent.rip/",
|
||||
"https://www9.mejortorrent.rip/",
|
||||
"https://www10.mejortorrent.rip/",
|
||||
"https://www11.mejortorrent.rip/",
|
||||
@@ -45,6 +43,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://www19.mejortorrent.zip/",
|
||||
"https://www20.mejortorrent.zip/",
|
||||
"https://www21.mejortorrent.zip/",
|
||||
"https://www22.mejortorrent.zip/",
|
||||
"https://www23.mejortorrent.zip/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
@@ -21,7 +21,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Name => "Redacted";
|
||||
public override string Description => "A music tracker";
|
||||
// Status: https://red.trackerstatus.info/
|
||||
public override string SiteLink { get; protected set; } = "https://redacted.ch/";
|
||||
public override string SiteLink { get; protected set; } = "https://redacted.sh/";
|
||||
public override string[] LegacySiteLinks => new[] { "https://redacted.ch/" };
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "private";
|
||||
|
||||
|
@@ -96,8 +96,15 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
caps.Categories.AddCategoryMapping(112, TorznabCatType.MoviesOther, "Anime Movies");
|
||||
caps.Categories.AddCategoryMapping(111, TorznabCatType.MoviesOther, "Anime TV");
|
||||
caps.Categories.AddCategoryMapping(150, TorznabCatType.PC, "Apps");
|
||||
caps.Categories.AddCategoryMapping(80, TorznabCatType.AudioAudiobook, "Audiobooks");
|
||||
caps.Categories.AddCategoryMapping(48, TorznabCatType.Books, "Books Magazines");
|
||||
caps.Categories.AddCategoryMapping(156, TorznabCatType.TV, "AV1");
|
||||
caps.Categories.AddCategoryMapping(156, TorznabCatType.Movies, "AV1");
|
||||
caps.Categories.AddCategoryMapping(159, TorznabCatType.Movies, "Movie Boxsets AV1");
|
||||
caps.Categories.AddCategoryMapping(158, TorznabCatType.Movies, "Movies AV1");
|
||||
caps.Categories.AddCategoryMapping(157, TorznabCatType.TV, "TV AV1");
|
||||
caps.Categories.AddCategoryMapping(160, TorznabCatType.TV, "TV Boxsets AV1");
|
||||
caps.Categories.AddCategoryMapping(153, TorznabCatType.Books, "Books");
|
||||
caps.Categories.AddCategoryMapping(154, TorznabCatType.AudioAudiobook, "Audiobooks");
|
||||
caps.Categories.AddCategoryMapping(155, TorznabCatType.Books, "Books & Magazines");
|
||||
caps.Categories.AddCategoryMapping(68, TorznabCatType.MoviesOther, "Cams/TS");
|
||||
caps.Categories.AddCategoryMapping(140, TorznabCatType.TVDocumentary, "Documentary");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.MoviesDVD, "DVDR");
|
||||
@@ -129,6 +136,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
caps.Categories.AddCategoryMapping(146, TorznabCatType.MoviesSD, "Movies SD");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.Audio, "Music");
|
||||
caps.Categories.AddCategoryMapping(135, TorznabCatType.AudioLossless, "Music/FLAC");
|
||||
caps.Categories.AddCategoryMapping(151, TorznabCatType.Audio, "Karaoke");
|
||||
caps.Categories.AddCategoryMapping(136, TorznabCatType.Audio, "Music Boxset");
|
||||
caps.Categories.AddCategoryMapping(148, TorznabCatType.AudioVideo, "Music Videos");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.Other, "Other");
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user