Compare commits
206 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e2411865f | ||
|
|
74b2f9e670 | ||
|
|
78b538d2be | ||
|
|
e92e9d168e | ||
|
|
e32053b153 | ||
|
|
7eabdec5b0 | ||
|
|
76a61e67c4 | ||
|
|
b9834455ed | ||
|
|
2f3f86bf25 | ||
|
|
05918d22c1 | ||
|
|
cae5c818df | ||
|
|
84b258a3bb | ||
|
|
887c5bafe6 | ||
|
|
eb933878ec | ||
|
|
3116dcce2b | ||
|
|
459bc4683e | ||
|
|
37ef94e8a5 | ||
|
|
7bbc63ddb8 | ||
|
|
e25370d959 | ||
|
|
46d6cf7ca1 | ||
|
|
b8f4caddc2 | ||
|
|
2cfd55b325 | ||
|
|
5f37536783 | ||
|
|
c0994d7a5e | ||
|
|
7455f3aec6 | ||
|
|
832184afaf | ||
|
|
f8bd4cd479 | ||
|
|
9e1d4af15e | ||
|
|
052d4ab3e2 | ||
|
|
86ba95ceb6 | ||
|
|
15e81d14c9 | ||
|
|
fd3731c429 | ||
|
|
adcbd5389c | ||
|
|
995ce3ee84 | ||
|
|
ecdb32e57f | ||
|
|
dd49233d41 | ||
|
|
2df84ce82d | ||
|
|
1b00e38094 | ||
|
|
42ec7db599 | ||
|
|
ad60961347 | ||
|
|
c2bb44dfb6 | ||
|
|
f218af30b9 | ||
|
|
d8f0a876d5 | ||
|
|
eb8279fd00 | ||
|
|
f554ba36c2 | ||
|
|
9c3d105705 | ||
|
|
da1a0cd98e | ||
|
|
98cc4f0f99 | ||
|
|
8e0a583296 | ||
|
|
d40019fc86 | ||
|
|
1eebcdffca | ||
|
|
458c1c9420 | ||
|
|
3db9c65fe0 | ||
|
|
8be39359d9 | ||
|
|
ae601a48f1 | ||
|
|
1e90e0ba5b | ||
|
|
72a52629ab | ||
|
|
88a9ae48ca | ||
|
|
5e71e30bc3 | ||
|
|
3060759f6c | ||
|
|
38ffba9405 | ||
|
|
98fd98de28 | ||
|
|
0f5f76ac6a | ||
|
|
7a8ffe297c | ||
|
|
7c4a08c7cc | ||
|
|
547dcc3bde | ||
|
|
4ca10e45e5 | ||
|
|
13458a16eb | ||
|
|
f779b3ac80 | ||
|
|
d85a2f84f3 | ||
|
|
8acdcfb935 | ||
|
|
aecfe64819 | ||
|
|
47113d3037 | ||
|
|
23eb6ff754 | ||
|
|
1d031c5ab1 | ||
|
|
e497312bc0 | ||
|
|
686ff21061 | ||
|
|
f330c9c0d7 | ||
|
|
2e4c88a577 | ||
|
|
1fd58faac1 | ||
|
|
99255b7ce9 | ||
|
|
829368c080 | ||
|
|
84146a9c2a | ||
|
|
479d5147dc | ||
|
|
d35c767769 | ||
|
|
89109259c5 | ||
|
|
7a391b598f | ||
|
|
7910b8dfea | ||
|
|
da88b95496 | ||
|
|
8b809e8edc | ||
|
|
6d95e354aa | ||
|
|
1657f12bed | ||
|
|
4038a0d430 | ||
|
|
a8a8701ab0 | ||
|
|
52d432be52 | ||
|
|
0518d30f9d | ||
|
|
c66e4be3b7 | ||
|
|
82931b31cf | ||
|
|
1bc41f396e | ||
|
|
6b4ff3a368 | ||
|
|
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 |
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.pics" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.pics" >> $GITHUB_ENV
|
||||
|
||||
- name: Update rudub definition
|
||||
uses: mikefarah/yq@master
|
||||
|
||||
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'
|
||||
|
||||
|
||||
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)
|
||||
@@ -82,6 +83,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Mac Torrents Download
|
||||
* Magnet Cat
|
||||
* MagnetDownload
|
||||
* Magnetz
|
||||
* MegaPeer
|
||||
* MejorTorrent
|
||||
* Mikan
|
||||
@@ -95,7 +97,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* Nyaa.si
|
||||
* OneJAV
|
||||
* OxTorrent
|
||||
* OxTorrent-vip
|
||||
* OpenSharing
|
||||
* PC-torrent
|
||||
* Pirate's Paradise
|
||||
@@ -131,9 +132,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* TorrentProject2
|
||||
* TorrentQQ (토렌트큐큐)
|
||||
* Torrents.csv
|
||||
* TorrentSir (토렌트썰)
|
||||
* Torrentsome (토렌트썸)
|
||||
* torrentssg (토렌트쓱)
|
||||
* Torrenttip (토렌트팁)
|
||||
* TrahT
|
||||
* U3C3
|
||||
@@ -239,6 +238,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 +269,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* BIT-HDTV
|
||||
* Bitded
|
||||
* bitGAMER
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen
|
||||
* Bitpalace
|
||||
* BitPorn
|
||||
@@ -290,6 +289,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* BTSCHOOL
|
||||
* BWTorrents
|
||||
* BYRBT
|
||||
* cangbaoge (CBG)
|
||||
* CapybaraBR
|
||||
* Carp-Hunter
|
||||
* Carpathians
|
||||
@@ -387,17 +387,18 @@ Prior versions of Jackett are no longer supported.
|
||||
* HDU
|
||||
* Hebits (HB)
|
||||
* HellasHut
|
||||
* HELLENIC-HD
|
||||
* HHanClub
|
||||
* HHD
|
||||
* HomePornTorrents (HPT)
|
||||
* House of Devil
|
||||
* HQMusic
|
||||
* HUDBT (蝴蝶) [![(invite needed)][inviteneeded]](#)
|
||||
* ilolicon PT
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* INFINITY [PAY2DL] [![(invite needed)][inviteneeded]](#)
|
||||
* InfinityHD
|
||||
* Infire
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
@@ -413,6 +414,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* KrazyZone
|
||||
* Kufei (库非)
|
||||
* Kufirc
|
||||
* lajidui
|
||||
* Last Digital Underground (LDU)
|
||||
* LastFiles (LF)
|
||||
* Lat-Team
|
||||
@@ -513,6 +515,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
|
||||
@@ -522,9 +525,10 @@ Prior versions of Jackett are no longer supported.
|
||||
* 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]](#)
|
||||
@@ -558,7 +562,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* The Vault (TVBZ)
|
||||
* The-New-Fun
|
||||
* TheLeachZone (TLZ)
|
||||
* ThePiratedShip
|
||||
* TJUPT (北洋园PT)
|
||||
* TLFBits [![(invite needed)][inviteneeded]](#)
|
||||
* TmGHuB (TH) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -587,7 +590,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]](#)
|
||||
@@ -796,7 +799,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`.
|
||||
|
||||
@@ -44,70 +44,70 @@ stages:
|
||||
matrix:
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2022
|
||||
imageName: windows-2025
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
archiveType: zip
|
||||
artifactName: Jackett.Binaries.Windows.zip
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-13
|
||||
imageName: macOS-15
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
macOSARM64:
|
||||
buildDescription: macOS ARM64
|
||||
imageName: macOS-13
|
||||
imageName: macOS-15
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.macOSARM64.tar.gz
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
LinuxARM32:
|
||||
buildDescription: Linux ARM32
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-arm
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxARM32.tar.gz
|
||||
LinuxARM64:
|
||||
buildDescription: Linux ARM64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxARM64.tar.gz
|
||||
LinuxMuslAMDx64:
|
||||
buildDescription: Linux musl AMD x64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslAMDx64.tar.gz
|
||||
LinuxMuslARM32:
|
||||
buildDescription: Linux musl ARM32
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM32.tar.gz
|
||||
LinuxMuslARM64:
|
||||
buildDescription: Linux musl ARM64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM64.tar.gz
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
@@ -231,7 +231,7 @@ stages:
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy Mono Specific Scripts
|
||||
condition: and(succeeded(), startsWith(variables['buildDescription'], 'Mono'))
|
||||
condition: and(succeeded(), eq(variables['buildDescription'], 'Mono'))
|
||||
inputs:
|
||||
SourceFolder: $(Build.SourcesDirectory)
|
||||
contents: |
|
||||
@@ -269,7 +269,7 @@ stages:
|
||||
# https://github.com/Jackett/Jackett/issues/3547
|
||||
- task: PowerShell@2
|
||||
displayName: Patch Mono Build (Mono only)
|
||||
condition: and(succeeded(), startsWith(variables['buildDescription'], 'Mono'))
|
||||
condition: and(succeeded(), eq(variables['buildDescription'], 'Mono'))
|
||||
inputs:
|
||||
workingDirectory: $(Build.BinariesDirectory)/Jackett
|
||||
targetType: inline
|
||||
@@ -329,7 +329,7 @@ stages:
|
||||
- job: Linting_Dotnet
|
||||
displayName: Linting Dotnet
|
||||
pool:
|
||||
vmImage: ubuntu-22.04
|
||||
vmImage: ubuntu-24.04
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
@@ -362,7 +362,7 @@ stages:
|
||||
- job: Linting_YAML
|
||||
displayName: Linting YAML
|
||||
pool:
|
||||
vmImage: ubuntu-22.04
|
||||
vmImage: ubuntu-24.04
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
@@ -382,7 +382,7 @@ stages:
|
||||
- job: Validate_YAML_Schema
|
||||
displayName: Validate YAML Schema
|
||||
pool:
|
||||
vmImage: ubuntu-22.04
|
||||
vmImage: ubuntu-24.04
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
@@ -421,22 +421,22 @@ stages:
|
||||
matrix:
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2022
|
||||
imageName: windows-2025
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-13
|
||||
imageName: macOS-15
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
buildDescription: LinuxAMDx64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
@@ -445,6 +445,15 @@ stages:
|
||||
steps:
|
||||
- checkout: self
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Install Mono (Mono only)
|
||||
condition: and(succeeded(), eq(variables['buildDescription'], 'Mono'))
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
sudo apt update
|
||||
sudo apt install mono-complete
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
inputs:
|
||||
@@ -514,25 +523,25 @@ stages:
|
||||
matrix:
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2022
|
||||
imageName: windows-2025
|
||||
artifactName: Jackett.Binaries.Windows.zip
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-13
|
||||
imageName: macOS-15
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
imageName: ubuntu-24.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
@@ -542,6 +551,15 @@ stages:
|
||||
steps:
|
||||
- checkout: self
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Install Mono (Mono only)
|
||||
condition: and(succeeded(), eq(variables['buildDescription'], 'Mono'))
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: |
|
||||
sudo apt update
|
||||
sudo apt install mono-complete
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifacts for integration tests
|
||||
inputs:
|
||||
@@ -596,7 +614,7 @@ stages:
|
||||
workspace:
|
||||
clean: all
|
||||
pool:
|
||||
vmImage: ubuntu-22.04
|
||||
vmImage: ubuntu-24.04
|
||||
steps:
|
||||
- checkout: self
|
||||
|
||||
|
||||
@@ -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.10 2025-10-30
|
||||
|
||||
@@ -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,57 +32,55 @@ caps:
|
||||
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
|
||||
- {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
|
||||
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
|
||||
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference/Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion and Spirituality"}
|
||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion & Spirituality"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
||||
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
||||
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
||||
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
|
||||
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports/Fitness"}
|
||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports & Fitness"}
|
||||
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
||||
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy/Paranormal"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy & Paranormal"}
|
||||
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
||||
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action/Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult/Erotica"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action & Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult & Erotica"}
|
||||
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography/Memoirs"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography & Memoirs"}
|
||||
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Childrens"}
|
||||
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
||||
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime/Thriller"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime & Thriller"}
|
||||
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
||||
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
|
||||
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
||||
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History/Documentary"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History & Documentary"}
|
||||
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
||||
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
||||
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
||||
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
||||
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
|
||||
- {id: 580, cat: Books/EBook, desc: "[E] Non-Fiction"}
|
||||
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
|
||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference/Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion and Spirituality"}
|
||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference & Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion & Spirituality"}
|
||||
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
||||
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi/Apocalyptic"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi & Apocalyptic"}
|
||||
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
|
||||
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports/Fitness"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports & Fitness"}
|
||||
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
|
||||
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy/Paranormal"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy & Paranormal"}
|
||||
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
||||
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Young Children"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -134,7 +132,7 @@ search:
|
||||
|
||||
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
||||
categorydesc:
|
||||
selector: div[data-tid] > img
|
||||
selector: img[src^="./pic/caticons"]
|
||||
attribute: alt
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
|
||||
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
|
||||
|
||||
@@ -108,7 +108,6 @@ search:
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name, description, both, uploader
|
||||
search_type: name
|
||||
searchin: title
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
|
||||
|
||||
@@ -1,43 +1,32 @@
|
||||
---
|
||||
id: ilolicon
|
||||
name: ilolicon PT
|
||||
description: "ilolicon PT is a CHINESE Private Torrent Tracker for LOLICON / MOVIES / 3X"
|
||||
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
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://share.ilolicon.com/
|
||||
- https://cangbao.ge/
|
||||
|
||||
caps:
|
||||
# dont forget to update the path categories in the search block
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影 (Movie)", default: true}
|
||||
- {id: 402, cat: TV, desc: "电视剧(TV Series)", default: true}
|
||||
- {id: 430, cat: TV, desc: "综艺(TV Show)", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "动画 (Animation)", default: true}
|
||||
- {id: 408, cat: Audio, desc: "音乐 (Music)", default: true}
|
||||
- {id: 410, cat: Audio/Video, desc: "舞台演出 (Stage Performance)", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "纪录片 (Documentary)", default: true}
|
||||
- {id: 412, cat: Console, desc: "游戏 (Game)", default: true}
|
||||
- {id: 413, cat: PC, desc: "软件 (Software)", default: true}
|
||||
- {id: 411, cat: Other, desc: "漫画/CG杂图/动漫杂志 (Photo)", default: true}
|
||||
- {id: 418, cat: XXX/ImageSet, desc: "写真 (Photography)", default: false}
|
||||
- {id: 429, cat: XXX/Other, desc: "音声 (Audio)", default: false}
|
||||
- {id: 428, cat: XXX/Other, desc: "H-游戏 (H-Games)", default: false}
|
||||
- {id: 427, cat: XXX/ImageSet, desc: "H-CG杂图 (H-CG Miscellaneous Pictures)", default: false}
|
||||
- {id: 426, cat: XXX/Other, desc: "H-3D同人动画 (H-3D Doujin Animation)", default: false}
|
||||
- {id: 425, cat: XXX/Other, desc: "H-2D同人动画 (H-2D Doujin Animation)", default: false}
|
||||
- {id: 424, cat: XXX/Other, desc: "H-漫画 (H-Manga)", default: false}
|
||||
- {id: 423, cat: XXX/Other, desc: "里番 (Riban)", default: false}
|
||||
- {id: 420, cat: XXX, desc: "AV有码 (AV Censored)", default: false}
|
||||
- {id: 419, cat: XXX, desc: "AV无码 (AV uncensored)", default: false}
|
||||
- {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, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
@@ -68,14 +57,14 @@ settings:
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.</br>Choosing more may cause the web site to fail to deliver complete results.
|
||||
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: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
||||
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 I could not get the form method to work when I first created the indexer, some hidden security check
|
||||
# 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 }}"
|
||||
@@ -86,9 +75,6 @@ login:
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 430, 405, 408, 410, 404, 412, 413, 411]
|
||||
- path: special.php
|
||||
categories: [418, 429, 428, 427, 426, 425, 424, 423, 422, 420, 419]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
@@ -105,7 +91,7 @@ search:
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -162,11 +148,13 @@ search:
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
optional: true
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
@@ -181,7 +169,12 @@ search:
|
||||
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) td:nth-child(2)
|
||||
remove: a, b, font, img
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
@@ -27,19 +27,16 @@ caps:
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: useragent
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the cyanbug Web Site. Otherwise just leave it empty."
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info_useragent
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -70,26 +67,10 @@ settings:
|
||||
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 180 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 90 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 7 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
message:
|
||||
selector: td.text
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -112,6 +93,9 @@ search:
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -188,10 +188,10 @@ search:
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 3 days or 1:1
|
||||
# global MR is 0.8 but torrents must be seeded for 6 days or 1:1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# 6 days (as seconds = 6 x 24 x 60 x 60)
|
||||
text: 518400
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
144
src/Jackett.Common/Definitions/dasunerwartete-api.yml
Normal file
@@ -0,0 +1,144 @@
|
||||
---
|
||||
id: dasunerwartete-api
|
||||
name: Das Unerwartete (API)
|
||||
description: "Das Unerwartete (D-U) is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL. This is the API version."
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://dasunerwartete.biz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 145, cat: Movies, desc: "Filme > DRG"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Filme > SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Filme > HD"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filme > UHD"}
|
||||
- {id: 140, cat: Movies/BluRay, desc: "Filme > BluRay"}
|
||||
- {id: 143, cat: TV/Anime, desc: "Filme > Anime"}
|
||||
- {id: 138, cat: Movies, desc: "Filme > Packs"}
|
||||
- {id: 148, cat: Movies, desc: "Filme > Packs UHD"}
|
||||
- {id: 60, cat: TV/SD, desc: "Serien > SD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Serien > HD"}
|
||||
- {id: 139, cat: TV/UHD, desc: "Serien > UHD"}
|
||||
- {id: 144, cat: TV/Anime, desc: "Serien > Anime"}
|
||||
- {id: 59, cat: TV, desc: "Serien > Packs"}
|
||||
- {id: 147, cat: TV, desc: "Serien > Packs UHD"}
|
||||
- {id: 110, cat: Audio/MP3, desc: "Audio > MP3"}
|
||||
- {id: 48, cat: Audio/Lossless, desc: "Audio > Flac"}
|
||||
- {id: 52, cat: Audio, desc: "Audio > Pack"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Audio > Hörbuch"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio > Videos"}
|
||||
- {id: 12, cat: PC/0day, desc: "Apps > Windows"}
|
||||
- {id: 125, cat: PC/Mac, desc: "Apps > Mac-OSX"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "Apps > Mobil"}
|
||||
- {id: 141, cat: PC, desc: "Apps > Other"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku > SD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Doku > HD"}
|
||||
- {id: 123, cat: TV/Documentary, desc: "Doku > Reihe"}
|
||||
- {id: 126, cat: PC/Mobile-Other, desc: "Spiel > Mobil"}
|
||||
- {id: 17, cat: PC/Games, desc: "Spiel > PC"}
|
||||
- {id: 24, cat: Console, desc: "Spiel > Konsole"}
|
||||
- {id: 121, cat: Console, desc: "Spiel > Wimmelbild"}
|
||||
- {id: 61, cat: TV/Sport, desc: "Sport > HD"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport > SD"}
|
||||
- {id: 96, cat: Books/Mags, desc: "ePaper > Zeitungen"}
|
||||
- {id: 136, cat: Books/EBook, desc: "ePaper > E-Book"}
|
||||
- {id: 137, cat: Books/Comics, desc: "ePaper > Comics"}
|
||||
- {id: 76, cat: XXX/SD, desc: "XXX > SD"}
|
||||
- {id: 73, cat: XXX/x264, desc: "XXX > HD"}
|
||||
- {id: 75, cat: XXX/Pack, desc: "XXX > Pack"}
|
||||
- {id: 142, cat: XXX/ImageSet, desc: "XXX > Pic´s"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Internal > Film SD"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Internal > Film HD"}
|
||||
- {id: 131, cat: TV/SD, desc: "Internal > Serien SD"}
|
||||
- {id: 130, cat: TV/HD, desc: "Internal > Serien HD"}
|
||||
- {id: 132, cat: Other, desc: "Internal > Sonstiges"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find your API Key by accessing your <a href=\"https://dasunerwartete.biz/\" target=\"_blank\">Das Unerwartete</a> profile page and look for the <b>API-Key:</b> tag."
|
||||
- name: onlyupload
|
||||
type: checkbox
|
||||
label: Search OnlyUpload
|
||||
default: false
|
||||
- name: info_free
|
||||
type: info
|
||||
label: About OnlyUpload at D-U
|
||||
default: "OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech)."
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: api.php
|
||||
method: get
|
||||
response:
|
||||
type: xml
|
||||
inputs:
|
||||
apikey: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
q: "{{ .Query.Keywords }}"
|
||||
imdbid: "{{ .Query.IMDBID }}"
|
||||
tmdbid: "{{ .Query.TMDBID }}"
|
||||
free: "{{ if .Config.onlyupload }}yes{{ else }}{{ end }}"
|
||||
page: 1
|
||||
|
||||
rows:
|
||||
selector: item
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
title:
|
||||
selector: title
|
||||
_id:
|
||||
selector: guid
|
||||
details:
|
||||
text: "details.php?id={{ .Result._id }}"
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&", "&"]
|
||||
size:
|
||||
selector: size
|
||||
date:
|
||||
# Thu, 30 Oct 2025 00:19:02 +0100
|
||||
selector: pubDate
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["+0100", "+01:00"]
|
||||
- name: dateparse
|
||||
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
selector: tmdb
|
||||
_onlyup:
|
||||
selector: free_button:contains(Only Upload)
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._onlyup }}0{{ else }}1{{ end }}"
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1.5 days (as seconds = 1.5 x 24 x 60 x 60)
|
||||
text: 129600
|
||||
# API XML
|
||||
@@ -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
|
||||
|
||||
@@ -67,6 +67,7 @@ caps:
|
||||
- {id: 347, cat: Books/EBook, desc: "Medical"}
|
||||
- {id: 348, cat: Books/EBook, desc: "Mathematics"}
|
||||
- {id: 363, cat: Books/EBook, desc: "Sheet Music"}
|
||||
- {id: 366, cat: Books/EBook, desc: "Astronomy"}
|
||||
# Tech/Computers
|
||||
- {id: 331, cat: Books/EBook, desc: "Electronics"}
|
||||
- {id: 336, cat: Books/EBook, desc: "Video Games"}
|
||||
@@ -80,6 +81,7 @@ caps:
|
||||
- {id: 329, cat: Books/EBook, desc: "Motorcars/Repairs"}
|
||||
- {id: 330, cat: Books/EBook, desc: "D.I.Y"}
|
||||
- {id: 332, cat: Books/EBook, desc: "Trivia/Quiz"}
|
||||
- {id: 367, cat: Books/EBook, desc: "Health & Fitness"}
|
||||
# Non Fict/Ref
|
||||
- {id: 285, cat: Books/EBook, desc: "General Non-fiction"}
|
||||
- {id: 289, cat: Books/EBook, desc: "Autobiography/Memoir"}
|
||||
@@ -91,6 +93,7 @@ caps:
|
||||
- {id: 351, cat: Books/EBook, desc: "Religion"}
|
||||
- {id: 358, cat: Books/EBook, desc: "History"}
|
||||
- {id: 362, cat: Books/EBook, desc: "Politics"}
|
||||
- {id: 368, cat: Books/EBook, desc: "Music"}
|
||||
# Military
|
||||
- {id: 287, cat: Books/EBook, desc: "WW1"}
|
||||
- {id: 288, cat: Books/EBook, desc: "WW2"}
|
||||
|
||||
@@ -37,12 +37,14 @@ 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}
|
||||
- {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
|
||||
- {id: Movie clips, cat: Movies, desc: Movies clips}
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
- {id: Music videos, cat: Audio/Video, desc: Music Videos}
|
||||
- {id: NDS, cat: Console/NDS, desc: Games NDS}
|
||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
||||
@@ -57,6 +59,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}
|
||||
|
||||
@@ -13,12 +13,12 @@ caps:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 10, cat: TV, desc: "TV Pack"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
||||
- {id: 5, cat: PC/0day, desc: "Apps"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 11, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 14, cat: Other, desc: "Tutorials"}
|
||||
- {id: 11, cat: Other, desc: "Assorted"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -231,4 +231,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.7 2025-09-24
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
|
||||
@@ -19,7 +19,6 @@ caps:
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
|
||||
@@ -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
|
||||
|
||||
190
src/Jackett.Common/Definitions/hellenic-hd-api.yml
Normal file
@@ -0,0 +1,190 @@
|
||||
---
|
||||
id: hellenic-hd-api
|
||||
name: HELLENIC-HD (API)
|
||||
description: "HELLENIC-HD is a GREEK Private Torrent Tracker for MOVIES / TV"
|
||||
language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hellenic-hd.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://hellenic-hd.cc/\" target=\"_blank\">HELLENIC-HD</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Accounts that have not logged in for 60 days will be disabled, and may be deleted shortly afterwards."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 14 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# json UNIT3D 9.1.6
|
||||
@@ -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"]
|
||||
|
||||
181
src/Jackett.Common/Definitions/huntorrent-bithorlo.yml
Normal file
@@ -0,0 +1,181 @@
|
||||
---
|
||||
id: huntorrent-bithorlo
|
||||
name: HunTorrent-bithorlo
|
||||
description: "HunTorrent-bithorlo is a HUNGARIAN Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://huntorrent.org/
|
||||
legacylinks:
|
||||
- https://huntorrent.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 51, cat: Movies/SD, desc: "Cam/Eng", default: true}
|
||||
- {id: 50, cat: Movies/SD, desc: "Cam/Hun", default: true}
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD/Eng", default: true}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVD/Hun", default: true}
|
||||
- {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng", default: true}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun", default: true}
|
||||
- {id: 40, cat: Books, desc: "E-book/Eng", default: true}
|
||||
- {id: 19, cat: Books, desc: "E-book/Hun", default: true}
|
||||
- {id: 29, cat: Movies/HD, desc: "HD/Eng", default: true}
|
||||
- {id: 28, cat: Movies/HD, desc: "HD/Hun", default: true}
|
||||
- {id: 15, cat: PC/Games, desc: "Játék/ISO", default: true}
|
||||
- {id: 38, cat: Console, desc: "Játék/Konzol", default: true}
|
||||
- {id: 37, cat: PC/Games, desc: "Játék/Rip", default: true}
|
||||
- {id: 20, cat: Other, desc: "Képek", default: true}
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
||||
- {id: 54, cat: PC/ISO, desc: "Prog/ISO", default: true}
|
||||
- {id: 23, cat: PC/0day, desc: "Prog/Rip", default: true}
|
||||
- {id: 33, cat: TV/SD, desc: "Sorozat/Eng", default: true}
|
||||
- {id: 52, cat: TV/HD, desc: "Sorozat/Eng/HD", default: true}
|
||||
- {id: 5, cat: TV/SD, desc: "Sorozat/Hun", default: true}
|
||||
- {id: 53, cat: TV/HD, desc: "Sorozat/Hun/HD", default: true}
|
||||
- {id: 4, cat: Movies/SD, desc: "Xvid/Eng", default: true}
|
||||
- {id: 3, cat: Movies/SD, desc: "Xvid/Hun", default: true}
|
||||
- {id: 12, cat: Audio, desc: "Zene/Eng", default: true}
|
||||
- {id: 13, cat: Audio, desc: "Zene/Hun", default: true}
|
||||
- {id: 9, cat: XXX/x264, desc: "XXX/Film", default: false}
|
||||
- {id: 10, cat: XXX/ImageSet, desc: "XXX/Kép", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_about
|
||||
type: info
|
||||
label: About this HunTorrent-bithorlo indexer
|
||||
default: This indexer accesses the HunTorrent WebSite with a focus on only the <b>bithorlo</b> torrent browser pages.
|
||||
- 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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
# using cookie method because login page has embedded Google reCAPTCHA
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href^="logout.php?k="]
|
||||
|
||||
search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
paths:
|
||||
# https://huntorrent.net/browse.php?&korhatar=0&incldead=1&xyz=yes&c28=1&c27=1&c6=1&c5=1&sort=4&type=desc
|
||||
- path: browse.php
|
||||
categories: [51, 50, 2, 1, 42, 41, 40, 19, 29, 28, 15, 38, 37, 20, 21, 54, 23, 33, 52, 53, 4, 3, 12, 13]
|
||||
inputs:
|
||||
viewMode: bithorlo
|
||||
- path: browse.php
|
||||
categories: [9, 10]
|
||||
inputs:
|
||||
viewMode: bithorloxxx
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
xyz: yes
|
||||
search: "{{ .Keywords }}"
|
||||
# Age Limit: 0 all, 1 no, 5 6, 2 12, 3 16, 4 18
|
||||
korhatar: 0
|
||||
# 0 active, 1 active+dead, 2 dead, 3 my uploads, 4 waiting for seed, 7 my bookmarks, 12 reseeded by me
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrent-table > tbody > tr[id^="torrent-main-"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a.torrent-title-link
|
||||
details:
|
||||
selector: a.torrent-title-link
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&hit=1", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: a[data-mufaj]
|
||||
attribute: data-mufaj
|
||||
description:
|
||||
selector: div.torrent-subtitle
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.genre }}</br>{{ .Result.genre }}{{ else }}{{ end }}"
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[data-poster]
|
||||
attribute: data-poster
|
||||
date:
|
||||
selector: a[data-added]
|
||||
attribute: data-added
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: a[data-size]
|
||||
attribute: data-size
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 2
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 32 hours (as seconds = 32 x 60 x 60)
|
||||
text: 115200
|
||||
# engine n/a
|
||||
@@ -5,6 +5,7 @@ description: "HunTorrent is a HUNGARIAN Semi-Private Torrent Tracker for MOVIES
|
||||
language: hu-HU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://huntorrent.org/
|
||||
legacylinks:
|
||||
@@ -12,34 +13,36 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 28, cat: Movies/SD, desc: "Cam/ENG"}
|
||||
- {id: 27, cat: Movies/SD, desc: "Cam/HUN"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDR/ENG"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVDR/HUN"}
|
||||
- {id: 6, cat: Movies/HD, desc: "HD/ENG"}
|
||||
- {id: 5, cat: Movies/HD, desc: "HD/HUN"}
|
||||
- {id: 29, cat: Movies, desc: "Mese/ENG"}
|
||||
- {id: 30, cat: Movies, desc: "Mese/HUN"}
|
||||
- {id: 8, cat: TV/SD, desc: "Sorozat/ENG"}
|
||||
- {id: 31, cat: TV/HD, desc: "Sorozat/HD/ENG"}
|
||||
- {id: 9, cat: TV/HD, desc: "Sorozat/HD/HUN"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/HUN"}
|
||||
- {id: 2, cat: Movies/SD, desc: "XviD/ENG"}
|
||||
- {id: 1, cat: Movies/SD, desc: "XviD/HUN"}
|
||||
- {id: 25, cat: Other, desc: "Kép"}
|
||||
- {id: 24, cat: Books, desc: "eBook/ENG"}
|
||||
- {id: 23, cat: Books, desc: "eBook/HUN"}
|
||||
- {id: 38, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 17, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 18, cat: PC/Games, desc: "Játék/RIP"}
|
||||
- {id: 19, cat: Console, desc: "Konzol"}
|
||||
- {id: 26, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 20, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 21, cat: PC/0day, desc: "Program/RIP"}
|
||||
- {id: 13, cat: Audio/Video, desc: "Klip/ENG"}
|
||||
- {id: 12, cat: Audio/Video, desc: "Klip/HUN"}
|
||||
- {id: 11, cat: Audio/MP3, desc: "MP3/ENG"}
|
||||
- {id: 10, cat: Audio/MP3, desc: "MP3/HUN"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Cam/Külföldi", default: true}
|
||||
- {id: 27, cat: Movies/SD, desc: "Cam/Magyar", default: true}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDR/Külföldi", default: true}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVDR/Magyar", default: true}
|
||||
- {id: 6, cat: Movies/HD, desc: "HD/Külföldi", default: true}
|
||||
- {id: 5, cat: Movies/HD, desc: "HD/Magyar", default: true}
|
||||
- {id: 2, cat: Movies/SD, desc: "XviD/Külföldi", default: true}
|
||||
- {id: 1, cat: Movies/SD, desc: "XviD/Magyar", default: true}
|
||||
- {id: 17, cat: PC/Games, desc: "Játék/ISO", default: true}
|
||||
- {id: 18, cat: PC/Games, desc: "Játék/RIP", default: true}
|
||||
- {id: 19, cat: Console, desc: "Konzol", default: true}
|
||||
- {id: 25, cat: Other, desc: "Kép", default: true}
|
||||
- {id: 24, cat: Books, desc: "eBook/Külföldi", default: true}
|
||||
- {id: 23, cat: Books, desc: "eBook/Magyar", default: true}
|
||||
- {id: 38, cat: Audio/Audiobook, desc: "Hangoskönyv", default: true}
|
||||
- {id: 26, cat: PC/Mobile-Other, desc: "Mobil", default: true}
|
||||
- {id: 20, cat: PC/ISO, desc: "Program/ISO", default: true}
|
||||
- {id: 21, cat: PC/0day, desc: "Program/RIP", default: true}
|
||||
- {id: 31, cat: TV/HD, desc: "Sorozat/HD/Külföldi", default: true}
|
||||
- {id: 9, cat: TV/HD, desc: "Sorozat/HD/Magyar", default: true}
|
||||
- {id: 8, cat: TV/SD, desc: "Sorozat/Külföldi", default: true}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Magyar", default: true}
|
||||
- {id: 13, cat: Audio/Video, desc: "Klip/Külföldi", default: true}
|
||||
- {id: 12, cat: Audio/Video, desc: "Klip/Külföldi", default: true}
|
||||
- {id: 11, cat: Audio/MP3, desc: "MP3/Külföldi", default: true}
|
||||
- {id: 10, cat: Audio/MP3, desc: "MP3/Magyar", default: true}
|
||||
- {id: 16, cat: XXX/DVD, desc: "XXX/DVD", default: false}
|
||||
- {id: 32, cat: XXX/x264, desc: "XXX/HD", default: false}
|
||||
- {id: 14, cat: XXX/ImageSet, desc: "XXX/Kép", default: false}
|
||||
- {id: 15, cat: XXX/SD, desc: "XXX/XVID", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -49,6 +52,10 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_about
|
||||
type: info
|
||||
label: About this HunTorrent indexer
|
||||
default: This indexer does not include the <b>bithorlo</b> torrent pages. Use the HunTorrent-bithorlo indexer to access those.
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
@@ -93,29 +100,30 @@ search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
paths:
|
||||
# https://huntorrent.net/browse.php?time=1616615308&korhatar=0&incldead=1&xyz=yes&c28=1&c27=1&c6=1&c5=1&sort=4&type=desc
|
||||
# https://huntorrent.net/browse.php?&korhatar=0&incldead=1&xyz=yes&c28=1&c27=1&c6=1&c5=1&sort=4&type=desc
|
||||
- path: browse.php
|
||||
categories: [28, 27, 4, 3, 6, 5, 2, 1, 17, 18, 19, 25, 24, 23, 38, 26, 20, 21, 31, 9, 8, 7, 13, 12, 11, 10]
|
||||
inputs:
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
- path: browse.php
|
||||
categories: [16, 32, 14, 15]
|
||||
inputs:
|
||||
viewMode: xxx
|
||||
search: "{{ .Keywords }}"
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
viewMode: ""
|
||||
xyz: yes
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# Age Limit: 0 all, 1 no, 5 6, 2 12, 3 16, 4 18
|
||||
korhatar: 0
|
||||
# 0 active, 1 active+dead, 2 dead, 3 my uploads, 4 waiting for seed, 7 my bookmarks, 12 reseeded by me
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# no freeleech atm
|
||||
# can search by genre but you need to know the id. &mufaj[]=20 for Romantikus
|
||||
|
||||
rows:
|
||||
selector: table[align="center"][cellpadding="5"] > tbody > tr[id^="torrent-main-"]
|
||||
selector: table.torrent-table > tbody > tr[id^="torrent-main-"]
|
||||
|
||||
fields:
|
||||
_id:
|
||||
selector: a.download-link
|
||||
attribute: data-id
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
@@ -123,25 +131,21 @@ search:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="#details_tr_"]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Név: ", ""]
|
||||
selector: a.torrent-title-link
|
||||
details:
|
||||
text: "details.php?id={{ .Result._id }}"
|
||||
download:
|
||||
selector: a.download-link
|
||||
selector: a.torrent-title-link
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["please_wait=1&", ""]
|
||||
- name: replace
|
||||
args: ["&please_wait=1", ""]
|
||||
args: ["&hit=1", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: "span[style=\"font-size: 6pt; font-weight: bold;\"]"
|
||||
selector: a[data-mufaj]
|
||||
attribute: data-mufaj
|
||||
description:
|
||||
selector: td:nth-child(2) div:nth-child(2)
|
||||
selector: div.torrent-subtitle
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.genre }}</br>{{ .Result.genre }}{{ else }}{{ end }}"
|
||||
@@ -149,21 +153,23 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents_data/posters/"]
|
||||
attribute: href
|
||||
selector: a[data-poster]
|
||||
attribute: data-poster
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
selector: a[data-added]
|
||||
attribute: data-added
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4) b
|
||||
selector: a[data-size]
|
||||
attribute: data-size
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2) a b
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
|
||||
@@ -5,6 +5,7 @@ description: "ilCorSaRoNeRo is an ITALIAN Public site for MOVIES / TV / GENERAL"
|
||||
language: it-IT
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# current (official?) domains list https://loiflix.shop/ilcorsaronero/
|
||||
links:
|
||||
- https://ilcorsaronero.link/
|
||||
- https://ilcorsaronero.torrentbay.st/
|
||||
|
||||
193
src/Jackett.Common/Definitions/infinityhd-api.yml
Normal file
@@ -0,0 +1,193 @@
|
||||
---
|
||||
id: infinityhd-api
|
||||
name: InfinityHD (API)
|
||||
description: "InfinityHD is a Private Torrent Tracker for MOVIES / TV / ANIME"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://infinityhd.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 4, cat: Movies/Other, desc: "Anime Movie"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://infinityhd.net/\" target=\"_blank\">InfinityHD</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Your account will be automatically disabled after 90 days of inactivity. After 120 days your account will be pruned and is permanently deleted."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.1.7
|
||||
@@ -6,12 +6,13 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://isohunt.ch/
|
||||
- https://isohunt.sh/
|
||||
legacylinks:
|
||||
- https://isohunt2.net/ # redirects to torrentproject.cc
|
||||
- https://isohunt.fun/ # redirects to torrentproject.cc
|
||||
- https://isohunt.tv/ # redirects to torrentproject.cc
|
||||
- https://isohunt.nz/
|
||||
- https://isohunt.ch/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -34,7 +34,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,30 +9,28 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.8800517.xyz/
|
||||
- https://www.8800518.xyz/
|
||||
- https://www.8800519.xyz/
|
||||
- https://www.8800520.xyz/
|
||||
legacylinks:
|
||||
- https://www.clm472.sbs/
|
||||
- https://www.8800498.xyz/
|
||||
- https://www.8800497.xyz/
|
||||
- https://www.8800499.xyz/
|
||||
- https://www.8800500.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
|
||||
- https://www.8800486.xyz
|
||||
- https://www.8800487.xyz
|
||||
- https://www.8800492.xyz/
|
||||
- https://www.8800493.xyz/
|
||||
- https://www.8800494.xyz/
|
||||
- https://www.8800490.xyz/
|
||||
- https://www.8800503.xyz/
|
||||
- https://www.8800504.xyz/
|
||||
- https://www.8800505.xyz/
|
||||
- https://www.8800506.xyz/
|
||||
- https://www.8800507.xyz/
|
||||
- https://www.8800508.xyz/
|
||||
- https://www.8800509.xyz/
|
||||
- https://www.8800510.xyz/
|
||||
- https://www.8800511.xyz/
|
||||
- https://www.8800514.xyz/
|
||||
- https://www.8800515.xyz/
|
||||
- https://www.8800516.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
61
src/Jackett.Common/Definitions/magnetz.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: magnetz
|
||||
name: Magnetz
|
||||
description: "Magnetz is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://magnetz.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_category_8000
|
||||
type: info_category_8000
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}*{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: a.list-group-item
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title:
|
||||
selector: h5
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: small
|
||||
seeders:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -156,7 +156,7 @@ search:
|
||||
img[src="/pic/categories/6.png"]: 44
|
||||
# img[src="/pic/categories/6.png"]: 43
|
||||
title:
|
||||
selector: td:nth-child(2) > div > a
|
||||
selector: a[onclick]
|
||||
_id:
|
||||
selector: a[onclick]
|
||||
attribute: onclick
|
||||
@@ -177,20 +177,20 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
_verified:
|
||||
selector: span.torrent-ok, span.torrent-unchecked
|
||||
case:
|
||||
|
||||
@@ -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/
|
||||
|
||||
|
||||
@@ -150,8 +150,17 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: dir
|
||||
title:
|
||||
title_default:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
|
||||
title_optional:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "return buildTable\\('([^']+)',"
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: a[href*="index.php?strWebValue=torrent&strWebAction=details&id="]
|
||||
attribute: href
|
||||
|
||||
@@ -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: " |- Футбол"}
|
||||
@@ -326,13 +326,12 @@ caps:
|
||||
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
|
||||
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
|
||||
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
|
||||
- {id: 1153, cat: Books, desc: " |- Боевики"}
|
||||
- {id: 453, cat: Books, desc: " |- Детективы"}
|
||||
- {id: 453, cat: Books, desc: " |- Боевики, Детективы, Триллеры"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
|
||||
- {id: 452, cat: Books, desc: " |- Исторические книги"}
|
||||
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
|
||||
- {id: 452, cat: Books, desc: " |- Историческая проза, Мифы и Легенды"}
|
||||
- {id: 451, cat: Books, desc: " |- Фантастика, Фэнтези"}
|
||||
- {id: 449, cat: Books, desc: " |- Современная поэзия и проза"}
|
||||
- {id: 1153, cat: Books, desc: " |- Классическая поэзия и проза"}
|
||||
- {id: 1347, cat: Books, desc: "Книги вне издательств, самиздат (все жанры)"}
|
||||
- {id: 482, cat: Books, desc: "Комиксы и Артбуки"}
|
||||
- {id: 483, cat: Books, desc: " |- Комиксы на русском языке"}
|
||||
@@ -430,8 +429,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,17 +443,23 @@ 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: 1362, cat: Audio, desc: " |- Hard Rock (Hi Res)"}
|
||||
- {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
- {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"}
|
||||
- {id: 1354, cat: Audio, desc: " |- Pop (Hi-Res)"}
|
||||
- {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
|
||||
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
|
||||
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
|
||||
@@ -468,26 +475,32 @@ caps:
|
||||
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
|
||||
- {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
|
||||
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
|
||||
- {id: 1365, cat: Audio, desc: " |- Downtempo, Ambient (Hi-Res)"}
|
||||
- {id: 1366, cat: Audio, desc: " |- Experimental, Industrial (Hi-Res)"}
|
||||
- {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
|
||||
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
|
||||
- {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
|
||||
- {id: 346, cat: Audio, desc: " |- Trance"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 1363, cat: Audio, desc: " |- Trance, House, Techno (Hi-Res)"}
|
||||
- {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
|
||||
- {id: 345, cat: Audio, desc: " |- House"}
|
||||
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 347, cat: Audio, desc: " |- Easy listening"}
|
||||
- {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
|
||||
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
|
||||
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
|
||||
- {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
|
||||
- {id: 1225, cat: Audio, desc: " |- IDM"}
|
||||
- {id: 1367, cat: Audio, desc: " |- Synthpop, New Wave, Retro (Hi-Res)"}
|
||||
- {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
|
||||
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
|
||||
- {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
|
||||
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
|
||||
- {id: 1364, cat: Audio, desc: " |- Drum'n'Bass, Breakbeat (Hi-Res)"}
|
||||
- {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
|
||||
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
|
||||
- {id: 1368, cat: Audio, desc: " |- Hardcore, Extreme (Hi-Res)"}
|
||||
- {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
|
||||
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
|
||||
- {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
|
||||
@@ -501,6 +514,7 @@ caps:
|
||||
- {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
|
||||
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
|
||||
- {id: 329, cat: Audio, desc: "East Asian Music"}
|
||||
- {id: 1361, cat: Audio, desc: " |- Asian Music (Hi-Res)"}
|
||||
- {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
|
||||
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
|
||||
- {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
|
||||
@@ -512,14 +526,17 @@ 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)"}
|
||||
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
|
||||
- {id: 1359, cat: Audio, desc: " |- Folk (Hi-Res)"}
|
||||
- {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
|
||||
- {id: 379, cat: Audio, desc: " |- Folk"}
|
||||
- {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
|
||||
- {id: 1178, cat: Audio, desc: " |- Other"}
|
||||
- {id: 1360, cat: Audio, desc: " |- OST (Hi-Res)"}
|
||||
- {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
|
||||
- {id: 360, cat: Audio, desc: " |- OST"}
|
||||
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
|
||||
@@ -694,7 +711,6 @@ caps:
|
||||
# temp, archive
|
||||
- {id: 892, cat: Other, desc: " |- Архив Мультфильмов"}
|
||||
- {id: 91, cat: Other, desc: " |- Архив Видео. Кино, Театра"}
|
||||
- {id: 150, cat: Other, desc: " |- Архив неактуальных Экранок и любого видео с Рекламой"}
|
||||
- {id: 668, cat: Other, desc: " |- Архив Классики кино и Старых фильмов до 90-х"}
|
||||
- {id: 1143, cat: Other, desc: " |- Архив Музыкального Видео"}
|
||||
- {id: 802, cat: Other, desc: " |- Архив Сериалов и Архив Старого многосерийного кино до 90-х"}
|
||||
@@ -710,15 +726,6 @@ caps:
|
||||
- {id: 184, cat: Other, desc: " |- Архив КПК и Мобильных устройств"}
|
||||
- {id: 1080, cat: Other, desc: " |- Архив 4Apple"}
|
||||
- {id: 180, cat: Other, desc: " |- Архив Медиа-Диз-Графика"}
|
||||
- {id: 145, cat: Other, desc: " |- Видео (temp)"}
|
||||
- {id: 146, cat: Other, desc: " |- Аниме (temp)"}
|
||||
- {id: 161, cat: Other, desc: " |- Книги (temp)"}
|
||||
- {id: 147, cat: Other, desc: " |- Музыка (temp)"}
|
||||
- {id: 148, cat: Other, desc: " |- Игры (temp)"}
|
||||
- {id: 149, cat: Other, desc: " |- Программы (temp)"}
|
||||
- {id: 183, cat: Other, desc: " |- КПК и Мобильные устройства (temp)"}
|
||||
- {id: 1145, cat: Other, desc: " |- 4Apple (temp)"}
|
||||
- {id: 171, cat: Other, desc: " |- Медиа-Диз-Графика (temp)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -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: " |- Футбол"}
|
||||
@@ -324,13 +324,12 @@ caps:
|
||||
- {id: 931, cat: Books, desc: " |- Собрания книг русскоязычных авторов"}
|
||||
- {id: 1152, cat: Books, desc: " |- Собрания книг иностранных авторов"}
|
||||
- {id: 455, cat: Books, desc: " |- Сатира, Юмор"}
|
||||
- {id: 1153, cat: Books, desc: " |- Боевики"}
|
||||
- {id: 453, cat: Books, desc: " |- Детективы"}
|
||||
- {id: 453, cat: Books, desc: " |- Боевики, Детективы, Триллеры"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая проза "}
|
||||
- {id: 452, cat: Books, desc: " |- Исторические книги"}
|
||||
- {id: 449, cat: Books, desc: " |- Классика, Проза, Поэзия"}
|
||||
- {id: 1063, cat: Books, desc: " |- Приключенческая литература"}
|
||||
- {id: 452, cat: Books, desc: " |- Историческая проза, Мифы и Легенды"}
|
||||
- {id: 451, cat: Books, desc: " |- Фантастика, Фэнтези"}
|
||||
- {id: 449, cat: Books, desc: " |- Современная поэзия и проза"}
|
||||
- {id: 1153, cat: Books, desc: " |- Классическая поэзия и проза"}
|
||||
- {id: 1347, cat: Books, desc: "Книги вне издательств, самиздат (все жанры)"}
|
||||
- {id: 482, cat: Books, desc: "Комиксы и Артбуки"}
|
||||
- {id: 483, cat: Books, desc: " |- Комиксы на русском языке"}
|
||||
@@ -428,8 +427,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,17 +441,23 @@ 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: 1362, cat: Audio, desc: " |- Hard Rock (Hi Res)"}
|
||||
- {id: 337, cat: Audio/Lossless, desc: " |- Hard Rock (Lossless)"}
|
||||
- {id: 338, cat: Audio, desc: " |- Hard Rock"}
|
||||
- {id: 1351, cat: Audio, desc: " |- Metal (Hi-Res)"}
|
||||
- {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"}
|
||||
- {id: 1354, cat: Audio, desc: " |- Pop (Hi-Res)"}
|
||||
- {id: 1165, cat: Audio/Lossless, desc: " |- Eurodance, Euro-House, Technopop (Lossless)"}
|
||||
- {id: 1166, cat: Audio, desc: " |- Eurodance, Euro-House, Technopop"}
|
||||
- {id: 1168, cat: Audio, desc: " |- Disco, Italo-Disco, Euro-Disco, Hi-NRG"}
|
||||
@@ -466,26 +473,32 @@ caps:
|
||||
- {id: 1328, cat: Audio, desc: " |- Psybient, Psychill, Psydub"}
|
||||
- {id: 1325, cat: Audio/Lossless, desc: " |- Downtempo, Trip-Hop, Lounge (Lossless)"}
|
||||
- {id: 1326, cat: Audio, desc: " |- Downtempo, Trip-Hop, Lounge"}
|
||||
- {id: 1365, cat: Audio, desc: " |- Downtempo, Ambient (Hi-Res)"}
|
||||
- {id: 1366, cat: Audio, desc: " |- Experimental, Industrial (Hi-Res)"}
|
||||
- {id: 1323, cat: Audio/Lossless, desc: " |- Ambient, Experimental, Modern Classical (Lossless)"}
|
||||
- {id: 1324, cat: Audio, desc: " |- Ambient, Experimental, Modern Classical"}
|
||||
- {id: 976, cat: Audio/Lossless, desc: " |- Trance (Lossless)"}
|
||||
- {id: 346, cat: Audio, desc: " |- Trance"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 1363, cat: Audio, desc: " |- Trance, House, Techno (Hi-Res)"}
|
||||
- {id: 977, cat: Audio/Lossless, desc: " |- House, Techno, Electro, Minimal (Lossless)"}
|
||||
- {id: 345, cat: Audio, desc: " |- House"}
|
||||
- {id: 349, cat: Audio, desc: " |- Techno, Electro, Minimal"}
|
||||
- {id: 1243, cat: Audio, desc: " |- Label-Packs"}
|
||||
- {id: 347, cat: Audio, desc: " |- Easy listening"}
|
||||
- {id: 979, cat: Audio/Lossless, desc: " |- Industrial, EBM, Dark Electro (Lossless)"}
|
||||
- {id: 673, cat: Audio, desc: " |- Experimental Electronic"}
|
||||
- {id: 671, cat: Audio, desc: " |- Industrial, EBM, Dark Electro"}
|
||||
- {id: 1224, cat: Audio/Lossless, desc: " |- IDM (Lossless)"}
|
||||
- {id: 1225, cat: Audio, desc: " |- IDM"}
|
||||
- {id: 1367, cat: Audio, desc: " |- Synthpop, New Wave, Retro (Hi-Res)"}
|
||||
- {id: 980, cat: Audio/Lossless, desc: " |- Synthpop, New Wave (Lossless)"}
|
||||
- {id: 672, cat: Audio, desc: " |- Synthpop, New Wave"}
|
||||
- {id: 1316, cat: Audio/Lossless, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage (Lossless)"}
|
||||
- {id: 1317, cat: Audio, desc: " |- Dubstep, Future Garage, Bass Music, UK Garage"}
|
||||
- {id: 1364, cat: Audio, desc: " |- Drum'n'Bass, Breakbeat (Hi-Res)"}
|
||||
- {id: 981, cat: Audio/Lossless, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat (Lossless)"}
|
||||
- {id: 344, cat: Audio, desc: " |- Drum'n'Bass, Jungle, Breaks, Breakbeat"}
|
||||
- {id: 1368, cat: Audio, desc: " |- Hardcore, Extreme (Hi-Res)"}
|
||||
- {id: 983, cat: Audio/Lossless, desc: " |- Hardstyle, Jumpstyle, Hardcore (Lossless)"}
|
||||
- {id: 984, cat: Audio, desc: " |- Hardstyle, Jumpstyle, Hardcore"}
|
||||
- {id: 982, cat: Audio/Lossless, desc: " |- Psychedelic, psytrance, fullon (Lossless)"}
|
||||
@@ -499,6 +512,7 @@ caps:
|
||||
- {id: 1185, cat: Audio/Lossless, desc: " |- RnB, Reggae (Lossless)"}
|
||||
- {id: 341, cat: Audio, desc: " |- RnB, Reggae"}
|
||||
- {id: 329, cat: Audio, desc: "East Asian Music"}
|
||||
- {id: 1361, cat: Audio, desc: " |- Asian Music (Hi-Res)"}
|
||||
- {id: 369, cat: Audio/Lossless, desc: " |- Asian Traditional, Ethnic (Lossless)"}
|
||||
- {id: 368, cat: Audio, desc: " |- Asian Traditional, Ethnic"}
|
||||
- {id: 1218, cat: Audio/Lossless, desc: " |- Asian Pop (Lossless)"}
|
||||
@@ -510,14 +524,17 @@ 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)"}
|
||||
- {id: 378, cat: Audio, desc: " |- New Age/Meditative/Relax"}
|
||||
- {id: 1359, cat: Audio, desc: " |- Folk (Hi-Res)"}
|
||||
- {id: 1158, cat: Audio/Lossless, desc: " |- Folk (Lossless)"}
|
||||
- {id: 379, cat: Audio, desc: " |- Folk"}
|
||||
- {id: 380, cat: Audio/Lossless, desc: " |- Other (Lossless)"}
|
||||
- {id: 1178, cat: Audio, desc: " |- Other"}
|
||||
- {id: 1360, cat: Audio, desc: " |- OST (Hi-Res)"}
|
||||
- {id: 361, cat: Audio/Lossless, desc: " |- OST (Lossless)"}
|
||||
- {id: 360, cat: Audio, desc: " |- OST"}
|
||||
- {id: 327, cat: Audio, desc: "Неофициальные сборники"}
|
||||
|
||||
@@ -8,12 +8,13 @@ description: "NorTorrent is a FRENCH Public tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
# to fetch current domain use https://www.rantop.org/
|
||||
links:
|
||||
- https://www.nortorrent.net/
|
||||
- https://www.nortorrent.town/
|
||||
- https://nortorrent-proxy.site/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.cc/
|
||||
- https://www.torrent-site.com/
|
||||
# domain lists no longer working
|
||||
@@ -22,11 +23,10 @@ legacylinks:
|
||||
- https://www.protege-liens.com/
|
||||
- https://www.protege-liens.net/
|
||||
- https://www.torrent.onl/
|
||||
- https://www.rantop.org/
|
||||
- https://torrent9.news/
|
||||
- https://www.site-torrent.com/
|
||||
- https://www.rantop.my/
|
||||
# actual legacylinks
|
||||
- https://www.torrent9.ing/
|
||||
- https://www.torrent9.run/
|
||||
- https://www.torrent9.cv/
|
||||
- https://www.torrent9.ke/
|
||||
@@ -41,6 +41,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
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
---
|
||||
id: oxtorrent-vip
|
||||
replaces:
|
||||
- oxtorrent
|
||||
- torrent911
|
||||
name: OxTorrent-vip
|
||||
description: "OxTorrent-vip is a FRENCH Public site for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
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/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
- https://www.site-torrent.cc/
|
||||
- https://www.torrent-site.com/
|
||||
# domain lists no longer working
|
||||
- https://www.protege-torrent.com/
|
||||
- https://www.torrent.ws/
|
||||
- https://www.protege-liens.com/
|
||||
- https://www.protege-liens.net/
|
||||
- https://www.torrent.onl/
|
||||
- https://www.rantop.org/
|
||||
- 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/
|
||||
- https://www.mega-torrent5.com/
|
||||
- https://www.zone-torrent1.com/
|
||||
- https://www.oxtorrent5.com/
|
||||
- hhttps://www.zone-torrent2.com/
|
||||
- https://www.zone-torrent2.com/
|
||||
- https://www.oxtorrent7.com/
|
||||
- https://www.mega-torrent6.com/
|
||||
- https://www.zone-torrent3.com/
|
||||
- https://www.oxtorrent8.com/
|
||||
- https://www.oxtorrent.diy/
|
||||
- https://www.zone-torrent.me/
|
||||
- https://www.mega-torrent.net/
|
||||
- https://www.oxtorrent.fyi/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: Films, cat: Movies, desc: "Movies"}
|
||||
- {id: Animes, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: Documentaires, cat: TV/Documentary, desc: "Documentaires"}
|
||||
- {id: Séries, cat: TV, desc: "TV"}
|
||||
- {id: Musiques, cat: Audio, desc: "Music"}
|
||||
- {id: Ebooks, cat: Books, desc: "Books"}
|
||||
- {id: Livres, cat: Books, desc: "Livres"}
|
||||
- {id: Logiciels, cat: PC, desc: "Software"}
|
||||
- {id: Applications, cat: PC, desc: "Applications"}
|
||||
- {id: Jeux-PC, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: Jeux-Consoles, cat: Console/XBox 360, desc: "Console Games"}
|
||||
- {id: Porno, cat: XXX, desc: "Porno"}
|
||||
- {id: Spectacles, cat: TV/Other, desc: "Spectacles"}
|
||||
- {id: Sports, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: Formations, cat: Other, desc: "Formations"}
|
||||
- {id: Vidéos, cat: TV, desc: "Vidéos"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTi FRENCH: MULTi FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTi ENGLISH: MULTi ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTi VOSTFR: MULTi VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
- selector: script:contains("magnet:?")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\s'(magnet:\\?.+?)';"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}derniers{{ end }}"
|
||||
keywordsfilters:
|
||||
# if searching for season packs swith S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
args: ["(?i)(S0)(\\d{1,2})$", "saison $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
|
||||
|
||||
rows:
|
||||
selector: table.table-hover > tbody > tr:has(td a[href])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1) i
|
||||
attribute: class
|
||||
title_phase1:
|
||||
selector: td:nth-child(1) a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b((19|20)\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details_href:
|
||||
selector: td:nth-child(1) a[href]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (/?detail/\d+)
|
||||
details_onclick:
|
||||
selector: td:nth-child(1) a[onclick]
|
||||
attribute: onclick
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (/?detail/\d+)
|
||||
details:
|
||||
text: "{{ or .Result.details_href .Result.details_onclick }}"
|
||||
download:
|
||||
text: "{{ .Result.details }}"
|
||||
size:
|
||||
selector: td:nth-child(2)
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
selector: td:nth-child(3)
|
||||
leechers:
|
||||
selector: td:nth-child(4)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
139
src/Jackett.Common/Definitions/phoenixproject.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
---
|
||||
id: phoenixproject
|
||||
name: Phoenix Project
|
||||
description: "Phoenix Project is a Private MacOS software tracker"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://phoenixproject.app/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC/Mac, desc: Applications}
|
||||
- {id: 2, cat: PC/Games, desc: Games}
|
||||
- {id: 3, cat: PC/Mobile-iOS, desc: IOS Applications}
|
||||
- {id: 4, cat: PC/Mobile-iOS, desc: IOS Games}
|
||||
- {id: 5, cat: Other, desc: Graphics}
|
||||
- {id: 6, cat: Audio, desc: Audio}
|
||||
- {id: 7, cat: Other, desc: Tutorials}
|
||||
- {id: 8, cat: Other, desc: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2fa_code
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Phoenix Project Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
twofa: "{{ .Config.2fa_code }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: div.main div.warning-login
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Keywords }}"
|
||||
# freetorrent: 0 normal, 1 freeleech, 2 neutral leech
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
group_results: 0
|
||||
action: advanced
|
||||
order: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
searchsubmit: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrent_table tr.torrent:has(a[title="Download"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="filter_cat"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[(\\d+?)\\]"
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: div.tags a[href*="taglist"]
|
||||
download:
|
||||
selector: span > a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.group_image > img
|
||||
attribute: src
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
selector: span.time.tooltip
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm zzz"
|
||||
size:
|
||||
selector: td.td_size
|
||||
files:
|
||||
selector: td.td_file_count
|
||||
seeders:
|
||||
selector: td.td_seeders
|
||||
leechers:
|
||||
selector: td.td_leechers
|
||||
grabs:
|
||||
selector: td.td_snatched
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
strong.torrent_label.tl_free: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.6
|
||||
# Gazelle
|
||||
@@ -124,9 +124,14 @@ search:
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?id={{ .Result._id }}"
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
|
||||
@@ -6,8 +6,9 @@ language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pterclub.com/
|
||||
- https://pterclub.net/
|
||||
legacylinks:
|
||||
- https://pterclub.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -12,44 +12,46 @@ 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: 82, cat: TV/Sport, desc: "Motorcycle Speedway"}
|
||||
- {id: 31, cat: TV/Sport, desc: "Nascar"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Other Bikes"}
|
||||
- {id: 69, cat: TV/Sport, desc: "Other Cars"}
|
||||
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
|
||||
- {id: 32, cat: TV/Sport, desc: "Stock Car Brazil"}
|
||||
- {id: 63, cat: TV/Sport, desc: "Supercars"}
|
||||
- {id: 83, cat: TV/Sport, desc: "Super GT"}
|
||||
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
|
||||
- {id: 57, cat: TV/Sport, desc: "WEC"}
|
||||
- {id: 50, cat: TV/Sport, desc: "WRC"}
|
||||
- {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 +60,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 +116,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 +130,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 +173,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 +188,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://oct10.rudub.mom/
|
||||
- https://nov12.rudub.pics/
|
||||
legacylinks:
|
||||
- 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://oct07.rudub.mom/
|
||||
- http://oct08.rudub.mom/
|
||||
- https://oct08.rudub.mom/
|
||||
- http://oct09.rudub.mom/
|
||||
- https://oct09.rudub.mom/
|
||||
- http://oct10.rudub.mom/
|
||||
- https://oct28.rudub.homes/
|
||||
- http://oct29.rudub.homes/
|
||||
- https://oct29.rudub.homes/
|
||||
- http://oct30.rudub.homes/
|
||||
- https://oct30.rudub.homes/
|
||||
- http://oct31.rudub.homes/
|
||||
- https://oct31.rudub.homes/
|
||||
- http://nov01.rudub.homes/
|
||||
- https://nov01.rudub.homes/
|
||||
- http://nov02.rudub.homes/
|
||||
- https://nov02.rudub.homes/
|
||||
- http://nov03.rudub.homes/
|
||||
- https://nov03.rudub.homes/
|
||||
- http://nov04.rudub.homes/
|
||||
- https://nov04.rudub.homes/
|
||||
- http://nov05.rudub.homes/
|
||||
- https://nov05.rudub.homes/
|
||||
- http://nov06.rudub.homes/
|
||||
- https://nov06.rudub.homes/
|
||||
- http://nov07.rudub.pics/
|
||||
- https://nov07.rudub.pics/
|
||||
- http://nov08.rudub.pics/
|
||||
- https://nov08.rudub.pics/
|
||||
- http://nov09.rudub.pics/
|
||||
- https://nov09.rudub.pics/
|
||||
- http://nov10.rudub.pics/
|
||||
- https://nov10.rudub.pics/
|
||||
- http://nov11.rudub.pics/
|
||||
- https://nov11.rudub.pics/
|
||||
- http://nov12.rudub.pics/
|
||||
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
|
||||
207
src/Jackett.Common/Definitions/sextorrent-api.yml
Normal file
@@ -0,0 +1,207 @@
|
||||
---
|
||||
id: sextorrent-api
|
||||
name: SexTorrent (API)
|
||||
description: "SexTorrent is a Private Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sextorrent.myds.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: XXX, desc: "Amateur"}
|
||||
- {id: 4, cat: XXX, desc: "Anal"}
|
||||
- {id: 5, cat: XXX, desc: "Asian"}
|
||||
- {id: 6, cat: XXX, desc: "BDSM"}
|
||||
- {id: 7, cat: XXX, desc: "Big-Tits"}
|
||||
- {id: 8, cat: XXX, desc: "Busty"}
|
||||
- {id: 9, cat: XXX, desc: "Creampie"}
|
||||
- {id: 10, cat: XXX, desc: "Fetish"}
|
||||
- {id: 11, cat: XXX, desc: "Mature"}
|
||||
- {id: 12, cat: XXX, desc: "Hardcore"}
|
||||
- {id: 13, cat: XXX, desc: "Old and Young"}
|
||||
- {id: 14, cat: XXX, desc: "Milf"}
|
||||
- {id: 15, cat: XXX, desc: "Oral"}
|
||||
- {id: 16, cat: XXX, desc: "Orgy Gang Bang"}
|
||||
- {id: 17, cat: XXX, desc: "Lesbian"}
|
||||
- {id: 18, cat: XXX, desc: "Teen"}
|
||||
- {id: 19, cat: XXX, desc: "HD - High.Definition"}
|
||||
- {id: 20, cat: XXX, desc: "Hentai"}
|
||||
- {id: 21, cat: XXX, desc: "Interracial"}
|
||||
- {id: 22, cat: XXX, desc: "Masturbate"}
|
||||
- {id: 23, cat: XXX, desc: "Music Video"}
|
||||
- {id: 24, cat: XXX, desc: "POV"}
|
||||
- {id: 25, cat: XXX, desc: "Shemale -TS- TransSex"}
|
||||
- {id: 26, cat: XXX, desc: "Straight"}
|
||||
- {id: 27, cat: XXX, desc: "Mega.Pack"}
|
||||
- {id: 28, cat: XXX, desc: "V.R. -Porn-"}
|
||||
- {id: 30, cat: XXX/ImageSet, desc: "Pictures"}
|
||||
- {id: 29, cat: XXX, desc: "SiteRip"}
|
||||
- {id: 31, cat: XXX, desc: "Foreign"}
|
||||
- {id: 32, cat: XXX, desc: "Latina"}
|
||||
- {id: 33, cat: XXX/Other, desc: "Games"}
|
||||
- {id: 34, cat: XXX, desc: "Magazines"}
|
||||
- {id: 35, cat: XXX, desc: "Feature"}
|
||||
- {id: 36, cat: XXX, desc: "Big-Ass"}
|
||||
- {id: 37, cat: XXX/Other, desc: "Other"}
|
||||
- {id: 38, cat: XXX, desc: "Cumshot"}
|
||||
- {id: 39, cat: XXX, desc: "Black"}
|
||||
- {id: 40, cat: XXX, desc: "Piss"}
|
||||
- {id: 41, cat: XXX, desc: "Homemade"}
|
||||
- {id: 42, cat: XXX, desc: "Pregnant"}
|
||||
- {id: 43, cat: XXX, desc: "Gay"}
|
||||
- {id: 1, cat: Movies, desc: "Movie"}
|
||||
- {id: 2, cat: TV, desc: "TV Show"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://sextorrent.myds.me/\" target=\"_blank\">SexTorrent</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
_internal:
|
||||
selector: internal
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
description:
|
||||
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 9.1.7
|
||||
@@ -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
|
||||
@@ -17,11 +17,10 @@ caps:
|
||||
- {id: 2, cat: TV, desc: "Serie TV"}
|
||||
- {id: 15, cat: Books/EBook, desc: "Ebook"}
|
||||
- {id: 17, cat: Books/Mags, desc: "Riviste e Giornali"}
|
||||
- {id: 19, cat: XXX, desc: "XXX"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 7, cat: PC/Games, desc: "Games"}
|
||||
- {id: 23, cat: PC, desc: "Software"}
|
||||
- {id: 24, cat: TV/Sport, desc: "EVENTI SPORTIVI"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Eventi Sportivi"}
|
||||
- {id: 25, cat: Other, desc: "Misc"}
|
||||
|
||||
modes:
|
||||
@@ -129,7 +128,7 @@ search:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace # replace special characters with " " (space)
|
||||
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
|
||||
args: ["[\\[!\"#$%&'()*+,\\/:;<=>?@\\^`{|}~]", " "]
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # replace multiple spaces
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: siambit
|
||||
name: SiamBIT
|
||||
description: "SiamBIT is a THAI Private Torrent Tracker for GENERAL"
|
||||
description: "SiamBIT is a THAI PAY2DL Private Torrent Tracker for GENERAL"
|
||||
language: th-TH
|
||||
type: private
|
||||
encoding: tis-620
|
||||
@@ -148,8 +148,7 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
# the last selector is temporary as the site has apparently not yet updated their html for the cat links ;-)
|
||||
selector: a[href^="viewno18sbx.php?cat="], a[href^="viewbrsb.php?cat="], a[href^="viewno18sb.php?cat="]
|
||||
selector: a[href*=".php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
@@ -162,59 +161,62 @@ search:
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[alt="Poster"]
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(7)
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyyHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
seeders:
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
leechers:
|
||||
seeders:
|
||||
selector: td:nth-child(11)
|
||||
leechers:
|
||||
selector: td:nth-child(12)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"td:nth-child(3):contains(\"100%\")": 0
|
||||
"td:nth-child(3):contains(\"95%\")": 0.05
|
||||
"td:nth-child(3):contains(\"90%\")": 0.1
|
||||
"td:nth-child(3):contains(\"85%\")": 0.15
|
||||
"td:nth-child(3):contains(\"80%\")": 0.2
|
||||
"td:nth-child(3):contains(\"75%\")": 0.25
|
||||
"td:nth-child(3):contains(\"70%\")": 0.3
|
||||
"td:nth-child(3):contains(\"65%\")": 0.35
|
||||
"td:nth-child(3):contains(\"60%\")": 0.4
|
||||
"td:nth-child(3):contains(\"55%\")": 0.45
|
||||
"td:nth-child(3):contains(\"50%\")": 0.5
|
||||
"td:nth-child(3):contains(\"45%\")": 0.55
|
||||
"td:nth-child(3):contains(\"40%\")": 0.6
|
||||
"td:nth-child(3):contains(\"35%\")": 0.65
|
||||
"td:nth-child(3):contains(\"30%\")": 0.7
|
||||
"td:nth-child(3):contains(\"25%\")": 0.75
|
||||
"td:nth-child(3):contains(\"20%\")": 0.8
|
||||
"td:nth-child(3):contains(\"15%\")": 0.85
|
||||
"td:nth-child(3):contains(\"10%\")": 0.9
|
||||
"td:nth-child(3):contains(\"5%\")": 0.95
|
||||
"td:nth-child(4):contains(\"100%\")": 0
|
||||
"td:nth-child(4):contains(\"95%\")": 0.05
|
||||
"td:nth-child(4):contains(\"90%\")": 0.1
|
||||
"td:nth-child(4):contains(\"85%\")": 0.15
|
||||
"td:nth-child(4):contains(\"80%\")": 0.2
|
||||
"td:nth-child(4):contains(\"75%\")": 0.25
|
||||
"td:nth-child(4):contains(\"70%\")": 0.3
|
||||
"td:nth-child(4):contains(\"65%\")": 0.35
|
||||
"td:nth-child(4):contains(\"60%\")": 0.4
|
||||
"td:nth-child(4):contains(\"55%\")": 0.45
|
||||
"td:nth-child(4):contains(\"50%\")": 0.5
|
||||
"td:nth-child(4):contains(\"45%\")": 0.55
|
||||
"td:nth-child(4):contains(\"40%\")": 0.6
|
||||
"td:nth-child(4):contains(\"35%\")": 0.65
|
||||
"td:nth-child(4):contains(\"30%\")": 0.7
|
||||
"td:nth-child(4):contains(\"25%\")": 0.75
|
||||
"td:nth-child(4):contains(\"20%\")": 0.8
|
||||
"td:nth-child(4):contains(\"15%\")": 0.85
|
||||
"td:nth-child(4):contains(\"10%\")": 0.9
|
||||
"td:nth-child(4):contains(\"5%\")": 0.95
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"td:nth-child(4):contains(\"x2\")": 2
|
||||
"td:nth-child(4):contains(\"x3\")": 3
|
||||
"td:nth-child(4):contains(\"x4\")": 4
|
||||
"td:nth-child(4):contains(\"x5\")": 5
|
||||
"td:nth-child(4):contains(\"x6\")": 6
|
||||
"td:nth-child(4):contains(\"x7\")": 7
|
||||
"td:nth-child(4):contains(\"x8\")": 8
|
||||
"td:nth-child(4):contains(\"x9\")": 9
|
||||
"td:nth-child(5):contains(\"x2\")": 2
|
||||
"td:nth-child(5):contains(\"x3\")": 3
|
||||
"td:nth-child(5):contains(\"x4\")": 4
|
||||
"td:nth-child(5):contains(\"x5\")": 5
|
||||
"td:nth-child(5):contains(\"x6\")": 6
|
||||
"td:nth-child(5):contains(\"x7\")": 7
|
||||
"td:nth-child(5):contains(\"x8\")": 8
|
||||
"td:nth-child(5):contains(\"x9\")": 9
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
|
||||
@@ -99,7 +99,10 @@ caps:
|
||||
- {id: 99, cat: TV/Sport, desc: "Darts"}
|
||||
- {id: 100, cat: TV/Sport, desc: "ESport"}
|
||||
- {id: 6, cat: TV/Sport, desc: "European Soccer"}
|
||||
- {id: 101, cat: TV/Sport, desc: "EuroCup"}
|
||||
- {id: 102, cat: TV/Sport, desc: "Ultimate Diskk"}
|
||||
- {id: 52, cat: TV/Sport, desc: "Field Hockey"}
|
||||
- {id: 103, cat: TV/Sport, desc: "Basketball Champions"}
|
||||
- {id: 58, cat: TV/Sport, desc: "UFC"}
|
||||
- {id: 57, cat: TV/Sport, desc: "NRL"}
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "The Geeks is a Private Torrent Tracker for Technology E-LEARNING"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- edf52a95960cbd7ca3c992e634cc087fa47df8c5 # Expired 23rd OCt 2025
|
||||
links:
|
||||
- https://thegeeks.click/
|
||||
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
---
|
||||
id: thepiratedship
|
||||
name: ThePiratedShip
|
||||
description: "ThePiratedShip is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://thepiratedship.co.uk/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# - {id: 8, cat: Movies/Other, desc: "Torrent Releases"}
|
||||
# - {id: 32, cat: Movies, desc: "Movies"}
|
||||
- {id: 10, cat: Movies/SD, desc: "Cams TS & TC/PPV/VOD/HDTV *Ratio Free*"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Screeners/R3/R5/R6/HDRip/Webrip/WEB-DL/Recodes"}
|
||||
- {id: 13, cat: Movies/HD, desc: "DVDRip/BRRip/BDRip"}
|
||||
- {id: 14, cat: Movies/DVD, desc: "DVDR"}
|
||||
- {id: 15, cat: Movies/UHD, desc: "High Definition MKV/MP4"}
|
||||
- {id: 16, cat: Movies/UHD, desc: "4k Ultra High Definition *Ratio Free*"}
|
||||
- {id: 107, cat: Movies, desc: "Boxsets"}
|
||||
- {id: 17, cat: Movies/Other, desc: "Movies Requests"}
|
||||
# - {id: 20, cat: TV, desc: "TV Shows"}
|
||||
- {id: 21, cat: TV, desc: "Sci-Fi / Supernatural / Horror"}
|
||||
- {id: 22, cat: TV, desc: "Comedy"}
|
||||
- {id: 23, cat: TV, desc: "Action/Adventure"}
|
||||
- {id: 24, cat: TV, desc: "Drama"}
|
||||
- {id: 25, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 26, cat: TV, desc: "Cartoons/Animation"}
|
||||
- {id: 27, cat: TV/Sport, desc: "Sport TV"}
|
||||
- {id: 28, cat: TV/Other, desc: "Misc TV"}
|
||||
- {id: 29, cat: TV/Other, desc: "TV Shows Requests"}
|
||||
# - {id: 33, cat: Audio, desc: "Music"}
|
||||
- {id: 34, cat: Audio, desc: "Rock/Heavy Metal/Alternative"}
|
||||
- {id: 38, cat: Audio, desc: "Album & Singles Packs"}
|
||||
- {id: 35, cat: Audio, desc: "Singles"}
|
||||
- {id: 36, cat: Audio, desc: "Pop albums"}
|
||||
- {id: 37, cat: Audio, desc: "Trance/Dance/House"}
|
||||
- {id: 39, cat: Audio, desc: "Drum & Bass/Breakbeat/Garage/Hardcore"}
|
||||
- {id: 40, cat: Audio, desc: "Golden Oldies/Easy Listening"}
|
||||
- {id: 41, cat: Audio, desc: "Reggae/DUB/SKA/2 Tone"}
|
||||
- {id: 42, cat: Audio, desc: "Hip-Hop/RnB/Soul"}
|
||||
- {id: 43, cat: Audio, desc: "Country/Folk"}
|
||||
- {id: 44, cat: Audio, desc: "Jazz 'n' Blues"}
|
||||
- {id: 45, cat: Audio, desc: "Classical"}
|
||||
- {id: 46, cat: Audio, desc: "Soundtracks"}
|
||||
- {id: 47, cat: Audio, desc: "Amateur Creations/Live DJ Sets etc/Karaoke"}
|
||||
- {id: 48, cat: Audio/Video, desc: "Music DVD & Videos"}
|
||||
- {id: 49, cat: Audio, desc: "Misc/Compilation albums"}
|
||||
- {id: 50, cat: Audio/Lossless, desc: "Lossless Format Albums"}
|
||||
# - {id: 54, cat: PC/Games, desc: "Games"}
|
||||
- {id: 55, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 56, cat: Console/XBox, desc: "X BOX"}
|
||||
- {id: 57, cat: Console/Other, desc: "Nintendo Switch"}
|
||||
- {id: 58, cat: Console/PS3, desc: "Playstation"}
|
||||
- {id: 59, cat: Console/PSP, desc: "SONY PSP"}
|
||||
- {id: 60, cat: Console/NDS, desc: "Nintendo DS"}
|
||||
- {id: 61, cat: PC/Games, desc: "DVDR Interactive Games & Quizzes"}
|
||||
- {id: 62, cat: PC/Mac, desc: "Mac & Other OS Games"}
|
||||
- {id: 63, cat: Console/Other, desc: "All Other Console Roms & Emulators"}
|
||||
# - {id: 67, cat: PC, desc: "Applications"}
|
||||
- {id: 68, cat: PC, desc: "Artistry"}
|
||||
- {id: 69, cat: PC, desc: "Internet & Web"}
|
||||
- {id: 70, cat: PC, desc: "Utilities"}
|
||||
- {id: 71, cat: PC, desc: "Sound & Vision"}
|
||||
- {id: 72, cat: PC, desc: "Misc Applications"}
|
||||
- {id: 73, cat: PC, desc: "Windows Operating Systems & MS Apps"}
|
||||
- {id: 74, cat: PC, desc: "Applications Requests"}
|
||||
# - {id: 97, cat: Other, desc: "Comics/Books/eBooks"}
|
||||
- {id: 100, cat: Books/Comics, desc: "Comics/Magazines"}
|
||||
- {id: 99, cat: Books/EBook, desc: "E Books"}
|
||||
- {id: 98, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: 109, cat: PC/Mobile-Other, desc: "Phone Applications"}
|
||||
- {id: 103, cat: Other, desc: "Inactive Torrents"}
|
||||
# - {id: 78, cat: Other, desc: "Practice Area"}
|
||||
- {id: 89, cat: Other, desc: "Test"}
|
||||
# undocumented
|
||||
- {id: 96, cat: Movies, desc: "Animation Releases"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must login at least once a month. Also, not downloading anything is considered being inactive (except if you're an uploader or VIP). Accounts that are inactive for 30 days are deleted unless you have told staff in advance."
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
login: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: 1
|
||||
_xfRedirect: ""
|
||||
selectorinputs:
|
||||
_xfToken:
|
||||
selector: input[name="_xfToken"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.blockMessage--error:contains(" not be found")
|
||||
- selector: div.blockMessage--error:contains("Incorrect password")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/index.php?account/preferences"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# supports only single cat search, so defaulting to all
|
||||
- path: "index.php?torrents/&freeleech={{ if .Config.freeleech }}1{{ else }}{{ end }}&filename={{ .Keywords }}"
|
||||
# imdb and tmdb not supported
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: table.dataList-table > tbody.normal-torrents > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/index.php?forums/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)/$
|
||||
title:
|
||||
selector: div.structItem-title a
|
||||
details:
|
||||
selector: li.structItem-startDate a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/index.php?attachments/"]
|
||||
attribute: href
|
||||
description:
|
||||
selector: a[href^="/index.php?forums/"]
|
||||
date:
|
||||
selector: time
|
||||
attribute: datetime
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.label--accent: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# XenForo
|
||||
@@ -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:
|
||||
|
||||
@@ -33,30 +33,37 @@ caps:
|
||||
- {id: 185, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
- {id: 168, cat: TV/Other, desc: "TV/Other"}
|
||||
- {id: 169, cat: TV/Other, desc: "TV/Boxset"}
|
||||
- {id: 191, cat: TV, desc: "TV/BluTv"}
|
||||
- {id: 192, cat: TV, desc: "TV/BluTv Series"}
|
||||
- {id: 193, cat: Movies, desc: "Movies/BluTv Film"}
|
||||
- {id: 188, cat: TV, desc: "TV/Netflix"}
|
||||
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
|
||||
- {id: 195, cat: TV, desc: "TV/Exxen"}
|
||||
- {id: 199, cat: TV, desc: "TV/GAİN"}
|
||||
- {id: 201, cat: TV, desc: "TV/Tabii"}
|
||||
- {id: 171, cat: Audio, desc: "Music"}
|
||||
- {id: 172, cat: Audio, desc: "Music/Turkish"}
|
||||
- {id: 173, cat: Audio, desc: "Music/Foreign"}
|
||||
- {id: 184, cat: Audio, desc: "Music/Discography"}
|
||||
- {id: 174, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 191, cat: TV, desc: "TV/Max"}
|
||||
- {id: 192, cat: TV, desc: "TV/Max Series"}
|
||||
- {id: 193, cat: Movies, desc: "Movies/Max Film"}
|
||||
- {id: 188, cat: TV, desc: "TV/Netflix"}
|
||||
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Netflix Film"}
|
||||
- {id: 195, cat: TV, desc: "TV/Exxen"}
|
||||
- {id: 195, cat: Movies, desc: "TV/Exxen"}
|
||||
- {id: 201, cat: TV, desc: "TV/Tabii"}
|
||||
- {id: 201, cat: Movies, desc: "TV/Tabii"}
|
||||
- {id: 199, cat: TV, desc: "TV/GAİN"}
|
||||
- {id: 199, cat: Movies, desc: "TV/GAİN"}
|
||||
- {id: 200, cat: TV, desc: "Movies/Disney+"}
|
||||
- {id: 200, cat: Movies, desc: "Movies/Disney+"}
|
||||
- {id: 198, cat: TV, desc: "Movies/Amazon Prime"}
|
||||
- {id: 198, cat: Movies, desc: "Movies/Amazon Prime"}
|
||||
- {id: 202, cat: TV, desc: "TV/Apple TV+"}
|
||||
- {id: 202, cat: Movies, desc: "TV/Apple TV+"}
|
||||
- {id: 175, cat: PC, desc: "Apps / Game / Graphics"}
|
||||
- {id: 176, cat: PC, desc: "Apps"}
|
||||
- {id: 177, cat: Other, desc: "Pictures"}
|
||||
- {id: 183, cat: Books/EBook, desc: "EBook"}
|
||||
- {id: 178, cat: Books/Technical, desc: "Training Sets"}
|
||||
- {id: 181, cat: Console, desc: "Playstation"}
|
||||
- {id: 179, cat: PC, desc: "OS"}
|
||||
- {id: 180, cat: PC/Games, desc: "PC/Games"}
|
||||
- {id: 181, cat: Console, desc: "Playstation"}
|
||||
- {id: 198, cat: Movies, desc: "Movies/Amazon Prime"}
|
||||
- {id: 200, cat: Movies, desc: "Movies/Disney+"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,17 +7,10 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq389.com/
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq393.com/
|
||||
- https://torrentegg83.com/
|
||||
legacylinks:
|
||||
- https://torrentegg65.com/
|
||||
- https://torrentqq374.com/
|
||||
- https://torrentegg66.com/
|
||||
- https://torrentqq375.com/
|
||||
- https://torrentegg67.com/
|
||||
- https://torrentqq376.com/
|
||||
- https://torrentegg68.com/
|
||||
- https://torrentqq377.com/
|
||||
- https://torrentqq378.com/
|
||||
- https://torrentegg69.com/
|
||||
- https://torrentqq379.com/
|
||||
@@ -39,6 +32,14 @@ legacylinks:
|
||||
- https://torrentegg77.com/
|
||||
- https://torrentqq388.com/
|
||||
- https://torrentegg78.com/
|
||||
- https://torrentqq389.com/
|
||||
- https://torrentegg79.com/
|
||||
- https://torrentqq390.com/
|
||||
- https://torrentegg80.com/
|
||||
- https://torrentqq391.com/
|
||||
- https://torrentegg81.com/
|
||||
- https://torrentqq392.com/
|
||||
- https://torrentegg82.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
---
|
||||
id: torrentsir
|
||||
name: TorrentSir
|
||||
description: "TorrentSir (토렌트썰) is a Public KOREAN tracker for Korean media."
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir176.com/
|
||||
legacylinks:
|
||||
- http://torrentsir165.com/
|
||||
- https://torrentsir165.com/
|
||||
- http://torrentsir166.com/
|
||||
- https://torrentsir166.com/
|
||||
- http://torrentsir167.com/
|
||||
- https://torrentsir167.com/
|
||||
- http://torrentsir168.com/
|
||||
- https://torrentsir168.com/
|
||||
- http://torrentsir169.com/
|
||||
- https://torrentsir169.com/
|
||||
- http://torrentsir170.com/
|
||||
- https://torrentsir170.com/
|
||||
- http://torrentsir171.com/
|
||||
- https://torrentsir171.com/
|
||||
- http://torrentsir172.com/
|
||||
- https://torrentsir172.com/
|
||||
- http://torrentsir173.com/
|
||||
- https://torrentsir173.com/
|
||||
- http://torrentsir174.com/
|
||||
- https://torrentsir174.com/
|
||||
- http://torrentsir175.com/
|
||||
- https://torrentsir175.com/
|
||||
- http://torrentsir176.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "gallery", cat: XXX, desc: "+19 (Adult)"}
|
||||
- {id: "ani", cat: TV, desc: "동영상 (Video)"}
|
||||
- {id: "game", cat: Console, desc: "기타 (Games)"}
|
||||
- {id: "tv", cat: TV, desc: "시사/교양 (TV)"}
|
||||
- {id: "netflix", cat: TV, desc: "넷플시리즈 (Netflix)"}
|
||||
- {id: "movie", cat: Movies, desc: "영화 (Movie)"}
|
||||
- {id: "drama", cat: TV, desc: "드라마 (Drama)"}
|
||||
- {id: "entertain", cat: TV, desc: "예능/오락 (Entertainment)"}
|
||||
- {id: "music", cat: Audio, desc: "음악 (Music)"}
|
||||
- {id: "notice", cat: Other, desc: "고객센터 (Notice)"}
|
||||
- {id: "child", cat: Other, desc: "고객센터 (Child)"}
|
||||
- {id: "lecture", cat: Books, desc: "도서/강좌 (Books)"}
|
||||
- {id: "util", cat: PC, desc: "유틸 (Software)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: h3.panel-title
|
||||
filters:
|
||||
- name: trim
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://torrentsir171.com/bbs/search.php?srows=100&gr_id=&sfl=wr_subject&stx=2025&sop=and
|
||||
- path: bbs/search.php
|
||||
allowEmptyInputs: true
|
||||
inputs:
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: wr_subject
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
# or, and
|
||||
sop: and
|
||||
|
||||
rows:
|
||||
selector: div.search-media div.media
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.media-heading a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: bo_table
|
||||
title:
|
||||
selector: div.media-heading a
|
||||
details:
|
||||
selector: div.media-heading a
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.media-heading a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.photo img
|
||||
attribute: src
|
||||
date:
|
||||
# 2021-01-29T20:44:20+09:00
|
||||
selector: time
|
||||
attribute: datetime
|
||||
size:
|
||||
text: "512 MB"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -9,13 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome221.com/
|
||||
legacylinks:
|
||||
- https://torrentsome201.com/
|
||||
- https://torrentsome202.com/
|
||||
- https://torrentsome203.com/
|
||||
- https://torrentsome204.com/
|
||||
- https://torrentsome205.com/
|
||||
- https://torrentsome206.com/
|
||||
- https://torrentsome207.com/
|
||||
- https://torrentsome208.com/
|
||||
@@ -26,6 +21,11 @@ legacylinks:
|
||||
- https://torrentsome213.com/
|
||||
- https://torrentsome214.com/
|
||||
- https://torrentsome215.com/
|
||||
- https://torrentsome216.com/
|
||||
- https://torrentsome217.com/
|
||||
- https://torrentsome218.com/
|
||||
- https://torrentsome219.com/
|
||||
- https://torrentsome220.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
---
|
||||
id: torrentssg
|
||||
name: torrentssg
|
||||
description: "torrentssg (토렌트쓱) is a Public KOREAN tracker for Korean media."
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://xn--sm2bw9uj0jb6a.com/
|
||||
links:
|
||||
- https://ssg1.torrentssg8.com/
|
||||
legacylinks:
|
||||
- https://torrentssg7.com/
|
||||
- https://torrentssg8.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "st01", cat: Movies, desc: "영화 (Movies)"}
|
||||
- {id: "st02", cat: Movies/Foreign, desc: "해외영화 (Foreign Movies)"}
|
||||
- {id: "st02_n", cat: Other, desc: "개봉예정작 (Upcoming Releases)"}
|
||||
- {id: "st03", cat: XXX, desc: "성인(19+)영화 (Adult Movies)"}
|
||||
- {id: "st04", cat: TV, desc: "드라마 (Drama)"}
|
||||
- {id: "st05", cat: TV/Foreign, desc: "해외드라마 (Foreign Drama)"}
|
||||
- {id: "st06", cat: TV, desc: "드라마완결 (Completed Drama)"}
|
||||
- {id: "st07", cat: TV, desc: "예능·방송 (Entertainment)"}
|
||||
- {id: "st09", cat: TV/Documentary, desc: "시사·다큐·교양 (Documentary)"}
|
||||
- {id: "st10", cat: TV/Sport, desc: "스포츠 (Sport)"}
|
||||
- {id: "st11", cat: TV, desc: "OTT·자막 (OTT-Subtitles)"}
|
||||
# - {id: "st12", cat: Other, desc: "자막 (Subtitles)"} # these are direct text files not torrents
|
||||
- {id: "st13", cat: TV/Anime, desc: "애니·만화 (Animation)"}
|
||||
- {id: "st14", cat: TV/Anime, desc: "애니완결 (Completed Animation)"}
|
||||
- {id: "st15", cat: TV, desc: "극장판 (Theatrical Version)"}
|
||||
- {id: "st16", cat: TV, desc: "키즈 (Kids)"}
|
||||
- {id: "st18", cat: Audio, desc: "음악 (Music)"}
|
||||
- {id: "st19", cat: Console, desc: "게임·유틸 (Games)"}
|
||||
- {id: "st20", cat: PC, desc: "유틸 (Software)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: ip_filtering
|
||||
type: info
|
||||
label: "IP Filtering"
|
||||
default: "torrentssg (토렌트쓱) blocks Non-South Korean IP addresses. A <b>FlareSolverr</b> error means your IP was not accepted."
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="/bbs/download.php?"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://ssg1.torrentssg8.com/bbs/search.php?bo_table=&sca=&sop=and&sfl=wr_subject%7C%7Cwr_content&stx=2025
|
||||
- path: bbs/search.php
|
||||
allowEmptyInputs: true
|
||||
inputs:
|
||||
bo_table: ""
|
||||
sca: ""
|
||||
# or, and
|
||||
sop: and
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: "wr_subject"
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
|
||||
rows:
|
||||
selector: div.search-media div.table-responsive table.table tbody tr:not(:has(a[href*="bo_table=st12"]))
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.list-img a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: bo_table
|
||||
title:
|
||||
selector: td.list-subject a
|
||||
details:
|
||||
selector: td.list-subject a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.list-subject a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: B
|
||||
date_ago:
|
||||
# time ago
|
||||
selector: td:last-child:contains("전")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["전", " ago"]
|
||||
- name: replace
|
||||
args: ["초", " seconds"]
|
||||
- name: replace
|
||||
args: ["분", " minutes"]
|
||||
- name: replace
|
||||
args: ["시간", " hours"]
|
||||
- name: replace
|
||||
args: ["일", " days"]
|
||||
- name: replace
|
||||
args: ["개월", " months"]
|
||||
- name: replace
|
||||
args: ["년", " years"]
|
||||
- name: timeago
|
||||
date_month:
|
||||
# 02.24
|
||||
selector: td:last-child:not(:contains("전"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MM.dd"
|
||||
date:
|
||||
text: "{{ if or .Result.date_ago .Result.date_month }}{{ or .Result.date_ago .Result.date_month }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -9,13 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrenttip197.top/
|
||||
- https://torrenttip202.top/
|
||||
legacylinks:
|
||||
- https://torrenttip182.top/
|
||||
- https://torrenttip183.top/
|
||||
- https://torrenttip184.top/
|
||||
- https://torrenttip185.top/
|
||||
- https://torrenttip186.top/
|
||||
- https://torrenttip187.top/
|
||||
- https://torrenttip188.top/
|
||||
- https://torrenttip189.top/
|
||||
@@ -26,6 +21,11 @@ legacylinks:
|
||||
- https://torrenttip194.top/
|
||||
- https://torrenttip195.top/
|
||||
- https://torrenttip196.top/
|
||||
- https://torrenttip197.top/
|
||||
- https://torrenttip198.top/
|
||||
- https://torrenttip199.top/
|
||||
- https://torrenttip200.top/
|
||||
- https://torrenttip201.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.10 2025-10-30
|
||||
|
||||
@@ -37,6 +37,7 @@ caps:
|
||||
- {id: 26, cat: Movies, desc: " |- Фильмы до 2000 года"}
|
||||
# Сериалы, Видео и ТВ # Series, Videos and TV
|
||||
- {id: 97, cat: TV, desc: "Сериалы"}
|
||||
- {id: 333, cat: TV, desc: " |- Игра престолов / Game of Thrones"}
|
||||
- {id: 313, cat: TV, desc: " |- Секретные материалы \ The X-Files"}
|
||||
- {id: 103, cat: TV, desc: " |- Зарубежные сериалы"}
|
||||
- {id: 102, cat: TV, desc: " |- Российские сериалы"}
|
||||
@@ -90,6 +91,7 @@ caps:
|
||||
- {id: 202, cat: Audio, desc: " |- Сборники Русского рока (mp3)"}
|
||||
- {id: 323, cat: Audio, desc: " |- Русский Rock, Metal (Lossless)"}
|
||||
- {id: 214, cat: Audio, desc: " |- Soft & Pop-Rock"}
|
||||
- {id: 334, cat: Audio, desc: " |- Progressive & Art-Rock"}
|
||||
- {id: 156, cat: Audio, desc: " |- Progressive, Art, Classic & Hard Rock"}
|
||||
- {id: 213, cat: Audio, desc: " |- Melodic & Folk Rock"}
|
||||
- {id: 212, cat: Audio, desc: " |- Instrumental & Guitar Rock"}
|
||||
@@ -125,7 +127,8 @@ caps:
|
||||
- {id: 237, cat: Audio, desc: " |- ♫ Рок-музыка Hi-Res"}
|
||||
- {id: 236, cat: Audio, desc: " |- ♫ Джаз и Блюз Hi-Res"}
|
||||
- {id: 324, cat: Audio, desc: "Оцифровки с аналоговых носителей"}
|
||||
- {id: 328, cat: Audio, desc: " |- Советская и Российская эстрада (оцифровки)"}
|
||||
- {id: 330, cat: Audio, desc: " |- ♫ Зарубежная поп музыка (оцифровки)"}
|
||||
- {id: 328, cat: Audio, desc: " |- ♫ Советская и Российская эстрада (оцифровки)"}
|
||||
- {id: 331, cat: Audio, desc: " |- ♫ Русский рок (оцифровки)"}
|
||||
- {id: 326, cat: Audio, desc: " |- ♫ Rock (оцифровки)"}
|
||||
- {id: 325, cat: Audio, desc: " |- ♫ Электронная музыка (оцифрофки)"}
|
||||
@@ -148,11 +151,13 @@ caps:
|
||||
- {id: 173, cat: Books, desc: " |- Художественная литература"}
|
||||
- {id: 314, cat: Books, desc: " |- Учебно-техническая литература"}
|
||||
- {id: 167, cat: Books, desc: "Аудиокниги"}
|
||||
- {id: 232, cat: Audio/Audiobook, desc: " |- Детективы, приключения, триллеры (Audiobook)"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: " |- Романы, повести, рассказы (Audiobook)"}
|
||||
- {id: 233, cat: Audio/Audiobook, desc: " |- Любовные романы (Audiobook)"}
|
||||
- {id: 176, cat: Audio/Audiobook, desc: " |- Мистика, фантастика, ужасы (Audiobook)"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: " |- Любовно-фантастический роман (Audiobook)"}
|
||||
- {id: 335, cat: Audio/Audiobook, desc: " |- ♫ Русская литература ХХ-ХХI века"}
|
||||
- {id: 232, cat: Audio/Audiobook, desc: " |- ♫ Детективы, приключения, триллеры"}
|
||||
- {id: 337, cat: Audio/Audiobook, desc: " |- ♫ Детективы Дарьи Донцовой"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: " |- ♫ Зарубежные авторы. Романы, повести, рассказы"}
|
||||
- {id: 233, cat: Audio/Audiobook, desc: " |- ♫ Любовные романы"}
|
||||
- {id: 176, cat: Audio/Audiobook, desc: " |- ♫ Мистика, фантастика, ужасы"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: " |- ♫ Любовно-фантастический роман"}
|
||||
- {id: 174, cat: Audio, desc: " |- Аудиокниги на других языках (Audio)"}
|
||||
- {id: 319, cat: Books, desc: " |- Аудиокниги для детей"}
|
||||
# Игры # Games
|
||||
@@ -229,6 +234,7 @@ caps:
|
||||
- {id: 282, cat: PC, desc: " |- Анимация"}
|
||||
- {id: 281, cat: PC, desc: " |- Программные комплекты"}
|
||||
- {id: 279, cat: PC, desc: " |- Разное (Графика и мультимедиа)"}
|
||||
- {id: 332, cat: PC, desc: "Системы навигации и карты "}
|
||||
- {id: 94, cat: PC, desc: " |- Утилиты"}
|
||||
- {id: 88, cat: PC, desc: " |- Мультимедия"}
|
||||
# Графика и Дизайн # Graphics and Design
|
||||
@@ -412,7 +418,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 }}"
|
||||
|
||||
@@ -5,12 +5,13 @@ description: "zetorrents is a FRENCH Public site for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
# to fetch current domain use https://www.rantop.org/
|
||||
links:
|
||||
- https://www.zetorrents2.com/
|
||||
- https://www.zetorrents.town/
|
||||
- https://zetorrents-proxy.site/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.cc/
|
||||
- https://www.torrent-site.com/
|
||||
# domain lists no longer working
|
||||
@@ -19,10 +20,9 @@ legacylinks:
|
||||
- https://www.protege-liens.com/
|
||||
- https://www.protege-liens.net/
|
||||
- https://www.torrent.onl/
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.com/
|
||||
- https://www.rantop.my/
|
||||
# actual legacylinks
|
||||
- https://www.zetorrents.bz/
|
||||
- https://www.zetorrents.nl/
|
||||
- https://www.zetorrents.biz/
|
||||
- https://www.zetorrents.ch/
|
||||
@@ -39,6 +39,7 @@ legacylinks:
|
||||
- https://www-zetorrents.com/
|
||||
- https://www.zetorrents1.com/
|
||||
- https://www.zetorrents.diy/
|
||||
- https://www.zetorrents2.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -80,7 +81,7 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}home{{ end }}"
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
# if searching for season packs swith S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
|
||||
@@ -7,14 +7,13 @@ 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/
|
||||
# to fetch current domain use https://www.rantop.org/
|
||||
links:
|
||||
- https://www.zktorrent6.com/
|
||||
- https://www.zktorrent.town/
|
||||
- https://zktorrent-proxy.site/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.cc/
|
||||
- https://www.torrent-site.com/
|
||||
# domain lists no longer working
|
||||
@@ -23,11 +22,10 @@ legacylinks:
|
||||
- https://www.protege-liens.com/
|
||||
- https://www.protege-liens.net/
|
||||
- https://www.torrent.onl/
|
||||
- https://www.rantop.org/
|
||||
- https://gktorrent.news/
|
||||
- https://www.site-torrent.com/
|
||||
- https://www.rantop.my/
|
||||
# actual legacylinks
|
||||
- https://www.gktorrent.gy/
|
||||
- https://www.gktorrent.si/
|
||||
- https://www.gktorrent.my/
|
||||
- https://www.gktorrent.cz/
|
||||
@@ -42,6 +40,7 @@ legacylinks:
|
||||
- https://www.zktorrent4.com/
|
||||
- https://www.zktorrent5.com/
|
||||
- https://www.zktorrent.net/
|
||||
- https://www.zktorrent6.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -102,7 +101,7 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}home{{ end }}"
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
# if searching for season packs swith S01 to saison 1 #9712
|
||||
- name: re_replace
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -6,9 +6,10 @@ language: hu-HU
|
||||
type: semi-private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- http://ztracker.cc/ # site does not support https invalid certificate
|
||||
- https://ztracker.cc/
|
||||
legacylinks:
|
||||
- http://ztracker.org/
|
||||
- http://ztracker.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
{ "total", "146" }, // Assuming the total number of pages
|
||||
{ "cat", MapTorznabCapsToTrackers(query).FirstIfSingleOrDefault("0") },
|
||||
{ "page", page.ToString() },
|
||||
{ "searchin", "filename" },
|
||||
{ "searchin", "filedisc" },
|
||||
{ "search", searchString }
|
||||
};
|
||||
|
||||
|
||||
@@ -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,22 +29,16 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH Public tracker for MOVIES / TV / GENERAL";
|
||||
// in the event the redirect is inactive https://t.me/s/dontorrent should have the latest working domain
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.kids/";
|
||||
public override string SiteLink { get; protected set; } = "https://todotorrents.org/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.kids/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
"https://verdetorrent.com/",
|
||||
"https://naranjatorrent.com/"
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.download/",
|
||||
"https://dontorrent.gift/",
|
||||
"https://dontorrent.report/",
|
||||
"https://dontorrent.homes/",
|
||||
"https://dontorrent.haus/",
|
||||
"https://dontorrent.news/",
|
||||
"https://dontorrent.institute/",
|
||||
@@ -56,6 +50,12 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.lighting/",
|
||||
"https://dontorrent.istanbul/",
|
||||
"https://dontorrent.onl/",
|
||||
"https://dontorrent.kids/",
|
||||
"https://dontorrent.kiwi/",
|
||||
"https://dontorrent.live/",
|
||||
"https://dontorrent.phd/",
|
||||
"https://seriesblanco.one/",
|
||||
"https://dontorrent.gripe/", // no longer compatible, switched to JS download
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -86,35 +86,37 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
TvSearchImdbAvailable = true
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD");
|
||||
caps.Categories.AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(29, TorznabCatType.Books, "Books");
|
||||
caps.Categories.AddCategoryMapping(30, TorznabCatType.Other, "Courses");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.TV, "Desene");
|
||||
caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Diverse");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.Books, "Docs");
|
||||
caps.Categories.AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K");
|
||||
caps.Categories.AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.MoviesDVD, "Filme DVD");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.MoviesForeign, "Filme DVD-RO");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.MoviesHD, "Filme HD");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.MoviesUHD, "Filme 4K");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.PC, "Programe");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.Audio, "Audio");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.TV, "Desene");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.Books, "Docs");
|
||||
caps.Categories.AddCategoryMapping(17, TorznabCatType.PC, "Linux");
|
||||
caps.Categories.AddCategoryMapping(18, TorznabCatType.Other, "Diverse");
|
||||
caps.Categories.AddCategoryMapping(19, TorznabCatType.MoviesForeign, "Filme HD-RO");
|
||||
caps.Categories.AddCategoryMapping(20, TorznabCatType.MoviesBluRay, "Filme Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD");
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.MoviesSD, "Filme SD");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.AudioLossless, "FLAC");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.Console, "Jocuri Console");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.PCGames, "Jocuri PC");
|
||||
caps.Categories.AddCategoryMapping(31, TorznabCatType.TVForeign, "K-Drama");
|
||||
caps.Categories.AddCategoryMapping(17, TorznabCatType.PC, "Linux");
|
||||
caps.Categories.AddCategoryMapping(22, TorznabCatType.PCMobileOther, "Mobile");
|
||||
caps.Categories.AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD");
|
||||
caps.Categories.AddCategoryMapping(24, TorznabCatType.TVAnime, "Anime");
|
||||
caps.Categories.AddCategoryMapping(25, TorznabCatType.Movies3D, "Filme 3D");
|
||||
caps.Categories.AddCategoryMapping(26, TorznabCatType.MoviesBluRay, "Filme 4K Blu-Ray");
|
||||
caps.Categories.AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.PC, "Programe");
|
||||
caps.Categories.AddCategoryMapping(28, TorznabCatType.MoviesForeign, "RO Dubbed");
|
||||
caps.Categories.AddCategoryMapping(28, TorznabCatType.TVForeign, "RO Dubbed");
|
||||
caps.Categories.AddCategoryMapping(31, TorznabCatType.TVForeign, "K-Drama");
|
||||
caps.Categories.AddCategoryMapping(27, TorznabCatType.TVUHD, "Seriale 4K");
|
||||
caps.Categories.AddCategoryMapping(21, TorznabCatType.TVHD, "Seriale HD");
|
||||
caps.Categories.AddCategoryMapping(23, TorznabCatType.TVSD, "Seriale SD");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.TVSport, "Sport");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.AudioVideo, "Videoclip");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.XXX, "XXX");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
209
src/Jackett.Common/Indexers/Definitions/HDRTorrent.cs
Normal file
@@ -0,0 +1,209 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Extensions;
|
||||
using Jackett.Common.Indexers.Definitions.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using NLog;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
public class HDRTorrent : PublicBrazilianIndexerBase
|
||||
{
|
||||
public override string Id => "hdrtorrent";
|
||||
|
||||
public override string Name => "HDRTorrent";
|
||||
|
||||
public override string SiteLink { get; protected set; } = "https://hdrtorrent.com/";
|
||||
|
||||
public HDRTorrent(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService, wc, l, ps, cs)
|
||||
{
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser() => new HDRTorrentParser(webclient);
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator() => new SimpleRequestGenerator(SiteLink, searchQueryParamsKey: "index.php?s=");
|
||||
}
|
||||
|
||||
public class HDRTorrentParser : PublicBrazilianParser
|
||||
{
|
||||
private readonly WebClient _webclient;
|
||||
protected string Tracker;
|
||||
|
||||
public HDRTorrentParser(WebClient webclient)
|
||||
{
|
||||
_webclient = webclient;
|
||||
Tracker = "HDRTorrent";
|
||||
}
|
||||
|
||||
private Dictionary<string, string> ExtractFileInfo(IDocument detailsDom)
|
||||
{
|
||||
var fileInfo = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
var infoSection = detailsDom.QuerySelector("div.infos p");
|
||||
if (infoSection == null)
|
||||
return fileInfo;
|
||||
|
||||
var lines = infoSection.InnerHtml.Split(new[] { "<br>" }, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach (var line in lines)
|
||||
{
|
||||
if (line.Contains("<b>") && line.Contains(":"))
|
||||
{
|
||||
var parts = line.Split(new[] { ':' }, 2);
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
var key = parts[0].Replace("<b>", "").Replace("</b>", "").Trim();
|
||||
var value = parts[1]
|
||||
.Replace("<b>", "")
|
||||
.Replace("</b>", "")
|
||||
.Replace("<strong>", "")
|
||||
.Replace("</strong>", "")
|
||||
.Trim();
|
||||
|
||||
if (value.Contains("<"))
|
||||
{
|
||||
var tempDoc = new HtmlParser().ParseDocument(value);
|
||||
value = tempDoc.Body.TextContent.Trim();
|
||||
}
|
||||
|
||||
value = value switch
|
||||
{
|
||||
var v when v.Contains("Dual Áudio") => v.Replace("Dual Áudio", "Dual"),
|
||||
var v when v.Contains("Dual Audio") => v.Replace("Dual Audio", "Dual"),
|
||||
var v when v.Contains("Full HD") => v.Replace("Full HD", "1080p"),
|
||||
var v when v.Contains("4K") => v.Replace("4K", "2160p"),
|
||||
var v when v.Contains("SD") => v.Replace("SD", "480p"),
|
||||
var v when v.Contains("WEB") => v.Replace("WEB", "WEB-DL"),
|
||||
_ => value
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
|
||||
{
|
||||
fileInfo[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fileInfo;
|
||||
}
|
||||
|
||||
public override IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(indexerResponse.Content);
|
||||
var rows = dom.QuerySelectorAll("div.capa-img");
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var h2Anchor = row.QuerySelector("h2 a");
|
||||
if (h2Anchor == null)
|
||||
continue;
|
||||
|
||||
var title = h2Anchor.TextContent.Trim();
|
||||
var detailUrlStr = h2Anchor.GetAttribute("href")?.Trim();
|
||||
if (string.IsNullOrEmpty(detailUrlStr))
|
||||
continue;
|
||||
|
||||
var detailUrl = new Uri(detailUrlStr);
|
||||
|
||||
var releaseCommonInfo = new ReleaseInfo
|
||||
{
|
||||
Title = CleanTitle(title),
|
||||
Details = detailUrl,
|
||||
Guid = detailUrl,
|
||||
Seeders = 1
|
||||
};
|
||||
|
||||
var detailsPage = _webclient.GetResultAsync(new WebRequest(detailUrl.ToString())).Result;
|
||||
var detailsDom = parser.ParseDocument(detailsPage.ContentString);
|
||||
|
||||
var fileInfoDict = ExtractFileInfo(detailsDom);
|
||||
var fileInfo = PublicBrazilianIndexerBase.FileInfo.FromDictionary(fileInfoDict);
|
||||
|
||||
var publishedMeta = detailsDom.QuerySelector("meta[property='article:published_time']")?.GetAttribute("content");
|
||||
if (!string.IsNullOrEmpty(publishedMeta) && DateTime.TryParse(publishedMeta, out var parsedDate))
|
||||
{
|
||||
releaseCommonInfo.PublishDate = parsedDate;
|
||||
}
|
||||
else
|
||||
{
|
||||
releaseCommonInfo.PublishDate = DateTime.Today;
|
||||
}
|
||||
|
||||
var magnetLinks = detailsDom.QuerySelectorAll("a[href^='magnet:?']");
|
||||
foreach (var magnetLink in magnetLinks)
|
||||
{
|
||||
var magnet = magnetLink.GetAttribute("href");
|
||||
if (string.IsNullOrEmpty(magnet))
|
||||
continue;
|
||||
|
||||
var release = releaseCommonInfo.Clone() as ReleaseInfo;
|
||||
release.Guid = release.MagnetUri = new Uri(magnet);
|
||||
|
||||
var parentText = magnetLink.ParentElement?.TextContent?.Trim();
|
||||
if (!string.IsNullOrEmpty(parentText))
|
||||
{
|
||||
parentText = Regex.Replace(parentText, "DOWNLOAD TORRENT", "", RegexOptions.IgnoreCase)
|
||||
.Replace("DUAL ÁUDIO", "Dual")
|
||||
.Replace("DUAL AUDIO", "Dual")
|
||||
.Replace("ÁUDIO", "Audio")
|
||||
.Replace("AUDIO", "Audio")
|
||||
.Replace("DUBLADO", "Dubbed")
|
||||
.Replace("LEGENDADO", "Subbed")
|
||||
.Replace("MKV", "")
|
||||
.Replace("MP4", "")
|
||||
.Replace("MAGNET", "")
|
||||
.Replace("TORRENT", "")
|
||||
.Replace("LINK", "")
|
||||
.Trim();
|
||||
|
||||
if (!string.IsNullOrEmpty(parentText))
|
||||
{
|
||||
release.Title = $"{release.Title} {parentText}".Trim();
|
||||
}
|
||||
}
|
||||
|
||||
var resolution = fileInfo.Quality ?? fileInfo.VideoQuality ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(resolution))
|
||||
release.Title = $"{release.Title} {resolution}".Trim();
|
||||
|
||||
release.Category = magnetLink.ExtractCategory(release.Title);
|
||||
var size = RowParsingExtensions.GetBytes(fileInfo.Size ?? string.Empty);
|
||||
release.Size = size > 0 ? size : ExtractSizeByResolution(release.Title);
|
||||
|
||||
release.DownloadVolumeFactor = 0;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
release.Languages = fileInfo.Audio?.ToList() ?? release.Languages;
|
||||
release.Genres = fileInfo.Genres?.ToList() ?? release.Genres;
|
||||
release.Subs = string.IsNullOrEmpty(fileInfo.Subtitle) ? release.Subs : new[] { fileInfo.Subtitle };
|
||||
|
||||
if (release.Title.IsNotNullOrWhiteSpace())
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
protected override INode GetTitleElementOrNull(IElement downloadButton)
|
||||
{
|
||||
var description = downloadButton.PreviousSibling;
|
||||
while (description != null && description.NodeType != NodeType.Text)
|
||||
{
|
||||
description = description.PreviousSibling;
|
||||
}
|
||||
|
||||
return description;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -696,8 +696,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
var meta = document.QuerySelector("meta");
|
||||
var metaContent = meta.GetAttribute("content");
|
||||
|
||||
// Follow redirection defined by async url.replace
|
||||
var redirectionUrl = metaContent.Substring(metaContent.IndexOf("http"));
|
||||
// Follow redirection defined by async url.replace and prepend sitelink
|
||||
var redirectionUrl = SiteLink + metaContent.Substring(metaContent.IndexOf("url=") + 5);
|
||||
return await FollowTrackerRedirection(redirectionUrl, details);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||