Compare commits
86 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c66e4be3b7 | ||
|
|
82931b31cf | ||
|
|
1bc41f396e | ||
|
|
6b4ff3a368 | ||
|
|
c93a27e24f | ||
|
|
340b9adb84 | ||
|
|
2241d64d9d | ||
|
|
f8f18b8aae | ||
|
|
ea217e89ac | ||
|
|
9ce111a870 | ||
|
|
b1291227fb | ||
|
|
bae9edfa87 | ||
|
|
f74cd603f6 | ||
|
|
4138905543 | ||
|
|
2751cd4307 | ||
|
|
64604fc450 | ||
|
|
4a1207794f | ||
|
|
7273f99a41 | ||
|
|
91905668a3 | ||
|
|
1f69346516 | ||
|
|
af01a9ef3f | ||
|
|
21946b0b2f | ||
|
|
0f565d3c24 | ||
|
|
17dcb8714d | ||
|
|
115610571e | ||
|
|
854192b489 | ||
|
|
c4d85af057 | ||
|
|
efc3183e12 | ||
|
|
0f47bfb95c | ||
|
|
14e62f1b33 | ||
|
|
bb0bee92f9 | ||
|
|
43d2f52950 | ||
|
|
b0bf635db9 | ||
|
|
cdc2599209 | ||
|
|
c9cfbb6223 | ||
|
|
ccba23696d | ||
|
|
8576ff1c3a | ||
|
|
752bdc5f31 | ||
|
|
101df128b1 | ||
|
|
22bc6f8b80 | ||
|
|
29ff3d3c96 | ||
|
|
8eb2080102 | ||
|
|
2a4a5f86c5 | ||
|
|
fd88de5785 | ||
|
|
17b9fb114a | ||
|
|
97cd23e30f | ||
|
|
0e301b485a | ||
|
|
b25a7b4dc3 | ||
|
|
40bdb750bd | ||
|
|
644dca79b7 | ||
|
|
3bda20c448 | ||
|
|
a60fe8c56d | ||
|
|
8456803fec | ||
|
|
26eedad010 | ||
|
|
819ec9090a | ||
|
|
f6973274a8 | ||
|
|
a1d4a63e2f | ||
|
|
1ef2211919 | ||
|
|
986b881f78 | ||
|
|
9f50042c0a | ||
|
|
ecbdac690b | ||
|
|
94ba5a724b | ||
|
|
9b45427687 | ||
|
|
7d5c48d873 | ||
|
|
e8e74e3e28 | ||
|
|
3550c6bf21 | ||
|
|
42b159a801 | ||
|
|
372ff66510 | ||
|
|
0bc25d77c9 | ||
|
|
6aa8df9135 | ||
|
|
c396def330 | ||
|
|
e2b575cadb | ||
|
|
1c67900f92 | ||
|
|
d80c40b74f | ||
|
|
698549ea6b | ||
|
|
b06e92d10a | ||
|
|
a631866391 | ||
|
|
a46017f841 | ||
|
|
cd040177b4 | ||
|
|
9f9a2a0ea4 | ||
|
|
c49eda66c6 | ||
|
|
bd966412c0 | ||
|
|
279090e18c | ||
|
|
dc4d36af5f | ||
|
|
7229dd2416 | ||
|
|
a6fa82ccb9 |
BIN
.github/cookies-chrome.png
vendored
|
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 1.1 MiB |
BIN
.github/cookies-firefox.png
vendored
|
Before Width: | Height: | Size: 439 KiB After Width: | Height: | Size: 1.2 MiB |
BIN
.github/firefox-socks-proxy-settings.png
vendored
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 131 KiB |
BIN
.github/jackett-screenshot1.png
vendored
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 180 KiB |
BIN
.github/jackett-screenshot2.png
vendored
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 66 KiB |
BIN
.github/jackett-screenshot3.png
vendored
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 134 KiB |
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.mom" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.mom" >> $GITHUB_ENV
|
||||
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
|
||||
|
||||
- name: Update rudub definition
|
||||
uses: mikefarah/yq@master
|
||||
|
||||
2
.github/workflows/issuebot.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
|
||||
# This step sets up Node.js. The script that this workflow will run uses Node.js.
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v5
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
|
||||
10
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)
|
||||
@@ -473,7 +474,6 @@ 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]](#)
|
||||
@@ -524,11 +524,11 @@ 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]](#)
|
||||
@@ -591,7 +591,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Trellas (Magico) [![(invite needed)][inviteneeded]](#)
|
||||
* TreZzoR
|
||||
* TurkSeed (Aturk)
|
||||
* TurkTorrent (TT)
|
||||
* TurkTorrent (TT) [PAY2DL]
|
||||
* TV Chaos UK (TVCUK)
|
||||
* TVstore
|
||||
* U2 (U2分享園@動漫花園) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -800,7 +800,7 @@ macOS 13.0+ (Ventura) or greater
|
||||
3. If the installation was a success, you can close the Terminal window.
|
||||
|
||||
The service will start on each logon. You can always stop it by running `launchctl unload ~/Library/LaunchAgents/org.user.Jackett.plist` from Terminal. You can start it again it using `launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist`.
|
||||
Logs are stored as usual under `~/.config/Jackett/log.txt`.
|
||||
Logs are stored as usual under `~/.config/Jackett/log.txt` or `/Users/your-user-name/Library/Application Support/Jackett/log.txt`.
|
||||
|
||||
### Run without installing as a service
|
||||
Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Binaries.macOSARM64.tar.gz` release from the [releases](https://github.com/Jackett/Jackett/releases/latest) page and run Jackett with the command `./jackett`.
|
||||
|
||||
@@ -169,4 +169,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP 3ChangTrai v2.0 2025-02-18
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -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,54 +32,52 @@ 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: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion and 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: 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"}
|
||||
@@ -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="]
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GEN
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- c25aba843f815e92d0da0bbe3191326d16a81a32 # expired 15th Oct 2025
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
|
||||
@@ -23,6 +23,7 @@ caps:
|
||||
Anime/Dub/Dual Audio: TV/Anime
|
||||
Anime/Raw: TV/Anime
|
||||
Anime/Subbed: TV/Anime
|
||||
AudioBook: Audio/Audiobook
|
||||
Books: Books
|
||||
Books/Academic: Books/EBook
|
||||
Books/Comics: Books/Comics
|
||||
|
||||
@@ -91,7 +91,7 @@ search:
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: concertos
|
||||
name: Concertos
|
||||
name: Concertos (API)
|
||||
description: "Concertos is a Private Torrent Tracker for Live Concerts with Strict Quality Control"
|
||||
language: en-US
|
||||
type: private
|
||||
@@ -17,24 +17,29 @@ caps:
|
||||
- {id: 7, cat: TV, desc: "Opera"}
|
||||
- {id: 8, cat: TV, desc: "Musical"}
|
||||
- {id: 9, cat: Audio, desc: "Podcast"}
|
||||
- {id: 10, cat: TV, desc: "Educational"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: apikey
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
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://concertos.live/\" target=\"_blank\">Concertos</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
|
||||
@@ -43,6 +48,7 @@ settings:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
@@ -50,120 +56,141 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Your membership requires that you stay active at Blutopia. To not get disabled, you are required to login to the site at least once every 30 days or be actively seeding at least 1 torrent."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: form[action$="/login"] .text-red
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents
|
||||
# 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:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
title: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
freeleech: "{{ if .Config.freeleech }}on{{ else }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
# 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: table > tbody > tr
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?category_"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "category_(\\d+)"
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
selector: a[href*="/torrent/"]
|
||||
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: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
selector: details_link
|
||||
download:
|
||||
selector: a[href*="/torrent/"]
|
||||
attribute: href
|
||||
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: "/download"
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.torrents__size
|
||||
date:
|
||||
selector: td.torrents__age
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
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:
|
||||
i.fa-star: 0 # Freeleech
|
||||
i.fa-certificate: 0 # Featured
|
||||
"*": 1
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i.fa-certificate: 2 # Featured
|
||||
i.fa-gem: 2 # Double Upload
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
@@ -6,12 +6,13 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://isohunt.ch/
|
||||
- https://isohunt.sh/
|
||||
legacylinks:
|
||||
- https://isohunt2.net/ # redirects to torrentproject.cc
|
||||
- https://isohunt.fun/ # redirects to torrentproject.cc
|
||||
- https://isohunt.tv/ # redirects to torrentproject.cc
|
||||
- https://isohunt.nz/
|
||||
- https://isohunt.ch/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -34,7 +34,10 @@ caps:
|
||||
- {id: Android, cat: PC/Mobile-Android, desc: "Apps Android"}
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: AnimeAudioLossless, cat: Audio/Lossless, desc: "Anime Audio Lossless"}
|
||||
- {id: "AnimeAudio[Lossless]", cat: Audio/Lossless, desc: "Anime Audio Lossless"}
|
||||
- {id: AnimeEnglish-translated, cat: TV/Anime, desc: "Anime English-translated"}
|
||||
- {id: "AnimeLiveAction[English-translated]", cat: TV/Anime, desc: "Anime Live Action English-translated"}
|
||||
- {id: "AnimeLiveAction[Non-English]", cat: TV/Anime, desc: "Anime Live Action Non-English"}
|
||||
- {id: "AnimeLiveAction[Raw]", cat: TV/Anime, desc: "Anime Live Action Raw"}
|
||||
- {id: AnimeRaw, cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: AnimeSubs, cat: TV/Anime, desc: Anime Subs}
|
||||
@@ -49,6 +52,8 @@ caps:
|
||||
- {id: BooksAudiobooks, cat: Audio/Audiobook, desc: "Audio books"}
|
||||
- {id: BooksComics, cat: Books/Comics, desc: Comics}
|
||||
- {id: BooksEbooks, cat: Books/EBook, desc: Ebooks}
|
||||
- {id: "BooksManga[English-translated]", cat: Books/Comics, desc: "Books Manga English-translated"}
|
||||
- {id: "BooksManga[Raw]", cat: Books/Comics, desc: "Books Manga Raw"}
|
||||
- {id: Comics, cat: Books/Comics, desc: Comics}
|
||||
- {id: DVD, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: Documentary, cat: Movies/Other, desc: "Movies Documentary"}
|
||||
|
||||
@@ -16,26 +16,27 @@ caps:
|
||||
- {id: 80, cat: Audio, desc: "DMC: DMC"}
|
||||
- {id: 49, cat: Audio/MP3, desc: "KZN MP3 Weekly: Ex-Vip"}
|
||||
- {id: 76, cat: Audio, desc: "KZN-Exclusive: Exclusive "}
|
||||
- {id: 77, cat: Audio, desc: "KZN Ex VIP: Ex VIP"}
|
||||
- {id: 98, cat: Audio/MP3, desc: "Other Mp3 Weely: Mp3"}
|
||||
- {id: 99, cat: Audio/MP3, desc: "KZ Internal : KZ Internal"}
|
||||
- {id: 77, cat: Audio, desc: "KZN: Out Of VIP"}
|
||||
- {id: 98, cat: Audio/MP3, desc: "Other Mp3 Weeky: Mp3"}
|
||||
- {id: 99, cat: Audio/MP3, desc: "KZ Internal: KZ Internal"}
|
||||
- {id: 74, cat: Audio, desc: "Discography: Collection"}
|
||||
- {id: 82, cat: Audio/Lossless, desc: "Flac: Flac - Flac Packs"}
|
||||
- {id: 82, cat: Audio/Lossless, desc: "Flac: Flac-Flac Packs"}
|
||||
- {id: 101, cat: Audio, desc: "Wav: Wav - Wav Packs"}
|
||||
- {id: 81, cat: Audio, desc: "Albums : Albums / Singles"}
|
||||
- {id: 78, cat: Audio, desc: "Dj-Only: Dj-Music"}
|
||||
- {id: 100, cat: Audio, desc: "Web Music: Flac - MP3"}
|
||||
- {id: 46, cat: Audio/Video, desc: "Music Videos: Music Videos"}
|
||||
- {id: 46, cat: Audio/Video, desc: "Music Video: Music Video"}
|
||||
- {id: 24, cat: Audio, desc: "Karaoke: All Karaoke"}
|
||||
- {id: 52, cat: Movies, desc: "Classic Movies: Pre90s"}
|
||||
- {id: 47, cat: Movies/BluRay, desc: "Movies: Bluray-HD"}
|
||||
- {id: 52, cat: Movies, desc: "Pre 90s Movies: Pre90s"}
|
||||
- {id: 28, cat: Movies, desc: "Movies: 2025"}
|
||||
- {id: 25, cat: Movies/WEB-DL, desc: "Movies: Web-DL"}
|
||||
- {id: 48, cat: Movies/SD, desc: "Movies: AVI-XVID-Dvdrip"}
|
||||
- {id: 41, cat: Movies/3D, desc: "Remux - 3D: Remux - 3D"}
|
||||
- {id: 23, cat: Movies/Other, desc: "Movies: Kid-Anime-Family"}
|
||||
- {id: 102, cat: Movies/HD, desc: "Movies MP4: Movie MP4"}
|
||||
- {id: 48, cat: Movies/SD, desc: "Movies: Xvid-Dvd-Webrip"}
|
||||
- {id: 23, cat: Movies/Other, desc: "Movie: Kids-Anime-Family"}
|
||||
- {id: 41, cat: Movies/3D, desc: "Remux-3D: Remux-3D"}
|
||||
- {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
|
||||
- {id: 9, cat: Movies/DVD, desc: "Movies: Dvdr-ISO"}
|
||||
- {id: 9, cat: Movies/DVD, desc: "Movies: Ntsc Dvdr-ISO"}
|
||||
- {id: 22, cat: Movies/Foreign, desc: "Movies: Foreign"}
|
||||
- {id: 27, cat: Movies/UHD, desc: "Movies: 4K"}
|
||||
- {id: 53, cat: Movies, desc: "Movie Packs: Movie Pks"}
|
||||
@@ -46,11 +47,11 @@ caps:
|
||||
- {id: 75, cat: TV/Documentary, desc: "TV: Documentary"}
|
||||
- {id: 26, cat: TV/Sport, desc: "TV: Sports"}
|
||||
- {id: 42, cat: Movies, desc: "TV Packs: Full Seasons"}
|
||||
- {id: 50, cat: TV/Anime, desc: "TV Packs: Kids - Packs"}
|
||||
- {id: 50, cat: TV/Anime, desc: "TV Packs: Kids- Anime-Packs"}
|
||||
- {id: 83, cat: Movies, desc: "TV Packs: Pre90s"}
|
||||
- {id: 84, cat: Audio/Audiobook, desc: "Audio Books: A-Books"}
|
||||
- {id: 85, cat: Books, desc: "Ebooks: Ebooks-Mags-Comics"}
|
||||
- {id: 87, cat: PC/0day, desc: "Apps: windows-Linux"}
|
||||
- {id: 85, cat: Books, desc: "Ebook: Ebook-Mag-Comic"}
|
||||
- {id: 87, cat: PC/0day, desc: "Apps: Window-Linux-Mac"}
|
||||
- {id: 88, cat: TV/Anime, desc: "Anime: All Anime"}
|
||||
- {id: 89, cat: PC/Games, desc: "Games: Pc - Iso"}
|
||||
- {id: 90, cat: PC/Games, desc: "Games: Misc"}
|
||||
@@ -58,7 +59,7 @@ caps:
|
||||
- {id: 92, cat: Other, desc: "Xmas Albums: Albums"}
|
||||
- {id: 93, cat: Movies/Other, desc: "Xmas Movies : Packs"}
|
||||
- {id: 94, cat: Audio/Other, desc: "Xmas Music Pack: Packs"}
|
||||
- {id: 95, cat: Other, desc: "To Be Edited: Edit"}
|
||||
- {id: 95, cat: Other, desc: "Misc: Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -9,21 +9,12 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.8800498.xyz/
|
||||
- https://www.8800497.xyz/
|
||||
- https://www.8800499.xyz/
|
||||
- https://www.8800500.xyz/
|
||||
- https://www.8800508.xyz/
|
||||
- https://www.8800509.xyz/
|
||||
- https://www.8800510.xyz/
|
||||
- https://www.8800511.xyz/
|
||||
legacylinks:
|
||||
- https://www.8800460.xyz/
|
||||
- https://www.8800473.xyz/
|
||||
- https://www.8800474.xyz/
|
||||
- https://www.8800476.xyz/
|
||||
- https://www.clm472.sbs/
|
||||
- https://www.8800475.xyz
|
||||
- https://www.8800477.xyz
|
||||
- https://www.8800478.xyz
|
||||
- https://www.8800479.xyz
|
||||
- https://www.8800484.xyz
|
||||
- https://www.8800485.xyz
|
||||
- https://www.8800481.xyz
|
||||
- https://www.8800483.xyz
|
||||
@@ -33,6 +24,15 @@ legacylinks:
|
||||
- https://www.8800493.xyz/
|
||||
- https://www.8800494.xyz/
|
||||
- https://www.8800490.xyz/
|
||||
- https://www.8800498.xyz/
|
||||
- https://www.8800497.xyz/
|
||||
- https://www.8800499.xyz/
|
||||
- https://www.8800500.xyz/
|
||||
- https://www.8800503.xyz/
|
||||
- https://www.8800504.xyz/
|
||||
- https://www.8800505.xyz/
|
||||
- https://www.8800506.xyz/
|
||||
- https://www.8800507.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "MegamixTracker is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
certificates:
|
||||
- 00282e65048fabb713980ba1d7015a7512eb5224 # Expired 18th OCt 2025
|
||||
links:
|
||||
- https://megamixtracker.hu/
|
||||
|
||||
|
||||
@@ -254,9 +254,9 @@ caps:
|
||||
- {id: 1295, cat: TV, desc: " |- Общественно-политические и пропагандистские ток-шоу"}
|
||||
- {id: 614, cat: TV, desc: " |- Религии и культы (Док/TV)"}
|
||||
- {id: 603, cat: TV, desc: "Спорт и активный отдых"}
|
||||
- {id: 1206, cat: TV, desc: " |- Футбол. Чемпионат Мира 2022"}
|
||||
- {id: 1309, cat: TV, desc: " |- Футбол. Чемпионат Европы 2020-2021"}
|
||||
- {id: 1308, cat: TV, desc: " |- Хоккей. Чемпионат мира 2021"}
|
||||
- {id: 1308, cat: TV, desc: " |- Хоккей. Чемпионат мира"}
|
||||
- {id: 1309, cat: TV, desc: " |- Футбол. Чемпионат Европы"}
|
||||
- {id: 1206, cat: TV, desc: " |- Футбол. Чемпионат Мира"}
|
||||
- {id: 1194, cat: TV, desc: " |- Летние Олимпийские игры и Паралимпийские игры"}
|
||||
- {id: 1062, cat: TV, desc: " |- Зимние Олимпийские игры и Паралимпийские игры"}
|
||||
- {id: 974, cat: TV, desc: " |- Футбол"}
|
||||
@@ -430,8 +430,10 @@ caps:
|
||||
- {id: 1255, cat: Audio/Lossless, desc: " |- Классика (сборники) (Lossless)"}
|
||||
- {id: 376, cat: Audio, desc: " |- Классика (сборники)"}
|
||||
- {id: 326, cat: Audio, desc: "Jazz, Blues, Soul"}
|
||||
- {id: 1352, cat: Audio, desc: " |- Jazz (Hi-Res)"}
|
||||
- {id: 359, cat: Audio/Lossless, desc: " |- Jazz (Lossless)"}
|
||||
- {id: 358, cat: Audio, desc: " |- Jazz"}
|
||||
- {id: 1353, cat: Audio, desc: " |- Blues, Soul (Hi-Res)"}
|
||||
- {id: 1188, cat: Audio/Lossless, desc: " |- Blues, Soul (Lossless)"}
|
||||
- {id: 1189, cat: Audio, desc: " |- Blues, Soul"}
|
||||
- {id: 328, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
|
||||
@@ -442,14 +444,18 @@ caps:
|
||||
- {id: 1179, cat: Audio/Lossless, desc: " |- Авторская и Военная песня (Lossless)"}
|
||||
- {id: 879, cat: Audio, desc: " |- Авторская и Военная песня"}
|
||||
- {id: 322, cat: Audio, desc: "Rock, Alternative, Punk, Metal"}
|
||||
- {id: 1350, cat: Audio, desc: " |- Rock (Hi-Res)"}
|
||||
- {id: 962, cat: Audio/Lossless, desc: " |- Rock (Lossless)"}
|
||||
- {id: 333, cat: Audio, desc: " |- Rock"}
|
||||
- {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: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
- {id: 963, cat: Audio/Lossless, desc: " |- Metal (Lossless)"}
|
||||
- {id: 334, cat: Audio, desc: " |- Metal"}
|
||||
- {id: 1357, cat: Audio, desc: " |- Русский Рок (Hi-Res)"}
|
||||
- {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
|
||||
- {id: 332, cat: Audio, desc: " |- Русский рок"}
|
||||
- {id: 325, cat: Audio, desc: "Pop"}
|
||||
@@ -512,6 +518,7 @@ caps:
|
||||
- {id: 1213, cat: Audio/Lossless, desc: " |- Other Asian (Lossless)"}
|
||||
- {id: 367, cat: Audio, desc: " |- Other Asian"}
|
||||
- {id: 331, cat: Audio, desc: "Other Styles"}
|
||||
- {id: 1358, cat: Audio, desc: " |- Instrumental (Hi-Res)"}
|
||||
- {id: 1157, cat: Audio/Lossless, desc: " |- Instrumental (Lossless)"}
|
||||
- {id: 711, cat: Audio, desc: " |- Instrumental"}
|
||||
- {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
|
||||
|
||||
@@ -252,9 +252,9 @@ caps:
|
||||
- {id: 1295, cat: TV, desc: " |- Общественно-политические и пропагандистские ток-шоу"}
|
||||
- {id: 614, cat: TV, desc: " |- Религии и культы (Док/TV)"}
|
||||
- {id: 603, cat: TV, desc: "Спорт и активный отдых"}
|
||||
- {id: 1206, cat: TV, desc: " |- Футбол. Чемпионат Мира 2022"}
|
||||
- {id: 1309, cat: TV, desc: " |- Футбол. Чемпионат Европы 2020-2021"}
|
||||
- {id: 1308, cat: TV, desc: " |- Хоккей. Чемпионат мира 2021"}
|
||||
- {id: 1308, cat: TV, desc: " |- Хоккей. Чемпионат мира"}
|
||||
- {id: 1309, cat: TV, desc: " |- Футбол. Чемпионат Европы"}
|
||||
- {id: 1206, cat: TV, desc: " |- Футбол. Чемпионат Мира"}
|
||||
- {id: 1194, cat: TV, desc: " |- Летние Олимпийские игры и Паралимпийские игры"}
|
||||
- {id: 1062, cat: TV, desc: " |- Зимние Олимпийские игры и Паралимпийские игры"}
|
||||
- {id: 974, cat: TV, desc: " |- Футбол"}
|
||||
@@ -428,8 +428,10 @@ caps:
|
||||
- {id: 1255, cat: Audio/Lossless, desc: " |- Классика (сборники) (Lossless)"}
|
||||
- {id: 376, cat: Audio, desc: " |- Классика (сборники)"}
|
||||
- {id: 326, cat: Audio, desc: "Jazz, Blues, Soul"}
|
||||
- {id: 1352, cat: Audio, desc: " |- Jazz (Hi-Res)"}
|
||||
- {id: 359, cat: Audio/Lossless, desc: " |- Jazz (Lossless)"}
|
||||
- {id: 358, cat: Audio, desc: " |- Jazz"}
|
||||
- {id: 1353, cat: Audio, desc: " |- Blues, Soul (Hi-Res)"}
|
||||
- {id: 1188, cat: Audio/Lossless, desc: " |- Blues, Soul (Lossless)"}
|
||||
- {id: 1189, cat: Audio, desc: " |- Blues, Soul"}
|
||||
- {id: 328, cat: Audio, desc: "Шансон, Авторская и Военная песня"}
|
||||
@@ -440,14 +442,18 @@ caps:
|
||||
- {id: 1179, cat: Audio/Lossless, desc: " |- Авторская и Военная песня (Lossless)"}
|
||||
- {id: 879, cat: Audio, desc: " |- Авторская и Военная песня"}
|
||||
- {id: 322, cat: Audio, desc: "Rock, Alternative, Punk, Metal"}
|
||||
- {id: 1350, cat: Audio, desc: " |- Rock (Hi-Res)"}
|
||||
- {id: 962, cat: Audio/Lossless, desc: " |- Rock (Lossless)"}
|
||||
- {id: 333, cat: Audio, desc: " |- Rock"}
|
||||
- {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: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
- {id: 963, cat: Audio/Lossless, desc: " |- Metal (Lossless)"}
|
||||
- {id: 334, cat: Audio, desc: " |- Metal"}
|
||||
- {id: 1357, cat: Audio, desc: " |- Русский Рок (Hi-Res)"}
|
||||
- {id: 961, cat: Audio/Lossless, desc: " |- Русский Рок (Lossless)"}
|
||||
- {id: 332, cat: Audio, desc: " |- Русский рок"}
|
||||
- {id: 325, cat: Audio, desc: "Pop"}
|
||||
@@ -510,6 +516,7 @@ caps:
|
||||
- {id: 1213, cat: Audio/Lossless, desc: " |- Other Asian (Lossless)"}
|
||||
- {id: 367, cat: Audio, desc: " |- Other Asian"}
|
||||
- {id: 331, cat: Audio, desc: "Other Styles"}
|
||||
- {id: 1358, cat: Audio, desc: " |- Instrumental (Hi-Res)"}
|
||||
- {id: 1157, cat: Audio/Lossless, desc: " |- Instrumental (Lossless)"}
|
||||
- {id: 711, cat: Audio, desc: " |- Instrumental"}
|
||||
- {id: 1159, cat: Audio/Lossless, desc: " |- New Age/Meditative/Relax (Lossless)"}
|
||||
|
||||
@@ -10,7 +10,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.nortorrent.net/
|
||||
- https://www.nortorrent.town/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -26,7 +26,6 @@ legacylinks:
|
||||
- https://torrent9.news/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.torrent9.ing/
|
||||
- https://www.torrent9.run/
|
||||
- https://www.torrent9.cv/
|
||||
- https://www.torrent9.ke/
|
||||
@@ -41,6 +40,7 @@ legacylinks:
|
||||
- https://www.nortorrent4.com/
|
||||
- https://www.nortorrent5.com/
|
||||
- https://www.nortorrent6.com/
|
||||
- https://www.nortorrent.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -175,4 +175,4 @@ search:
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" 剩余时间:", ""]
|
||||
# Ourbits 1.1.0 (Based on NexusPHP Standard v1.5 Beta 4) 9169dad 2023-11-20
|
||||
# Ourbits 1.1.0 (Based on NexusPHP Standard v1.5 Beta 4) b0d8f5d 2025-10-23
|
||||
|
||||
@@ -10,9 +10,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.oxtorrent10.com/
|
||||
- https://www.oxtorrent.town/
|
||||
- https://www.zone-torrent.town/
|
||||
- https://www.mega-torrent7.com/
|
||||
- https://www.mega-torrent.town/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -28,10 +28,8 @@ legacylinks:
|
||||
- https://oxtorrent.blog/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.oxtorrent1.com/
|
||||
- https://www.zone-torrent.com/
|
||||
- https://www.mega-torrent3.com/
|
||||
- https://www.oxtorrent2.com/
|
||||
- https://www.mega-torrent4.com/
|
||||
- https://www.oxtorrent3.com/
|
||||
- https://www.oxtorrent4.com/
|
||||
@@ -49,6 +47,8 @@ legacylinks:
|
||||
- https://www.mega-torrent.net/
|
||||
- https://www.oxtorrent.fyi/
|
||||
- https://www.zone-torrent4.com/
|
||||
- https://www.mega-torrent7.com/
|
||||
- https://www.oxtorrent10.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -12,44 +12,44 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Sport, desc: "BTCC"}
|
||||
- {id: 2, cat: TV/Sport, desc: "TV-Documentaries"}
|
||||
- {id: 3, cat: TV/Sport, desc: "DTM"}
|
||||
- {id: 22, cat: TV/Sport, desc: "Formula 2"}
|
||||
- {id: 23, cat: TV/Sport, desc: "Formula E"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Misc"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Other Bikes"}
|
||||
- {id: 26, cat: TV/Sport, desc: "MotoGP-2-3-E"}
|
||||
- {id: 31, cat: TV/Sport, desc: "Nascar"}
|
||||
- {id: 32, cat: TV/Sport, desc: "Stock Car Brazil"}
|
||||
- {id: 50, cat: TV/Sport, desc: "WRC"}
|
||||
- {id: 55, cat: TV/Sport, desc: "Season Reviews"}
|
||||
- {id: 56, cat: TV/Sport, desc: "WRX"}
|
||||
- {id: 57, cat: TV/Sport, desc: "WEC"}
|
||||
- {id: 58, cat: TV/Sport, desc: "W Series"}
|
||||
- {id: 60, cat: TV/Sport, desc: "Drag Racing"}
|
||||
- {id: 61, cat: TV/Sport, desc: "ERC"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Indycar Series"}
|
||||
- {id: 63, cat: TV/Sport, desc: "Supercars"}
|
||||
- {id: 66, cat: TV/Sport, desc: "Documentaries"}
|
||||
- {id: 67, cat: TV/Sport, desc: "Formula 1"}
|
||||
- {id: 68, cat: TV/Sport, desc: "Formula 3"}
|
||||
- {id: 69, cat: TV/Sport, desc: "Other Cars"}
|
||||
- {id: 70, cat: TV/Sport, desc: "Motorsport Movies"}
|
||||
- {id: 71, cat: TV/Sport, desc: "WSBK"}
|
||||
- {id: 72, cat: TV/Sport, desc: "AMA Pro Motocross"}
|
||||
- {id: 73, cat: TV/Sport, desc: "AMA Supercross"}
|
||||
- {id: 74, cat: TV/Sport, desc: "WTCR"}
|
||||
- {id: 76, cat: TV/Sport, desc: "ARCA"}
|
||||
- {id: 77, cat: TV/Sport, desc: "Blancpain GT"}
|
||||
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
|
||||
- {id: 79, cat: TV/Sport, desc: "TV Series"}
|
||||
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
|
||||
- {id: 1, cat: TV/Sport, desc: "BTCC"}
|
||||
- {id: 60, cat: TV/Sport, desc: "Drag Racing"}
|
||||
- {id: 3, cat: TV/Sport, desc: "DTM"}
|
||||
- {id: 61, cat: TV/Sport, desc: "ERC"}
|
||||
- {id: 81, cat: TV/Sport, desc: "Extreme E"}
|
||||
- {id: 67, cat: TV/Sport, desc: "Formula 1"}
|
||||
- {id: 22, cat: TV/Sport, desc: "Formula 2"}
|
||||
- {id: 68, cat: TV/Sport, desc: "Formula 3"}
|
||||
- {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: 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: 80, cat: TV/Sport, desc: "Touring Cars"}
|
||||
- {id: 57, cat: TV/Sport, desc: "WEC"}
|
||||
- {id: 50, cat: TV/Sport, desc: "WRC"}
|
||||
- {id: 56, cat: TV/Sport, desc: "WRX"}
|
||||
- {id: 71, cat: TV/Sport, desc: "WSBK"}
|
||||
- {id: 74, cat: TV/Sport, desc: "WTCR"}
|
||||
- {id: 58, cat: TV/Sport, desc: "W Series"}
|
||||
- {id: 55, cat: TV/Sport, desc: "Season Reviews"}
|
||||
- {id: 66, cat: TV/Sport, desc: "Documentaries"}
|
||||
- {id: 2, cat: TV/Sport, desc: "TV-Documentaries"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Misc"}
|
||||
- {id: 70, cat: TV/Sport, desc: "Motorsport Movies"}
|
||||
- {id: 79, cat: TV/Sport, desc: "TV Series"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -58,11 +58,15 @@ settings:
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://racing4everyone.eu/\" target=\"_blank\">Racing4Everyone</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://racing4everyone.eu/\" target=\"_blank\">Racing4Everyone</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
|
||||
@@ -110,10 +114,7 @@ search:
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -127,27 +128,33 @@ search:
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
title:
|
||||
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: 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
|
||||
files:
|
||||
selector: num_file
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
@@ -164,7 +171,12 @@ search:
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
@@ -174,12 +186,20 @@ search:
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# json UNIT3D 6.0.4
|
||||
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 2 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.7 (custom)
|
||||
|
||||
@@ -19,6 +19,7 @@ caps:
|
||||
- {id: 8, cat: Books, desc: "Book"}
|
||||
- {id: 9, cat: Audio/Other, desc: "Podcast"}
|
||||
- {id: 10, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 11, cat: Other, desc: "3D Printable"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
|
||||
@@ -9,9 +9,10 @@ language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://reelflix.xyz/
|
||||
- https://reelflix.cc/
|
||||
legacylinks:
|
||||
- https://legacyhd.org/
|
||||
- https://reelflix.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -19,10 +20,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -31,7 +29,7 @@ settings:
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://reelflix.xyz/\" target=\"_blank\">ReelFlix</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://reelflix.cc/\" target=\"_blank\">ReelFlix</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -89,7 +87,6 @@ search:
|
||||
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 }}"
|
||||
|
||||
@@ -990,6 +990,7 @@ search:
|
||||
selector: dd.posts span.leech
|
||||
grabs:
|
||||
selector: dd.views span.complet
|
||||
optional: true
|
||||
date:
|
||||
# 12 янв 2019, 11:26
|
||||
selector: dt
|
||||
|
||||
@@ -9,38 +9,38 @@ type: semi-private
|
||||
encoding: windows-1251
|
||||
followredirect: true
|
||||
links:
|
||||
- https://oct13.rudub.mom/
|
||||
- https://oct26.rudub.homes/
|
||||
legacylinks:
|
||||
- https://sep29.rudub.bet/
|
||||
- http://sep30.rudub.bet/
|
||||
- https://sep30.rudub.bet/
|
||||
- http://oct01.rudub.bet/
|
||||
- https://oct01.rudub.bet/
|
||||
- http://oct02.rudub.bet/
|
||||
- https://oct02.rudub.bet/
|
||||
- http://oct02.rudub.mom/
|
||||
- https://oct02.rudub.mom/
|
||||
- http://oct03.rudub.mom/
|
||||
- https://oct03.rudub.mom/
|
||||
- http://oct04.rudub.mom/
|
||||
- https://oct04.rudub.mom/
|
||||
- http://oct05.rudub.mom/
|
||||
- https://oct05.rudub.mom/
|
||||
- http://oct06.rudub.mom/
|
||||
- https://oct06.rudub.mom/
|
||||
- http://oct07.rudub.mom/
|
||||
- https://oct07.rudub.mom/
|
||||
- http://oct08.rudub.mom/
|
||||
- https://oct08.rudub.mom/
|
||||
- http://oct09.rudub.mom/
|
||||
- https://oct09.rudub.mom/
|
||||
- http://oct10.rudub.mom/
|
||||
- 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://oct25.rudub.homes/
|
||||
- http://oct26.rudub.homes/
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "TV"}
|
||||
|
||||
@@ -187,8 +187,9 @@ search:
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 hours (as seconds = 5 x 60 x 60)
|
||||
text: 18000
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
|
||||
@@ -1,195 +0,0 @@
|
||||
# SexTorrent uses the Luminance code, which is based on gazelle
|
||||
# ajax.php API additionally needs the auth=$authkey argument
|
||||
# Because the API is e.g. missing poster images we use screen scraping instead of the generic gazelle based approach
|
||||
---
|
||||
id: sextorrent
|
||||
name: SexTorrent
|
||||
description: "SexTorrent is a Private Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sextorrent.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 63, cat: XXX, desc: "Hairy"}
|
||||
- {id: 64, cat: XXX, desc: "Voyeur"}
|
||||
- {id: 30, cat: XXX, desc: "Amateur"}
|
||||
- {id: 29, cat: XXX, desc: "Anal"}
|
||||
- {id: 27, cat: XXX, desc: "Asian"}
|
||||
- {id: 26, cat: XXX, desc: "BBW"}
|
||||
- {id: 44, cat: XXX, desc: "BDSM"}
|
||||
- {id: 25, cat: XXX, desc: "Big Ass"}
|
||||
- {id: 24, cat: XXX, desc: "Big Tits"}
|
||||
- {id: 34, cat: XXX, desc: "Black"}
|
||||
- {id: 66, cat: XXX, desc: "Busty"}
|
||||
- {id: 23, cat: XXX, desc: "Classic"}
|
||||
- {id: 33, cat: XXX, desc: "Creampie"}
|
||||
- {id: 22, cat: XXX, desc: "Cumshot"}
|
||||
- {id: 62, cat: XXX/DVD, desc: "DVD-R"}
|
||||
- {id: 21, cat: XXX, desc: "Fetish"}
|
||||
- {id: 19, cat: XXX, desc: "Gay / Bi"}
|
||||
- {id: 18, cat: XXX, desc: "Hardcore"}
|
||||
- {id: 32, cat: XXX, desc: "HD porn"}
|
||||
- {id: 28, cat: XXX, desc: "Hentai / 3D"}
|
||||
- {id: 17, cat: XXX, desc: "Homemade"}
|
||||
- {id: 38, cat: XXX, desc: "Interracial"}
|
||||
- {id: 48, cat: XXX, desc: "Latina"}
|
||||
- {id: 16, cat: XXX, desc: "Lesbian"}
|
||||
- {id: 61, cat: XXX, desc: "Lingerie"}
|
||||
- {id: 56, cat: XXX/Other, desc: "Magazines"}
|
||||
- {id: 60, cat: XXX/Other, desc: "Manga / Comic"}
|
||||
- {id: 15, cat: XXX, desc: "Masturbation"}
|
||||
- {id: 14, cat: XXX, desc: "Mature"}
|
||||
- {id: 13, cat: XXX/Pack, desc: "Megapack"}
|
||||
- {id: 55, cat: XXX, desc: "Milf"}
|
||||
- {id: 49, cat: XXX, desc: "Natural Tits"}
|
||||
- {id: 12, cat: XXX, desc: "Oral"}
|
||||
- {id: 20, cat: XXX, desc: "Orgia / Gang Bang"}
|
||||
- {id: 42, cat: XXX/Other, desc: "Other"}
|
||||
- {id: 50, cat: XXX, desc: "Parody"}
|
||||
- {id: 41, cat: XXX/WEB-DL, desc: "Paysite"}
|
||||
- {id: 11, cat: XXX/ImageSet, desc: "Picture set"}
|
||||
- {id: 40, cat: XXX, desc: "Piss"}
|
||||
- {id: 43, cat: XXX/Other, desc: "Porn Music Videos"}
|
||||
- {id: 67, cat: XXX, desc: "POV"}
|
||||
- {id: 45, cat: XXX, desc: "Pregnant / Preggo"}
|
||||
- {id: 57, cat: XXX, desc: "Scat/Puke"}
|
||||
- {id: 10, cat: XXX, desc: "Shemale / TS"}
|
||||
- {id: 51, cat: XXX/WEB-DL, desc: "Siterip"}
|
||||
- {id: 52, cat: XXX, desc: "Softcore"}
|
||||
- {id: 53, cat: XXX, desc: "Squirt"}
|
||||
- {id: 9, cat: XXX, desc: "Straight"}
|
||||
- {id: 8, cat: XXX, desc: "Tini"}
|
||||
- {id: 65, cat: XXX, desc: "Virtual Reality"}
|
||||
- {id: 7, cat: XXX/Other, desc: "XXX Games / Program"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "After 4 months of no activity (no login) your account will be disabled."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
cinfo: "2550|1350|24|-60"
|
||||
keeplogged: 1
|
||||
selectorinputs:
|
||||
token:
|
||||
selector: input[name="token"]
|
||||
attribute: value
|
||||
error:
|
||||
# invalid credentials error is added by JS, this is the IP ban error
|
||||
- selector: div.thin > div > h2
|
||||
test:
|
||||
path: index.php
|
||||
selector: "#nav_userinfo"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
title: "{{ .Keywords }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
action: advanced
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="/torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description_tags:
|
||||
selector: div.tags
|
||||
description:
|
||||
case:
|
||||
span.icon[title*="okay"]: "Verified: {{ .Result.description_tags }}"
|
||||
"*": "Unverified: {{ .Result.description_tags }}"
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
category:
|
||||
selector: a[href*="filter_cat"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d+)]=1"
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td:nth-child(2) > script
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?)>"
|
||||
- name: re_replace
|
||||
args: ["[\\\\\"]", ""]
|
||||
- name: replace
|
||||
args: ["/static/common/noartwork/noimage.png", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5) > span
|
||||
attribute: title
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i.unlimited_leech: 0
|
||||
i.sitewide_leech: 0
|
||||
img[alt="Freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
span.icon[title*="DoubleSeed"]: 2
|
||||
img[alt="DoubleSeed"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
# luminance
|
||||
127
src/Jackett.Common/Definitions/shakaw.yml
Normal file
@@ -0,0 +1,127 @@
|
||||
---
|
||||
id: shakaw
|
||||
name: ShaKaw
|
||||
description: "ShaKaw is a BRAZILIAN Private Torrent Tracker for ANIME"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://tracker.shakaw.com.br/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 0, cat: TV/Anime, desc: "Selecione"}
|
||||
- {id: 1, cat: TV/Anime, desc: "Completo"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Série"}
|
||||
- {id: 3, cat: Movies, desc: "Filme"}
|
||||
- {id: 4, cat: TV/Anime, desc: "OVA"}
|
||||
- {id: 5, cat: Books, desc: "Manga"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Especial"}
|
||||
- {id: 7, cat: TV/Anime, desc: "Promo"}
|
||||
- {id: 8, cat: TV, desc: "Tokusatsu"}
|
||||
- {id: 9, cat: TV, desc: "Live Action"}
|
||||
- {id: 12, cat: TV, desc: "Dorama"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
|
||||
login:
|
||||
method: form
|
||||
path: entrar.php
|
||||
submitpath: pagina_inicial.php?acao=login
|
||||
form: form[action="pagina_inicial.php?acao=login"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="Carregando captcha..."]
|
||||
input: captcha
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: h1#h1_aviso
|
||||
message:
|
||||
selector: div#div_aviso > p
|
||||
test:
|
||||
path: pagina_inicial.php
|
||||
selector: a[href="sair.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
palavra_chave: "{{ .Keywords }}"
|
||||
# selecione (default), Com seeders (has seeders), Sem seeders (without seeders), Golden, Sem Golden (not Golden)
|
||||
situacao: "{{ if .Config.freeleech }}golden{{ else }}selecione{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table#tabela_torrents > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.div_categoria_torrent > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: categoria_id
|
||||
title:
|
||||
selector: a.link_torrent, a.link_golden_torrent
|
||||
details:
|
||||
selector: a.link_torrent, a.link_golden_torrent
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.link_download
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: trim
|
||||
- name: replace
|
||||
args: ["h", ":"]
|
||||
- name: re_replace
|
||||
args: ["^(.{5})", "$1 "]
|
||||
- name: append
|
||||
args: " -03:00" # America/Sao_Paulo
|
||||
- name: dateparse
|
||||
args: "HH:mm dd/MM/yyyy zzz"
|
||||
size:
|
||||
selector: td[title="Tamanho"]
|
||||
files:
|
||||
selector: td[title="Quantidade de Arquivos"] > a
|
||||
grabs:
|
||||
selector: td[title="Quantos Completaram"]
|
||||
seeders:
|
||||
selector: td[title="Quantidade de Seeders"] > a
|
||||
leechers:
|
||||
selector: td[title="Quantidade de Leechers"] > a
|
||||
genre:
|
||||
selector: div.tags_da_linha_da_tabela
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[(.+?)\\]"
|
||||
description:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.icone_golden_torrent: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
# engine n/a
|
||||
@@ -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
|
||||
|
||||
@@ -99,7 +99,10 @@ caps:
|
||||
- {id: 99, cat: TV/Sport, desc: "Darts"}
|
||||
- {id: 100, cat: TV/Sport, desc: "ESport"}
|
||||
- {id: 6, cat: TV/Sport, desc: "European Soccer"}
|
||||
- {id: 101, cat: TV/Sport, desc: "EuroCup"}
|
||||
- {id: 102, cat: TV/Sport, desc: "Ultimate Diskk"}
|
||||
- {id: 52, cat: TV/Sport, desc: "Field Hockey"}
|
||||
- {id: 103, cat: TV/Sport, desc: "Basketball Champions"}
|
||||
- {id: 58, cat: TV/Sport, desc: "UFC"}
|
||||
- {id: 57, cat: TV/Sport, desc: "NRL"}
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "The Geeks is a Private Torrent Tracker for Technology E-LEARNING"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- edf52a95960cbd7ca3c992e634cc087fa47df8c5 # Expired 23rd OCt 2025
|
||||
links:
|
||||
- https://thegeeks.click/
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "TheShow (TSBZ) is a Private Torrent Tracker for ENTERTAINMENT-INDU
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- e207e50c00d33374e13dd9da761a8baea4702b2d # Expired 23rd Oct 2025
|
||||
links:
|
||||
- https://theshow.click/
|
||||
legacylinks:
|
||||
|
||||
@@ -8,7 +8,7 @@ encoding: UTF-8
|
||||
followredirect: true
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://www5.torrent9.to/
|
||||
- https://www.torrent9.zone/
|
||||
legacylinks:
|
||||
- https://www.torrent09.uno/
|
||||
- https://www.torrent9.pl/ # this is a proxy for torrent9clone
|
||||
@@ -31,8 +31,8 @@ legacylinks:
|
||||
- https://www.torrent9.se/
|
||||
- https://torrent9.unblockninja.com/ # 403 forbidden
|
||||
- https://ww1.torrent9.fm/
|
||||
- https://www.torrent9.zone/
|
||||
- https://torrent9.to/
|
||||
- https://www5.torrent9.to/
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
---
|
||||
id: torrentcontrol
|
||||
name: TorrentControl (API)
|
||||
description: "TorrentControl (API) is a Public Torrent Tracker for MOVIES / TV"
|
||||
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}
|
||||
- {id: series, cat: TV, desc: Series}
|
||||
- {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]
|
||||
@@ -21,20 +23,26 @@ caps:
|
||||
settings: []
|
||||
|
||||
search:
|
||||
# docs: https://torrentcontrol.pw/en/api-docs
|
||||
paths:
|
||||
# docs: https://torrentcontrol.pw/openapi.yaml
|
||||
- path: api/v1/torrents
|
||||
# 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]
|
||||
|
||||
inputs:
|
||||
per_page: 100
|
||||
search: "{{ .Keywords }}"
|
||||
- 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
|
||||
# filters:
|
||||
# - name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -65,7 +73,7 @@ search:
|
||||
- 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 }}"
|
||||
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 }}"
|
||||
|
||||
@@ -14,10 +14,10 @@ links:
|
||||
- https://www.torrentkitty.red/
|
||||
- https://www.torrentkitty.lol/
|
||||
- https://www.torrentkitty.best/
|
||||
- https://www.torrentkitty.tv/
|
||||
- https://torkitty.com/
|
||||
legacylinks:
|
||||
- https://www.torrentkitty.se/
|
||||
- https://www.torrentkitty.tv/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
||||
@@ -7,13 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq389.com/
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq391.com/
|
||||
- https://torrentegg81.com/
|
||||
legacylinks:
|
||||
- https://torrentegg65.com/
|
||||
- https://torrentqq374.com/
|
||||
- https://torrentegg66.com/
|
||||
- https://torrentqq375.com/
|
||||
- https://torrentegg67.com/
|
||||
- https://torrentqq376.com/
|
||||
- https://torrentegg68.com/
|
||||
@@ -39,6 +35,10 @@ legacylinks:
|
||||
- https://torrentegg77.com/
|
||||
- https://torrentqq388.com/
|
||||
- https://torrentegg78.com/
|
||||
- https://torrentqq389.com/
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq390.com/
|
||||
- https://torrentegg80.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,10 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome218.com/
|
||||
legacylinks:
|
||||
- https://torrentsome201.com/
|
||||
- https://torrentsome202.com/
|
||||
- https://torrentsome203.com/
|
||||
- https://torrentsome204.com/
|
||||
- https://torrentsome205.com/
|
||||
@@ -26,6 +24,8 @@ legacylinks:
|
||||
- https://torrentsome213.com/
|
||||
- https://torrentsome214.com/
|
||||
- https://torrentsome215.com/
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome217.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,10 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrenttip197.top/
|
||||
- https://torrenttip199.top/
|
||||
legacylinks:
|
||||
- https://torrenttip182.top/
|
||||
- https://torrenttip183.top/
|
||||
- https://torrenttip184.top/
|
||||
- https://torrenttip185.top/
|
||||
- https://torrenttip186.top/
|
||||
@@ -26,6 +24,8 @@ legacylinks:
|
||||
- https://torrenttip194.top/
|
||||
- https://torrenttip195.top/
|
||||
- https://torrenttip196.top/
|
||||
- https://torrenttip197.top/
|
||||
- https://torrenttip198.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: turktorrent
|
||||
name: TurkTorrent
|
||||
description: "TurkTorrent (TT) is a TURKISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
description: "TurkTorrent (TT) is a TURKISH Private PAY2DL Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: tr-TR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -117,7 +117,7 @@ login:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: div#member_info_bar
|
||||
selector: a#logout
|
||||
|
||||
search:
|
||||
headers:
|
||||
@@ -130,7 +130,7 @@ search:
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name description both uploader
|
||||
search_type: name
|
||||
search_type: names
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
|
||||
@@ -139,7 +139,7 @@ search:
|
||||
args: ["\\b(\\d{4})\\.(\\d{2})\\.(\\d{2})\\b", "$3.$2.$1"]
|
||||
|
||||
rows:
|
||||
selector: "table#torrents_table_classic > tbody > tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
selector: "table#torrents_tables_classic > tbody > tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -199,9 +199,6 @@ search:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
poster:
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/freedownload.gif\"]": 0
|
||||
|
||||
@@ -125,7 +125,8 @@ caps:
|
||||
- {id: 237, cat: Audio, desc: " |- ♫ Рок-музыка Hi-Res"}
|
||||
- {id: 236, cat: Audio, desc: " |- ♫ Джаз и Блюз Hi-Res"}
|
||||
- {id: 324, cat: Audio, desc: "Оцифровки с аналоговых носителей"}
|
||||
- {id: 328, cat: Audio, desc: " |- Советская и Российская эстрада (оцифровки)"}
|
||||
- {id: 330, cat: Audio, desc: " |- ♫ Зарубежная поп музыка (оцифровки)"}
|
||||
- {id: 328, cat: Audio, desc: " |- ♫ Советская и Российская эстрада (оцифровки)"}
|
||||
- {id: 331, cat: Audio, desc: " |- ♫ Русский рок (оцифровки)"}
|
||||
- {id: 326, cat: Audio, desc: " |- ♫ Rock (оцифровки)"}
|
||||
- {id: 325, cat: Audio, desc: " |- ♫ Электронная музыка (оцифрофки)"}
|
||||
@@ -229,6 +230,7 @@ caps:
|
||||
- {id: 282, cat: PC, desc: " |- Анимация"}
|
||||
- {id: 281, cat: PC, desc: " |- Программные комплекты"}
|
||||
- {id: 279, cat: PC, desc: " |- Разное (Графика и мультимедиа)"}
|
||||
- {id: 332, cat: PC, desc: "Системы навигации и карты "}
|
||||
- {id: 94, cat: PC, desc: " |- Утилиты"}
|
||||
- {id: 88, cat: PC, desc: " |- Мультимедия"}
|
||||
# Графика и Дизайн # Graphics and Design
|
||||
@@ -412,7 +414,7 @@ search:
|
||||
# unix
|
||||
selector: td:last-child > u
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
|
||||
@@ -7,11 +7,12 @@ type: private
|
||||
encoding: windows-1252
|
||||
requestDelay: 2.5
|
||||
links:
|
||||
- https://xthor.tk/
|
||||
- https://xthor.help/
|
||||
legacylinks:
|
||||
- https://xthor.bz/
|
||||
- https://xthor.to/
|
||||
- https://xthor.tk
|
||||
- https://xthor.tk/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -95,7 +96,7 @@ settings:
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your Passkey
|
||||
default: "Find your Passkey on <a href=\"https://xthor.tk/api_doc.php\" target =_blank>Xthor > API page</a>."
|
||||
default: "Find your Passkey on <a href=\"https://xthor.help/api_doc.php\" target =_blank>Xthor > API page</a>."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -121,7 +122,7 @@ settings:
|
||||
default: false
|
||||
|
||||
login:
|
||||
path: "https://api.xthor.tk/"
|
||||
path: "https://api.xthor.help/"
|
||||
method: get
|
||||
inputs:
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
@@ -132,8 +133,8 @@ login:
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://api.xthor.tk/?passkey=<redacted>&search=&category=&freeleech=&tmdbid=&size=&accent=&price=&page=
|
||||
- path: "https://api.xthor.tk/"
|
||||
# https://api.xthor.help/?passkey=<redacted>&search=&category=&freeleech=&tmdbid=&size=&accent=&price=&page=
|
||||
- path: "https://api.xthor.help/"
|
||||
inputs:
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}}+{{end}}{{ else }}{{ end }}"
|
||||
|
||||
@@ -7,11 +7,9 @@ description: "ZkTorrent is a FRENCH Public site for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 6daab5aed021a47614f439584fc450bde16cb528 # cloudflare
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.zktorrent6.com/
|
||||
- https://www.zktorrent.town/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -27,7 +25,6 @@ legacylinks:
|
||||
- https://gktorrent.news/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.gktorrent.gy/
|
||||
- https://www.gktorrent.si/
|
||||
- https://www.gktorrent.my/
|
||||
- https://www.gktorrent.cz/
|
||||
@@ -42,6 +39,7 @@ legacylinks:
|
||||
- https://www.zktorrent4.com/
|
||||
- https://www.zktorrent5.com/
|
||||
- https://www.zktorrent.net/
|
||||
- https://www.zktorrent6.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -28,10 +28,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Id => "divxtotal";
|
||||
public override string Name => "DivxTotal";
|
||||
public override string Description => "DivxTotal is a SPANISH site for Movies, TV series and Software";
|
||||
public override string SiteLink { get; protected set; } = "https://www2.divxtotal.lol/";
|
||||
public override string SiteLink { get; protected set; } = "https://www3.divxtotal.lol/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www.divxtotal.dev/",
|
||||
"https://www.divxtotal.ms/",
|
||||
"https://www.divxtotal.fi/",
|
||||
"https://www.divxtotal.cat/",
|
||||
@@ -46,6 +45,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://www5.divxtotal.mov/",
|
||||
"https://divxtotal.io/",
|
||||
"https://www1.divxtotal.lol/",
|
||||
"https://www2.divxtotal.lol/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -29,10 +29,10 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH Public tracker for MOVIES / TV / GENERAL";
|
||||
// in the event the redirect is inactive https://t.me/s/dontorrent should have the latest working domain
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.kids/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.live/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.kids/",
|
||||
"https://dontorrent.live/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -41,8 +41,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.download/",
|
||||
"https://dontorrent.gift/",
|
||||
"https://dontorrent.report/",
|
||||
"https://dontorrent.homes/",
|
||||
"https://dontorrent.haus/",
|
||||
@@ -56,6 +54,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.lighting/",
|
||||
"https://dontorrent.istanbul/",
|
||||
"https://dontorrent.onl/",
|
||||
"https://dontorrent.kids/",
|
||||
"https://dontorrent.kiwi/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,10 +27,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Id => "mejortorrent";
|
||||
public override string Name => "MejorTorrent";
|
||||
public override string Description => "MejorTorrent is a Public site - Hay veces que un torrent viene mejor! :)";
|
||||
public override string SiteLink { get; protected set; } = "https://www37.mejortorrent.eu/";
|
||||
public override string SiteLink { get; protected set; } = "https://www38.mejortorrent.eu/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www20.mejortorrent.zip/",
|
||||
"https://www21.mejortorrent.zip/",
|
||||
"https://www22.mejortorrent.zip/",
|
||||
"https://www23.mejortorrent.zip/",
|
||||
@@ -46,6 +45,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://www34.mejortorrent.eu/",
|
||||
"https://www35.mejortorrent.eu/",
|
||||
"https://www36.mejortorrent.eu/",
|
||||
"https://www37.mejortorrent.eu/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Indexers.Definitions.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class PhoenixProject : GazelleTracker
|
||||
{
|
||||
public override string Id => "phoenixproject";
|
||||
public override string Name => "Phoenix Project";
|
||||
public override string Description => "Phoenix Project is a Private MacOS software tracker";
|
||||
public override string SiteLink { get; protected set; } = "https://phoenixproject.app/";
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "private";
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
protected override string AuthorizationFormat => "token {0}";
|
||||
protected override int ApiKeyLength => 118;
|
||||
|
||||
public PhoenixProject(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cs: cs,
|
||||
supportsFreeleechTokens: true,
|
||||
useApiKey: true,
|
||||
instructionMessageOptional: "<ol><li>Go to PhoenixProject's site and open your account settings.</li><li>Go to <b>Access Settings</b> tab use the <b>API Keys: click here to create a new token</b> link.</li><li>Give it a name and click <b>Generate</b>.</li><li>Finally, copy/paste the token to your Jackett config APIKey input box.</li></ol>"
|
||||
)
|
||||
{
|
||||
configData.AddDynamic("Account Inactivity", new DisplayInfoConfigurationItem("Account Inactivity", "To keep your account active, sign in and browse the site at least once every 120 days. Seeding torrents does not count as account activity, so in order to remain active you need to sign in and browse the site. Power Users (and above) are immune to the inactivity timer, but logging in regularly is recommended to learn about special events and new features. Donors are exempt from automatic account disabling due to inactivity. If you wish to always maintain an active account consider donating."));
|
||||
}
|
||||
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
|
||||
private TorznabCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new TorznabCapabilities
|
||||
{
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
}
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.PCMac, "Applications");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.PCGames, "Games");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.PCMobileiOS, "IOS Applications");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.PCMobileiOS, "IOS Games");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.Other, "Graphics");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.Other, "Tutorials");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.Other, "Other");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
protected override Uri GetDownloadUrl(int torrentId, bool canUseToken)
|
||||
{
|
||||
return new Uri($"{SiteLink}ajax.php?action=download{(useTokens && canUseToken ? "&usetoken=1" : "")}&id={torrentId}");
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = await base.PerformQuery(query);
|
||||
foreach (var release in releases)
|
||||
{
|
||||
release.MinimumRatio = 0.6;
|
||||
release.MinimumSeedTime = 259200;
|
||||
}
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -684,6 +684,7 @@ namespace Jackett.Updater
|
||||
"Definitions/secretcinema.yml", // migrated to C# gazelle base tracker
|
||||
"Definitions/seedoff.yml",
|
||||
"Definitions/seedpeer.yml",
|
||||
"Definitions/sextorrent.yml",
|
||||
"Definitions/sexxi.yml",
|
||||
"Definitions/shadowflow.yml",
|
||||
"Definitions/sharefiles.yml",
|
||||
|
||||