Compare commits
129 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 | ||
|
|
a2d7173f60 | ||
|
|
e47de32ef8 | ||
|
|
fa353c1c69 | ||
|
|
fa40323df0 | ||
|
|
3d20e6facf | ||
|
|
5ff8e4f648 | ||
|
|
185033dc0d | ||
|
|
6bd91574c1 | ||
|
|
76e62c96e2 | ||
|
|
12dd4e716e | ||
|
|
3a9ae8a7a3 | ||
|
|
4509e6931d | ||
|
|
5a65ee60d5 | ||
|
|
87ceebf025 | ||
|
|
179f062c60 | ||
|
|
834f2bf0d8 | ||
|
|
906b28a4d7 | ||
|
|
aa6d0deeb5 | ||
|
|
446f7e6ccc | ||
|
|
d072380a3c | ||
|
|
b7010440bb | ||
|
|
9d97786431 | ||
|
|
5ca49f8ffe | ||
|
|
03815c49c5 | ||
|
|
1486435554 | ||
|
|
8539aabc06 | ||
|
|
a7c49ad515 | ||
|
|
b0d195a585 | ||
|
|
288243664a | ||
|
|
ff2effbce2 | ||
|
|
6a95ff71fd | ||
|
|
2793ab1a7a | ||
|
|
3b69d8813c | ||
|
|
987271e848 | ||
|
|
9aa5140598 | ||
|
|
28364bf9cc | ||
|
|
d59e2b6ba6 | ||
|
|
dfa92394d8 | ||
|
|
c7e1f12e46 | ||
|
|
1665536696 | ||
|
|
6c33e9e1e9 | ||
|
|
44d9d41f87 | ||
|
|
ff5eb0b691 |
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 |
6
.github/workflows/codeql-analysis.yml
vendored
@@ -61,7 +61,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -87,4 +87,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@v4
|
||||
|
||||
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'
|
||||
|
||||
|
||||
@@ -109,8 +109,8 @@ If you use something else, please add it here for others.
|
||||
- About 2GB download, 8GB installed.
|
||||
- Make sure it includes the following Workload and Individual Components:
|
||||
- .NET desktop development
|
||||
- .Net Framework 4.6.2 SDK
|
||||
- .Net Framework 4.6.2 targeting pack
|
||||
- .Net Framework 4.7.1 SDK
|
||||
- .Net Framework 4.7.1 targeting pack
|
||||
- From the `Get Started` screen:
|
||||
- `Clone a repository -> Browse a repository -> GitHub -> Sign in -> clone your forked repository`
|
||||
- Double-click `Jackett.sln` in `Solution Explorer` to load your project
|
||||
|
||||
21
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)
|
||||
@@ -124,6 +125,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* torrent.by
|
||||
* torrent-pirat
|
||||
* Torrent9
|
||||
* TorrentControl
|
||||
* TorrentDosFilmes
|
||||
* TorrentDownload
|
||||
* TorrentGalaxyClone
|
||||
@@ -239,6 +241,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* AGSVPT (Arctic Global Seed Vault)
|
||||
* Aidoru!Online
|
||||
* Aither
|
||||
* alingPT
|
||||
* AlphaRatio (AR)
|
||||
* AmigosShareClub (ASC)
|
||||
* AnimeBytes (AB)
|
||||
@@ -269,7 +272,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* BIT-HDTV
|
||||
* Bitded
|
||||
* bitGAMER
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen
|
||||
* Bitpalace
|
||||
* BitPorn
|
||||
@@ -290,10 +292,11 @@ Prior versions of Jackett are no longer supported.
|
||||
* BTSCHOOL
|
||||
* BWTorrents
|
||||
* BYRBT
|
||||
* cangbaoge (CBG)
|
||||
* CapybaraBR
|
||||
* Carp-Hunter
|
||||
* Carpathians
|
||||
* CarPT [![(invite needed)][inviteneeded]](#)
|
||||
* CarPT
|
||||
* Cathode-Ray.Tube (CRT)
|
||||
* CD File
|
||||
* CeskeForum
|
||||
@@ -413,6 +416,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* KrazyZone
|
||||
* Kufei (库非)
|
||||
* Kufirc
|
||||
* lajidui
|
||||
* Last Digital Underground (LDU)
|
||||
* LastFiles (LF)
|
||||
* Lat-Team
|
||||
@@ -470,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]](#)
|
||||
@@ -513,6 +516,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Romanian Metal Torrents (RMT)
|
||||
* Rousi
|
||||
* SAMARITANO
|
||||
* SBPT
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* SceneRush [![(invite needed)][inviteneeded]](#)
|
||||
* SceneTime
|
||||
@@ -520,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]](#)
|
||||
@@ -537,6 +541,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* SugoiMusic
|
||||
* Superbits (SBS)
|
||||
* Swarmazon
|
||||
* Tangmen (唐门)
|
||||
* Tapochek
|
||||
* Tasmanit
|
||||
* Team CT Game (TCTG)
|
||||
@@ -586,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]](#)
|
||||
@@ -795,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`.
|
||||
@@ -871,7 +876,7 @@ Setting up this service is optional; most indexers don't need it.
|
||||
|
||||
## Configuring OMDb
|
||||
This feature is used as a fallback (when using the aggregate Indexer) to get the movie/series title if only the IMDB ID is provided in the request.
|
||||
To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/apikey.aspx) (1,000 daily requests limit) and paste the key in Jackett
|
||||
To use it, please just request a free API key on [OMDb](https://omdbapi.com/apikey.aspx) (1,000 daily requests limit) and paste the key in Jackett
|
||||
|
||||
## Command line switches
|
||||
|
||||
|
||||
@@ -182,4 +182,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -221,4 +221,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -71,6 +71,10 @@ settings:
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
|
||||
- name: info_captcha
|
||||
type: info
|
||||
label: About Captcha
|
||||
default: "Note that the captcha on the 3Dtorrents login page is Case Sensitive."
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
|
||||
@@ -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="]
|
||||
|
||||
170
src/Jackett.Common/Definitions/alingpt.yml
Normal file
@@ -0,0 +1,170 @@
|
||||
---
|
||||
id: alingpt
|
||||
name: alingPT
|
||||
description: "alingPT is a CHINESE Private Torrent Tracker for MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.aling.de/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentary/纪录片"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Accounts parked will not be deleted</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 200 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 60 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 2.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.4 2025-06-01
|
||||
@@ -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:
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
---
|
||||
id: bithorlo
|
||||
name: Bithorlo
|
||||
description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.bithorlo.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# E-book
|
||||
- {id: 40, cat: Books, desc: "E-book/Eng"}
|
||||
- {id: 19, cat: Books, desc: "E-book/Hun"}
|
||||
# Játék
|
||||
- {id: 38, cat: Console, desc: "Játék/Consol"}
|
||||
- {id: 37, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 15, cat: PC/Games, desc: "Játék/ISO"}
|
||||
# Filmek
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
|
||||
- {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
|
||||
- {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
|
||||
- {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
|
||||
- {id: 33, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 29, cat: Movies/HD, desc: "HD/Eng"}
|
||||
- {id: 28, cat: Movies/HD, desc: "HD/Hun"}
|
||||
- {id: 52, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 53, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
|
||||
- {id: 5, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
|
||||
- {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
|
||||
# Zene
|
||||
- {id: 13, cat: Audio, desc: "Zene/Hun"}
|
||||
- {id: 12, cat: Audio, desc: "Zene/Eng"}
|
||||
# Egyéb
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 20, cat: Other, desc: "Képek"}
|
||||
# Program
|
||||
- {id: 54, cat: PC/0day, desc: "Win/Program/ISO"}
|
||||
- {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
|
||||
# Felnőtt tartalom
|
||||
- {id: 10, cat: XXX, desc: "XXX/Kép"}
|
||||
- {id: 9, cat: XXX, desc: "XXX/Film"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: useragent
|
||||
type: text
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info_useragent
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sortBy
|
||||
type: select
|
||||
label: SortBy requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
5: seeders
|
||||
3: size
|
||||
1: title
|
||||
- name: orderBy
|
||||
type: select
|
||||
label: OrderBy requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: desc
|
||||
1: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Vacation mode is used to avoid deletion due to inactivity for 90 days. You can turn it on or off in the Profile menu, set the appropriate option and save your changes."
|
||||
|
||||
login:
|
||||
# using cookie method because login page has embedded Google reCAPTCHA
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index/
|
||||
selector: a[href="/logout/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.bithorlo.info/torrents/?action=search&categories[]=29&categories[]=4&search_text=&incldead=1&torrent_tags=
|
||||
- path: torrents/
|
||||
inputs:
|
||||
action: search
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
search_text: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 5 waiting for seed, 6 multiple upload
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sortBy }}"
|
||||
order_by: "{{ .Config.orderBy }}"
|
||||
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
|
||||
rows:
|
||||
selector: table#torrenttable > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.fixed-width-category > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: categories[]
|
||||
title:
|
||||
selector: a.torrent-name
|
||||
details:
|
||||
selector: a.torrent-name
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: span.custom-popover
|
||||
attribute: data-bs-content
|
||||
filters:
|
||||
- name: regexp
|
||||
args: \"(.+?)\"
|
||||
date:
|
||||
selector: span.bg-green
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.fixed-width-size > a
|
||||
grabs:
|
||||
selector: td.fixed-width-completed
|
||||
seeders:
|
||||
selector: td.fixed-width-seeders
|
||||
leechers:
|
||||
selector: td.fixed-width-leechers
|
||||
description:
|
||||
case:
|
||||
img[src="./themes/Born/nemlatta.png"]: Unverified
|
||||
"*": Verified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span:contains(\"FREE\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"span:contains(\"2x\")": 2
|
||||
"span:contains(\"3x\")": 3
|
||||
"span:contains(\"4x\")": 4
|
||||
"span:contains(\"5x\")": 5
|
||||
"span:contains(\"6x\")": 6
|
||||
"span:contains(\"7x\")": 7
|
||||
"span:contains(\"8x\")": 8
|
||||
"span:contains(\"9x\")": 9
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
@@ -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
|
||||
|
||||
178
src/Jackett.Common/Definitions/cangbaoge.yml
Normal file
@@ -0,0 +1,178 @@
|
||||
---
|
||||
id: cangbaoge
|
||||
name: cangbaoge (CBG)
|
||||
description: "cangbaoge (CBG) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://cangbao.ge/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "Playlet/短剧"}
|
||||
- {id: 404, cat: TV/Anime, desc: "Animations/动画"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime/动漫"}
|
||||
- {id: 406, cat: TV/Other, desc: "Children/儿童"}
|
||||
- {id: 407, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 408, cat: TV/Documentary, desc: "Documentary/纪录"}
|
||||
- {id: 409, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 410, cat: Books, desc: "Books/书籍"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 2.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
@@ -65,7 +65,7 @@ settings:
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account Retention Rules:<ol><li>Extreme User and above will be retained forever</li><li> Elite Users and above will not be banned after parking (in the Control Panel)</li><li>Users with a parked account will be banned if they do not log in for 360 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 150 consecutive days</li><li> Users with no traffic (i.e., upload/download data is 0) who do not log in for 60 consecutive days will be banned.</li></ol>"
|
||||
default: "Account Retention Rules:<ol><li>Extreme User and above will be retained forever</li><li> Elite Users and above will not be banned after parking (in the Control Panel)</li><li>Users with a parked account will be banned if they do not log in for 150 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 90 consecutive days</li><li> Users with no traffic (i.e., upload/download data is 0) who do not log in for 14 consecutive days will be banned.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
@@ -186,7 +186,7 @@ search:
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
text: 10
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -84,11 +84,11 @@ login:
|
||||
search:
|
||||
# https://devil-torrents.pl/szukaj.php?search=%&typ=torrent&c4=1&c748=1
|
||||
paths:
|
||||
- path: szukaj.php
|
||||
- path: "{{ if .Keywords }}szukaj.php{{ else }}files-torrent{{ end }}"
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
typ: torrent
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
|
||||
typ: "{{ if .Keywords }}torrent{{ else }}{{ end }}"
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.test5 > tbody > tr > td > div[id]:has(a[href^="download/"])
|
||||
|
||||
@@ -184,4 +184,4 @@ search:
|
||||
args: "cat={{ .Result.category_title }} - "
|
||||
minimumratio:
|
||||
text: 0.9
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -39,6 +39,8 @@ caps:
|
||||
- {id: 342, cat: Books/EBook, desc: "Collection: Multiple Authors"}
|
||||
- {id: 343, cat: Books/EBook, desc: "Collection: Fantasy"}
|
||||
- {id: 359, cat: Books/EBook, desc: "Collection: Same Series"}
|
||||
- {id: 364, cat: Books/EBook, desc: "Collection: Multiple: Fiction"}
|
||||
- {id: 365, cat: Books/EBook, desc: "Collection: Multiple:Non Fiction"}
|
||||
# Fiction
|
||||
- {id: 281, cat: Books/EBook, desc: "Horror"}
|
||||
- {id: 282, cat: Books/EBook, desc: "Sci-Fi/Fantasy"}
|
||||
|
||||
@@ -37,6 +37,7 @@ caps:
|
||||
- {id: "Live Action [Non-English]", cat: TV/Anime, desc: "Live Action [Non-English]"}
|
||||
- {id: Lossless, cat: Audio/Lossless, desc: Music Lossless}
|
||||
- {id: "Manga [English-translated]", cat: Books/Comics, desc: "Manga [English-translated]"}
|
||||
- {id: "Manga [Raw]", cat: Books/Comics, desc: "Manga [Raw]"}
|
||||
- {id: MP3, cat: Audio/MP3, desc: Music MP3}
|
||||
- {id: MP4, cat: Movies, desc: Movies MP4}
|
||||
- {id: Mac, cat: PC/Mac, desc: Software Mac}
|
||||
@@ -57,6 +58,7 @@ caps:
|
||||
- {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
|
||||
- {id: Radio Shows, cat: Audio/Other, desc: Music Radio}
|
||||
- {id: Raw, cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: Software, cat: PC/0day, desc: Software}
|
||||
- {id: Subs, cat: TV/Anime, desc: Anime Subs}
|
||||
- {id: Switch, cat: Console/Other, desc: Games Switch}
|
||||
- {id: TV, cat: TV, desc: TV}
|
||||
|
||||
@@ -12,10 +12,11 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 8, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 7, cat: Console, desc: "H-games"}
|
||||
- {id: 5, cat: XXX, desc: "JAV"}
|
||||
- {id: 6, cat: Books, desc: "Manga"}
|
||||
- {id: 7, cat: Console, desc: "H-games"}
|
||||
- {id: 8, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 9, cat: XXX, desc: "OFFS"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -231,4 +231,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -11,11 +11,11 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Film"}
|
||||
- {id: 2, cat: Movies, desc: "Dessin animé"}
|
||||
- {id: 3, cat: Movies, desc: "Bonus BD"}
|
||||
- {id: 2, cat: Movies, desc: "Film d'animation"}
|
||||
- {id: 3, cat: Movies, desc: "Spectacle"}
|
||||
- {id: 4, cat: Movies, desc: "Concert"}
|
||||
- {id: 5, cat: TV, desc: "Série"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Série anim"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Série d'animation"}
|
||||
- {id: 7, cat: Movies, desc: "Documentaire"}
|
||||
|
||||
modes:
|
||||
@@ -117,11 +117,11 @@ search:
|
||||
selector: td.cats_col
|
||||
case:
|
||||
div.cats_film: 1
|
||||
div.cats_dessinanimé: 2
|
||||
div.cats_bonusbd: 3
|
||||
div[class*="cats_filmd"]: 2
|
||||
div.cats_spectacle: 3
|
||||
div.cats_concert: 4
|
||||
div.cats_série: 5
|
||||
div.cats_sérieanim: 6
|
||||
div[class*="cats_séried"]: 6
|
||||
div.cats_documentaire: 7
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
@@ -309,8 +309,9 @@ search:
|
||||
description:
|
||||
selector: div.group_info
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
minimumseedtime:
|
||||
# global MR is 0.6 but torrents must be seeded for 3 days regardless of ratio
|
||||
# text: 0.6
|
||||
# minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# Gazelle
|
||||
|
||||
@@ -86,7 +86,7 @@ login:
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
- selector: div > div.flex:has(div:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
@@ -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,11 @@ 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}
|
||||
- {id: Apps, cat: PC, desc: Apps}
|
||||
@@ -48,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]
|
||||
|
||||
@@ -200,4 +200,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
184
src/Jackett.Common/Definitions/lajidui.yml
Normal file
@@ -0,0 +1,184 @@
|
||||
---
|
||||
id: lajidui
|
||||
name: lajidui
|
||||
description: "lajidui is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.lajidui.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentary/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/音乐视频"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 408, cat: Audio, desc: "Music/音频"}
|
||||
- {id: 409, cat: Other/Misc, desc: "Misc/其他"}
|
||||
- {id: 410, cat: TV/Anime, desc: "Cartoon/少儿动画"}
|
||||
- {id: 411, cat: Books, desc: "EBook/电子书"}
|
||||
- {id: 412, cat: TV, desc: "Playlet/短剧"}
|
||||
- {id: 413, cat: PC/Games, desc: "Games/游戏"}
|
||||
- {id: 414, cat: PC/0day, desc: "APP/软件"}
|
||||
- {id: 415, cat: Other, desc: "Education/教育视频"}
|
||||
- {id: 416, cat: Audio/Audiobook, desc: "Audiobook/有声书"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 2.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
@@ -182,4 +182,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -28,6 +28,7 @@ caps:
|
||||
- {id: 35, cat: Movies/BluRay, desc: "Film/HU/Blu-ray"}
|
||||
- {id: 26, cat: Movies/DVD, desc: "Film/HU/DVD-R"}
|
||||
- {id: 5, cat: Movies/SD, desc: "Film/HU/SD"}
|
||||
- {id: 62, cat: Movies/UHD, desc: "Film/HU/UHD"}
|
||||
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
|
||||
- {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
|
||||
# - {id: 47, cat: Other, desc: "Klippek"}
|
||||
@@ -137,6 +138,7 @@ search:
|
||||
img[src="/pic/categories/5.png"]: 35
|
||||
img[src="/pic/categories/2.png"]: 26
|
||||
img[src="/pic/categories/1.png"]: 5
|
||||
img[src="/pic/categories/uhd_hun.png"]: 62
|
||||
img[src="/pic/categories/021.png"]: 4
|
||||
img[src="/pic/categories/cat_games.gif"]: 39
|
||||
# img[]: 47
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -92,16 +92,17 @@ login:
|
||||
search:
|
||||
paths:
|
||||
# https://nusantara.re/torrents.php?incldead=0&inclbookmarked=0&search=&search_area=0&search_mode=0
|
||||
# https://nusantara.re/torrents.php?incldead=0&inclbookmarked=0&search=tt0171484&search_area=4&search_mode=0
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (not working)
|
||||
search_area: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
|
||||
@@ -192,4 +192,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.8 2025-10-01
|
||||
|
||||
@@ -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.zone-torrent4.com/
|
||||
- https://www.mega-torrent7.com/
|
||||
- https://www.oxtorrent.town/
|
||||
- https://www.zone-torrent.town/
|
||||
- https://www.mega-torrent.town/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -28,11 +28,8 @@ legacylinks:
|
||||
- https://oxtorrent.blog/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www-torrent911.com/
|
||||
- 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 +46,9 @@ legacylinks:
|
||||
- https://www.zone-torrent.me/
|
||||
- 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://oct07.rudub.mom/
|
||||
- https://oct26.rudub.homes/
|
||||
legacylinks:
|
||||
- https://sep23.rudub.bet/
|
||||
- http://sep24.rudub.bet/
|
||||
- https://sep24.rudub.bet/
|
||||
- http://sep25.rudub.bet/
|
||||
- https://sep25.rudub.bet/
|
||||
- http://sep26.rudub.bet/
|
||||
- https://sep26.rudub.bet/
|
||||
- http://sep27.rudub.bet/
|
||||
- https://sep27.rudub.bet/
|
||||
- http://sep28.rudub.bet/
|
||||
- https://sep28.rudub.bet/
|
||||
- http://sep29.rudub.bet/
|
||||
- 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://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"}
|
||||
|
||||
196
src/Jackett.Common/Definitions/sbpt.yml
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
id: sbpt
|
||||
name: SBPT
|
||||
description: "SBPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sbpt.link/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影(Movies)"}
|
||||
- {id: 408, cat: Audio, desc: "音乐(HQ Audio)"}
|
||||
- {id: 409, cat: Other, desc: "其他(Misc)"}
|
||||
- {id: 407, cat: TV/Sport, desc: "体育(Sport)"}
|
||||
- {id: 406, cat: Audio/Video, desc: "音乐短片(MV)Music Video"}
|
||||
- {id: 403, cat: TV, desc: "综艺(TV Shows)"}
|
||||
- {id: 402, cat: TV, desc: "电视剧(TVSeries)"}
|
||||
- {id: 405, cat: TV/Anime, desc: "动画/Animation)"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "纪录片/Documentary)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Rain Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User or above will be retained forever</li><li> Elite User or abovee will not have their account deleted after parking (in the control panel)</li><li> Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 365 consecutive days</li><li>Users with no traffic (i.e. upload/download data is 0) will be deleted if they do not log in for 60 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
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
|
||||
# NexusPHP v1.8.13 2024-09-21
|
||||
@@ -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"}
|
||||
|
||||
|
||||
201
src/Jackett.Common/Definitions/tangmen.yml
Normal file
@@ -0,0 +1,201 @@
|
||||
---
|
||||
id: tangmen
|
||||
name: Tangmen (唐门)
|
||||
description: "Tangmen (唐门) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://tmpt.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 409, cat: TV/Other, desc: "Others/其他"}
|
||||
- {id: 408, cat: Audio, desc: "Music/音轨"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 410, cat: TV, desc: "Playlet(短剧)"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the cyanbug Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 2.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
@@ -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,10 +8,8 @@ encoding: UTF-8
|
||||
followredirect: true
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://torrent9.to/
|
||||
- https://www.torrent9.zone/
|
||||
legacylinks:
|
||||
- https://www4.torrent9.to/
|
||||
- https://www.torrent9.cat/
|
||||
- https://www.torrent09.uno/
|
||||
- https://www.torrent9.pl/ # this is a proxy for torrent9clone
|
||||
- https://torrent9.black-mirror.xyz/ # this is a proxy for torrent9clone
|
||||
@@ -33,7 +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
|
||||
|
||||
126
src/Jackett.Common/Definitions/torrentcontrol.yml
Normal file
@@ -0,0 +1,126 @@
|
||||
---
|
||||
id: torrentcontrol
|
||||
name: TorrentControl (API)
|
||||
description: "TorrentControl (API) is a Public Torrent Tracker for MOVIES / TV / ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://torrentcontrol.pw/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: movie, cat: Movies, desc: Movies, default: true}
|
||||
- {id: series, cat: TV, desc: Series, default: true}
|
||||
- {id: anime, cat: TV/Anime, desc: Anime, default: true}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
# docs: https://torrentcontrol.pw/en/api-docs
|
||||
paths:
|
||||
# since per_page is only 20 we needs to query all 3 cats separately to ensure we get hits for keywordless
|
||||
- path: "api/v1/torrents?type=movie&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [movie]
|
||||
|
||||
- path: "api/v1/torrents?type=series&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [series]
|
||||
|
||||
- path: "api/v1/torrents?type=anime&search={{ .Keywords }}"
|
||||
response:
|
||||
type: json
|
||||
categories: [anime]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: type
|
||||
_id:
|
||||
selector: content_id
|
||||
details:
|
||||
text: "contents/{{ .Result._id }}"
|
||||
_language:
|
||||
selector: language
|
||||
case:
|
||||
fr: French
|
||||
es: Spanish
|
||||
it: Italian
|
||||
latino: Latino
|
||||
ru: Russian
|
||||
"*": ""
|
||||
title_default:
|
||||
selector: title
|
||||
title_file_name:
|
||||
selector: file_name
|
||||
optional: true
|
||||
title_magnet:
|
||||
selector: magnet_uri:contains(&dn=)
|
||||
optional: true
|
||||
filters:
|
||||
- name: htmldecode
|
||||
- name: querystring
|
||||
args: dn
|
||||
title:
|
||||
text: "{{ if or .Result.title_file_name .Result.title_magnet }}{{ or .Result.title_file_name .Result.title_magnet }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
||||
magnet:
|
||||
selector: magnet_uri
|
||||
filters:
|
||||
- name: htmldecode
|
||||
poster:
|
||||
selector: poster_url
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
seeders_zero:
|
||||
selector: seeders
|
||||
seeders:
|
||||
selector: seeders
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if eq .Result.seeders_zero \"0\" }}1{{ else }}{{ end }}"
|
||||
leechers_zero:
|
||||
selector: leechers
|
||||
leechers:
|
||||
selector: leechers
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if eq .Result.leechers_zero \"0\" }}1{{ else }}{{ end }}"
|
||||
date:
|
||||
# 2025-10-12T21:59:04.000000Z
|
||||
selector: created_at
|
||||
size_default:
|
||||
selector: type
|
||||
case:
|
||||
movie: 9GB
|
||||
series: 2GB
|
||||
size_in_mb:
|
||||
selector: size_in_mb
|
||||
optional: true
|
||||
size:
|
||||
text: "{{ if .Result.size_in_mb }}{{ .Result.size_in_mb }}MB{{ else }}{{ .Result.size_default }}{{ end }}"
|
||||
description:
|
||||
selector: provider
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "provider: "
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# json api v1
|
||||
@@ -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,15 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq388.com/
|
||||
- https://torrentegg78.com/
|
||||
- https://torrentqq391.com/
|
||||
- https://torrentegg81.com/
|
||||
legacylinks:
|
||||
- https://torrentegg64.com/
|
||||
- https://torrentqq373.com/
|
||||
- https://torrentegg65.com/
|
||||
- https://torrentqq374.com/
|
||||
- https://torrentegg66.com/
|
||||
- https://torrentqq375.com/
|
||||
- https://torrentegg67.com/
|
||||
- https://torrentqq376.com/
|
||||
- https://torrentegg68.com/
|
||||
@@ -39,6 +33,12 @@ legacylinks:
|
||||
- https://torrentegg76.com/
|
||||
- https://torrentqq387.com/
|
||||
- https://torrentegg77.com/
|
||||
- https://torrentqq388.com/
|
||||
- https://torrentegg78.com/
|
||||
- https://torrentqq389.com/
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq390.com/
|
||||
- https://torrentegg80.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,11 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrentsome215.com/
|
||||
- https://torrentsome218.com/
|
||||
legacylinks:
|
||||
- https://torrentsome200.com/
|
||||
- https://torrentsome201.com/
|
||||
- https://torrentsome202.com/
|
||||
- https://torrentsome203.com/
|
||||
- https://torrentsome204.com/
|
||||
- https://torrentsome205.com/
|
||||
@@ -26,6 +23,9 @@ legacylinks:
|
||||
- https://torrentsome212.com/
|
||||
- https://torrentsome213.com/
|
||||
- https://torrentsome214.com/
|
||||
- https://torrentsome215.com/
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome217.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,11 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrenttip196.top/
|
||||
- https://torrenttip199.top/
|
||||
legacylinks:
|
||||
- https://torrenttip181.top/
|
||||
- https://torrenttip182.top/
|
||||
- https://torrenttip183.top/
|
||||
- https://torrenttip184.top/
|
||||
- https://torrenttip185.top/
|
||||
- https://torrenttip186.top/
|
||||
@@ -26,6 +23,9 @@ legacylinks:
|
||||
- https://torrenttip193.top/
|
||||
- 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
|
||||
|
||||
@@ -171,4 +171,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -10,8 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Кинофильмы
|
||||
# Movies
|
||||
# Кинофильмы # Movies
|
||||
- {id: 3, cat: Movies, desc: "Зарубежные кинофильмы"}
|
||||
- {id: 13, cat: Movies, desc: " |- Новинки 2025"}
|
||||
- {id: 12, cat: Movies, desc: " |- Фильмы 2021-2024"}
|
||||
@@ -36,8 +35,7 @@ caps:
|
||||
- {id: 30, cat: Movies, desc: " |- Фильмы 2011-2024 годов"}
|
||||
- {id: 29, cat: Movies, desc: " |- Фильмы 2000-2010 годов"}
|
||||
- {id: 26, cat: Movies, desc: " |- Фильмы до 2000 года"}
|
||||
# Сериалы, Видео и ТВ
|
||||
# Series, Videos and TV
|
||||
# Сериалы, Видео и ТВ # Series, Videos and TV
|
||||
- {id: 97, cat: TV, desc: "Сериалы"}
|
||||
- {id: 313, cat: TV, desc: " |- Секретные материалы \ The X-Files"}
|
||||
- {id: 103, cat: TV, desc: " |- Зарубежные сериалы"}
|
||||
@@ -46,8 +44,7 @@ caps:
|
||||
- {id: 100, cat: TV, desc: " |- Турецкие сериалы"}
|
||||
- {id: 99, cat: TV, desc: " |- Узбекские сериалы"}
|
||||
- {id: 98, cat: TV, desc: " |- Мультсериалы"}
|
||||
# Мультфильмы
|
||||
# Cartoons
|
||||
# Мультфильмы # Cartoons
|
||||
- {id: 36, cat: TV, desc: "Зарубежные мультфильмы"}
|
||||
- {id: 48, cat: TV, desc: " |- Новинки 2025"}
|
||||
- {id: 46, cat: TV, desc: " |- Полнометражные мультфильмы"}
|
||||
@@ -67,8 +64,7 @@ caps:
|
||||
- {id: 61, cat: TV, desc: " |- Мультфильмы 2011-2024 годов"}
|
||||
- {id: 60, cat: TV, desc: " |- Мультфильмы 2000-2010 годов"}
|
||||
- {id: 59, cat: TV, desc: " |- Мультфильмы до 2000 года"}
|
||||
# Музыка
|
||||
# Music
|
||||
# Музыка # Music
|
||||
- {id: 225, cat: Audio, desc: "♫ Российские исполнители ♫ (Mp3)♫"}
|
||||
- {id: 228, cat: Audio, desc: " |- Поп музыка России и стран бывшего СССР"}
|
||||
- {id: 229, cat: Audio, desc: " |- Русские поп сборники"}
|
||||
@@ -129,8 +125,9 @@ 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: 327, 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: " |- ♫ Электронная музыка (оцифрофки)"}
|
||||
- {id: 133, cat: Audio, desc: "♫ Музыка в формате ♫ (lossless)"}
|
||||
@@ -147,8 +144,7 @@ caps:
|
||||
- {id: 295, cat: Audio, desc: " |- Рок музыка (Video)"}
|
||||
- {id: 294, cat: Audio, desc: " |- Музыкальные шоу"}
|
||||
- {id: 158, cat: Audio, desc: " |- Другие направления"}
|
||||
# Литература
|
||||
# Literature
|
||||
# Литература # Literature
|
||||
- {id: 166, cat: Books, desc: "Книги FB2"}
|
||||
- {id: 173, cat: Books, desc: " |- Художественная литература"}
|
||||
- {id: 314, cat: Books, desc: " |- Учебно-техническая литература"}
|
||||
@@ -160,8 +156,7 @@ caps:
|
||||
- {id: 175, cat: Audio/Audiobook, desc: " |- Любовно-фантастический роман (Audiobook)"}
|
||||
- {id: 174, cat: Audio, desc: " |- Аудиокниги на других языках (Audio)"}
|
||||
- {id: 319, cat: Books, desc: " |- Аудиокниги для детей"}
|
||||
# Игры
|
||||
# Games
|
||||
# Игры # Games
|
||||
- {id: 105, cat: PC/Games, desc: "Игры для ПК"}
|
||||
- {id: 120, cat: PC/Games, desc: " |- Горячие новинки (License`s)"}
|
||||
- {id: 119, cat: PC/Games, desc: " |- Горячие новинки (Repack`s)"}
|
||||
@@ -184,8 +179,7 @@ caps:
|
||||
- {id: 107, cat: PC/Games, desc: " |- Игровое видео"}
|
||||
- {id: 106, cat: PC/Games, desc: " |- Патчи, моды, дополнения, DLC и т.п."}
|
||||
- {id: 248, cat: PC/Games, desc: "Игры для Android"}
|
||||
# Софт
|
||||
# Software
|
||||
# Софт # Software
|
||||
- {id: 76, cat: PC, desc: "Операционные системы"}
|
||||
- {id: 80, cat: PC, desc: " |- Windows 11"}
|
||||
- {id: 79, cat: PC, desc: " |- Windows 10"}
|
||||
@@ -236,10 +230,10 @@ 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
|
||||
# Графика и Дизайн # Graphics and Design
|
||||
- {id: 178, cat: Other, desc: "Графические изображения"}
|
||||
- {id: 184, cat: Other, desc: " |- Обои"}
|
||||
- {id: 183, cat: Other, desc: " |- Картинки"}
|
||||
@@ -420,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:
|
||||
|
||||
@@ -185,4 +185,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
|
||||
@@ -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.onl/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.live/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.onl/",
|
||||
"https://dontorrent.live/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -41,9 +41,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.group/",
|
||||
"https://dontorrent.download/",
|
||||
"https://dontorrent.gift/",
|
||||
"https://dontorrent.report/",
|
||||
"https://dontorrent.homes/",
|
||||
"https://dontorrent.haus/",
|
||||
@@ -56,6 +53,9 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.irish/",
|
||||
"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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace Jackett.Common.Services
|
||||
{
|
||||
|
||||
public struct Movie
|
||||
{
|
||||
public string Title;
|
||||
@@ -16,11 +15,15 @@ namespace Jackett.Common.Services
|
||||
|
||||
public class OmdbResolver : IImdbResolver
|
||||
{
|
||||
public OmdbResolver(WebClient webClient, string omdbApiKey, string omdbApiUrl)
|
||||
private readonly WebClient _webClient;
|
||||
private readonly string _apiKey;
|
||||
private readonly string _apiUrl;
|
||||
|
||||
public OmdbResolver(WebClient webClient, string omdbApiKey, string omdbApiApiUrl)
|
||||
{
|
||||
WebClient = webClient;
|
||||
apiKey = omdbApiKey ?? throw new ArgumentNullException($"{nameof(omdbApiKey)} cannot be null");
|
||||
url = omdbApiUrl;
|
||||
_webClient = webClient;
|
||||
_apiKey = omdbApiKey ?? throw new ArgumentNullException($"{nameof(omdbApiKey)} cannot be null");
|
||||
_apiUrl = omdbApiApiUrl;
|
||||
}
|
||||
|
||||
public async Task<Movie> MovieForId(string id)
|
||||
@@ -28,23 +31,23 @@ namespace Jackett.Common.Services
|
||||
var imdbId = id ?? throw new ArgumentNullException($"{nameof(id)} cannot be null");
|
||||
|
||||
if (!imdbId.StartsWith("tt", StringComparison.Ordinal))
|
||||
imdbId = "tt" + imdbId;
|
||||
{
|
||||
imdbId = $"tt{imdbId}";
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(url))
|
||||
url = "http://omdbapi.com";
|
||||
if (string.IsNullOrWhiteSpace(_apiUrl) || !Uri.TryCreate(_apiUrl, UriKind.Absolute, out var baseUri))
|
||||
{
|
||||
baseUri = new Uri("https://omdbapi.com");
|
||||
}
|
||||
|
||||
var request = new WebRequest(url + "/?apikey=" + apiKey + "&i=" + imdbId)
|
||||
var request = new WebRequest(new Uri(baseUri, $"/?apikey={_apiKey}&i={imdbId}").AbsoluteUri)
|
||||
{
|
||||
Encoding = Encoding.UTF8
|
||||
};
|
||||
var result = await WebClient.GetResultAsync(request);
|
||||
var result = await _webClient.GetResultAsync(request);
|
||||
var movie = JsonConvert.DeserializeObject<Movie>(result.ContentString);
|
||||
|
||||
return movie;
|
||||
}
|
||||
|
||||
private readonly WebClient WebClient;
|
||||
private readonly string apiKey;
|
||||
private string url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,6 +309,7 @@ namespace Jackett.Updater
|
||||
"Definitions/bit-titan.yml",
|
||||
"Definitions/bitbr.yml",
|
||||
"Definitions/bitcityreloaded.yml",
|
||||
"Definitions/bithorlo.yml",
|
||||
"Definitions/bithq.yml",
|
||||
"Definitions/bitme.yml",
|
||||
"Definitions/bitnova.yml",
|
||||
@@ -683,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",
|
||||
|
||||