mirror of
https://github.com/Jackett/Jackett.git
synced 2025-12-15 11:45:04 +01:00
Compare commits
88 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
887c5bafe6 | ||
|
|
eb933878ec | ||
|
|
3116dcce2b | ||
|
|
459bc4683e | ||
|
|
37ef94e8a5 | ||
|
|
7bbc63ddb8 | ||
|
|
e25370d959 | ||
|
|
46d6cf7ca1 | ||
|
|
b8f4caddc2 | ||
|
|
2cfd55b325 | ||
|
|
5f37536783 | ||
|
|
c0994d7a5e | ||
|
|
7455f3aec6 | ||
|
|
832184afaf | ||
|
|
f8bd4cd479 | ||
|
|
9e1d4af15e | ||
|
|
052d4ab3e2 | ||
|
|
86ba95ceb6 | ||
|
|
15e81d14c9 | ||
|
|
fd3731c429 | ||
|
|
adcbd5389c | ||
|
|
995ce3ee84 | ||
|
|
ecdb32e57f | ||
|
|
dd49233d41 | ||
|
|
2df84ce82d | ||
|
|
1b00e38094 | ||
|
|
42ec7db599 | ||
|
|
ad60961347 | ||
|
|
c2bb44dfb6 | ||
|
|
f218af30b9 | ||
|
|
d8f0a876d5 | ||
|
|
eb8279fd00 | ||
|
|
f554ba36c2 | ||
|
|
9c3d105705 | ||
|
|
da1a0cd98e | ||
|
|
98cc4f0f99 | ||
|
|
8e0a583296 | ||
|
|
d40019fc86 | ||
|
|
1eebcdffca | ||
|
|
458c1c9420 | ||
|
|
3db9c65fe0 | ||
|
|
8be39359d9 | ||
|
|
ae601a48f1 | ||
|
|
1e90e0ba5b | ||
|
|
72a52629ab | ||
|
|
88a9ae48ca | ||
|
|
5e71e30bc3 | ||
|
|
3060759f6c | ||
|
|
38ffba9405 | ||
|
|
98fd98de28 | ||
|
|
0f5f76ac6a | ||
|
|
7a8ffe297c | ||
|
|
7c4a08c7cc | ||
|
|
547dcc3bde | ||
|
|
4ca10e45e5 | ||
|
|
13458a16eb | ||
|
|
f779b3ac80 | ||
|
|
d85a2f84f3 | ||
|
|
8acdcfb935 | ||
|
|
aecfe64819 | ||
|
|
47113d3037 | ||
|
|
23eb6ff754 | ||
|
|
1d031c5ab1 | ||
|
|
e497312bc0 | ||
|
|
686ff21061 | ||
|
|
f330c9c0d7 | ||
|
|
2e4c88a577 | ||
|
|
1fd58faac1 | ||
|
|
99255b7ce9 | ||
|
|
829368c080 | ||
|
|
84146a9c2a | ||
|
|
479d5147dc | ||
|
|
d35c767769 | ||
|
|
89109259c5 | ||
|
|
7a391b598f | ||
|
|
7910b8dfea | ||
|
|
da88b95496 | ||
|
|
8b809e8edc | ||
|
|
6d95e354aa | ||
|
|
1657f12bed | ||
|
|
4038a0d430 | ||
|
|
a8a8701ab0 | ||
|
|
52d432be52 | ||
|
|
0518d30f9d | ||
|
|
c66e4be3b7 | ||
|
|
82931b31cf | ||
|
|
1bc41f396e | ||
|
|
6b4ff3a368 |
4
.github/workflows/definitions-update.yml
vendored
4
.github/workflows/definitions-update.yml
vendored
@@ -40,8 +40,8 @@ jobs:
|
||||
|
||||
- name: Setup Environment Variables
|
||||
run: |
|
||||
echo "CURRENT_RUDUB_DOMAIN=$(date +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.homes" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.homes" >> $GITHUB_ENV
|
||||
echo "CURRENT_RUDUB_DOMAIN=$(date +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.pics" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.pics" >> $GITHUB_ENV
|
||||
|
||||
- name: Update rudub definition
|
||||
uses: mikefarah/yq@master
|
||||
|
||||
12
README.md
12
README.md
@@ -70,6 +70,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Frozen Layer
|
||||
* GamesTorrents
|
||||
* GTorrent.pro
|
||||
* HDRTorrent
|
||||
* Idope
|
||||
* ilCorSaRoNeRo
|
||||
* Internet Archive (archive.org)
|
||||
@@ -82,6 +83,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Mac Torrents Download
|
||||
* Magnet Cat
|
||||
* MagnetDownload
|
||||
* Magnetz
|
||||
* MegaPeer
|
||||
* MejorTorrent
|
||||
* Mikan
|
||||
@@ -124,7 +126,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* torrent.by
|
||||
* torrent-pirat
|
||||
* Torrent9
|
||||
* TorrentControl
|
||||
* TorrentDosFilmes
|
||||
* TorrentDownload
|
||||
* TorrentGalaxyClone
|
||||
@@ -132,9 +133,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* TorrentProject2
|
||||
* TorrentQQ (토렌트큐큐)
|
||||
* Torrents.csv
|
||||
* TorrentSir (토렌트썰)
|
||||
* Torrentsome (토렌트썸)
|
||||
* torrentssg (토렌트쓱)
|
||||
* Torrenttip (토렌트팁)
|
||||
* TrahT
|
||||
* U3C3
|
||||
@@ -389,13 +388,13 @@ Prior versions of Jackett are no longer supported.
|
||||
* HDU
|
||||
* Hebits (HB)
|
||||
* HellasHut
|
||||
* HELLENIC-HD
|
||||
* HHanClub
|
||||
* HHD
|
||||
* HomePornTorrents (HPT)
|
||||
* House of Devil
|
||||
* HQMusic
|
||||
* HUDBT (蝴蝶) [![(invite needed)][inviteneeded]](#)
|
||||
* ilolicon PT
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
@@ -473,6 +472,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* PassThePopcorn (PTP) [![(invite needed)][inviteneeded]](#)
|
||||
* Peeratiko
|
||||
* Peers.FM
|
||||
* Phoenix Project
|
||||
* PigNetwork (猪猪网)
|
||||
* PixelCove (Ultimate Gamer)
|
||||
* PiXELHD (PxHD) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -523,11 +523,12 @@ Prior versions of Jackett are no longer supported.
|
||||
* SeedFile (SF)
|
||||
* seedpool
|
||||
* SewerPT (下水道) [![(invite needed)][inviteneeded]](#)
|
||||
* SexTorrent
|
||||
* SFP (Share Friends Projekt)
|
||||
* ShaKaw [![(invite needed)][inviteneeded]](#)
|
||||
* Shareisland
|
||||
* Shazbat
|
||||
* SiamBIT
|
||||
* SiamBIT [PAY2DL]
|
||||
* SkipTheCommercials
|
||||
* SnowPT (SSPT)
|
||||
* SoulVoice (聆音Club) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -561,7 +562,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* The Vault (TVBZ)
|
||||
* The-New-Fun
|
||||
* TheLeachZone (TLZ)
|
||||
* ThePiratedShip
|
||||
* TJUPT (北洋园PT)
|
||||
* TLFBits [![(invite needed)][inviteneeded]](#)
|
||||
* TmGHuB (TH) [![(invite needed)][inviteneeded]](#)
|
||||
|
||||
@@ -182,4 +182,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
|
||||
@@ -15,13 +15,13 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Audio/Audiobook, desc: "Action/Adventure"}
|
||||
- {id: 80, cat: Audio/Audiobook, desc: "Adult/Erotica"}
|
||||
- {id: 20, cat: Audio/Audiobook, desc: "Biography/Memoirs"}
|
||||
- {id: 10, cat: Audio/Audiobook, desc: "Action & Adventure"}
|
||||
- {id: 80, cat: Audio/Audiobook, desc: "Adult & Erotica"}
|
||||
- {id: 20, cat: Audio/Audiobook, desc: "Biography & Memoirs"}
|
||||
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
|
||||
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Computers"}
|
||||
- {id: 260, cat: Audio/Audiobook, desc: "Crime/Thriller"}
|
||||
- {id: 260, cat: Audio/Audiobook, desc: "Crime & Thriller"}
|
||||
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
|
||||
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
|
||||
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
|
||||
@@ -32,57 +32,55 @@ caps:
|
||||
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
|
||||
- {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
|
||||
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
|
||||
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference/Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion and Spirituality"}
|
||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion & Spirituality"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
||||
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
||||
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
||||
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
|
||||
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports/Fitness"}
|
||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports & Fitness"}
|
||||
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
||||
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy/Paranormal"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy & Paranormal"}
|
||||
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
||||
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action/Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult/Erotica"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action & Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult & Erotica"}
|
||||
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography/Memoirs"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography & Memoirs"}
|
||||
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Childrens"}
|
||||
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
||||
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime/Thriller"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime & Thriller"}
|
||||
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
||||
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
|
||||
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
||||
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History/Documentary"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History & Documentary"}
|
||||
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
||||
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
||||
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
||||
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
||||
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
|
||||
- {id: 580, cat: Books/EBook, desc: "[E] Non-Fiction"}
|
||||
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
|
||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference/Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion and Spirituality"}
|
||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference & Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion & Spirituality"}
|
||||
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
||||
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi/Apocalyptic"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi & Apocalyptic"}
|
||||
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
|
||||
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports/Fitness"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports & Fitness"}
|
||||
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
|
||||
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy/Paranormal"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy & Paranormal"}
|
||||
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
||||
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Young Children"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -134,7 +132,7 @@ search:
|
||||
|
||||
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
||||
categorydesc:
|
||||
selector: div[data-tid] > img
|
||||
selector: img[src^="./pic/caticons"]
|
||||
attribute: alt
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
|
||||
@@ -108,7 +108,6 @@ search:
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name, description, both, uploader
|
||||
search_type: name
|
||||
searchin: title
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
|
||||
|
||||
@@ -151,8 +151,10 @@ search:
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
optional: true
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
|
||||
@@ -27,19 +27,16 @@ caps:
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: useragent
|
||||
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 cyanbug Web Site. Otherwise just leave it empty."
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info_useragent
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -70,26 +67,10 @@ settings:
|
||||
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 180 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 90 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 7 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
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
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -112,6 +93,9 @@ search:
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
|
||||
@@ -188,10 +188,10 @@ search:
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 3 days or 1:1
|
||||
# global MR is 0.8 but torrents must be seeded for 6 days or 1:1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# 6 days (as seconds = 6 x 24 x 60 x 60)
|
||||
text: 518400
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
144
src/Jackett.Common/Definitions/dasunerwartete-api.yml
Normal file
144
src/Jackett.Common/Definitions/dasunerwartete-api.yml
Normal file
@@ -0,0 +1,144 @@
|
||||
---
|
||||
id: dasunerwartete-api
|
||||
name: Das Unerwartete (API)
|
||||
description: "Das Unerwartete (D-U) is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL. This is the API version."
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://dasunerwartete.biz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 145, cat: Movies, desc: "Filme > DRG"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Filme > SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Filme > HD"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filme > UHD"}
|
||||
- {id: 140, cat: Movies/BluRay, desc: "Filme > BluRay"}
|
||||
- {id: 143, cat: TV/Anime, desc: "Filme > Anime"}
|
||||
- {id: 138, cat: Movies, desc: "Filme > Packs"}
|
||||
- {id: 148, cat: Movies, desc: "Filme > Packs UHD"}
|
||||
- {id: 60, cat: TV/SD, desc: "Serien > SD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Serien > HD"}
|
||||
- {id: 139, cat: TV/UHD, desc: "Serien > UHD"}
|
||||
- {id: 144, cat: TV/Anime, desc: "Serien > Anime"}
|
||||
- {id: 59, cat: TV, desc: "Serien > Packs"}
|
||||
- {id: 147, cat: TV, desc: "Serien > Packs UHD"}
|
||||
- {id: 110, cat: Audio/MP3, desc: "Audio > MP3"}
|
||||
- {id: 48, cat: Audio/Lossless, desc: "Audio > Flac"}
|
||||
- {id: 52, cat: Audio, desc: "Audio > Pack"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Audio > Hörbuch"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio > Videos"}
|
||||
- {id: 12, cat: PC/0day, desc: "Apps > Windows"}
|
||||
- {id: 125, cat: PC/Mac, desc: "Apps > Mac-OSX"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "Apps > Mobil"}
|
||||
- {id: 141, cat: PC, desc: "Apps > Other"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku > SD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Doku > HD"}
|
||||
- {id: 123, cat: TV/Documentary, desc: "Doku > Reihe"}
|
||||
- {id: 126, cat: PC/Mobile-Other, desc: "Spiel > Mobil"}
|
||||
- {id: 17, cat: PC/Games, desc: "Spiel > PC"}
|
||||
- {id: 24, cat: Console, desc: "Spiel > Konsole"}
|
||||
- {id: 121, cat: Console, desc: "Spiel > Wimmelbild"}
|
||||
- {id: 61, cat: TV/Sport, desc: "Sport > HD"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport > SD"}
|
||||
- {id: 96, cat: Books/Mags, desc: "ePaper > Zeitungen"}
|
||||
- {id: 136, cat: Books/EBook, desc: "ePaper > E-Book"}
|
||||
- {id: 137, cat: Books/Comics, desc: "ePaper > Comics"}
|
||||
- {id: 76, cat: XXX/SD, desc: "XXX > SD"}
|
||||
- {id: 73, cat: XXX/x264, desc: "XXX > HD"}
|
||||
- {id: 75, cat: XXX/Pack, desc: "XXX > Pack"}
|
||||
- {id: 142, cat: XXX/ImageSet, desc: "XXX > Pic´s"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Internal > Film SD"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Internal > Film HD"}
|
||||
- {id: 131, cat: TV/SD, desc: "Internal > Serien SD"}
|
||||
- {id: 130, cat: TV/HD, desc: "Internal > Serien HD"}
|
||||
- {id: 132, cat: Other, desc: "Internal > Sonstiges"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find your API Key by accessing your <a href=\"https://dasunerwartete.biz/\" target=\"_blank\">Das Unerwartete</a> profile page and look for the <b>API-Key:</b> tag."
|
||||
- name: onlyupload
|
||||
type: checkbox
|
||||
label: Search OnlyUpload
|
||||
default: false
|
||||
- name: info_free
|
||||
type: info
|
||||
label: About OnlyUpload at D-U
|
||||
default: "OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech)."
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: api.php
|
||||
method: get
|
||||
response:
|
||||
type: xml
|
||||
inputs:
|
||||
apikey: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
q: "{{ .Query.Keywords }}"
|
||||
imdbid: "{{ .Query.IMDBID }}"
|
||||
tmdbid: "{{ .Query.TMDBID }}"
|
||||
free: "{{ if .Config.onlyupload }}yes{{ else }}{{ end }}"
|
||||
page: 1
|
||||
|
||||
rows:
|
||||
selector: item
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
title:
|
||||
selector: title
|
||||
_id:
|
||||
selector: guid
|
||||
details:
|
||||
text: "details.php?id={{ .Result._id }}"
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&", "&"]
|
||||
size:
|
||||
selector: size
|
||||
date:
|
||||
# Thu, 30 Oct 2025 00:19:02 +0100
|
||||
selector: pubDate
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["+0100", "+01:00"]
|
||||
- name: dateparse
|
||||
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
selector: tmdb
|
||||
_onlyup:
|
||||
selector: free_button:contains(Only Upload)
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._onlyup }}0{{ else }}1{{ end }}"
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1.5 days (as seconds = 1.5 x 24 x 60 x 60)
|
||||
text: 129600
|
||||
# API XML
|
||||
@@ -67,6 +67,7 @@ caps:
|
||||
- {id: 347, cat: Books/EBook, desc: "Medical"}
|
||||
- {id: 348, cat: Books/EBook, desc: "Mathematics"}
|
||||
- {id: 363, cat: Books/EBook, desc: "Sheet Music"}
|
||||
- {id: 366, cat: Books/EBook, desc: "Astronomy"}
|
||||
# Tech/Computers
|
||||
- {id: 331, cat: Books/EBook, desc: "Electronics"}
|
||||
- {id: 336, cat: Books/EBook, desc: "Video Games"}
|
||||
@@ -80,6 +81,7 @@ caps:
|
||||
- {id: 329, cat: Books/EBook, desc: "Motorcars/Repairs"}
|
||||
- {id: 330, cat: Books/EBook, desc: "D.I.Y"}
|
||||
- {id: 332, cat: Books/EBook, desc: "Trivia/Quiz"}
|
||||
- {id: 367, cat: Books/EBook, desc: "Health & Fitness"}
|
||||
# Non Fict/Ref
|
||||
- {id: 285, cat: Books/EBook, desc: "General Non-fiction"}
|
||||
- {id: 289, cat: Books/EBook, desc: "Autobiography/Memoir"}
|
||||
@@ -91,6 +93,7 @@ caps:
|
||||
- {id: 351, cat: Books/EBook, desc: "Religion"}
|
||||
- {id: 358, cat: Books/EBook, desc: "History"}
|
||||
- {id: 362, cat: Books/EBook, desc: "Politics"}
|
||||
- {id: 368, cat: Books/EBook, desc: "Music"}
|
||||
# Military
|
||||
- {id: 287, cat: Books/EBook, desc: "WW1"}
|
||||
- {id: 288, cat: Books/EBook, desc: "WW2"}
|
||||
|
||||
@@ -44,6 +44,7 @@ caps:
|
||||
- {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
|
||||
- {id: Movie clips, cat: Movies, desc: Movies clips}
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
- {id: Music videos, cat: Audio/Video, desc: Music Videos}
|
||||
- {id: NDS, cat: Console/NDS, desc: Games NDS}
|
||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
||||
|
||||
@@ -13,12 +13,12 @@ caps:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 10, cat: TV, desc: "TV Pack"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
||||
- {id: 5, cat: PC/0day, desc: "Apps"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 11, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 14, cat: Other, desc: "Tutorials"}
|
||||
- {id: 11, cat: Other, desc: "Assorted"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -231,4 +231,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
|
||||
190
src/Jackett.Common/Definitions/hellenic-hd-api.yml
Normal file
190
src/Jackett.Common/Definitions/hellenic-hd-api.yml
Normal file
@@ -0,0 +1,190 @@
|
||||
---
|
||||
id: hellenic-hd-api
|
||||
name: HELLENIC-HD (API)
|
||||
description: "HELLENIC-HD is a GREEK Private Torrent Tracker for MOVIES / TV"
|
||||
language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hellenic-hd.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
|
||||
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://hellenic-hd.cc/\" target=\"_blank\">HELLENIC-HD</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: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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: "Accounts that have not logged in for 60 days will be disabled, and may be deleted shortly afterwards."
|
||||
|
||||
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://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
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 }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||
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
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# 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
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 14 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# json UNIT3D 9.1.6
|
||||
@@ -5,6 +5,7 @@ description: "HunTorrent is a HUNGARIAN Semi-Private Torrent Tracker for MOVIES
|
||||
language: hu-HU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://huntorrent.org/
|
||||
legacylinks:
|
||||
@@ -12,34 +13,63 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 28, cat: Movies/SD, desc: "Cam/ENG"}
|
||||
- {id: 27, cat: Movies/SD, desc: "Cam/HUN"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDR/ENG"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVDR/HUN"}
|
||||
- {id: 6, cat: Movies/HD, desc: "HD/ENG"}
|
||||
- {id: 5, cat: Movies/HD, desc: "HD/HUN"}
|
||||
- {id: 29, cat: Movies, desc: "Mese/ENG"}
|
||||
- {id: 30, cat: Movies, desc: "Mese/HUN"}
|
||||
- {id: 8, cat: TV/SD, desc: "Sorozat/ENG"}
|
||||
- {id: 31, cat: TV/HD, desc: "Sorozat/HD/ENG"}
|
||||
- {id: 9, cat: TV/HD, desc: "Sorozat/HD/HUN"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/HUN"}
|
||||
- {id: 2, cat: Movies/SD, desc: "XviD/ENG"}
|
||||
- {id: 1, cat: Movies/SD, desc: "XviD/HUN"}
|
||||
- {id: 25, cat: Other, desc: "Kép"}
|
||||
- {id: 24, cat: Books, desc: "eBook/ENG"}
|
||||
- {id: 23, cat: Books, desc: "eBook/HUN"}
|
||||
- {id: 38, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 17, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 18, cat: PC/Games, desc: "Játék/RIP"}
|
||||
- {id: 19, cat: Console, desc: "Konzol"}
|
||||
- {id: 26, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 20, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 21, cat: PC/0day, desc: "Program/RIP"}
|
||||
- {id: 13, cat: Audio/Video, desc: "Klip/ENG"}
|
||||
- {id: 12, cat: Audio/Video, desc: "Klip/HUN"}
|
||||
- {id: 11, cat: Audio/MP3, desc: "MP3/ENG"}
|
||||
- {id: 10, cat: Audio/MP3, desc: "MP3/HUN"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Cam/Külföldi", default: true}
|
||||
- {id: 27, cat: Movies/SD, desc: "Cam/Magyar", default: true}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDR/Külföldi", default: true}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVDR/Magyar", default: true}
|
||||
- {id: 6, cat: Movies/HD, desc: "HD/Külföldi", default: true}
|
||||
- {id: 5, cat: Movies/HD, desc: "HD/Magyar", default: true}
|
||||
- {id: 2, cat: Movies/SD, desc: "XviD/Külföldi", default: true}
|
||||
- {id: 1, cat: Movies/SD, desc: "XviD/Magyar", default: true}
|
||||
- {id: 17, cat: PC/Games, desc: "Játék/ISO", default: true}
|
||||
- {id: 18, cat: PC/Games, desc: "Játék/RIP", default: true}
|
||||
- {id: 19, cat: Console, desc: "Konzol", default: true}
|
||||
- {id: 25, cat: Other, desc: "Kép", default: true}
|
||||
- {id: 24, cat: Books, desc: "eBook/Külföldi", default: true}
|
||||
- {id: 23, cat: Books, desc: "eBook/Magyar", default: true}
|
||||
- {id: 38, cat: Audio/Audiobook, desc: "Hangoskönyv", default: true}
|
||||
- {id: 26, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
||||
- {id: 20, cat: PC/ISO, desc: "Program/ISO", default: true}
|
||||
- {id: 21, cat: PC/0day, desc: "Program/RIP", default: true}
|
||||
- {id: 31, cat: TV/HD, desc: "Sorozat/HD/Külföldi", default: true}
|
||||
- {id: 9, cat: TV/HD, desc: "Sorozat/HD/Magyar", default: true}
|
||||
- {id: 8, cat: TV/SD, desc: "Sorozat/Külföldi", default: true}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Magyar", default: true}
|
||||
- {id: 13, cat: Audio/Video, desc: "Klip/Külföldi", default: true}
|
||||
- {id: 12, cat: Audio/Video, desc: "Klip/Külföldi", default: true}
|
||||
- {id: 11, cat: Audio/MP3, desc: "MP3/Külföldi", default: true}
|
||||
- {id: 10, cat: Audio/MP3, desc: "MP3/Magyar", default: true}
|
||||
- {id: 51bithorlo, cat: Movies/SD, desc: "Cam/Eng", default: true}
|
||||
- {id: 50bithorlo, cat: Movies/SD, desc: "Cam/Hun", default: true}
|
||||
- {id: 2bithorlo, cat: Movies/DVD, desc: "DVD/Eng", default: true}
|
||||
- {id: 1bithorlo, cat: Movies/DVD, desc: "DVD/Hun", default: true}
|
||||
- {id: 42bithorlo, cat: Movies/DVD, desc: "Dvd9/Eng", default: true}
|
||||
- {id: 41bithorlo, cat: Movies/DVD, desc: "Dvd9/Hun", default: true}
|
||||
- {id: 40bithorlo, cat: Books, desc: "E-book/Eng", default: true}
|
||||
- {id: 19bithorlo, cat: Books, desc: "E-book/Hun", default: true}
|
||||
- {id: 29bithorlo, cat: Movies/HD, desc: "HD/Eng", default: true}
|
||||
- {id: 28bithorlo, cat: Movies/HD, desc: "HD/Hun", default: true}
|
||||
- {id: 15bithorlo, cat: PC/Games, desc: "Játék/ISO", default: true}
|
||||
- {id: 38bithorlo, cat: Console, desc: "Játék/Konzol", default: true}
|
||||
- {id: 37bithorlo, cat: PC/Games, desc: "Játék/Rip", default: true}
|
||||
- {id: 20bithorlo, cat: Other, desc: "Képek", default: true}
|
||||
- {id: 21bithorlo, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
||||
- {id: 54bithorlo, cat: PC/ISO, desc: "Prog/ISO", default: true}
|
||||
- {id: 23bithorlo, cat: PC/0day, desc: "Prog/Rip", default: true}
|
||||
- {id: 33bithorlo, cat: TV/SD, desc: "Sorozat/Eng", default: true}
|
||||
- {id: 52bithorlo, cat: TV/HD, desc: "Sorozat/Eng/HD", default: true}
|
||||
- {id: 5bithorlo, cat: TV/SD, desc: "Sorozat/Hun", default: true}
|
||||
- {id: 53bithorlo, cat: TV/HD, desc: "Sorozat/Hun/HD", default: true}
|
||||
- {id: 4bithorlo, cat: Movies/SD, desc: "Xvid/Eng", default: true}
|
||||
- {id: 3bithorlo, cat: Movies/SD, desc: "Xvid/Hun", default: true}
|
||||
- {id: 12bithorlo, cat: Audio, desc: "Zene/Eng", default: true}
|
||||
- {id: 13bithorlo, cat: Audio, desc: "Zene/Hun", default: true}
|
||||
- {id: 16xxx, cat: XXX/DVD, desc: "XXX/DVD", default: false}
|
||||
- {id: 32xxx, cat: XXX/x264, desc: "XXX/HD", default: false}
|
||||
- {id: 14xxx, cat: XXX/ImageSet, desc: "XXX/Kép", default: false}
|
||||
- {id: 15xxx, cat: XXX/SD, desc: "XXX/XVID", default: false}
|
||||
- {id: 9bithorloxxx, cat: XXX/x264, desc: "XXX/Film, default: false"}
|
||||
- {id: 10bithorloxxx, cat: XXX/ImageSet, desc: "XXX/Kép", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -93,11 +123,23 @@ search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
paths:
|
||||
# https://huntorrent.net/browse.php?time=1616615308&korhatar=0&incldead=1&xyz=yes&c28=1&c27=1&c6=1&c5=1&sort=4&type=desc
|
||||
# https://huntorrent.net/browse.php?&korhatar=0&incldead=1&xyz=yes&c28=1&c27=1&c6=1&c5=1&sort=4&type=desc
|
||||
- path: browse.php
|
||||
categories: [28, 27, 4, 3, 6, 5, 2, 1, 17, 18, 19, 25, 24, 23, 38, 26, 20, 21, 31, 9, 8, 7, 13, 12, 11, 10]
|
||||
- path: browse.php
|
||||
categories: [51bithorlo, 50bithorlo, 2bithorlo, 1bithorlo, 42bithorlo, 41bithorlo, 40bithorlo, 19bithorlo, 29bithorlo, 28bithorlo, 15bithorlo, 38bithorlo, 37bithorlo, 20bithorlo, 21bithorlo, 54bithorlo, 23bithorlo, 33bithorlo, 52bithorlo, 53bithorlo, 4bithorlo, 3bithorlo, 12bithorlo, 13bithorlo]
|
||||
inputs:
|
||||
viewMode: bithorlo
|
||||
- path: browse.php
|
||||
categories: [16xxx, 32xxx, 14xxx, 15xxx]
|
||||
inputs:
|
||||
viewMode: xxx
|
||||
- path: browse.php
|
||||
categories: [9bithorloxxx, 10bithorloxxx]
|
||||
inputs:
|
||||
viewMode: bithorloxxx
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
viewMode: ""
|
||||
xyz: yes
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# Age Limit: 0 all, 1 no, 5 6, 2 12, 3 16, 4 18
|
||||
@@ -110,38 +152,44 @@ search:
|
||||
# can search by genre but you need to know the id. &mufaj[]=20 for Romantikus
|
||||
|
||||
rows:
|
||||
selector: table[align="center"][cellpadding="5"] > tbody > tr[id^="torrent-main-"]
|
||||
selector: table.torrent-table > tbody > tr[id^="torrent-main-"]
|
||||
|
||||
fields:
|
||||
_id:
|
||||
selector: a.download-link
|
||||
attribute: data-id
|
||||
category_view:
|
||||
# browse.php?cat=9&viewMode=
|
||||
# browse.php?cat=9&viewMode=xxx
|
||||
# browse.php?cat=9&viewMode=bithorlo
|
||||
# browse.php?cat=9&viewMode=bithorloxxx
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: querystring
|
||||
args: viewMode
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
- name: append
|
||||
args: "{{ if .Result.category_view }}{{ .Result.category_view }}{{ else }}{{ end }}"
|
||||
title:
|
||||
selector: a[href^="#details_tr_"]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Név: ", ""]
|
||||
selector: a.torrent-title-link
|
||||
details:
|
||||
text: "details.php?id={{ .Result._id }}"
|
||||
download:
|
||||
selector: a.download-link
|
||||
selector: a.torrent-title-link
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["please_wait=1&", ""]
|
||||
- name: replace
|
||||
args: ["&please_wait=1", ""]
|
||||
args: ["&hit=1", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: "span[style=\"font-size: 6pt; font-weight: bold;\"]"
|
||||
selector: a[data-mufaj]
|
||||
attribute: data-mufaj
|
||||
description:
|
||||
selector: td:nth-child(2) div:nth-child(2)
|
||||
selector: div.torrent-subtitle
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.genre }}</br>{{ .Result.genre }}{{ else }}{{ end }}"
|
||||
@@ -149,21 +197,23 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents_data/posters/"]
|
||||
attribute: href
|
||||
selector: a[data-poster]
|
||||
attribute: data-poster
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
selector: a[data-added]
|
||||
attribute: data-added
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4) b
|
||||
selector: a[data-size]
|
||||
attribute: data-size
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2) a b
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
|
||||
@@ -5,6 +5,7 @@ description: "ilCorSaRoNeRo is an ITALIAN Public site for MOVIES / TV / GENERAL"
|
||||
language: it-IT
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# current (official?) domains list https://loiflix.shop/ilcorsaronero/
|
||||
links:
|
||||
- https://ilcorsaronero.link/
|
||||
- https://ilcorsaronero.torrentbay.st/
|
||||
|
||||
@@ -1,187 +0,0 @@
|
||||
---
|
||||
id: ilolicon
|
||||
name: ilolicon PT
|
||||
description: "ilolicon PT is a CHINESE Private Torrent Tracker for LOLICON / MOVIES / 3X"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://share.ilolicon.com/
|
||||
|
||||
caps:
|
||||
# dont forget to update the path categories in the search block
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影 (Movie)", default: true}
|
||||
- {id: 402, cat: TV, desc: "电视剧(TV Series)", default: true}
|
||||
- {id: 430, cat: TV, desc: "综艺(TV Show)", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "动画 (Animation)", default: true}
|
||||
- {id: 408, cat: Audio, desc: "音乐 (Music)", default: true}
|
||||
- {id: 410, cat: Audio/Video, desc: "舞台演出 (Stage Performance)", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "纪录片 (Documentary)", default: true}
|
||||
- {id: 412, cat: Console, desc: "游戏 (Game)", default: true}
|
||||
- {id: 413, cat: PC, desc: "软件 (Software)", default: true}
|
||||
- {id: 411, cat: Other, desc: "漫画/CG杂图/动漫杂志 (Photo)", default: true}
|
||||
- {id: 418, cat: XXX/ImageSet, desc: "写真 (Photography)", default: false}
|
||||
- {id: 429, cat: XXX/Other, desc: "音声 (Audio)", default: false}
|
||||
- {id: 428, cat: XXX/Other, desc: "H-游戏 (H-Games)", default: false}
|
||||
- {id: 427, cat: XXX/ImageSet, desc: "H-CG杂图 (H-CG Miscellaneous Pictures)", default: false}
|
||||
- {id: 426, cat: XXX/Other, desc: "H-3D同人动画 (H-3D Doujin Animation)", default: false}
|
||||
- {id: 425, cat: XXX/Other, desc: "H-2D同人动画 (H-2D Doujin Animation)", default: false}
|
||||
- {id: 424, cat: XXX/Other, desc: "H-漫画 (H-Manga)", default: false}
|
||||
- {id: 423, cat: XXX/Other, desc: "里番 (Riban)", default: false}
|
||||
- {id: 420, cat: XXX, desc: "AV有码 (AV Censored)", default: false}
|
||||
- {id: 419, cat: XXX, desc: "AV无码 (AV uncensored)", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- 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.</br>Choosing more may cause the web site to fail to deliver complete results.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because I could not get the form method to work when I first created the indexer, some hidden security check
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 430, 405, 408, 410, 404, 412, 413, 411]
|
||||
- path: special.php
|
||||
categories: [418, 429, 428, 427, 426, 425, 424, 423, 422, 420, 419]
|
||||
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(a[href^="details.php?id="])
|
||||
|
||||
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
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2) td:nth-child(2)
|
||||
remove: a, b, font, img
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
@@ -9,21 +9,12 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.8800508.xyz/
|
||||
- https://www.8800509.xyz/
|
||||
- https://www.8800510.xyz/
|
||||
- https://www.8800511.xyz/
|
||||
- https://www.8800517.xyz/
|
||||
- https://www.8800518.xyz/
|
||||
- https://www.8800519.xyz/
|
||||
- https://www.8800520.xyz/
|
||||
legacylinks:
|
||||
- https://www.clm472.sbs/
|
||||
- https://www.8800485.xyz
|
||||
- https://www.8800481.xyz
|
||||
- https://www.8800483.xyz
|
||||
- https://www.8800486.xyz
|
||||
- https://www.8800487.xyz
|
||||
- https://www.8800492.xyz/
|
||||
- https://www.8800493.xyz/
|
||||
- https://www.8800494.xyz/
|
||||
- https://www.8800490.xyz/
|
||||
- https://www.8800498.xyz/
|
||||
- https://www.8800497.xyz/
|
||||
- https://www.8800499.xyz/
|
||||
@@ -33,6 +24,13 @@ legacylinks:
|
||||
- https://www.8800505.xyz/
|
||||
- https://www.8800506.xyz/
|
||||
- https://www.8800507.xyz/
|
||||
- https://www.8800508.xyz/
|
||||
- https://www.8800509.xyz/
|
||||
- https://www.8800510.xyz/
|
||||
- https://www.8800511.xyz/
|
||||
- https://www.8800514.xyz/
|
||||
- https://www.8800515.xyz/
|
||||
- https://www.8800516.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
61
src/Jackett.Common/Definitions/magnetz.yml
Normal file
61
src/Jackett.Common/Definitions/magnetz.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: magnetz
|
||||
name: Magnetz
|
||||
description: "Magnetz is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://magnetz.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_category_8000
|
||||
type: info_category_8000
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}*{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: a.list-group-item
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title:
|
||||
selector: h5
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: small
|
||||
seeders:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -156,7 +156,7 @@ search:
|
||||
img[src="/pic/categories/6.png"]: 44
|
||||
# img[src="/pic/categories/6.png"]: 43
|
||||
title:
|
||||
selector: td:nth-child(2) > div > a
|
||||
selector: a[onclick]
|
||||
_id:
|
||||
selector: a[onclick]
|
||||
attribute: onclick
|
||||
@@ -177,20 +177,20 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
_verified:
|
||||
selector: span.torrent-ok, span.torrent-unchecked
|
||||
case:
|
||||
|
||||
@@ -150,8 +150,17 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: dir
|
||||
title:
|
||||
title_default:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
|
||||
title_optional:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "return buildTable\\('([^']+)',"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
|
||||
attribute: href
|
||||
|
||||
@@ -326,13 +326,12 @@ caps:
|
||||
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
|
||||
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
|
||||
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
|
||||
- {id: 1153, cat: Books, desc: " |- Боевики"}
|
||||
- {id: 453, cat: Books, desc: " |- Детективы"}
|
||||
- {id: 453, cat: Books, desc: " |- Боевики, Детективы, Триллеры"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
|
||||
- {id: 452, cat: Books, desc: " |- Исторические книги"}
|
||||
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
|
||||
- {id: 452, cat: Books, desc: " |- Историческая проза, Мифы и Легенды"}
|
||||
- {id: 451, cat: Books, desc: " |- Фантастика, Фэнтези"}
|
||||
- {id: 449, cat: Books, desc: " |- Современная поэзия и проза"}
|
||||
- {id: 1153, cat: Books, desc: " |- Классическая поэзия и проза"}
|
||||
- {id: 1347, cat: Books, desc: "Книги вне издательств, самиздат (все жанры)"}
|
||||
- {id: 482, cat: Books, desc: "Комиксы и Артбуки"}
|
||||
- {id: 483, cat: Books, desc: " |- Комиксы на русском языке"}
|
||||
@@ -450,6 +449,7 @@ caps:
|
||||
- {id: 1356, cat: Audio, desc: " |- Alternative, Punk (Hi-Res)"}
|
||||
- {id: 965, cat: Audio/Lossless, desc: " |- Alternative, Punk (Lossless)"}
|
||||
- {id: 336, cat: Audio, desc: " |- Alternative, Punk"}
|
||||
- {id: 1362, cat: Audio, desc: " |- Hard Rock (Hi Res)"}
|
||||
- {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
@@ -459,6 +459,7 @@ caps:
|
||||
- {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
|
||||
- {id: 332, cat: Audio, desc: " |- Русский рок"}
|
||||
- {id: 325, cat: Audio, desc: "Pop"}
|
||||
- {id: 1354, cat: Audio, desc: " |- Pop (Hi-Res)"}
|
||||
- {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
|
||||
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
|
||||
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
|
||||
@@ -474,26 +475,32 @@ caps:
|
||||
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
|
||||
- {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
|
||||
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
|
||||
- {id: 1365, cat: Audio, desc: " |- Downtempo, Ambient (Hi-Res)"}
|
||||
- {id: 1366, cat: Audio, desc: " |- Experimental, Industrial (Hi-Res)"}
|
||||
- {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
|
||||
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
|
||||
- {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
|
||||
- {id: 346, cat: Audio, desc: " |- Trance"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 1363, cat: Audio, desc: " |- Trance, House, Techno (Hi-Res)"}
|
||||
- {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
|
||||
- {id: 345, cat: Audio, desc: " |- House"}
|
||||
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 347, cat: Audio, desc: " |- Easy listening"}
|
||||
- {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
|
||||
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
|
||||
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
|
||||
- {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
|
||||
- {id: 1225, cat: Audio, desc: " |- IDM"}
|
||||
- {id: 1367, cat: Audio, desc: " |- Synthpop, New Wave, Retro (Hi-Res)"}
|
||||
- {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
|
||||
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
|
||||
- {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
|
||||
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
|
||||
- {id: 1364, cat: Audio, desc: " |- Drum'n'Bass, Breakbeat (Hi-Res)"}
|
||||
- {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
|
||||
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
|
||||
- {id: 1368, cat: Audio, desc: " |- Hardcore, Extreme (Hi-Res)"}
|
||||
- {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
|
||||
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
|
||||
- {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
|
||||
@@ -507,6 +514,7 @@ caps:
|
||||
- {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
|
||||
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
|
||||
- {id: 329, cat: Audio, desc: "East Asian Music"}
|
||||
- {id: 1361, cat: Audio, desc: " |- Asian Music (Hi-Res)"}
|
||||
- {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
|
||||
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
|
||||
- {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
|
||||
@@ -523,10 +531,12 @@ caps:
|
||||
- {id: 711, cat: Audio, desc: " |- Instrumental"}
|
||||
- {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
|
||||
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
|
||||
- {id: 1359, cat: Audio, desc: " |- Folk (Hi-Res)"}
|
||||
- {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
|
||||
- {id: 379, cat: Audio, desc: " |- Folk"}
|
||||
- {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
|
||||
- {id: 1178, cat: Audio, desc: " |- Other"}
|
||||
- {id: 1360, cat: Audio, desc: " |- OST (Hi-Res)"}
|
||||
- {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
|
||||
- {id: 360, cat: Audio, desc: " |- OST"}
|
||||
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
|
||||
@@ -701,7 +711,6 @@ caps:
|
||||
# temp, archive
|
||||
- {id: 892, cat: Other, desc: " |- Архив Мультфильмов"}
|
||||
- {id: 91, cat: Other, desc: " |- Архив Видео. Кино, Театра"}
|
||||
- {id: 150, cat: Other, desc: " |- Архив неактуальных Экранок и любого видео с Рекламой"}
|
||||
- {id: 668, cat: Other, desc: " |- Архив Классики кино и Старых фильмов до 90-х"}
|
||||
- {id: 1143, cat: Other, desc: " |- Архив Музыкального Видео"}
|
||||
- {id: 802, cat: Other, desc: " |- Архив Сериалов и Архив Старого многосерийного кино до 90-х"}
|
||||
@@ -717,15 +726,6 @@ caps:
|
||||
- {id: 184, cat: Other, desc: " |- Архив КПК и Мобильных устройств"}
|
||||
- {id: 1080, cat: Other, desc: " |- Архив 4Apple"}
|
||||
- {id: 180, cat: Other, desc: " |- Архив Медиа-Диз-Графика"}
|
||||
- {id: 145, cat: Other, desc: " |- Видео (temp)"}
|
||||
- {id: 146, cat: Other, desc: " |- Аниме (temp)"}
|
||||
- {id: 161, cat: Other, desc: " |- Книги (temp)"}
|
||||
- {id: 147, cat: Other, desc: " |- Музыка (temp)"}
|
||||
- {id: 148, cat: Other, desc: " |- Игры (temp)"}
|
||||
- {id: 149, cat: Other, desc: " |- Программы (temp)"}
|
||||
- {id: 183, cat: Other, desc: " |- КПК и Мобильные устройства (temp)"}
|
||||
- {id: 1145, cat: Other, desc: " |- 4Apple (temp)"}
|
||||
- {id: 171, cat: Other, desc: " |- Медиа-Диз-Графика (temp)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -324,13 +324,12 @@ caps:
|
||||
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
|
||||
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
|
||||
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
|
||||
- {id: 1153, cat: Books, desc: " |- Боевики"}
|
||||
- {id: 453, cat: Books, desc: " |- Детективы"}
|
||||
- {id: 453, cat: Books, desc: " |- Боевики, Детективы, Триллеры"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
|
||||
- {id: 452, cat: Books, desc: " |- Исторические книги"}
|
||||
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
|
||||
- {id: 452, cat: Books, desc: " |- Историческая проза, Мифы и Легенды"}
|
||||
- {id: 451, cat: Books, desc: " |- Фантастика, Фэнтези"}
|
||||
- {id: 449, cat: Books, desc: " |- Современная поэзия и проза"}
|
||||
- {id: 1153, cat: Books, desc: " |- Классическая поэзия и проза"}
|
||||
- {id: 1347, cat: Books, desc: "Книги вне издательств, самиздат (все жанры)"}
|
||||
- {id: 482, cat: Books, desc: "Комиксы и Артбуки"}
|
||||
- {id: 483, cat: Books, desc: " |- Комиксы на русском языке"}
|
||||
@@ -448,6 +447,7 @@ caps:
|
||||
- {id: 1356, cat: Audio, desc: " |- Alternative, Punk (Hi-Res)"}
|
||||
- {id: 965, cat: Audio/Lossless, desc: " |- Alternative, Punk (Lossless)"}
|
||||
- {id: 336, cat: Audio, desc: " |- Alternative, Punk"}
|
||||
- {id: 1362, cat: Audio, desc: " |- Hard Rock (Hi Res)"}
|
||||
- {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
@@ -457,6 +457,7 @@ caps:
|
||||
- {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
|
||||
- {id: 332, cat: Audio, desc: " |- Русский рок"}
|
||||
- {id: 325, cat: Audio, desc: "Pop"}
|
||||
- {id: 1354, cat: Audio, desc: " |- Pop (Hi-Res)"}
|
||||
- {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
|
||||
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
|
||||
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
|
||||
@@ -472,26 +473,32 @@ caps:
|
||||
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
|
||||
- {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
|
||||
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
|
||||
- {id: 1365, cat: Audio, desc: " |- Downtempo, Ambient (Hi-Res)"}
|
||||
- {id: 1366, cat: Audio, desc: " |- Experimental, Industrial (Hi-Res)"}
|
||||
- {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
|
||||
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
|
||||
- {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
|
||||
- {id: 346, cat: Audio, desc: " |- Trance"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 1363, cat: Audio, desc: " |- Trance, House, Techno (Hi-Res)"}
|
||||
- {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
|
||||
- {id: 345, cat: Audio, desc: " |- House"}
|
||||
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 347, cat: Audio, desc: " |- Easy listening"}
|
||||
- {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
|
||||
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
|
||||
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
|
||||
- {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
|
||||
- {id: 1225, cat: Audio, desc: " |- IDM"}
|
||||
- {id: 1367, cat: Audio, desc: " |- Synthpop, New Wave, Retro (Hi-Res)"}
|
||||
- {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
|
||||
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
|
||||
- {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
|
||||
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
|
||||
- {id: 1364, cat: Audio, desc: " |- Drum'n'Bass, Breakbeat (Hi-Res)"}
|
||||
- {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
|
||||
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
|
||||
- {id: 1368, cat: Audio, desc: " |- Hardcore, Extreme (Hi-Res)"}
|
||||
- {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
|
||||
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
|
||||
- {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
|
||||
@@ -505,6 +512,7 @@ caps:
|
||||
- {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
|
||||
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
|
||||
- {id: 329, cat: Audio, desc: "East Asian Music"}
|
||||
- {id: 1361, cat: Audio, desc: " |- Asian Music (Hi-Res)"}
|
||||
- {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
|
||||
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
|
||||
- {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
|
||||
@@ -521,10 +529,12 @@ caps:
|
||||
- {id: 711, cat: Audio, desc: " |- Instrumental"}
|
||||
- {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
|
||||
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
|
||||
- {id: 1359, cat: Audio, desc: " |- Folk (Hi-Res)"}
|
||||
- {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
|
||||
- {id: 379, cat: Audio, desc: " |- Folk"}
|
||||
- {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
|
||||
- {id: 1178, cat: Audio, desc: " |- Other"}
|
||||
- {id: 1360, cat: Audio, desc: " |- OST (Hi-Res)"}
|
||||
- {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
|
||||
- {id: 360, cat: Audio, desc: " |- OST"}
|
||||
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
|
||||
|
||||
139
src/Jackett.Common/Definitions/phoenixproject.yml
Normal file
139
src/Jackett.Common/Definitions/phoenixproject.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
---
|
||||
id: phoenixproject
|
||||
name: Phoenix Project
|
||||
description: "Phoenix Project is a Private MacOS software tracker"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://phoenixproject.app/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC/Mac, desc: Applications}
|
||||
- {id: 2, cat: PC/Games, desc: Games}
|
||||
- {id: 3, cat: PC/Mobile-iOS, desc: IOS Applications}
|
||||
- {id: 4, cat: PC/Mobile-iOS, desc: IOS Games}
|
||||
- {id: 5, cat: Other, desc: Graphics}
|
||||
- {id: 6, cat: Audio, desc: Audio}
|
||||
- {id: 7, cat: Other, desc: Tutorials}
|
||||
- {id: 8, cat: Other, desc: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2fa_code
|
||||
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 Phoenix Project 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: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
twofa: "{{ .Config.2fa_code }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: div.main div.warning-login
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Keywords }}"
|
||||
# freetorrent: 0 normal, 1 freeleech, 2 neutral leech
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
group_results: 0
|
||||
action: advanced
|
||||
order: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
searchsubmit: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrent_table tr.torrent:has(a[title="Download"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="filter_cat"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[(\\d+?)\\]"
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: div.tags a[href*="taglist"]
|
||||
download:
|
||||
selector: span > a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.group_image > img
|
||||
attribute: src
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
selector: span.time.tooltip
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm zzz"
|
||||
size:
|
||||
selector: td.td_size
|
||||
files:
|
||||
selector: td.td_file_count
|
||||
seeders:
|
||||
selector: td.td_seeders
|
||||
leechers:
|
||||
selector: td.td_leechers
|
||||
grabs:
|
||||
selector: td.td_snatched
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
strong.torrent_label.tl_free: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
# Gazelle
|
||||
@@ -124,9 +124,14 @@ search:
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?id={{ .Result._id }}"
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
|
||||
@@ -6,8 +6,9 @@ language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pterclub.com/
|
||||
- https://pterclub.net/
|
||||
legacylinks:
|
||||
- https://pterclub.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -27,12 +27,14 @@ caps:
|
||||
- {id: 23, cat: TV/Sport, desc: "Formula E"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Indycar Series"}
|
||||
- {id: 26, cat: TV/Sport, desc: "MotoGP-2-3-E"}
|
||||
- {id: 82, cat: TV/Sport, desc: "Motorcycle Speedway"}
|
||||
- {id: 31, cat: TV/Sport, desc: "Nascar"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Other Bikes"}
|
||||
- {id: 69, cat: TV/Sport, desc: "Other Cars"}
|
||||
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
|
||||
- {id: 32, cat: TV/Sport, desc: "Stock Car Brazil"}
|
||||
- {id: 63, cat: TV/Sport, desc: "Supercars"}
|
||||
- {id: 83, cat: TV/Sport, desc: "Super GT"}
|
||||
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
|
||||
- {id: 57, cat: TV/Sport, desc: "WEC"}
|
||||
- {id: 50, cat: TV/Sport, desc: "WRC"}
|
||||
|
||||
@@ -9,38 +9,38 @@ type: semi-private
|
||||
encoding: windows-1251
|
||||
followredirect: true
|
||||
links:
|
||||
- https://oct25.rudub.homes/
|
||||
- https://nov11.rudub.pics/
|
||||
legacylinks:
|
||||
- https://oct10.rudub.mom/
|
||||
- http://oct11.rudub.mom/
|
||||
- https://oct11.rudub.mom/
|
||||
- http://oct12.rudub.mom/
|
||||
- https://oct12.rudub.mom/
|
||||
- http://oct13.rudub.mom/
|
||||
- https://oct13.rudub.mom/
|
||||
- http://oct14.rudub.mom/
|
||||
- https://oct14.rudub.mom/
|
||||
- http://oct15.rudub.mom/
|
||||
- https://oct15.rudub.mom/
|
||||
- http://oct16.rudub.mom/
|
||||
- https://oct16.rudub.mom/
|
||||
- http://oct17.rudub.mom/
|
||||
- https://oct17.rudub.mom/
|
||||
- http://oct18.rudub.mom/
|
||||
- https://oct18.rudub.mom/
|
||||
- http://oct19.rudub.homes/
|
||||
- https://oct19.rudub.homes/
|
||||
- http://oct20.rudub.homes/
|
||||
- https://oct20.rudub.homes/
|
||||
- http://oct21.rudub.homes/
|
||||
- https://oct21.rudub.homes/
|
||||
- http://oct22.rudub.homes/
|
||||
- https://oct22.rudub.homes/
|
||||
- http://oct23.rudub.homes/
|
||||
- https://oct23.rudub.homes/
|
||||
- http://oct24.rudub.homes/
|
||||
- https://oct24.rudub.homes/
|
||||
- http://oct25.rudub.homes/
|
||||
- https://oct27.rudub.homes/
|
||||
- http://oct28.rudub.homes/
|
||||
- https://oct28.rudub.homes/
|
||||
- http://oct29.rudub.homes/
|
||||
- https://oct29.rudub.homes/
|
||||
- http://oct30.rudub.homes/
|
||||
- https://oct30.rudub.homes/
|
||||
- http://oct31.rudub.homes/
|
||||
- https://oct31.rudub.homes/
|
||||
- http://nov01.rudub.homes/
|
||||
- https://nov01.rudub.homes/
|
||||
- http://nov02.rudub.homes/
|
||||
- https://nov02.rudub.homes/
|
||||
- http://nov03.rudub.homes/
|
||||
- https://nov03.rudub.homes/
|
||||
- http://nov04.rudub.homes/
|
||||
- https://nov04.rudub.homes/
|
||||
- http://nov05.rudub.homes/
|
||||
- https://nov05.rudub.homes/
|
||||
- http://nov06.rudub.homes/
|
||||
- https://nov06.rudub.homes/
|
||||
- http://nov07.rudub.pics/
|
||||
- https://nov07.rudub.pics/
|
||||
- http://nov08.rudub.pics/
|
||||
- https://nov08.rudub.pics/
|
||||
- http://nov09.rudub.pics/
|
||||
- https://nov09.rudub.pics/
|
||||
- http://nov10.rudub.pics/
|
||||
- https://nov10.rudub.pics/
|
||||
- http://nov11.rudub.pics/
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "TV"}
|
||||
|
||||
207
src/Jackett.Common/Definitions/sextorrent-api.yml
Normal file
207
src/Jackett.Common/Definitions/sextorrent-api.yml
Normal file
@@ -0,0 +1,207 @@
|
||||
---
|
||||
id: sextorrent-api
|
||||
name: SexTorrent (API)
|
||||
description: "SexTorrent is a Private Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sextorrent.myds.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: XXX, desc: "Amateur"}
|
||||
- {id: 4, cat: XXX, desc: "Anal"}
|
||||
- {id: 5, cat: XXX, desc: "Asian"}
|
||||
- {id: 6, cat: XXX, desc: "BDSM"}
|
||||
- {id: 7, cat: XXX, desc: "Big-Tits"}
|
||||
- {id: 8, cat: XXX, desc: "Busty"}
|
||||
- {id: 9, cat: XXX, desc: "Creampie"}
|
||||
- {id: 10, cat: XXX, desc: "Fetish"}
|
||||
- {id: 11, cat: XXX, desc: "Mature"}
|
||||
- {id: 12, cat: XXX, desc: "Hardcore"}
|
||||
- {id: 13, cat: XXX, desc: "Old and Young"}
|
||||
- {id: 14, cat: XXX, desc: "Milf"}
|
||||
- {id: 15, cat: XXX, desc: "Oral"}
|
||||
- {id: 16, cat: XXX, desc: "Orgy Gang Bang"}
|
||||
- {id: 17, cat: XXX, desc: "Lesbian"}
|
||||
- {id: 18, cat: XXX, desc: "Teen"}
|
||||
- {id: 19, cat: XXX, desc: "HD - High.Definition"}
|
||||
- {id: 20, cat: XXX, desc: "Hentai"}
|
||||
- {id: 21, cat: XXX, desc: "Interracial"}
|
||||
- {id: 22, cat: XXX, desc: "Masturbate"}
|
||||
- {id: 23, cat: XXX, desc: "Music Video"}
|
||||
- {id: 24, cat: XXX, desc: "POV"}
|
||||
- {id: 25, cat: XXX, desc: "Shemale -TS- TransSex"}
|
||||
- {id: 26, cat: XXX, desc: "Straight"}
|
||||
- {id: 27, cat: XXX, desc: "Mega.Pack"}
|
||||
- {id: 28, cat: XXX, desc: "V.R. -Porn-"}
|
||||
- {id: 30, cat: XXX/ImageSet, desc: "Pictures"}
|
||||
- {id: 29, cat: XXX, desc: "SiteRip"}
|
||||
- {id: 31, cat: XXX, desc: "Foreign"}
|
||||
- {id: 32, cat: XXX, desc: "Latina"}
|
||||
- {id: 33, cat: XXX/Other, desc: "Games"}
|
||||
- {id: 34, cat: XXX, desc: "Magazines"}
|
||||
- {id: 35, cat: XXX, desc: "Feature"}
|
||||
- {id: 36, cat: XXX, desc: "Big-Ass"}
|
||||
- {id: 37, cat: XXX/Other, desc: "Other"}
|
||||
- {id: 38, cat: XXX, desc: "Cumshot"}
|
||||
- {id: 39, cat: XXX, desc: "Black"}
|
||||
- {id: 40, cat: XXX, desc: "Piss"}
|
||||
- {id: 41, cat: XXX, desc: "Homemade"}
|
||||
- {id: 42, cat: XXX, desc: "Pregnant"}
|
||||
- {id: 43, cat: XXX, desc: "Gay"}
|
||||
- {id: 1, cat: Movies, desc: "Movie"}
|
||||
- {id: 2, cat: TV, desc: "TV Show"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-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://sextorrent.myds.me/\" target=\"_blank\">SexTorrent</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: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- 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://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||
- 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:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
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 }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||
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
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# 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
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 9.1.7
|
||||
@@ -17,11 +17,10 @@ caps:
|
||||
- {id: 2, cat: TV, desc: "Serie TV"}
|
||||
- {id: 15, cat: Books/EBook, desc: "Ebook"}
|
||||
- {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"}
|
||||
- {id: 19, cat: XXX, desc: "XXX"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 7, cat: PC/Games, desc: "Games"}
|
||||
- {id: 23, cat: PC, desc: "Software"}
|
||||
- {id: 24, cat: TV/Sport, desc: "EVENTI SPORTIVI"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Eventi Sportivi"}
|
||||
- {id: 25, cat: Other, desc: "Misc"}
|
||||
|
||||
modes:
|
||||
@@ -129,7 +128,7 @@ search:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace # replace special characters with " " (space)
|
||||
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
|
||||
args: ["[\\[!\"#$%&'()*+,\\/:;<=>?@\\^`{|}~]", " "]
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # replace multiple spaces
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: siambit
|
||||
name: SiamBIT
|
||||
description: "SiamBIT is a THAI Private Torrent Tracker for GENERAL"
|
||||
description: "SiamBIT is a THAI PAY2DL Private Torrent Tracker for GENERAL"
|
||||
language: th-TH
|
||||
type: private
|
||||
encoding: tis-620
|
||||
@@ -148,8 +148,7 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
# the last selector is temporary as the site has apparently not yet updated their html for the cat links ;-)
|
||||
selector: a[href^="viewno18sbx.php?cat="], a[href^="viewbrsb.php?cat="], a[href^="viewno18sb.php?cat="]
|
||||
selector: a[href*=".php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
@@ -162,59 +161,62 @@ search:
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[alt="Poster"]
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(7)
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyyHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
seeders:
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
leechers:
|
||||
seeders:
|
||||
selector: td:nth-child(11)
|
||||
leechers:
|
||||
selector: td:nth-child(12)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"td:nth-child(3):contains(\"100%\")": 0
|
||||
"td:nth-child(3):contains(\"95%\")": 0.05
|
||||
"td:nth-child(3):contains(\"90%\")": 0.1
|
||||
"td:nth-child(3):contains(\"85%\")": 0.15
|
||||
"td:nth-child(3):contains(\"80%\")": 0.2
|
||||
"td:nth-child(3):contains(\"75%\")": 0.25
|
||||
"td:nth-child(3):contains(\"70%\")": 0.3
|
||||
"td:nth-child(3):contains(\"65%\")": 0.35
|
||||
"td:nth-child(3):contains(\"60%\")": 0.4
|
||||
"td:nth-child(3):contains(\"55%\")": 0.45
|
||||
"td:nth-child(3):contains(\"50%\")": 0.5
|
||||
"td:nth-child(3):contains(\"45%\")": 0.55
|
||||
"td:nth-child(3):contains(\"40%\")": 0.6
|
||||
"td:nth-child(3):contains(\"35%\")": 0.65
|
||||
"td:nth-child(3):contains(\"30%\")": 0.7
|
||||
"td:nth-child(3):contains(\"25%\")": 0.75
|
||||
"td:nth-child(3):contains(\"20%\")": 0.8
|
||||
"td:nth-child(3):contains(\"15%\")": 0.85
|
||||
"td:nth-child(3):contains(\"10%\")": 0.9
|
||||
"td:nth-child(3):contains(\"5%\")": 0.95
|
||||
"td:nth-child(4):contains(\"100%\")": 0
|
||||
"td:nth-child(4):contains(\"95%\")": 0.05
|
||||
"td:nth-child(4):contains(\"90%\")": 0.1
|
||||
"td:nth-child(4):contains(\"85%\")": 0.15
|
||||
"td:nth-child(4):contains(\"80%\")": 0.2
|
||||
"td:nth-child(4):contains(\"75%\")": 0.25
|
||||
"td:nth-child(4):contains(\"70%\")": 0.3
|
||||
"td:nth-child(4):contains(\"65%\")": 0.35
|
||||
"td:nth-child(4):contains(\"60%\")": 0.4
|
||||
"td:nth-child(4):contains(\"55%\")": 0.45
|
||||
"td:nth-child(4):contains(\"50%\")": 0.5
|
||||
"td:nth-child(4):contains(\"45%\")": 0.55
|
||||
"td:nth-child(4):contains(\"40%\")": 0.6
|
||||
"td:nth-child(4):contains(\"35%\")": 0.65
|
||||
"td:nth-child(4):contains(\"30%\")": 0.7
|
||||
"td:nth-child(4):contains(\"25%\")": 0.75
|
||||
"td:nth-child(4):contains(\"20%\")": 0.8
|
||||
"td:nth-child(4):contains(\"15%\")": 0.85
|
||||
"td:nth-child(4):contains(\"10%\")": 0.9
|
||||
"td:nth-child(4):contains(\"5%\")": 0.95
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"td:nth-child(4):contains(\"x2\")": 2
|
||||
"td:nth-child(4):contains(\"x3\")": 3
|
||||
"td:nth-child(4):contains(\"x4\")": 4
|
||||
"td:nth-child(4):contains(\"x5\")": 5
|
||||
"td:nth-child(4):contains(\"x6\")": 6
|
||||
"td:nth-child(4):contains(\"x7\")": 7
|
||||
"td:nth-child(4):contains(\"x8\")": 8
|
||||
"td:nth-child(4):contains(\"x9\")": 9
|
||||
"td:nth-child(5):contains(\"x2\")": 2
|
||||
"td:nth-child(5):contains(\"x3\")": 3
|
||||
"td:nth-child(5):contains(\"x4\")": 4
|
||||
"td:nth-child(5):contains(\"x5\")": 5
|
||||
"td:nth-child(5):contains(\"x6\")": 6
|
||||
"td:nth-child(5):contains(\"x7\")": 7
|
||||
"td:nth-child(5):contains(\"x8\")": 8
|
||||
"td:nth-child(5):contains(\"x9\")": 9
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
---
|
||||
id: thepiratedship
|
||||
name: ThePiratedShip
|
||||
description: "ThePiratedShip is a Private Torrent 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: 107, cat: Movies, desc: "Boxsets"}
|
||||
- {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: 26, cat: TV, desc: "Cartoons/Animation"}
|
||||
- {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: 97, cat: Other, desc: "Comics/Books/eBooks"}
|
||||
- {id: 100, cat: Books/Comics, desc: "Comics/Magazines"}
|
||||
- {id: 99, cat: Books/EBook, desc: "E Books"}
|
||||
- {id: 98, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: 109, cat: PC/Mobile-Other, desc: "Phone Applications"}
|
||||
- {id: 103, cat: Other, desc: "Inactive Torrents"}
|
||||
# - {id: 78, cat: Other, desc: "Practice Area"}
|
||||
- {id: 89, cat: Other, desc: "Test"}
|
||||
# undocumented
|
||||
- {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
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must login at least once a month. Also, not downloading anything is considered being inactive (except if you're an uploader or VIP). Accounts that are inactive for 30 days are deleted unless you have told staff in advance."
|
||||
|
||||
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:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# XenForo
|
||||
@@ -33,30 +33,37 @@ caps:
|
||||
- {id: 185, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
- {id: 168, cat: TV/Other, desc: "TV/Other"}
|
||||
- {id: 169, cat: TV/Other, desc: "TV/Boxset"}
|
||||
- {id: 191, cat: TV, desc: "TV/BluTv"}
|
||||
- {id: 192, cat: TV, desc: "TV/BluTv Series"}
|
||||
- {id: 193, cat: Movies, desc: "Movies/BluTv Film"}
|
||||
- {id: 188, cat: TV, desc: "TV/Netflix"}
|
||||
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
|
||||
- {id: 195, cat: TV, desc: "TV/Exxen"}
|
||||
- {id: 199, cat: TV, desc: "TV/GAİN"}
|
||||
- {id: 201, cat: TV, desc: "TV/Tabii"}
|
||||
- {id: 171, cat: Audio, desc: "Music"}
|
||||
- {id: 172, cat: Audio, desc: "Music/Turkish"}
|
||||
- {id: 173, cat: Audio, desc: "Music/Foreign"}
|
||||
- {id: 184, cat: Audio, desc: "Music/Discography"}
|
||||
- {id: 174, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 191, cat: TV, desc: "TV/Max"}
|
||||
- {id: 192, cat: TV, desc: "TV/Max Series"}
|
||||
- {id: 193, cat: Movies, desc: "Movies/Max Film"}
|
||||
- {id: 188, cat: TV, desc: "TV/Netflix"}
|
||||
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
|
||||
- {id: 195, cat: TV, desc: "TV/Exxen"}
|
||||
- {id: 195, cat: Movies, desc: "TV/Exxen"}
|
||||
- {id: 201, cat: TV, desc: "TV/Tabii"}
|
||||
- {id: 201, cat: Movies, desc: "TV/Tabii"}
|
||||
- {id: 199, cat: TV, desc: "TV/GAİN"}
|
||||
- {id: 199, cat: Movies, desc: "TV/GAİN"}
|
||||
- {id: 200, cat: TV, desc: "Movies/Disney+"}
|
||||
- {id: 200, cat: Movies, desc: "Movies/Disney+"}
|
||||
- {id: 198, cat: TV, desc: "Movies/Amazon Prime"}
|
||||
- {id: 198, cat: Movies, desc: "Movies/Amazon Prime"}
|
||||
- {id: 202, cat: TV, desc: "TV/Apple TV+"}
|
||||
- {id: 202, cat: Movies, desc: "TV/Apple TV+"}
|
||||
- {id: 175, cat: PC, desc: "Apps / Game / Graphics"}
|
||||
- {id: 176, cat: PC, desc: "Apps"}
|
||||
- {id: 177, cat: Other, desc: "Pictures"}
|
||||
- {id: 183, cat: Books/EBook, desc: "EBook"}
|
||||
- {id: 178, cat: Books/Technical, desc: "Training Sets"}
|
||||
- {id: 181, cat: Console, desc: "Playstation"}
|
||||
- {id: 179, cat: PC, desc: "OS"}
|
||||
- {id: 180, cat: PC/Games, desc: "PC/Games"}
|
||||
- {id: 181, cat: Console, desc: "Playstation"}
|
||||
- {id: 198, cat: Movies, desc: "Movies/Amazon Prime"}
|
||||
- {id: 200, cat: Movies, desc: "Movies/Disney+"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
---
|
||||
id: torrentcontrol
|
||||
name: TorrentControl (API)
|
||||
description: "TorrentControl (API) is a Public Torrent Tracker for MOVIES / TV / ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://torrentcontrol.pw/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: movie, cat: Movies, desc: Movies, default: true}
|
||||
- {id: series, cat: TV, desc: Series, default: true}
|
||||
- {id: anime, cat: TV/Anime, desc: Anime, default: true}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
# docs: https://torrentcontrol.pw/en/api-docs
|
||||
paths:
|
||||
# since per_page is only 20 we needs to query all 3 cats separately to ensure we get hits for keywordless
|
||||
- path: "api/v1/torrents?type=movie&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [movie]
|
||||
|
||||
- path: "api/v1/torrents?type=series&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [series]
|
||||
|
||||
- path: "api/v1/torrents?type=anime&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [anime]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: type
|
||||
_id:
|
||||
selector: content_id
|
||||
details:
|
||||
text: "contents/{{ .Result._id }}"
|
||||
_language:
|
||||
selector: language
|
||||
case:
|
||||
fr: French
|
||||
es: Spanish
|
||||
it: Italian
|
||||
latino: Latino
|
||||
ru: Russian
|
||||
"*": ""
|
||||
title_default:
|
||||
selector: title
|
||||
title_file_name:
|
||||
selector: file_name
|
||||
optional: true
|
||||
title_magnet:
|
||||
selector: magnet_uri:contains(&dn=)
|
||||
optional: true
|
||||
filters:
|
||||
- name: htmldecode
|
||||
- name: querystring
|
||||
args: dn
|
||||
title:
|
||||
text: "{{ if or .Result.title_file_name .Result.title_magnet }}{{ or .Result.title_file_name .Result.title_magnet }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
||||
magnet:
|
||||
selector: magnet_uri
|
||||
filters:
|
||||
- name: htmldecode
|
||||
poster:
|
||||
selector: poster_url
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
seeders_zero:
|
||||
selector: seeders
|
||||
seeders:
|
||||
selector: seeders
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if eq .Result.seeders_zero \"0\" }}1{{ else }}{{ end }}"
|
||||
leechers_zero:
|
||||
selector: leechers
|
||||
leechers:
|
||||
selector: leechers
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if eq .Result.leechers_zero \"0\" }}1{{ else }}{{ end }}"
|
||||
date:
|
||||
# 2025-10-12T21:59:04.000000Z
|
||||
selector: created_at
|
||||
size_default:
|
||||
selector: type
|
||||
case:
|
||||
movie: 9GB
|
||||
series: 2GB
|
||||
size_in_mb:
|
||||
selector: size_in_mb
|
||||
optional: true
|
||||
size:
|
||||
text: "{{ if .Result.size_in_mb }}{{ .Result.size_in_mb }}MB{{ else }}{{ .Result.size_default }}{{ end }}"
|
||||
description:
|
||||
selector: provider
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "provider: "
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# json api v1
|
||||
@@ -7,13 +7,10 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq391.com/
|
||||
- https://torrentegg81.com/
|
||||
- https://torrentqq393.com/
|
||||
- https://torrentegg83.com/
|
||||
legacylinks:
|
||||
- https://torrentegg67.com/
|
||||
- https://torrentqq376.com/
|
||||
- https://torrentegg68.com/
|
||||
- https://torrentqq377.com/
|
||||
- https://torrentqq378.com/
|
||||
- https://torrentegg69.com/
|
||||
- https://torrentqq379.com/
|
||||
@@ -39,6 +36,10 @@ legacylinks:
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq390.com/
|
||||
- https://torrentegg80.com/
|
||||
- https://torrentqq391.com/
|
||||
- https://torrentegg81.com/
|
||||
- https://torrentqq392.com/
|
||||
- https://torrentegg82.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
---
|
||||
id: torrentsir
|
||||
name: TorrentSir
|
||||
description: "TorrentSir (토렌트썰) is a Public KOREAN tracker for Korean media."
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir176.com/
|
||||
legacylinks:
|
||||
- http://torrentsir165.com/
|
||||
- https://torrentsir165.com/
|
||||
- http://torrentsir166.com/
|
||||
- https://torrentsir166.com/
|
||||
- http://torrentsir167.com/
|
||||
- https://torrentsir167.com/
|
||||
- http://torrentsir168.com/
|
||||
- https://torrentsir168.com/
|
||||
- http://torrentsir169.com/
|
||||
- https://torrentsir169.com/
|
||||
- http://torrentsir170.com/
|
||||
- https://torrentsir170.com/
|
||||
- http://torrentsir171.com/
|
||||
- https://torrentsir171.com/
|
||||
- http://torrentsir172.com/
|
||||
- https://torrentsir172.com/
|
||||
- http://torrentsir173.com/
|
||||
- https://torrentsir173.com/
|
||||
- http://torrentsir174.com/
|
||||
- https://torrentsir174.com/
|
||||
- http://torrentsir175.com/
|
||||
- https://torrentsir175.com/
|
||||
- http://torrentsir176.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "gallery", cat: XXX, desc: "+19 (Adult)"}
|
||||
- {id: "ani", cat: TV, desc: "동영상 (Video)"}
|
||||
- {id: "game", cat: Console, desc: "기타 (Games)"}
|
||||
- {id: "tv", cat: TV, desc: "시사/교양 (TV)"}
|
||||
- {id: "netflix", cat: TV, desc: "넷플시리즈 (Netflix)"}
|
||||
- {id: "movie", cat: Movies, desc: "영화 (Movie)"}
|
||||
- {id: "drama", cat: TV, desc: "드라마 (Drama)"}
|
||||
- {id: "entertain", cat: TV, desc: "예능/오락 (Entertainment)"}
|
||||
- {id: "music", cat: Audio, desc: "음악 (Music)"}
|
||||
- {id: "notice", cat: Other, desc: "고객센터 (Notice)"}
|
||||
- {id: "child", cat: Other, desc: "고객센터 (Child)"}
|
||||
- {id: "lecture", cat: Books, desc: "도서/강좌 (Books)"}
|
||||
- {id: "util", cat: PC, desc: "유틸 (Software)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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: h3.panel-title
|
||||
filters:
|
||||
- name: trim
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://torrentsir171.com/bbs/search.php?srows=100&gr_id=&sfl=wr_subject&stx=2025&sop=and
|
||||
- path: bbs/search.php
|
||||
allowEmptyInputs: true
|
||||
inputs:
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: wr_subject
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
# 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
|
||||
@@ -9,10 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrentsome218.com/
|
||||
- https://torrentsome220.com/
|
||||
legacylinks:
|
||||
- https://torrentsome203.com/
|
||||
- https://torrentsome204.com/
|
||||
- https://torrentsome205.com/
|
||||
- https://torrentsome206.com/
|
||||
- https://torrentsome207.com/
|
||||
@@ -26,6 +24,8 @@ legacylinks:
|
||||
- https://torrentsome215.com/
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome217.com/
|
||||
- https://torrentsome218.com/
|
||||
- https://torrentsome219.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
---
|
||||
id: torrentssg
|
||||
name: torrentssg
|
||||
description: "torrentssg (토렌트쓱) is a Public KOREAN tracker for Korean media."
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://xn--sm2bw9uj0jb6a.com/
|
||||
links:
|
||||
- https://ssg1.torrentssg8.com/
|
||||
legacylinks:
|
||||
- https://torrentssg7.com/
|
||||
- https://torrentssg8.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "st01", cat: Movies, desc: "영화 (Movies)"}
|
||||
- {id: "st02", cat: Movies/Foreign, desc: "해외영화 (Foreign Movies)"}
|
||||
- {id: "st02_n", cat: Other, desc: "개봉예정작 (Upcoming Releases)"}
|
||||
- {id: "st03", cat: XXX, desc: "성인(19+)영화 (Adult Movies)"}
|
||||
- {id: "st04", cat: TV, desc: "드라마 (Drama)"}
|
||||
- {id: "st05", cat: TV/Foreign, desc: "해외드라마 (Foreign Drama)"}
|
||||
- {id: "st06", cat: TV, desc: "드라마완결 (Completed Drama)"}
|
||||
- {id: "st07", cat: TV, desc: "예능·방송 (Entertainment)"}
|
||||
- {id: "st09", cat: TV/Documentary, desc: "시사·다큐·교양 (Documentary)"}
|
||||
- {id: "st10", cat: TV/Sport, desc: "스포츠 (Sport)"}
|
||||
- {id: "st11", cat: TV, desc: "OTT·자막 (OTT-Subtitles)"}
|
||||
# - {id: "st12", cat: Other, desc: "자막 (Subtitles)"} # these are direct text files not torrents
|
||||
- {id: "st13", cat: TV/Anime, desc: "애니·만화 (Animation)"}
|
||||
- {id: "st14", cat: TV/Anime, desc: "애니완결 (Completed Animation)"}
|
||||
- {id: "st15", cat: TV, desc: "극장판 (Theatrical Version)"}
|
||||
- {id: "st16", cat: TV, desc: "키즈 (Kids)"}
|
||||
- {id: "st18", cat: Audio, desc: "음악 (Music)"}
|
||||
- {id: "st19", cat: Console, desc: "게임·유틸 (Games)"}
|
||||
- {id: "st20", cat: PC, desc: "유틸 (Software)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: ip_filtering
|
||||
type: info
|
||||
label: "IP Filtering"
|
||||
default: "torrentssg (토렌트쓱) blocks Non-South Korean IP addresses. A <b>FlareSolverr</b> error means your IP was not accepted."
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="/bbs/download.php?"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://ssg1.torrentssg8.com/bbs/search.php?bo_table=&sca=&sop=and&sfl=wr_subject%7C%7Cwr_content&stx=2025
|
||||
- path: bbs/search.php
|
||||
allowEmptyInputs: true
|
||||
inputs:
|
||||
bo_table: ""
|
||||
sca: ""
|
||||
# or, and
|
||||
sop: and
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: "wr_subject"
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
|
||||
rows:
|
||||
selector: div.search-media div.table-responsive table.table tbody tr:not(:has(a[href*="bo_table=st12"]))
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.list-img a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: bo_table
|
||||
title:
|
||||
selector: td.list-subject a
|
||||
details:
|
||||
selector: td.list-subject a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.list-subject a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: B
|
||||
date_ago:
|
||||
# time ago
|
||||
selector: td:last-child:contains("전")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["전", " ago"]
|
||||
- name: replace
|
||||
args: ["초", " seconds"]
|
||||
- name: replace
|
||||
args: ["분", " minutes"]
|
||||
- name: replace
|
||||
args: ["시간", " hours"]
|
||||
- name: replace
|
||||
args: ["일", " days"]
|
||||
- name: replace
|
||||
args: ["개월", " months"]
|
||||
- name: replace
|
||||
args: ["년", " years"]
|
||||
- name: timeago
|
||||
date_month:
|
||||
# 02.24
|
||||
selector: td:last-child:not(:contains("전"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MM.dd"
|
||||
date:
|
||||
text: "{{ if or .Result.date_ago .Result.date_month }}{{ or .Result.date_ago .Result.date_month }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -9,10 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrenttip199.top/
|
||||
- https://torrenttip201.top/
|
||||
legacylinks:
|
||||
- https://torrenttip184.top/
|
||||
- https://torrenttip185.top/
|
||||
- https://torrenttip186.top/
|
||||
- https://torrenttip187.top/
|
||||
- https://torrenttip188.top/
|
||||
@@ -26,6 +24,8 @@ legacylinks:
|
||||
- https://torrenttip196.top/
|
||||
- https://torrenttip197.top/
|
||||
- https://torrenttip198.top/
|
||||
- https://torrenttip199.top/
|
||||
- https://torrenttip200.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -171,4 +171,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
|
||||
@@ -37,6 +37,7 @@ caps:
|
||||
- {id: 26, cat: Movies, desc: " |- Фильмы до 2000 года"}
|
||||
# Сериалы, Видео и ТВ # Series, Videos and TV
|
||||
- {id: 97, cat: TV, desc: "Сериалы"}
|
||||
- {id: 333, cat: TV, desc: " |- Игра престолов / Game of Thrones"}
|
||||
- {id: 313, cat: TV, desc: " |- Секретные материалы \ The X-Files"}
|
||||
- {id: 103, cat: TV, desc: " |- Зарубежные сериалы"}
|
||||
- {id: 102, cat: TV, desc: " |- Российские сериалы"}
|
||||
@@ -90,6 +91,7 @@ caps:
|
||||
- {id: 202, cat: Audio, desc: " |- Сборники Русского рока (mp3)"}
|
||||
- {id: 323, cat: Audio, desc: " |- Русский Rock, Metal (Lossless)"}
|
||||
- {id: 214, cat: Audio, desc: " |- Soft & Pop-Rock"}
|
||||
- {id: 334, cat: Audio, desc: " |- Progressive & Art-Rock"}
|
||||
- {id: 156, cat: Audio, desc: " |- Progressive, Art, Classic & Hard Rock"}
|
||||
- {id: 213, cat: Audio, desc: " |- Melodic & Folk Rock"}
|
||||
- {id: 212, cat: Audio, desc: " |- Instrumental & Guitar Rock"}
|
||||
@@ -149,11 +151,13 @@ caps:
|
||||
- {id: 173, cat: Books, desc: " |- Художественная литература"}
|
||||
- {id: 314, cat: Books, desc: " |- Учебно-техническая литература"}
|
||||
- {id: 167, cat: Books, desc: "Аудиокниги"}
|
||||
- {id: 232, cat: Audio/Audiobook, desc: " |- Детективы, приключения, триллеры (Audiobook)"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: " |- Романы, повести, рассказы (Audiobook)"}
|
||||
- {id: 233, cat: Audio/Audiobook, desc: " |- Любовные романы (Audiobook)"}
|
||||
- {id: 176, cat: Audio/Audiobook, desc: " |- Мистика, фантастика, ужасы (Audiobook)"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: " |- Любовно-фантастический роман (Audiobook)"}
|
||||
- {id: 335, cat: Audio/Audiobook, desc: " |- ♫ Русская литература ХХ-ХХI века"}
|
||||
- {id: 232, cat: Audio/Audiobook, desc: " |- ♫ Детективы, приключения, триллеры"}
|
||||
- {id: 337, cat: Audio/Audiobook, desc: " |- ♫ Детективы Дарьи Донцовой"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: " |- ♫ Зарубежные авторы. Романы, повести, рассказы"}
|
||||
- {id: 233, cat: Audio/Audiobook, desc: " |- ♫ Любовные романы"}
|
||||
- {id: 176, cat: Audio/Audiobook, desc: " |- ♫ Мистика, фантастика, ужасы"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: " |- ♫ Любовно-фантастический роман"}
|
||||
- {id: 174, cat: Audio, desc: " |- Аудиокниги на других языках (Audio)"}
|
||||
- {id: 319, cat: Books, desc: " |- Аудиокниги для детей"}
|
||||
# Игры # Games
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.zetorrents2.com/
|
||||
- https://www.zetorrents.town/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -22,7 +22,6 @@ legacylinks:
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.zetorrents.bz/
|
||||
- https://www.zetorrents.nl/
|
||||
- https://www.zetorrents.biz/
|
||||
- https://www.zetorrents.ch/
|
||||
@@ -39,6 +38,7 @@ legacylinks:
|
||||
- https://www-zetorrents.com/
|
||||
- https://www.zetorrents1.com/
|
||||
- https://www.zetorrents.diy/
|
||||
- https://www.zetorrents2.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -80,7 +80,7 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}home{{ end }}"
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
# if searching for season packs swith S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
|
||||
@@ -100,7 +100,7 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}home{{ end }}"
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
# if searching for season packs swith S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
{ "total", "146" }, // Assuming the total number of pages
|
||||
{ "cat", MapTorznabCapsToTrackers(query).FirstIfSingleOrDefault("0") },
|
||||
{ "page", page.ToString() },
|
||||
{ "searchin", "filename" },
|
||||
{ "searchin", "filedisc" },
|
||||
{ "search", searchString }
|
||||
};
|
||||
|
||||
|
||||
@@ -29,20 +29,16 @@ 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.live/";
|
||||
public override string SiteLink { get; protected set; } = "https://todotorrents.org/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.live/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
"https://verdetorrent.com/",
|
||||
"https://naranjatorrent.com/"
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.report/",
|
||||
"https://dontorrent.homes/",
|
||||
"https://dontorrent.haus/",
|
||||
"https://dontorrent.news/",
|
||||
"https://dontorrent.institute/",
|
||||
@@ -56,6 +52,10 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.onl/",
|
||||
"https://dontorrent.kids/",
|
||||
"https://dontorrent.kiwi/",
|
||||
"https://dontorrent.live/",
|
||||
"https://dontorrent.phd/",
|
||||
"https://seriesblanco.one/",
|
||||
"https://dontorrent.gripe/", // no longer compatible, switched to JS download
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -86,35 +86,37 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
TvSearchImdbAvailable = true
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD");
|
||||
caps.Categories.AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(29, TorznabCatType.Books, "Books");
|
||||
caps.Categories.AddCategoryMapping(30, TorznabCatType.Other, "Courses");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.TV, "Desene");
|
||||
caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Diverse");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.Books, "Docs");
|
||||
caps.Categories.AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K");
|
||||
caps.Categories.AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Filme DVD");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.MoviesForeign, "Filme DVD-RO");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.MoviesHD, "Filme HD");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.PC, "Programe");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.TV, "Desene");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.Books, "Docs");
|
||||
caps.Categories.AddCategoryMapping(17, TorznabCatType.PC, "Linux");
|
||||
caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Diverse");
|
||||
caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesForeign, "Filme HD-RO");
|
||||
caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD");
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC");
|
||||
caps.Categories.AddCategoryMapping(31, TorznabCatType.TVForeign, "K-Drama");
|
||||
caps.Categories.AddCategoryMapping(17, TorznabCatType.PC, "Linux");
|
||||
caps.Categories.AddCategoryMapping(22, TorznabCatType.PCMobileOther, "Mobile");
|
||||
caps.Categories.AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD");
|
||||
caps.Categories.AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime");
|
||||
caps.Categories.AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D");
|
||||
caps.Categories.AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.PC, "Programe");
|
||||
caps.Categories.AddCategoryMapping(28, TorznabCatType.MoviesForeign, "RO Dubbed");
|
||||
caps.Categories.AddCategoryMapping(28, TorznabCatType.TVForeign, "RO Dubbed");
|
||||
caps.Categories.AddCategoryMapping(31, TorznabCatType.TVForeign, "K-Drama");
|
||||
caps.Categories.AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K");
|
||||
caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD");
|
||||
caps.Categories.AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
209
src/Jackett.Common/Indexers/Definitions/HDRTorrent.cs
Normal file
209
src/Jackett.Common/Indexers/Definitions/HDRTorrent.cs
Normal file
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Extensions;
|
||||
using Jackett.Common.Indexers.Definitions.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using NLog;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
public class HDRTorrent : PublicBrazilianIndexerBase
|
||||
{
|
||||
public override string Id => "hdrtorrent";
|
||||
|
||||
public override string Name => "HDRTorrent";
|
||||
|
||||
public override string SiteLink { get; protected set; } = "https://hdrtorrent.com/";
|
||||
|
||||
public HDRTorrent(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService, wc, l, ps, cs)
|
||||
{
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser() => new HDRTorrentParser(webclient);
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator() => new SimpleRequestGenerator(SiteLink, searchQueryParamsKey: "index.php?s=");
|
||||
}
|
||||
|
||||
public class HDRTorrentParser : PublicBrazilianParser
|
||||
{
|
||||
private readonly WebClient _webclient;
|
||||
protected string Tracker;
|
||||
|
||||
public HDRTorrentParser(WebClient webclient)
|
||||
{
|
||||
_webclient = webclient;
|
||||
Tracker = "HDRTorrent";
|
||||
}
|
||||
|
||||
private Dictionary<string, string> ExtractFileInfo(IDocument detailsDom)
|
||||
{
|
||||
var fileInfo = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
var infoSection = detailsDom.QuerySelector("div.infos p");
|
||||
if (infoSection == null)
|
||||
return fileInfo;
|
||||
|
||||
var lines = infoSection.InnerHtml.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach (var line in lines)
|
||||
{
|
||||
if (line.Contains("<b>") && line.Contains(":"))
|
||||
{
|
||||
var parts = line.Split(new[] { ':' }, 2);
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
var key = parts[0].Replace("<b>", "").Replace("</b>", "").Trim();
|
||||
var value = parts[1]
|
||||
.Replace("<b>", "")
|
||||
.Replace("</b>", "")
|
||||
.Replace("<strong>", "")
|
||||
.Replace("</strong>", "")
|
||||
.Trim();
|
||||
|
||||
if (value.Contains("<"))
|
||||
{
|
||||
var tempDoc = new HtmlParser().ParseDocument(value);
|
||||
value = tempDoc.Body.TextContent.Trim();
|
||||
}
|
||||
|
||||
value = value switch
|
||||
{
|
||||
var v when v.Contains("Dual Áudio") => v.Replace("Dual Áudio", "Dual"),
|
||||
var v when v.Contains("Dual Audio") => v.Replace("Dual Audio", "Dual"),
|
||||
var v when v.Contains("Full HD") => v.Replace("Full HD", "1080p"),
|
||||
var v when v.Contains("4K") => v.Replace("4K", "2160p"),
|
||||
var v when v.Contains("SD") => v.Replace("SD", "480p"),
|
||||
var v when v.Contains("WEB") => v.Replace("WEB", "WEB-DL"),
|
||||
_ => value
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
|
||||
{
|
||||
fileInfo[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fileInfo;
|
||||
}
|
||||
|
||||
public override IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(indexerResponse.Content);
|
||||
var rows = dom.QuerySelectorAll("div.capa-img");
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var h2Anchor = row.QuerySelector("h2 a");
|
||||
if (h2Anchor == null)
|
||||
continue;
|
||||
|
||||
var title = h2Anchor.TextContent.Trim();
|
||||
var detailUrlStr = h2Anchor.GetAttribute("href")?.Trim();
|
||||
if (string.IsNullOrEmpty(detailUrlStr))
|
||||
continue;
|
||||
|
||||
var detailUrl = new Uri(detailUrlStr);
|
||||
|
||||
var releaseCommonInfo = new ReleaseInfo
|
||||
{
|
||||
Title = CleanTitle(title),
|
||||
Details = detailUrl,
|
||||
Guid = detailUrl,
|
||||
Seeders = 1
|
||||
};
|
||||
|
||||
var detailsPage = _webclient.GetResultAsync(new WebRequest(detailUrl.ToString())).Result;
|
||||
var detailsDom = parser.ParseDocument(detailsPage.ContentString);
|
||||
|
||||
var fileInfoDict = ExtractFileInfo(detailsDom);
|
||||
var fileInfo = PublicBrazilianIndexerBase.FileInfo.FromDictionary(fileInfoDict);
|
||||
|
||||
var publishedMeta = detailsDom.QuerySelector("meta[property='article:published_time']")?.GetAttribute("content");
|
||||
if (!string.IsNullOrEmpty(publishedMeta) && DateTime.TryParse(publishedMeta, out var parsedDate))
|
||||
{
|
||||
releaseCommonInfo.PublishDate = parsedDate;
|
||||
}
|
||||
else
|
||||
{
|
||||
releaseCommonInfo.PublishDate = DateTime.Today;
|
||||
}
|
||||
|
||||
var magnetLinks = detailsDom.QuerySelectorAll("a[href^='magnet:?']");
|
||||
foreach (var magnetLink in magnetLinks)
|
||||
{
|
||||
var magnet = magnetLink.GetAttribute("href");
|
||||
if (string.IsNullOrEmpty(magnet))
|
||||
continue;
|
||||
|
||||
var release = releaseCommonInfo.Clone() as ReleaseInfo;
|
||||
release.Guid = release.MagnetUri = new Uri(magnet);
|
||||
|
||||
var parentText = magnetLink.ParentElement?.TextContent?.Trim();
|
||||
if (!string.IsNullOrEmpty(parentText))
|
||||
{
|
||||
parentText = Regex.Replace(parentText, "DOWNLOAD TORRENT", "", RegexOptions.IgnoreCase)
|
||||
.Replace("DUAL ÁUDIO", "Dual")
|
||||
.Replace("DUAL AUDIO", "Dual")
|
||||
.Replace("ÁUDIO", "Audio")
|
||||
.Replace("AUDIO", "Audio")
|
||||
.Replace("DUBLADO", "Dubbed")
|
||||
.Replace("LEGENDADO", "Subbed")
|
||||
.Replace("MKV", "")
|
||||
.Replace("MP4", "")
|
||||
.Replace("MAGNET", "")
|
||||
.Replace("TORRENT", "")
|
||||
.Replace("LINK", "")
|
||||
.Trim();
|
||||
|
||||
if (!string.IsNullOrEmpty(parentText))
|
||||
{
|
||||
release.Title = $"{release.Title} {parentText}".Trim();
|
||||
}
|
||||
}
|
||||
|
||||
var resolution = fileInfo.Quality ?? fileInfo.VideoQuality ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(resolution))
|
||||
release.Title = $"{release.Title} {resolution}".Trim();
|
||||
|
||||
release.Category = magnetLink.ExtractCategory(release.Title);
|
||||
var size = RowParsingExtensions.GetBytes(fileInfo.Size ?? string.Empty);
|
||||
release.Size = size > 0 ? size : ExtractSizeByResolution(release.Title);
|
||||
|
||||
release.DownloadVolumeFactor = 0;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
release.Languages = fileInfo.Audio?.ToList() ?? release.Languages;
|
||||
release.Genres = fileInfo.Genres?.ToList() ?? release.Genres;
|
||||
release.Subs = string.IsNullOrEmpty(fileInfo.Subtitle) ? release.Subs : new[] { fileInfo.Subtitle };
|
||||
|
||||
if (release.Title.IsNotNullOrWhiteSpace())
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
protected override INode GetTitleElementOrNull(IElement downloadButton)
|
||||
{
|
||||
var description = downloadButton.PreviousSibling;
|
||||
while (description != null && description.NodeType != NodeType.Text)
|
||||
{
|
||||
description = description.PreviousSibling;
|
||||
}
|
||||
|
||||
return description;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -696,8 +696,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
var meta = document.QuerySelector("meta");
|
||||
var metaContent = meta.GetAttribute("content");
|
||||
|
||||
// Follow redirection defined by async url.replace
|
||||
var redirectionUrl = metaContent.Substring(metaContent.IndexOf("http"));
|
||||
// Follow redirection defined by async url.replace and prepend sitelink
|
||||
var redirectionUrl = SiteLink + metaContent.Substring(metaContent.IndexOf("url=") + 5);
|
||||
return await FollowTrackerRedirection(redirectionUrl, details);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using Autofac;
|
||||
using Autofac.Extensions.DependencyInjection;
|
||||
@@ -22,6 +23,7 @@ using Microsoft.AspNetCore.Rewrite;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using IPNetwork = Microsoft.AspNetCore.HttpOverrides.IPNetwork;
|
||||
#if !NET471
|
||||
using Microsoft.Extensions.Hosting;
|
||||
#endif
|
||||
@@ -62,8 +64,11 @@ namespace Jackett.Server
|
||||
// See https://github.com/Jackett/Jackett/issues/3517
|
||||
options.ForwardLimit = 10;
|
||||
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost;
|
||||
options.KnownNetworks.Clear();
|
||||
options.KnownProxies.Clear();
|
||||
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("10.0.0.0"), 8));
|
||||
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("172.16.0.0"), 12));
|
||||
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("192.168.0.0"), 16));
|
||||
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("fc00::"), 7));
|
||||
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("fe80::"), 10));
|
||||
});
|
||||
|
||||
#if NET471
|
||||
|
||||
@@ -508,6 +508,7 @@ namespace Jackett.Updater
|
||||
"Definitions/idopeclone.yml",
|
||||
"Definitions/ihdbits.yml",
|
||||
"Definitions/ilcorsaroverde.yml",
|
||||
"Definitions/ilolicon.yml",
|
||||
"Definitions/iloveclassics.yml",
|
||||
"Definitions/infinityt.yml",
|
||||
"Definitions/inperil.yml",
|
||||
@@ -735,6 +736,7 @@ namespace Jackett.Updater
|
||||
"Definitions/theleachzone.yml", // switch to *-API #11185
|
||||
"Definitions/the-madhouse.yml",
|
||||
"Definitions/themoviecave.yml",
|
||||
"Definitions/thepiratedship.yml",
|
||||
"Definitions/therebels-api.yml",
|
||||
"Definitions/theresurrection.yml",
|
||||
"Definitions/thesceneplace.yml",
|
||||
@@ -760,6 +762,7 @@ namespace Jackett.Updater
|
||||
"Definitions/torrent-paradise-ml.yml",
|
||||
"Definitions/torrent4you.yml",
|
||||
"Definitions/torrentbomb.yml",
|
||||
"Definitions/torrentcontrol.yml",
|
||||
"Definitions/torrentcouch.yml",
|
||||
"Definitions/torrentdb.yml",
|
||||
"Definitions/torrentfactory.yml",
|
||||
@@ -779,7 +782,9 @@ namespace Jackett.Updater
|
||||
"Definitions/torrentseed.yml", // renamed to latinop2p #9065
|
||||
"Definitions/torrentseeds.yml",
|
||||
"Definitions/torrentseeds-api.yml",
|
||||
"Definitions/torrentsir.yml",
|
||||
"Definitions/torrentsmd.yml",
|
||||
"Definitions/torrentssg.yml",
|
||||
"Definitions/torrent-town.yml",
|
||||
"Definitions/torrentslocal.yml",
|
||||
"Definitions/torrentsurf.yml", // renamed xtremebytes #9951
|
||||
@@ -813,6 +818,7 @@ namespace Jackett.Updater
|
||||
"Definitions/twisted-music.yml",
|
||||
"Definitions/u-torrents.yml",
|
||||
"Definitions/uhd-heaven.yml",
|
||||
"Definitions/uhdtorrent.yml",
|
||||
"Definitions/ultimategamerclub.yml",
|
||||
"Definitions/ultra-hd.yml",
|
||||
"Definitions/ultrahdclub.yml",
|
||||
|
||||
Reference in New Issue
Block a user