mirror of
https://github.com/Jackett/Jackett.git
synced 2025-12-15 03:41:12 +01:00
Compare commits
129 Commits
v0.22.2384
...
v0.23.56
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22efd22e73 | ||
|
|
d12b920274 | ||
|
|
99f887900a | ||
|
|
d826055762 | ||
|
|
ea9e674d6b | ||
|
|
07e8a0e10e | ||
|
|
aa1d539678 | ||
|
|
2c4ca34b81 | ||
|
|
7fd64f519e | ||
|
|
6516df29d3 | ||
|
|
4f42bd68e3 | ||
|
|
db299b6e5a | ||
|
|
f637bc6c89 | ||
|
|
751b11afd8 | ||
|
|
9cd50a883a | ||
|
|
948bb67e2b | ||
|
|
a7406eb725 | ||
|
|
65da50d6bf | ||
|
|
3829d49aed | ||
|
|
ff17b147d6 | ||
|
|
b579de495d | ||
|
|
f6384c933c | ||
|
|
4f3c57de59 | ||
|
|
dc4bde017a | ||
|
|
088dfba4b6 | ||
|
|
c414181da3 | ||
|
|
ed507c3a43 | ||
|
|
c42383f605 | ||
|
|
d53f764b4f | ||
|
|
fd3c5aea9e | ||
|
|
5c379fc5fb | ||
|
|
4203abf435 | ||
|
|
cc7a2dae35 | ||
|
|
3932f1cdb1 | ||
|
|
b4c9145642 | ||
|
|
8b48206e84 | ||
|
|
896a3e6e21 | ||
|
|
70885a1153 | ||
|
|
edd3c83a94 | ||
|
|
98c2590a16 | ||
|
|
e4d773bae9 | ||
|
|
9e716d8e9b | ||
|
|
b24acf3327 | ||
|
|
7bf75794c8 | ||
|
|
e6e82b90a6 | ||
|
|
bb8c403b23 | ||
|
|
c9066b5ea8 | ||
|
|
19586cd2d1 | ||
|
|
42c7d1fc59 | ||
|
|
a98e69d18b | ||
|
|
64c2f7b895 | ||
|
|
5cd2b53907 | ||
|
|
0649a45697 | ||
|
|
e05e7a77c4 | ||
|
|
8f526aba30 | ||
|
|
67b98536b5 | ||
|
|
04bdc9ebf0 | ||
|
|
a1af921349 | ||
|
|
9411f98064 | ||
|
|
4c0ef2d33b | ||
|
|
6d8c9709e0 | ||
|
|
3011b5397a | ||
|
|
22284d5106 | ||
|
|
dbf2a455c4 | ||
|
|
5e82419fee | ||
|
|
b20d0aca8c | ||
|
|
240054e089 | ||
|
|
9586e6d349 | ||
|
|
4f3d0589a3 | ||
|
|
710cbea589 | ||
|
|
f04babe9b4 | ||
|
|
9a5bc0e882 | ||
|
|
3784d1a1bf | ||
|
|
7af2d20bc1 | ||
|
|
38f457975e | ||
|
|
1766c0d49a | ||
|
|
3eaeb50c54 | ||
|
|
73c965b280 | ||
|
|
9f73269dbd | ||
|
|
4fefef26d3 | ||
|
|
69c7c4187d | ||
|
|
ec58139d77 | ||
|
|
4bc409793e | ||
|
|
800ac33982 | ||
|
|
07c6668365 | ||
|
|
75dc2c7792 | ||
|
|
0c53daa1a6 | ||
|
|
1d28affabd | ||
|
|
ba76c008d2 | ||
|
|
3be0d0fa33 | ||
|
|
b03d1abb7a | ||
|
|
8176fbdff4 | ||
|
|
9fa8350b64 | ||
|
|
ee1acc96de | ||
|
|
4870f66604 | ||
|
|
2ec1a52bd1 | ||
|
|
67ecc13f82 | ||
|
|
890d580ce7 | ||
|
|
e487c79112 | ||
|
|
54ef493c68 | ||
|
|
36ed75e626 | ||
|
|
0946d51a47 | ||
|
|
0124f9570c | ||
|
|
d73586dd1c | ||
|
|
d4889c6847 | ||
|
|
a341a22f3a | ||
|
|
f2e97e5145 | ||
|
|
ac80d114c8 | ||
|
|
00dbdbf9e9 | ||
|
|
e783685992 | ||
|
|
56b898b12e | ||
|
|
e83cdc28da | ||
|
|
99b77743a0 | ||
|
|
e9e7373485 | ||
|
|
91e06b9ec4 | ||
|
|
bd65b0540c | ||
|
|
c311da78c2 | ||
|
|
4fb60f1676 | ||
|
|
5bca69ce29 | ||
|
|
2f3323d313 | ||
|
|
faa113d21c | ||
|
|
a821cc2045 | ||
|
|
a496be0182 | ||
|
|
04d16a982c | ||
|
|
4d35edced7 | ||
|
|
2aca3e4468 | ||
|
|
910ab269fe | ||
|
|
cdfe7bfe49 | ||
|
|
9675bc88a1 |
4
.github/workflows/definitions-update.yml
vendored
4
.github/workflows/definitions-update.yml
vendored
@@ -40,8 +40,8 @@ jobs:
|
||||
|
||||
- name: Setup Environment Variables
|
||||
run: |
|
||||
echo "CURRENT_RUDUB_DOMAIN=$(date +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.buzz" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.buzz" >> $GITHUB_ENV
|
||||
echo "CURRENT_RUDUB_DOMAIN=$(date +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.bet" >> $GITHUB_ENV
|
||||
echo "PREVIOUS_RUDUB_DOMAIN=$(date --date='yesterday' +'%b%d' | tr '[:upper:]' '[:lower:]').rudub.bet" >> $GITHUB_ENV
|
||||
|
||||
- name: Update rudub definition
|
||||
uses: mikefarah/yq@master
|
||||
|
||||
2
.github/workflows/issuebot.yml
vendored
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@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '18.x'
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -20,7 +20,7 @@ The software implements the [Torznab](https://torznab.github.io/spec-1.3-draft/i
|
||||
A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](https://github.com/webtor-io/go-jackett)
|
||||
|
||||
#### Supported Systems
|
||||
The currently supported version of Jackett is 0.22.+, which is compatible with the following OS:
|
||||
The currently supported version of Jackett is 0.23.+, which is compatible with the following OS:
|
||||
* Windows 10 Version 1607+ or greater [supported operating systems here](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md#windows)
|
||||
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md#linux)
|
||||
* macOS 13.0+ (Ventura) or greater [supported operating systems here](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md#macos)
|
||||
@@ -34,7 +34,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* 1337x
|
||||
* 52BT
|
||||
* ACG.RIP
|
||||
* Anidex
|
||||
* AniLibria
|
||||
* Anime Time
|
||||
* Anime Tosho
|
||||
@@ -69,6 +68,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* EZTV
|
||||
* FileMood
|
||||
* FilmesHdTorrent
|
||||
* Free JAV Torrent
|
||||
* Frozen Layer
|
||||
* GamesTorrents
|
||||
* GTorrent.pro
|
||||
@@ -123,7 +123,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* The Pirate Bay (TPB)
|
||||
* TheRARBG
|
||||
* Tokyo Tosho
|
||||
* Torlock
|
||||
* Torrent Downloads
|
||||
* Torrent Oyun indir
|
||||
* Torrent[CORE]
|
||||
@@ -151,7 +150,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* Wolfmax4K
|
||||
* XXXClub
|
||||
* xxxtor
|
||||
* YourBittorrent
|
||||
* YTS.ag
|
||||
* zetorrents
|
||||
* ZkTorrent
|
||||
@@ -180,7 +178,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* Fenyarnyek-Tracker
|
||||
* File-Tracker
|
||||
* Gay-Torrents.net
|
||||
* Genesis-Movement
|
||||
* HD-CzTorrent [PAY2DL]
|
||||
* HDGalaKtik
|
||||
* HellTorrents [PAY2DL]
|
||||
@@ -337,7 +334,6 @@ Prior versions of Jackett are no longer supported.
|
||||
* Ebooks-Shares [![(invite needed)][inviteneeded]](#)
|
||||
* Empornium (EMP) [![(invite needed)][inviteneeded]](#)
|
||||
* eMuwarez
|
||||
* eShareNet
|
||||
* eStone (BigTorrent)
|
||||
* Exitorrent.org [![(invite needed)][inviteneeded]](#)
|
||||
* ExoticaZ (YourExotic)
|
||||
@@ -437,6 +433,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* Locadora
|
||||
* LosslessClub [![(invite needed)][inviteneeded]](#)
|
||||
* LST
|
||||
* LuckPT [![(invite needed)][inviteneeded]](#)
|
||||
* M-Team TP (MTTP) [![(invite needed)][inviteneeded]](#)
|
||||
* MaDs Revolution
|
||||
* Majomparádé (TurkDepo)
|
||||
@@ -527,6 +524,7 @@ Prior versions of Jackett are no longer supported.
|
||||
* SeedFile (SF)
|
||||
* seedpool
|
||||
* SewerPT (下水道) [![(invite needed)][inviteneeded]](#)
|
||||
* SexTorrent
|
||||
* SFP (Share Friends Projekt)
|
||||
* Shareisland
|
||||
* Shazbat
|
||||
@@ -764,7 +762,7 @@ If you want to run it with a user without a /home directory you need to add `Env
|
||||
|
||||
|
||||
## Installation on Linux (ARMv6 or below)
|
||||
1. Install [Mono 5.8](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release is recommended)
|
||||
1. Install [Mono 5.10](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release is recommended)
|
||||
* Follow the instructions on the mono website and install the `mono-devel` and the `ca-certificates-mono` packages.
|
||||
* On Red Hat/CentOS/openSUSE/Fedora the `mono-locale-extras` package is also required.
|
||||
2. Install libcurl:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
variables:
|
||||
majorVersion: 0
|
||||
minorVersion: 22
|
||||
minorVersion: 23
|
||||
patchVersion: $[counter(variables['minorVersion'], 1)] # this will reset when we bump minor
|
||||
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
buildConfiguration: Release
|
||||
@@ -108,7 +108,7 @@ stages:
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
framework: net462
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
@@ -280,7 +280,6 @@ stages:
|
||||
$newVersion.Value = '4.0.0.0'
|
||||
$xml.Save($file)
|
||||
Remove-Item '$(Build.BinariesDirectory)/Jackett/System.Net.Http.dll'
|
||||
Remove-Item '$(Build.BinariesDirectory)/Jackett/System.Runtime.InteropServices.RuntimeInformation.dll'
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Set Folder and File Permissions (Mono, Linux and macOS)
|
||||
@@ -438,7 +437,7 @@ stages:
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
framework: net462
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
@@ -535,7 +534,7 @@ stages:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-22.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net462
|
||||
framework: net471
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
|
||||
@@ -60,7 +60,7 @@ settings:
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>If there is no valid traffic within 7 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 7 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 60 consecutive days of non-login → banned</ul><ul>- Parked account: 180 consecutive days of non-login → banned</ul><ul>- Nexus Master and above levels are not subject to long-term non-login ban restrictions</li></ol>"
|
||||
default: "Account retention rules:<ol><li>If there is no valid traffic within 7 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 7 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 60 consecutive days of non-login → banned</ul><ul>- Parked account: 180 consecutive days of non-login → banned</ul><ul>- Nexus Master and above levels are not subject to long-term non-login ban restrictions</ul></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
|
||||
|
||||
@@ -8,11 +8,9 @@ encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://52btbt.icu/
|
||||
- https://www.529065.xyz/
|
||||
- https://www.529066.xyz/
|
||||
- https://www.529068.xyz/
|
||||
- https://www.529067.xyz/
|
||||
legacylinks:
|
||||
- https://529050.xyz/
|
||||
- https://529048.xyz/
|
||||
- https://529049.xyz/
|
||||
- https://www.529052.xyz/
|
||||
- https://www.529053.xyz/
|
||||
@@ -27,6 +25,8 @@ legacylinks:
|
||||
- https://www.529062.xyz/
|
||||
- https://www.529063.xyz/
|
||||
- https://www.529064.xyz/
|
||||
- https://www.529066.xyz/
|
||||
- https://www.529065.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -57,6 +57,10 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that your ratio is <b>not below 0.8</b>, otherwise the site will not return download links to the indexer. This does not apply to freeleech torrents."
|
||||
|
||||
login:
|
||||
# using cookie method because login page returns 0 bytes with a cookie flog=6
|
||||
|
||||
@@ -126,7 +126,7 @@ search:
|
||||
# does not support imdbid search or provide imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="])
|
||||
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="]), table#torrents_list_p > tbody > tr:has(a[href^="magnet:?xt="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GEN
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 513af956f189b16a68ddd75d5d857309d3084d8d # Expired 17 April 2025
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
|
||||
@@ -10,6 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 100, cat: Console, desc: "Anbernic"}
|
||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||
@@ -17,10 +18,9 @@ caps:
|
||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 71, cat: Console, desc: "Batocera"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
- {id: 86, cat: Console, desc: "Chinese Systems"}
|
||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 60, cat: Console, desc: "Core"}
|
||||
- {id: 72, cat: Console, desc: "CORE Community"}
|
||||
@@ -30,7 +30,6 @@ caps:
|
||||
- {id: 5, cat: Books, desc: "EBooks"}
|
||||
- {id: 80, cat: PC, desc: "Emulation Media"}
|
||||
- {id: 61, cat: PC, desc: "emuxtras"}
|
||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
||||
- {id: 89, cat: PC, desc: "Ghostware"}
|
||||
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
|
||||
- {id: 77, cat: PC, desc: "Hyperspin"}
|
||||
@@ -39,7 +38,9 @@ caps:
|
||||
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 106, cat: Movies/UHD, desc: "Movie Pack 4K"}
|
||||
- {id: 6, cat: Movies, desc: "Movies"}
|
||||
- {id: 105, cat: Movies/UHD, desc: "Movies 4K"}
|
||||
- {id: 82, cat: PC, desc: "MS-DOS"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||
@@ -48,7 +49,7 @@ caps:
|
||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
||||
- {id: 87, cat: Console, desc: "Playnite"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 62, cat: PC, desc: "RaspberryPi"}
|
||||
- {id: 62, cat: PC, desc: "Raspberry Pi"}
|
||||
- {id: 83, cat: PC, desc: "Retro eXo"}
|
||||
- {id: 56, cat: PC, desc: "Retro Minis"}
|
||||
- {id: 81, cat: PC, desc: "Retro Scene Releases"}
|
||||
@@ -60,12 +61,12 @@ caps:
|
||||
- {id: 68, cat: PC, desc: "Schmoomer's"}
|
||||
- {id: 57, cat: Console, desc: "Sega"}
|
||||
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 75, cat: Audio, desc: "Video Game Music"}
|
||||
- {id: 90, cat: PC, desc: "TeknoParrot"}
|
||||
- {id: 9, cat: TV, desc: "TV Packs"}
|
||||
- {id: 11, cat: TV, desc: "TV Shows"}
|
||||
- {id: 97, cat: TV/Other, desc: "Video Courses"}
|
||||
- {id: 75, cat: TV, desc: "Video Game Music"}
|
||||
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
|
||||
@@ -44,6 +44,7 @@ caps:
|
||||
- {id: 35, cat: XXX, desc: Masturbation"}
|
||||
- {id: 36, cat: XXX, desc: Mature"}
|
||||
- {id: 37, cat: XXX, desc: Milf"}
|
||||
- {id: 53, cat: XXX, desc: Movie"}
|
||||
- {id: 38, cat: XXX, desc: Old and Young"}
|
||||
- {id: 39, cat: XXX, desc: Parody"}
|
||||
- {id: 40, cat: XXX, desc: Pictures"}
|
||||
|
||||
@@ -111,8 +111,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -180,4 +178,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
# json UNIT3D 9.1.6 (custom)
|
||||
|
||||
@@ -120,8 +120,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -196,4 +194,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
@@ -11,6 +11,7 @@ links:
|
||||
- https://www.btmulu.cyou/
|
||||
- https://www.btmulu.quest/
|
||||
- https://www.btmulu.cfd/
|
||||
- https://www.btmulu.help/
|
||||
legacylinks:
|
||||
- https://www.btmulu.asia/
|
||||
- https://www.btmulu.digital/
|
||||
|
||||
@@ -6,6 +6,8 @@ language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://catorrent.net/
|
||||
legacylinks:
|
||||
- https://catorrent.org/
|
||||
|
||||
caps:
|
||||
|
||||
131
src/Jackett.Common/Definitions/cgpeers.yml
Normal file
131
src/Jackett.Common/Definitions/cgpeers.yml
Normal file
@@ -0,0 +1,131 @@
|
||||
# CGPeers 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: cgpeers
|
||||
name: CGPeers
|
||||
description: "CGPeers is a Private Torrent Tracker for GRAPHICS SOFTWARE / TUTORIALS / ETC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://cgpeers.to/
|
||||
legacylinks:
|
||||
- https://www.cgpeers.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC/ISO, desc: "Applications"}
|
||||
- {id: 8, cat: PC/ISO, desc: "Audio"}
|
||||
- {id: 7, cat: Other, desc: "Game Development"}
|
||||
- {id: 5, cat: Other, desc: "Materials"}
|
||||
- {id: 6, cat: Other/Misc, desc: "Miscellaneous"}
|
||||
- {id: 4, cat: Other, desc: "Models"}
|
||||
- {id: 2, cat: PC/0day, desc: "Plugins"}
|
||||
- {id: 3, cat: Other, desc: "Tutorials"}
|
||||
- {id: 9, cat: Other, desc: "Web Development"}
|
||||
|
||||
modes:
|
||||
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: 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:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/user.php?id="]
|
||||
|
||||
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:has(a[href*="action=download"])
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="/torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
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: re_replace
|
||||
args: ["/static/common/noartwork/.+", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(6) > span
|
||||
attribute: title
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
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
|
||||
# luminance
|
||||
@@ -193,4 +193,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
@@ -6,6 +6,8 @@ language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.crazyspirits.ca/
|
||||
legacylinks:
|
||||
- https://www.crazyspirits.com/
|
||||
|
||||
caps:
|
||||
|
||||
@@ -120,8 +120,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -196,4 +194,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -124,7 +124,7 @@ search:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
|
||||
rows:
|
||||
selector: $
|
||||
selector: data
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
||||
@@ -224,4 +224,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 8.3.6
|
||||
# json UNIT3D 9.1.1
|
||||
|
||||
@@ -64,6 +64,7 @@ caps:
|
||||
- {id: 346, cat: Books/EBook, desc: "Chemistry"}
|
||||
- {id: 347, cat: Books/EBook, desc: "Medical"}
|
||||
- {id: 348, cat: Books/EBook, desc: "Mathematics"}
|
||||
- {id: 363, cat: Books/EBook, desc: "Sheet Music"}
|
||||
# Tech/Computers
|
||||
- {id: 331, cat: Books/EBook, desc: "Electronics"}
|
||||
- {id: 336, cat: Books/EBook, desc: "Video Games"}
|
||||
@@ -87,6 +88,7 @@ caps:
|
||||
- {id: 349, cat: Books/EBook, desc: "Self Help"}
|
||||
- {id: 351, cat: Books/EBook, desc: "Religion"}
|
||||
- {id: 358, cat: Books/EBook, desc: "History"}
|
||||
- {id: 362, cat: Books/EBook, desc: "Politics"}
|
||||
# Military
|
||||
- {id: 287, cat: Books/EBook, desc: "WW1"}
|
||||
- {id: 288, cat: Books/EBook, desc: "WW2"}
|
||||
@@ -94,6 +96,7 @@ caps:
|
||||
- {id: 286, cat: Books/EBook, desc: "General Military "}
|
||||
# Zoology
|
||||
- {id: 334, cat: Books/EBook, desc: "Veterinary/Pets"}
|
||||
- {id: 361, cat: Books/EBook, desc: "Nature And Wildlife"}
|
||||
# Art & Crafts
|
||||
- {id: 344, cat: Books/EBook, desc: "Model Making"}
|
||||
- {id: 357, cat: Books/EBook, desc: "Art"}
|
||||
|
||||
@@ -1,225 +0,0 @@
|
||||
---
|
||||
id: esharenet
|
||||
name: eShareNet
|
||||
description: "eShareNet is a Private Tracker for British MOVIE / TV"
|
||||
language: en-GB
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://esharenet.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: TV, desc: "Comedy"}
|
||||
- {id: 4, cat: TV, desc: "Entertainment"}
|
||||
- {id: 5, cat: TV, desc: "Game Shows"}
|
||||
- {id: 6, cat: TV, desc: "Motoring"}
|
||||
- {id: 7, cat: TV, desc: "News and Current Affairs"}
|
||||
- {id: 8, cat: TV, desc: "Sci-Fi"}
|
||||
- {id: 9, cat: TV, desc: "Talkshow"}
|
||||
- {id: 10, cat: TV, desc: "Advertisements - Continuity"}
|
||||
- {id: 11, cat: TV, desc: "Comedy-Drama"}
|
||||
- {id: 12, cat: TV, desc: "Fantasy"}
|
||||
- {id: 13, cat: TV, desc: "Home and Property"}
|
||||
- {id: 14, cat: Movies, desc: "Movies"}
|
||||
- {id: 15, cat: Other, desc: "Other"}
|
||||
- {id: 16, cat: TV, desc: "Soaps"}
|
||||
- {id: 17, cat: TV, desc: "Trains and Planes"}
|
||||
- {id: 18, cat: TV, desc: "Animation"}
|
||||
- {id: 19, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 20, cat: TV, desc: "Food and Cooking"}
|
||||
- {id: 21, cat: TV, desc: "Horror"}
|
||||
- {id: 22, cat: Audio, desc: "Music"}
|
||||
- {id: 23, cat: Audio, desc: "Radio"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 25, cat: TV, desc: "True Crime"}
|
||||
- {id: 26, cat: Audio/Audiobook, desc: "Audiobook and E-book"}
|
||||
- {id: 27, cat: TV, desc: "Drama"}
|
||||
- {id: 28, cat: TV, desc: "Kids"}
|
||||
- {id: 29, cat: TV, desc: "Mystery and Crime Fiction"}
|
||||
- {id: 30, cat: TV, desc: "Reality"}
|
||||
- {id: 31, cat: TV, desc: "Subtitles - english subs"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 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: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div#ERROR_COPY
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/filter
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 50
|
||||
page: 0
|
||||
view: list
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.torrent-poster img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://images.weserv.nl/?url=" # for display on dashboard
|
||||
- name: append
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
genre:
|
||||
selector: td:nth-last-child(8)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Game-Show, History, Horror, Music, Musical, Mystery, News, Reality-TV, Romance, Science_Fiction, Sitcom, Sport, Talk-Show, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
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
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: time
|
||||
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
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# UNIT3D 2.5.0
|
||||
@@ -17,50 +17,52 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Highres Movies, cat: Movies/HD, desc: Movies HD}
|
||||
- {id: UltraHD, cat: Movies/UHD, desc: Movies UHD}
|
||||
- {id: 3D Movies, cat: Movies/3D, desc: Movies 3D}
|
||||
- {id: Bollywood, cat: Movies, desc: Bollywood}
|
||||
- {id: Movie clips, cat: Movies, desc: Movies clips}
|
||||
- {id: DVD, cat: Movies/DVD, desc: Movies DVD}
|
||||
- {id: MP4, cat: Movies, desc: Movies MP4}
|
||||
- {id: Dubbed Movies, cat: Movies/Foreign, desc: Movies Dubbed}
|
||||
- {id: Other Movies, cat: Movies/Other, desc: Movies Other}
|
||||
- {id: Documentary, cat: TV/Documentary, desc: Documentary}
|
||||
- {id: TV, cat: TV, desc: TV}
|
||||
- {id: MP3, cat: Audio/MP3, desc: Music MP3}
|
||||
- {id: AAC, cat: Audio, desc: Music AAC}
|
||||
- {id: Lossless, cat: Audio/Lossless, desc: Music Lossless}
|
||||
- {id: Music videos, cat: Audio/Video, desc: Music Videos}
|
||||
- {id: Other Music, cat: Audio/Other, desc: Music Other}
|
||||
- {id: Radio Shows, cat: Audio/Other, desc: Music Radio}
|
||||
- {id: Video, cat: XXX, desc: Adult / Porn}
|
||||
- {id: "Adult / Porn", cat: XXX, desc: Adult / Porn}
|
||||
- {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
|
||||
- {id: Magazines, cat: XXX/Other, desc: Adult Magazines}
|
||||
- {id: 3D Movies, cat: Movies/3D, desc: Movies 3D}
|
||||
- {id: AAC, cat: Audio, desc: Music AAC}
|
||||
- {id: Android, cat: PC/Mobile-Android, desc: Software Android}
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: Audio books, cat: Audio/Audiobook, desc: Books Audiobook}
|
||||
- {id: Bollywood, cat: Movies, desc: Bollywood}
|
||||
- {id: Comics, cat: Books/Comics, desc: Books Comics}
|
||||
- {id: DVD, cat: Movies/DVD, desc: Movies DVD}
|
||||
- {id: Documentary, cat: TV/Documentary, desc: Documentary}
|
||||
- {id: Dubbed Movies, cat: Movies/Foreign, desc: Movies Dubbed}
|
||||
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
|
||||
- {id: English-translated, cat: TV/Anime, desc: Anime English-translated}
|
||||
- {id: Games, cat: XXX/Other, desc: Adult Games}
|
||||
- {id: Hentai, cat: XXX/Other, desc: Adult Hentai}
|
||||
- {id: Windows, cat: PC, desc: Software Windows}
|
||||
- {id: Android, cat: PC/Mobile-Android, desc: Software Android}
|
||||
- {id: Mac, cat: PC/Mac, desc: Software Mac}
|
||||
- {id: Highres Movies, cat: Movies/HD, desc: Movies HD}
|
||||
- {id: Linux, cat: PC, desc: Software Linux}
|
||||
- {id: PC Games, cat: PC/Games, desc: PC Games}
|
||||
- {id: Lossless, cat: Audio/Lossless, desc: Music Lossless}
|
||||
- {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 videos, cat: Audio/Video, desc: Music Videos}
|
||||
- {id: NDS, cat: Console/NDS, desc: Games NDS}
|
||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
||||
- {id: Other Games, cat: Console/Other, desc: Games Other}
|
||||
- {id: Other Movies, cat: Movies/Other, desc: Movies Other}
|
||||
- {id: Other Music, cat: Audio/Other, desc: Music Other}
|
||||
- {id: Other, cat: Other/Misc, desc: Other}
|
||||
- {id: PC Games, cat: PC/Games, desc: PC Games}
|
||||
- {id: PS3, cat: Console/PS3, desc: Games PS3}
|
||||
- {id: PS4, cat: Console/PS4, desc: Games PS4}
|
||||
- {id: PSP, cat: Console/PSP, desc: Games PSP}
|
||||
- {id: Wii, cat: Console/Wii, desc: Games Wii}
|
||||
- {id: Xbox360, cat: Console/XBox 360, desc: Games Xbox360}
|
||||
- {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: Subs, cat: TV/Anime, desc: Anime Subs}
|
||||
- {id: Switch, cat: Console/Other, desc: Games Switch}
|
||||
- {id: Other Games, cat: Console/Other, desc: Games Other}
|
||||
- {id: English-translated, cat: TV/Anime, desc: Anime English-translated}
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: Audio books, cat: Audio/Audiobook, desc: Books Audiobook}
|
||||
- {id: Comics, cat: Books/Comics, desc: Books Comics}
|
||||
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
|
||||
- {id: Other, cat: Other/Misc, desc: Other}
|
||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
||||
- {id: TV, cat: TV, desc: TV}
|
||||
- {id: UltraHD, cat: Movies/UHD, desc: Movies UHD}
|
||||
- {id: Video, cat: XXX, desc: Adult / Porn}
|
||||
- {id: Wii, cat: Console/Wii, desc: Games Wii}
|
||||
- {id: Windows, cat: PC, desc: Software Windows}
|
||||
- {id: Xbox360, cat: Console/XBox 360, desc: Games Xbox360}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -94,7 +96,7 @@ search:
|
||||
args: ["in ", ""]
|
||||
- name: trim
|
||||
title:
|
||||
selector: a[href^="/torrent/"]
|
||||
selector: a[href^="/torrent/"]:not([href$="comments"])
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
|
||||
@@ -22,7 +22,11 @@ legacylinks:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "/anime/", cat: TV/Anime, desc: Anime}
|
||||
- {id: "/anime//anime/audio-lossless/", cat: Audio/Lossless, desc: "Anime Audio Lossless"}
|
||||
- {id: "/anime//anime/english-translated/", cat: TV/Anime, desc: "Anime English Translated"}
|
||||
- {id: "/anime//anime/raw", cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: "/anime//anime/subs/", cat: TV/Anime, desc: Anime Subs}
|
||||
- {id: "/anime/raw", cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: "/applications/", cat: PC, desc: Apps}
|
||||
- {id: "/applications//applications/android/", cat: PC/Mobile-Android, desc: "Apps Android"}
|
||||
- {id: "/applications//applications/ios/", cat: PC/Mobile-iOS, desc: "Apps iOS"}
|
||||
@@ -35,6 +39,7 @@ caps:
|
||||
- {id: "/books//books/comics/", cat: Books/Comics, desc: "Books Comics"}
|
||||
- {id: "/books//books/ebooks/", cat: Books/EBook, desc: "Books Ebooks"}
|
||||
- {id: "/games/", cat: PC/Games, desc: Games}
|
||||
- {id: "/games//games/mac/", cat: PC/Mac, desc: "Games Mac"}
|
||||
- {id: "/games//games/nds/", cat: Console/NDS, desc: "Games NDS"}
|
||||
- {id: "/games//games/other-games/", cat: Console/Other, desc: "Games Other"}
|
||||
- {id: "/games//games/pc-games/", cat: PC/Games, desc: "Games PC"}
|
||||
@@ -44,7 +49,6 @@ caps:
|
||||
- {id: "/games//games/switch/", cat: Console/Other, desc: "Games Switch"}
|
||||
- {id: "/games//games/wii/", cat: Console/Wii, desc: "Games Wii"}
|
||||
- {id: "/games//games/xbox360/", cat: Console/XBox 360, desc: "Games Xbox360"}
|
||||
- {id: "/games//games/mac/", cat: PC/Mac, desc: "Games Mac"}
|
||||
- {id: "/movies/", cat: Movies, desc: Movies}
|
||||
- {id: "/movies//movies/3d-movies/", cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: "/movies//movies/bollywood/", cat: Movies, desc: "Movies Bollywood"}
|
||||
@@ -52,11 +56,11 @@ caps:
|
||||
- {id: "/movies//movies/dubbed-movies/", cat: Movies, desc: "Movies Dubbed"}
|
||||
- {id: "/movies//movies/dvd/", cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: "/movies//movies/highres-movies/", cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: "/movies//movies/movie-clips/", cat: Movies/Other, desc: "Movies Movie clips"}
|
||||
- {id: "/movies//movies/mp4/", cat: Movies, desc: "Movies MP4"}
|
||||
- {id: "/movies//movies/music-videos/", cat: Audio/Video, desc: "Movies Music videos"}
|
||||
- {id: "/movies//movies/other-movies/", cat: Movies, desc: "Movies Other Movies"}
|
||||
- {id: "/movies//movies/ultrahd/", cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: "/movies//movies/music-videos/", cat: Audio/Video, desc: "Movies Music videos"}
|
||||
- {id: "/movies//movies/movie-clips/", cat: Movies/Other, desc: "Movies Movie clips"}
|
||||
- {id: "/music/", cat: Audio, desc: Music}
|
||||
- {id: "/music//music/aac/", cat: Audio, desc: "Music AAC"}
|
||||
- {id: "/music//music/lossless/", cat: Audio/Lossless, desc: "Music Lossless"}
|
||||
@@ -65,13 +69,13 @@ caps:
|
||||
- {id: "/music//music/radio-shows/", cat: Audio, desc: "Music Radio Shows"}
|
||||
- {id: "/other/", cat: Other, desc: Other}
|
||||
- {id: "/tv/", cat: TV, desc: TV}
|
||||
- {id: "/video/", cat: XXX, desc: "XXX Video"}
|
||||
- {id: "/xxx/", cat: XXX, desc: XXX}
|
||||
- {id: "/xxx//xxx/games/", cat: XXX/Other, desc: "XXX Games"}
|
||||
- {id: "/xxx//xxx/hentai/", cat: XXX/Other, desc: "XXX Hentai"}
|
||||
- {id: "/xxx//xxx/magazines/", cat: XXX/Other, desc: "XXX Magazines"}
|
||||
- {id: "/xxx//xxx/pictures/", cat: XXX/ImageSet, desc: "XXX Pictures"}
|
||||
- {id: "/xxx//xxx/video/", cat: XXX, desc: "XXX Video"}
|
||||
- {id: "/video/", cat: XXX, desc: "XXX Video"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -110,7 +114,7 @@ search:
|
||||
page: 2
|
||||
followredirect: true
|
||||
inputs:
|
||||
q: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
q: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# 0=last 24 hours, 1=last 3 days, 2=last week, 3=last 2 weeks, 4=last month
|
||||
|
||||
@@ -26,6 +26,7 @@ caps:
|
||||
- {id: 17, cat: TV/Sport, desc: "F2 Championship"}
|
||||
- {id: 18, cat: TV/Sport, desc: "F3 Championship"}
|
||||
- {id: 19, cat: TV/Sport, desc: "FE Championship"}
|
||||
- {id: 20, cat: TV/Sport, desc: "Freeleech"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -133,8 +133,6 @@ search:
|
||||
selector: td:nth-child(5) > span
|
||||
attribute: title
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
default: "20 years ago" # some torrents have "Never" date
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
@@ -148,12 +146,14 @@ search:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[alt=\"Freeleech\"]": 0
|
||||
i.unlimited_leech: 0
|
||||
i.sitewide_leech: 0
|
||||
img[alt="Freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
span.icon[title*="DoubleSeed"]: 2
|
||||
"img[alt=\"DoubleSeed\"]": 2
|
||||
img[alt="DoubleSeed"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
|
||||
@@ -31,6 +31,9 @@ search:
|
||||
inputs:
|
||||
q: "{{ .Keywords }}{{ if .Keywords }} in:title{{ else }}{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: tolower
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a.btn-success)
|
||||
|
||||
|
||||
73
src/Jackett.Common/Definitions/freejavtorrent.yml
Normal file
73
src/Jackett.Common/Definitions/freejavtorrent.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
id: freejavtorrent
|
||||
name: Free JAV Torrent
|
||||
description: "Free JAV Torrent is a Public tracker for Asian 3X (JAV)"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.freejavtorrent.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"Japanese Movies": XXX
|
||||
"Japanese Movies Packs": XXX/Pack
|
||||
"Chinese Movies": XXX
|
||||
"Japanese Movies SiteRip 1991-2014": XXX/Pack
|
||||
"Japanese Movies SiteRip 2015-2024": XXX/Pack
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a.download-button
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "s.php?search={{ if .Keywords }}{{ .Keywords }}{{ else }}%20{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: div.image-wrapper
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.catalog a
|
||||
title:
|
||||
selector: a.overlay
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^.+?\\] ", ""]
|
||||
details:
|
||||
selector: a.overlay
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.overlay
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "-(\\d+).html"
|
||||
- name: prepend
|
||||
args: "/dl.php?t="
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: a.overlay
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^\\[(\\d+(?:\\.\\d+)?\\s?[KMGT]B)\\]"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -1,143 +0,0 @@
|
||||
---
|
||||
id: genesismovement
|
||||
name: Genesis-Movement
|
||||
description: "Genesis-Movement is a Semi-Private Torrent Tracker for GENESIS BOOTLEG MUSIC"
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://torrent.genesis-movement.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 20, cat: Audio, desc: "Audio - Genesis"}
|
||||
- {id: 28, cat: Audio, desc: "Audio - Mike And The Mechanics "}
|
||||
- {id: 22, cat: Audio, desc: "Audio - Peter Gabriel"}
|
||||
- {id: 24, cat: Audio, desc: "Audio - Phil Collins"}
|
||||
- {id: 30, cat: Audio, desc: "Audio - Ray Wilson"}
|
||||
- {id: 26, cat: Audio, desc: "Audio - Steve Hackett"}
|
||||
- {id: 32, cat: Audio, desc: "Audio - Tony Banks"}
|
||||
- {id: 36, cat: Audio/Other, desc: "Misc - BrandX"}
|
||||
- {id: 19, cat: Audio/Other, desc: "Misc - Misc"}
|
||||
- {id: 38, cat: Audio/Other, desc: "Misc - Non-Music"}
|
||||
- {id: 21, cat: Audio/Video, desc: "Video - Genesis"}
|
||||
- {id: 29, cat: Audio/Video, desc: "Video - Mike And The Mechanics"}
|
||||
- {id: 23, cat: Audio/Video, desc: "Video - Peter Gabriel"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Video - Phil Collins"}
|
||||
- {id: 31, cat: Audio/Video, desc: "Video - Ray Wilson"}
|
||||
- {id: 27, cat: Audio/Video, desc: "Video - Steve Hackett"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Video - Tony Banks"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
name: title
|
||||
size: size
|
||||
seeders: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.bblock:contains("Access Denied")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://torrent.genesis-movement.org/torrents-search.php?c20=1&c24=1&search=&cat=0&tour=0&incldead=1&freeleech=0&lang=0&owner=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all
|
||||
tour: 0
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 any, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 English, 2 French, 3 German, 4 Italian, 5 Japanese, 6 Spanish, 7 Russian
|
||||
lang: 0
|
||||
# 0 all
|
||||
owner: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[class="ttable_headinner"] > tbody > tr:not(:has(td.ttable_head))
|
||||
after: 1
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div[id^="kt"] > table > tbody > tr > td:contains("Date Added:")
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{4} at \\d{2}:\\d{2}:\\d{2})"
|
||||
- name: replace
|
||||
args: [" at ", " "]
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm:ss"
|
||||
size:
|
||||
selector: td:nth-last-child(6)
|
||||
grabs:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
a[title="FreeLeech!"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# TorrentTrader
|
||||
@@ -6,8 +6,6 @@ language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
certificates:
|
||||
- b0728082e46b3cc54c913847cd931b7b895f5b72 # Expired 16 July 2025
|
||||
links:
|
||||
- https://hellashut.net/
|
||||
legacylinks:
|
||||
|
||||
@@ -6,8 +6,6 @@ language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
certificates:
|
||||
- b0728082e46b3cc54c913847cd931b7b895f5b72 # Expired 16 July 2025
|
||||
links:
|
||||
- https://hellashut.net/
|
||||
legacylinks:
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://idope.se/
|
||||
- https://idope.me/
|
||||
legacylinks:
|
||||
- https://idope.black-mirror.xyz/
|
||||
- https://idope.unblocked.casa/
|
||||
@@ -19,6 +19,7 @@ legacylinks:
|
||||
- https://idope.uk-unblock.pro/
|
||||
- https://idope.unblocked.rest/
|
||||
- https://idope.unblocked.monster/
|
||||
- https://idope.se/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -136,8 +136,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -210,4 +208,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
# json UNIT3D 9.1.6 (custom)
|
||||
|
||||
@@ -61,7 +61,7 @@ settings:
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must seed at least 1 torrent or log in every 30 days to avoid being pruned."
|
||||
default: "If a user has not actively logged in for 30 days, the profile is automatically deactivated and receives the user class 'Disabled'.<br>After deactivation, the profile can be reactivated within 60 days – after which it will be permanently deleted."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
|
||||
@@ -24,84 +24,87 @@ legacylinks:
|
||||
caps:
|
||||
categorymappings:
|
||||
# category naming is inconsistent with root cat being left out on some results, hence the duplicate entries with/without root
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: AnimeEnglish-translated, cat: TV/Anime, desc: "Anime English-translated"}
|
||||
- {id: English-translated, cat: TV/Anime, desc: "Anime English-translated"}
|
||||
- {id: Apps, cat: PC, desc: Apps}
|
||||
- {id: AppsWindows, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: Windows, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: AppsMac, cat: PC/Mac, desc: "Apps Mac"}
|
||||
- {id: Mac, cat: PC/Mac, desc: "Apps Mac"}
|
||||
- {id: AppsAndroid, cat: PC/Mobile-Android, desc: "Apps Android"}
|
||||
- {id: Android, cat: PC/Mobile-Android, desc: "Apps Android"}
|
||||
- {id: AppsLinux, cat: PC, desc: "Apps Linux"}
|
||||
- {id: Linux, cat: PC, desc: "Apps Linux"}
|
||||
- {id: Books, cat: Books, desc: Books}
|
||||
- {id: BooksAudiobooks, cat: Audio/Audiobook, desc: "Audio books"}
|
||||
- {id: Audiobooks, cat: Audio/Audiobook, desc: "Audio books"}
|
||||
- {id: BooksComics, cat: Books/Comics, desc: Comics}
|
||||
- {id: Comics, cat: Books/Comics, desc: Comics}
|
||||
- {id: BooksEbooks, cat: Books/EBook, desc: Ebooks}
|
||||
- {id: EBooks, cat: Books/EBook, desc: Ebooks}
|
||||
- {id: Games, cat: Console, desc: "Games"}
|
||||
- {id: PCGames, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: GamesPCGames, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: GamesOtherGames, cat: PC/Games, desc: "Games Other"}
|
||||
- {id: OtherGames, cat: PC/Games, desc: "Games Other"}
|
||||
- {id: GamesNDS, cat: Console/NDS, desc: NDS}
|
||||
- {id: NDS, cat: Console/NDS, desc: NDS}
|
||||
- {id: GamesPS3, cat: Console/PS3, desc: PS3}
|
||||
- {id: PS3, cat: Console/PS3, desc: PS3}
|
||||
- {id: GamesPS4, cat: Console/PS4, desc: PS4}
|
||||
- {id: PS4, cat: Console/PS4, desc: PS4}
|
||||
- {id: GamesPSP, cat: Console/PSP, desc: PSP}
|
||||
- {id: PSP, cat: Console/PSP, desc: PSP}
|
||||
- {id: GamesXbox360, cat: Console/XBox 360, desc: Xbox360}
|
||||
- {id: Xbox360, cat: Console/XBox 360, desc: Xbox360}
|
||||
- {id: GamesWii, cat: Console/Wii, desc: Wii}
|
||||
- {id: Wii, cat: Console/Wii, desc: Wii}
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Movies3DMovies, cat: Movies/3D, desc: "Movies 3D Movies"}
|
||||
- {id: 3DMovies, cat: Movies/3D, desc: "Movies 3D Movies"}
|
||||
- {id: MoviesBollywood, cat: Movies, desc: "Movies Bollywood"}
|
||||
- {id: Bollywood, cat: Movies, desc: "Movies Bollywood"}
|
||||
- {id: MoviesDocumentary, cat: Movies/Other, desc: "Movies Documentary"}
|
||||
- {id: Documentary, cat: Movies/Other, desc: "Movies Documentary"}
|
||||
- {id: MoviesDVD, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: DVD, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: MoviesMP4, cat: Movies/HD, desc: "Movies MP4"}
|
||||
- {id: MP4, cat: Movies/HD, desc: "Movies MP4"}
|
||||
- {id: MoviesHighresMovies, cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: HighresMovies, cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: MoviesDubbedMovies, cat: Movies, desc: "Movies Dubbed"}
|
||||
- {id: DubbedMovies, cat: Movies, desc: "Movies Dubbed"}
|
||||
- {id: MoviesUltraHD, cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: UltraHD, cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: MoviesOtherMovies, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: OtherMovies, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
- {id: MusicLossless, cat: Audio/Lossless, desc: "Music Lossless"}
|
||||
- {id: Lossless, cat: Audio/Lossless, desc: "Music Lossless"}
|
||||
- {id: MusicMP3, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: MP3, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: MoviesMusicvideos, cat: Audio/Video, desc: "Movies Music videos"}
|
||||
- {id: MusicMusicvideos, cat: Audio/Video, desc: "Music videos"}
|
||||
- {id: Musicvideos, cat: Audio/Video, desc: "Music videos"}
|
||||
- {id: MusicOthermusic, cat: Audio/Other, desc: "Music Other"}
|
||||
- {id: Othermusic, cat: Audio/Other, desc: "Music Other"}
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
- {id: Movieclips, cat: Other, desc: "Movie clips"}
|
||||
- {id: TV, cat: TV, desc: TV}
|
||||
- {id: AdultVideo, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: Adult, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: XXXVideo, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: Video, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: AdultGames, cat: XXX/Other, desc: "Adult Games"}
|
||||
- {id: AdultHentai, cat: XXX/Other, desc: "Adult Hentai"}
|
||||
- {id: AdultMagazines, cat: XXX/Other, desc: "Adult Magazines"}
|
||||
- {id: XXXGames, cat: XXX/Other, desc: "Adult Games"}
|
||||
- {id: AdultPictures, cat: XXX/ImageSet, desc: "Adult Pictures"}
|
||||
- {id: AdultVideo, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {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: AnimeEnglish-translated, cat: TV/Anime, desc: "Anime English-translated"}
|
||||
- {id: AnimeRaw, cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: AnimeSubs, cat: TV/Anime, desc: Anime Subs}
|
||||
- {id: Apps, cat: PC, desc: Apps}
|
||||
- {id: AppsAndroid, cat: PC/Mobile-Android, desc: "Apps Android"}
|
||||
- {id: AppsLinux, cat: PC, desc: "Apps Linux"}
|
||||
- {id: AppsMac, cat: PC/Mac, desc: "Apps Mac"}
|
||||
- {id: AppsWindows, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: Audiobooks, cat: Audio/Audiobook, desc: "Audio books"}
|
||||
- {id: Bollywood, cat: Movies, desc: "Movies Bollywood"}
|
||||
- {id: Books, cat: Books, desc: Books}
|
||||
- {id: BooksAudiobooks, cat: Audio/Audiobook, desc: "Audio books"}
|
||||
- {id: BooksComics, cat: Books/Comics, desc: Comics}
|
||||
- {id: BooksEbooks, cat: Books/EBook, desc: Ebooks}
|
||||
- {id: Comics, cat: Books/Comics, desc: Comics}
|
||||
- {id: DVD, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: Documentary, cat: Movies/Other, desc: "Movies Documentary"}
|
||||
- {id: DubbedMovies, cat: Movies, desc: "Movies Dubbed"}
|
||||
- {id: EBooks, cat: Books/EBook, desc: Ebooks}
|
||||
- {id: English-translated, cat: TV/Anime, desc: "Anime English-translated"}
|
||||
- {id: Games, cat: Console, desc: "Games"}
|
||||
- {id: GamesNDS, cat: Console/NDS, desc: NDS}
|
||||
- {id: GamesOtherGames, cat: PC/Games, desc: "Games Other"}
|
||||
- {id: GamesPCGames, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: GamesPS3, cat: Console/PS3, desc: PS3}
|
||||
- {id: GamesPS4, cat: Console/PS4, desc: PS4}
|
||||
- {id: GamesPSP, cat: Console/PSP, desc: PSP}
|
||||
- {id: GamesWii, cat: Console/Wii, desc: Wii}
|
||||
- {id: GamesXbox360, cat: Console/XBox 360, desc: Xbox360}
|
||||
- {id: HighresMovies, cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: Linux, cat: PC, desc: "Apps Linux"}
|
||||
- {id: Lossless, cat: Audio/Lossless, desc: "Music Lossless"}
|
||||
- {id: MP3, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: MP4, cat: Movies/HD, desc: "Movies MP4"}
|
||||
- {id: Mac, cat: PC/Mac, desc: "Apps Mac"}
|
||||
- {id: Movieclips, cat: Other, desc: "Movie clips"}
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Movies3DMovies, cat: Movies/3D, desc: "Movies 3D Movies"}
|
||||
- {id: MoviesBollywood, cat: Movies, desc: "Movies Bollywood"}
|
||||
- {id: MoviesDVD, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: MoviesDocumentary, cat: Movies/Other, desc: "Movies Documentary"}
|
||||
- {id: MoviesDubbedMovies, cat: Movies, desc: "Movies Dubbed"}
|
||||
- {id: MoviesHighresMovies, cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: MoviesMP4, cat: Movies/HD, desc: "Movies MP4"}
|
||||
- {id: MoviesMusicvideos, cat: Audio/Video, desc: "Movies Music videos"}
|
||||
- {id: MoviesOtherMovies, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: MoviesUltraHD, cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
- {id: MusicLossless, cat: Audio/Lossless, desc: "Music Lossless"}
|
||||
- {id: MusicMP3, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: MusicMusicvideos, cat: Audio/Video, desc: "Music videos"}
|
||||
- {id: MusicOthermusic, cat: Audio/Other, desc: "Music Other"}
|
||||
- {id: Musicvideos, cat: Audio/Video, desc: "Music videos"}
|
||||
- {id: NDS, cat: Console/NDS, desc: NDS}
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
- {id: OtherGames, cat: PC/Games, desc: "Games Other"}
|
||||
- {id: OtherMovies, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: Othermusic, cat: Audio/Other, desc: "Music Other"}
|
||||
- {id: PCGames, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: PS3, cat: Console/PS3, desc: PS3}
|
||||
- {id: PS4, cat: Console/PS4, desc: PS4}
|
||||
- {id: PSP, cat: Console/PSP, desc: PSP}
|
||||
- {id: TV, cat: TV, desc: TV}
|
||||
- {id: UltraHD, cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: Video, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: Wii, cat: Console/Wii, desc: Wii}
|
||||
- {id: Windows, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: XXXGames, cat: XXX/Other, desc: "Adult Games"}
|
||||
- {id: XXXPictures, cat: XXX/ImageSet, desc: "Adult Pictures"}
|
||||
- {id: XXXVideo, cat: XXX/WEB-DL, desc: "Adult Video"}
|
||||
- {id: Xbox360, cat: Console/XBox 360, desc: Xbox360}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -16,7 +16,7 @@ links:
|
||||
- https://kickasst.net/
|
||||
- https://kickasstorrents.id/
|
||||
- https://thekat.cc/
|
||||
- https://kickasshydra.dev/
|
||||
- https://kattracker.com/
|
||||
legacylinks:
|
||||
- https://kickass.gg/
|
||||
- https://katcr.io/
|
||||
@@ -29,6 +29,7 @@ legacylinks:
|
||||
- https://kickasstorrents.unblockninja.com/ # currently kickasstorrents-to proxy
|
||||
- https://kickass-kat.com/
|
||||
- https://kickass.sh/
|
||||
- https://kickasshydra.dev/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -21,21 +21,23 @@ caps:
|
||||
- {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: 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: 24, cat: Audio, desc: "Karaoke: All Karaoke"}
|
||||
- {id: 78, cat: Audio, desc: "Dj-Only: Dj-Music"}
|
||||
- {id: 52, cat: Movies, desc: "Classic Movies: Pre90s"}
|
||||
- {id: 47, cat: Movies/BluRay, desc: "Movies: Bluray-HD"}
|
||||
- {id: 28, cat: Movies, desc: "Movies: 2025"}
|
||||
- {id: 25, cat: Movies/WEB-DL, desc: "Movies: Web-DL"}
|
||||
- {id: 52, cat: Movies, desc: "Classic Movies: Pre90s"}
|
||||
- {id: 48, cat: Movies/SD, desc: "Movies: AVI-XVID-Dvdrip"}
|
||||
- {id: 41, cat: Movies/3D, desc: "Remux - 3D: Remux - 3D"}
|
||||
- {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
|
||||
- {id: 27, cat: Movies/UHD, desc: "Movies: 4K"}
|
||||
- {id: 23, cat: Movies/Other, desc: "Movies: Kid-Anime-Family"}
|
||||
- {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
|
||||
- {id: 9, cat: Movies/DVD, desc: "Movies: 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"}
|
||||
- {id: 54, cat: Movies, desc: "Movie Pack: Pre-90s"}
|
||||
- {id: 6, cat: Movies/Other, desc: "Kids Movie Pk: Movie Pks"}
|
||||
@@ -57,7 +59,6 @@ caps:
|
||||
- {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: 100, cat: Audio/Lossless, desc: "Web Music: Flac - MP3"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -40,13 +40,11 @@ caps:
|
||||
- {id: 24, cat: Movies/SD, desc: "Movies: XVID", default: true}
|
||||
- {id: 25, cat: Movies/SD, desc: "Movies: XVID-Ro", default: true}
|
||||
- {id: 26, cat: PC/0day, desc: "Software", default: true}
|
||||
- {id: 27, cat: XXX/x264, desc: "Movies: XXX", default: false}
|
||||
- {id: 28, cat: Audio, desc: "Music", default: true}
|
||||
- {id: 30, cat: PC/Games, desc: "Games: PC-ISO", default: true}
|
||||
- {id: 31, cat: Movies/UHD, desc: "Movies: 4K", default: true}
|
||||
- {id: 32, cat: Movies/UHD, desc: "Movies: 4KRo", default: true}
|
||||
- {id: 33, cat: PC/Games, desc: "Games: Packs", default: true}
|
||||
- {id: 34, cat: XXX/Pack, desc: "XXX Pack", default: false}
|
||||
- {id: 42, cat: TV/Sport, desc: "Sport", default: true}
|
||||
- {id: 43, cat: Books, desc: "Documents", default: true}
|
||||
- {id: 44, cat: Other, desc: "Images", default: true}
|
||||
@@ -56,9 +54,11 @@ caps:
|
||||
- {id: 55, cat: Movies/WEB-DL, desc: "Movies: WEB-DL Ro", default: true}
|
||||
- {id: 56, cat: TV/Documentary, desc: "Documentary", default: true}
|
||||
- {id: 57, cat: TV/Documentary, desc: "Documentary-Ro", default: true}
|
||||
- {id: 60, cat: XXX/ImageSet, desc: "ImagesXXX", default: false}
|
||||
- {id: 81, cat: Movies/HD, desc: "Movies: x265-Ro", default: true}
|
||||
- {id: 82, cat: Movies/HD, desc: "Movies: x265", default: true}
|
||||
- {id: 27, cat: XXX/x264, desc: "Movies: XXX", default: false}
|
||||
- {id: 34, cat: XXX/Pack, desc: "XXX Pack", default: false}
|
||||
- {id: 60, cat: XXX/ImageSet, desc: "ImagesXXX", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -78,12 +78,24 @@ settings:
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: _
|
||||
options:
|
||||
_: created
|
||||
name: title
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Accounts inactive for more than 42 days are automatically deleted."
|
||||
|
||||
login:
|
||||
path: login
|
||||
@@ -108,15 +120,20 @@ search:
|
||||
# https://lastfiles.ro/torrents?keyword=tt8337290&category=32&genre=&torrent_status=free
|
||||
- path: torrents
|
||||
categories: [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 42, 43, 44, 49, 51, 54, 55, 56, 57, 81, 82]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
# does not support multi categories
|
||||
- path: torrents/adult
|
||||
categories: [27, 34, 60]
|
||||
|
||||
inputs:
|
||||
# does not support multi categories, leaving out category keyword defaults to all
|
||||
keyword: "{{ .Keywords }}"
|
||||
# active, dead, free, double, seedbox
|
||||
torrent_status: "{{ if .Config.freeleech }}free{{ else }}active{{ end }}"
|
||||
# has sort for size and seeders but not for title or date
|
||||
# no option to sort by date, and using direction without sort breaks search, but the default for all is desc,
|
||||
# so we only add sort if it's anything other than date, and only add direction if it's asc
|
||||
sort: "{{ re_replace .Config.sort \"_\" \"\" }}"
|
||||
direction: "{{ re_replace .Config.type \"desc\" \"\" }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-hover > tbody > tr
|
||||
@@ -153,7 +170,7 @@ search:
|
||||
img[src$="/4k.png"]: 31
|
||||
img[src$="/4kRO.png"]: 32
|
||||
img[src$="/gpack.png"]: 33
|
||||
img[src$="/xxxpacks.png"]: 34
|
||||
img[src$="/packxxx.jpeg"]: 34
|
||||
img[src$="/sport.png"]: 42
|
||||
img[src$="/docs.png"]: 43
|
||||
img[src$="/images.png"]: 44
|
||||
@@ -178,32 +195,127 @@ search:
|
||||
- name: regexp
|
||||
args: "src='(.+?)'"
|
||||
genre:
|
||||
selector: div.torrent-genres
|
||||
selector: div.mt-1, div.torrent-genres
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
- name: replace
|
||||
args: ["Hip Hop", "Hip_Hop"]
|
||||
- name: replace
|
||||
args: ["Science Fiction", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: ["TV Movie", "TV_Movie"]
|
||||
- name: replace
|
||||
args: ["Various Artists", "Various_Artists"]
|
||||
- name: replace
|
||||
args: ["Packs Android", "Packs_Android"]
|
||||
- name: replace
|
||||
args: ["Hard Rock", "Hard_Rock"]
|
||||
- name: replace
|
||||
args: ["Romanian Standup Comedy", "Romanian_Standup_Comedy"]
|
||||
- name: replace
|
||||
args: ["Windows Apps", "Windows_Apps"]
|
||||
- name: replace
|
||||
args: ["Rock Pop Soul soft rock", "Rock_Pop_Soul_soft_rock"]
|
||||
- name: replace
|
||||
args: ["Love songs", "Love_songs"]
|
||||
- name: replace
|
||||
args: ["Dance-pop Synth-pop", "Dance-pop_Synth-pop"]
|
||||
- name: replace
|
||||
args: ["R&B Soul", "R&B_Soul"]
|
||||
- name: replace
|
||||
args: ["Heavy Metal", "Heavy_Metal"]
|
||||
- name: replace
|
||||
args: ["Alternative Rock Electronic", "Alternative_Rock_Electronic"]
|
||||
- name: replace
|
||||
args: ["New Wave", "New_Wave"]
|
||||
- name: replace
|
||||
args: ["Alternative Rock", "Alternative_Rock"]
|
||||
- name: replace
|
||||
args: ["Deep House Mix", "Deep_House_Mix"]
|
||||
- name: replace
|
||||
args: ["Folk metal", "Folk_metal"]
|
||||
- name: replace
|
||||
args: ["Ro eBook", "Ro_eBook"]
|
||||
- name: replace
|
||||
args: ["Pop rock", "Pop_rock"]
|
||||
- name: replace
|
||||
args: ["Indie Folk", "Indie_Folk"]
|
||||
- name: replace
|
||||
args: ["Folk Rock", "Folk_Rock"]
|
||||
- name: replace
|
||||
args: ["World Music", "World_Music"]
|
||||
- name: replace
|
||||
args: ["Black Metal", "Black_Metal"]
|
||||
- name: replace
|
||||
args: ["Blues Rock", "Blues_Rock"]
|
||||
- name: replace
|
||||
args: ["Jazz Rock", "Jazz_Rock"]
|
||||
- name: replace
|
||||
args: ["Indie Pop", "Indie_Pop"]
|
||||
- name: replace
|
||||
args: ["Indie Rock", "Indie_Rock"]
|
||||
- name: replace
|
||||
args: ["XXX Images", "XXX_Images"]
|
||||
- name: replace
|
||||
args: ["Biblia Sacra", "Biblia_Sacra"]
|
||||
- name: replace
|
||||
args: ["Video Downloader", "Video_Downloader"]
|
||||
- name: replace
|
||||
args: ["XXX ADULT +18", "XXX_ADULT_+18"]
|
||||
- name: replace
|
||||
args: ["Fotbal | UEFA EURO 2025 U21", "Fotbal_|_UEFA_EURO_2025_U21"]
|
||||
- name: replace
|
||||
args: ["Dezvoltare Personala", "Dezvoltare_Personala"]
|
||||
- name: replace
|
||||
args: ["Action Drama War History Adventure", "Action_Drama_War_History_Adventure"]
|
||||
- name: replace
|
||||
args: ["Bossa Nova", "Bossa_Nova"]
|
||||
- name: replace
|
||||
args: ["Funk Soul", "Funk_Soul"]
|
||||
- name: replace
|
||||
args: ["Formula 1", "Formula_1"]
|
||||
- name: replace
|
||||
args: ["Literatura Universala", "Literatura_Universala"]
|
||||
- name: replace
|
||||
args: ["Romane inspirate de Holocaust", "Romane_inspirate_de_Holocaust"]
|
||||
- name: replace
|
||||
args: ["Politica si stiinte politice", "Politica_si_stiinte_politice"]
|
||||
- name: replace
|
||||
args: ["Comentarii si opinii", "Comentarii_si_opinii"]
|
||||
- name: replace
|
||||
args: ["Studii și eseuri", "Studii_ș_i_eseuri"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-of-type(4) div[title]
|
||||
attribute: title
|
||||
date_elapsed:
|
||||
# torrents
|
||||
selector: td:nth-child(4) div[title]
|
||||
optional: true
|
||||
filters:
|
||||
- name: timeago
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "MMM dd, yyyy @ h:mm tt zzz"
|
||||
date_added:
|
||||
# torrents/adult
|
||||
selector: td:nth-child(4):not(:has(div))
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd-MMM-yyyy zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-of-type(5)
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-of-type(6)
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-of-type(7)
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-of-type(8)
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
div.free-btn: 0
|
||||
@@ -215,6 +327,6 @@ search:
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# Last Files V1
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
# Last Files V2
|
||||
|
||||
@@ -211,4 +211,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.0.8 (custom)
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "LetSeed is a TURKISH Private Torrent Tracker for MOVIES / TV / GEN
|
||||
language: tr-TR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 5a61cc89a0417dcfe03ef685f7423b6b0bd4dc6b # expired 28 Aug 2025
|
||||
links:
|
||||
- https://letseed.org/
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "LibraNet (LN) is a HUNGARIAN Private Torrent Tracker for EBOOKS /
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
certificates:
|
||||
- cf854da037e14a70df5da3b4088dc4059d5f3ffd # Expired 13 Aug 2025
|
||||
links:
|
||||
- https://libranet.org/
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# changes to this indexer should also be made to limetorrentsclone
|
||||
links:
|
||||
- https://www.limetorrents.lol/
|
||||
- https://www.limetorrents.fun/
|
||||
- https://limetorrents.unblockninja.com/
|
||||
- https://limetorrents.ninjaproxy1.com/
|
||||
- https://limetorrents.proxyninja.org/
|
||||
@@ -19,6 +19,7 @@ legacylinks:
|
||||
- https://limetorrents.nocensor.cloud/
|
||||
- https://limetorrents.abcproxy.org/
|
||||
- https://limetorrents.unblockit.download/
|
||||
- https://www.limetorrents.lol/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -26,7 +26,7 @@ settings:
|
||||
- name: info_login
|
||||
type: info
|
||||
label: About LosslessClub Forum versus LosslessClub Tracker
|
||||
default: "The <a href=\"https://losslessclub.com/\" target=\"_blank\">LosslessClub Forum</a> credentials are different from the <a href=\"https://losslessclub.com/login.php\" target=\"_blank\">LosslessClub Tracker</a> credentials so if the indexer is giving you 'Error Username or password is incorrect' then you are likely using the Forum credentials to access the Tracker."
|
||||
default: "The <a href=\"https://losslessclub.com/\" target=\"_blank\">LosslessClub Forum</a> credentials are different from the <a href=\"https://losslessclub.com/login.php\" target=\"_blank\">LosslessClub Tracker</a> credentials so if the indexer is giving you 'Error Username or password is incorrect' then you are likely using the Forum credentials to access the Tracker."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
|
||||
185
src/Jackett.Common/Definitions/luckpt.yml
Normal file
185
src/Jackett.Common/Definitions/luckpt.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
---
|
||||
id: luckpt
|
||||
name: LuckPT
|
||||
description: "LuckPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.luckpt.de/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影 / Movies"}
|
||||
- {id: 402, cat: TV, desc: "电视剧 / TV Series"}
|
||||
- {id: 405, cat: TV/Anime, desc: "动漫 / Animations"}
|
||||
- {id: 406, cat: Audio/Video, desc: "演唱会、MV / Music Videos"}
|
||||
- {id: 408, cat: Audio, desc: "音乐 / Music"}
|
||||
- {id: 409, cat: Other, desc: "其他 / Other"}
|
||||
- {id: 410, cat: TV, desc: "综艺 / TV Shows"}
|
||||
- {id: 411, cat: TV/Documentary, desc: "纪录片 / Documentary"}
|
||||
- {id: 412, cat: TV/Sport, desc: "体育 / Sports"}
|
||||
- {id: 413, cat: TV/Other, desc: "短剧 / Playlet"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>If there is no valid traffic within 100 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 30 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 150 consecutive days of non-login → banned</ul><ul>- Parked account: 400 consecutive days of non-login → banned</ul><ul>- Veteran Master and above levels are not subject to long-term non-login ban restrictions</ul></li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
optional: true
|
||||
default: 512MB
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
optional: true
|
||||
default: 0
|
||||
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:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
@@ -9,10 +9,10 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.8800492.xyz/
|
||||
- https://www.8800493.xyz/
|
||||
- https://www.8800494.xyz/
|
||||
- https://www.8800490.xyz/
|
||||
- https://www.8800498.xyz/
|
||||
- https://www.8800497.xyz/
|
||||
- https://www.8800499.xyz/
|
||||
- https://www.8800500.xyz/
|
||||
legacylinks:
|
||||
- https://www.8800460.xyz/
|
||||
- https://www.8800473.xyz/
|
||||
@@ -29,6 +29,10 @@ legacylinks:
|
||||
- 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/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -67,6 +67,10 @@ settings:
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info_useragent
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek oldalanként:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
@@ -87,10 +91,6 @@ search:
|
||||
categories: [4, 5, 48, 50, 75, 76, 26, 25, 58, 59, 42, 51, 38, 24, 85, 87, 47, 36, 6, 7, 56, 33, 44, 28, 32, 30, 53, 74, 40, 41, 34, 35, 46]
|
||||
inputs:
|
||||
tipus: 1
|
||||
- path: letoltes.php
|
||||
categories: [4, 5, 48, 50, 75, 76, 26, 25, 58, 59, 42, 51, 38, 24, 85, 87, 47, 36, 6, 7, 56, 33, 44, 28, 32, 30, 53, 74, 40, 41, 34, 35, 46]
|
||||
inputs:
|
||||
tipus: 2
|
||||
- path: xxx.php
|
||||
categories: [70, 39, 57]
|
||||
inputs:
|
||||
|
||||
@@ -115,8 +115,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -187,4 +185,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# json UNIT3D 9.1.2
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "MOJBLiNK is a SLOVENIAN Private Torrent Tracker for MOVIES / TV /
|
||||
language: sl-SI
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 736af8ef7f489e74d09d8feedc21821e1fbae296 # expired 23 Aug 2025
|
||||
links:
|
||||
- https://www.mojblink.si/
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.nortorrent6.com/
|
||||
- https://www.nortorrent.net/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -26,7 +26,6 @@ legacylinks:
|
||||
- https://torrent9.news/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.torrent9.gd/
|
||||
- https://www.torrent9.ing/
|
||||
- https://www.torrent9.run/
|
||||
- https://www.torrent9.cv/
|
||||
@@ -41,6 +40,7 @@ legacylinks:
|
||||
- https://www.nortorrent3.com/
|
||||
- https://www.nortorrent4.com/
|
||||
- https://www.nortorrent5.com/
|
||||
- https://www.nortorrent6.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -119,8 +119,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -195,4 +193,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -10,7 +10,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.oxtorrent8.com/
|
||||
- https://www.oxtorrent.fyi/
|
||||
- https://www.zone-torrent.me/
|
||||
- https://www.mega-torrent.net/
|
||||
legacylinks:
|
||||
@@ -28,8 +28,6 @@ legacylinks:
|
||||
- https://oxtorrent.blog/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.oxtorrent.cv/
|
||||
- https://www.torrent911.ke/
|
||||
- https://oxtorrent.proxyninja.org/
|
||||
- https://www-oxtorrent.com/
|
||||
- https://www.oxtorrent.ke/
|
||||
@@ -49,6 +47,8 @@ legacylinks:
|
||||
- https://www.oxtorrent7.com/
|
||||
- https://www.mega-torrent6.com/
|
||||
- https://www.zone-torrent3.com/
|
||||
- https://www.oxtorrent8.com/
|
||||
- https://www.oxtorrent.diy/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -42,7 +42,7 @@ caps:
|
||||
- {id: 30, cat: TV, desc: "TV Seriale Bajki"}
|
||||
- {id: 9, cat: TV/HD, desc: "TV Seriale HD"}
|
||||
- {id: 22, cat: TV/SD, desc: "TV Seriale SD"}
|
||||
- {id: 7, cat: XXX, desc: "XXX 18+"}
|
||||
- {id: 38, cat: TV, desc: "Reality TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -123,8 +123,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -199,4 +197,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.0.6
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -119,8 +119,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -191,4 +189,4 @@ search:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -11,30 +11,30 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
# VIP-Архив / VIP-Archive
|
||||
- {id: 224, cat: TV/Sport, desc: " |- VIP January 2025"}
|
||||
- {id: 225, cat: TV/Sport, desc: " |- VIP February 2025"}
|
||||
- {id: 402, cat: TV/Sport, desc: " |- VIP March 2025"}
|
||||
- {id: 403, cat: TV/Sport, desc: " |- VIP April 2025"}
|
||||
- {id: 408, cat: TV/Sport, desc: " |- VIP May 2025"}
|
||||
- {id: 409, cat: TV/Sport, desc: " |- VIP June 2025"}
|
||||
- {id: 436, cat: TV/Sport, desc: " |- VIP July 2025"}
|
||||
- {id: 438, cat: TV/Sport, desc: " |- VIP August 2025"}
|
||||
- {id: 448, cat: TV/Sport, desc: " |- VIP September 2025"}
|
||||
- {id: 449, cat: TV/Sport, desc: " |- VIP October 2025"}
|
||||
- {id: 450, cat: TV/Sport, desc: " |- VIP November 2025"}
|
||||
- {id: 451, cat: TV/Sport, desc: " |- VIP December 2025"}
|
||||
- {id: 235, cat: TV/Sport, desc: " |- VIP January 2024"}
|
||||
- {id: 247, cat: TV/Sport, desc: " |- VIP February 2024"}
|
||||
- {id: 250, cat: TV/Sport, desc: " |- VIP March 2024"}
|
||||
- {id: 252, cat: TV/Sport, desc: " |- VIP April 2024"}
|
||||
- {id: 273, cat: TV/Sport, desc: " |- VIP May 2022"}
|
||||
- {id: 275, cat: TV/Sport, desc: " |- VIP June 2022"}
|
||||
- {id: 375, cat: TV/Sport, desc: " |- VIP July 2022"}
|
||||
- {id: 378, cat: TV/Sport, desc: " |- VIP August 2022"}
|
||||
- {id: 382, cat: TV/Sport, desc: " |- VIP September 2022"}
|
||||
- {id: 384, cat: TV/Sport, desc: " |- VIP October 2022"}
|
||||
- {id: 385, cat: TV/Sport, desc: " |- VIP November 2022"}
|
||||
- {id: 386, cat: TV/Sport, desc: " |- VIP December 2022"}
|
||||
- {id: 224, cat: TV/Sport, desc: " |- VIP January 2023"}
|
||||
- {id: 225, cat: TV/Sport, desc: " |- VIP February 2023"}
|
||||
- {id: 402, cat: TV/Sport, desc: " |- VIP March 2023"}
|
||||
- {id: 403, cat: TV/Sport, desc: " |- VIP April 2023"}
|
||||
- {id: 408, cat: TV/Sport, desc: " |- VIP May 2023"}
|
||||
- {id: 409, cat: TV/Sport, desc: " |- VIP June 2023"}
|
||||
- {id: 436, cat: TV/Sport, desc: " |- VIP July 2023"}
|
||||
- {id: 438, cat: TV/Sport, desc: " |- VIP August 2023"}
|
||||
- {id: 448, cat: TV/Sport, desc: " |- VIP September 2023"}
|
||||
- {id: 449, cat: TV/Sport, desc: " |- VIP October 2023"}
|
||||
- {id: 450, cat: TV/Sport, desc: " |- VIP November 2023"}
|
||||
- {id: 451, cat: TV/Sport, desc: " |- VIP December 2023"}
|
||||
- {id: 273, cat: TV/Sport, desc: " |- VIP May 2024"}
|
||||
- {id: 275, cat: TV/Sport, desc: " |- VIP June 2024"}
|
||||
- {id: 375, cat: TV/Sport, desc: " |- VIP July 2024"}
|
||||
- {id: 378, cat: TV/Sport, desc: " |- VIP August 2024"}
|
||||
- {id: 382, cat: TV/Sport, desc: " |- VIP September 2024"}
|
||||
- {id: 384, cat: TV/Sport, desc: " |- VIP October 2024"}
|
||||
- {id: 385, cat: TV/Sport, desc: " |- VIP November 2024"}
|
||||
- {id: 386, cat: TV/Sport, desc: " |- VIP December 2024"}
|
||||
# Олимпийские игры / Olympic Games
|
||||
- {id: 464, cat: TV/Sport, desc: "Летние Олимпийские игры / 2024 /..."}
|
||||
- {id: 440, cat: TV/Sport, desc: " |- VIP-Extra Olympics 2024"}
|
||||
@@ -66,21 +66,29 @@ caps:
|
||||
- {id: 482, cat: TV/Sport, desc: " |- Обзорные и тематические..."}
|
||||
- {id: 476, cat: TV/Sport, desc: " |- Архив - Олимпиады прошлых лет"}
|
||||
# Футбол / Football
|
||||
- {id: 141, cat: TV/Sport, desc: "2026 FIFA World Cup / Чемпионат мира 2026"}
|
||||
- {id: 556, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2026"}
|
||||
- {id: 557, cat: TV/Sport, desc: " |- ⚽️VIP FIFA WC 2026"}
|
||||
- {id: 525, cat: TV/Sport, desc: " |- ⚽️VIP-Light FIFA WC 2026"}
|
||||
- {id: 157, cat: TV/Sport, desc: " |- FIFA WC 2026"}
|
||||
- {id: 579, cat: TV/Sport, desc: " |- FIFA WC 2026. Qualifiers"}
|
||||
- {id: 106, cat: TV/Sport, desc: "2025 FIFA Club World Cup / Клубный чемпиона..."}
|
||||
- {id: 554, cat: TV/Sport, desc: " |- ⚽-Extra 2025 FIFA Club World Cup"}
|
||||
- {id: 205, cat: TV/Sport, desc: " |- ️VIP-Archive 2025 FIFA Club World Cup"}
|
||||
- {id: 92, cat: TV/Sport, desc: " |- 2025 FIFA Club World Cup"}
|
||||
- {id: 163, cat: TV/Sport, desc: "EURO 2024 / Чемпионат Европы 2024"}
|
||||
- {id: 132, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4K EURO 2024"}
|
||||
- {id: 508, cat: TV/Sport, desc: " |- ⚽️VIP EURO 2024"}
|
||||
- {id: 497, cat: TV/Sport, desc: " |- VIP-Light UEFA EURO 2024"}
|
||||
- {id: 508, cat: TV/Sport, desc: " |- ⚽️VIP-Archive EURO 2024"}
|
||||
- {id: 513, cat: TV/Sport, desc: " |- UEFA EURO 2024"}
|
||||
- {id: 198, cat: TV/Sport, desc: " |- VIP UEFA Euro 2024 qualifying"}
|
||||
- {id: 195, cat: TV/Sport, desc: " |- UEFA Euro 2024 qualifying"}
|
||||
- {id: 580, cat: TV/Sport, desc: "FIFA WC 2022 / Чемпионат мира 2022"}
|
||||
- {id: 580, cat: TV/Sport, desc: "2022 FIFA World Cup / Чемпионат мира 2022"}
|
||||
- {id: 515, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA SATFEEDS WC 2022"}
|
||||
- {id: 234, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA 4K WC 2022"}
|
||||
- {id: 583, cat: TV/Sport, desc: " |- ⚽️VIP-Archive FIFA WC 2022"}
|
||||
- {id: 525, cat: TV/Sport, desc: " |- VIP-Light FIFA WC 2022"}
|
||||
- {id: 581, cat: TV/Sport, desc: " |- FIFA WC 2022"}
|
||||
- {id: 582, cat: TV/Sport, desc: " |- FIFA WC 2022. Qualifiers"}
|
||||
- {id: 432, cat: TV/Sport, desc: "FIFA WC 2018 / Чемпионат мира 2018"}
|
||||
- {id: 432, cat: TV/Sport, desc: "2018 FIFA World Cup / Чемпионат мира 2018"}
|
||||
- {id: 535, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2018 4K"}
|
||||
- {id: 559, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2018 Sat Feed"}
|
||||
- {id: 574, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC 2018"}
|
||||
@@ -88,6 +96,24 @@ caps:
|
||||
- {id: 136, cat: TV/Sport, desc: " |- FIFA WC 2018. Qualifiers"}
|
||||
- {id: 217, cat: TV/Sport, desc: " |- FIFA WC 2018. Reviews"}
|
||||
- {id: 458, cat: TV/Sport, desc: " |- VIP-Extra Archive FIFA WC 2018 Qualifiers"}
|
||||
- {id: 578, cat: TV/Sport, desc: "2025-26 UEFA Champions League"}
|
||||
- {id: 13, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k + Sat Feed UCL"}
|
||||
- {id: 511, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UCL 2025-26"}
|
||||
- {id: 425, cat: TV/Sport, desc: " |- ⚽️VIP UCL 2025-26"}
|
||||
- {id: 416, cat: TV/Sport, desc: " |- VIP-Light UCL 2025-26"}
|
||||
- {id: 340, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 342, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 344, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 339, cat: TV/Sport, desc: "2025-26 UEFA Europa League"}
|
||||
- {id: 12, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UEL 2025-26"}
|
||||
- {id: 343, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 341, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 345, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 315, cat: TV/Sport, desc: "2025-26 UEFA Europa Conference League"}
|
||||
- {id: 419, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 2025-26 UEFA ECL"}
|
||||
- {id: 114, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 165, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 164, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 452, cat: TV/Sport, desc: "2024-25 UEFA Champions League"}
|
||||
- {id: 558, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k + Sat Feed UCL"}
|
||||
- {id: 346, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UCL 2024-25"}
|
||||
@@ -110,50 +136,33 @@ caps:
|
||||
- {id: 405, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 536, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 249, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 578, cat: TV/Sport, desc: "2023-24 UEFA Champions League"}
|
||||
- {id: 13, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k + Sat Feed UCL"}
|
||||
- {id: 511, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UCL 2023-24"}
|
||||
- {id: 425, cat: TV/Sport, desc: " |- ⚽️VIP UCL 2023-24"}
|
||||
- {id: 416, cat: TV/Sport, desc: " |- VIP-Light UCL 2023-24"}
|
||||
- {id: 344, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 342, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 340, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 339, cat: TV/Sport, desc: "2023-24 UEFA Europa League"}
|
||||
- {id: 12, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UEL 2023-24"}
|
||||
- {id: 345, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 343, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 341, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 315, cat: TV/Sport, desc: "2023-24 UEFA Europa Conference League"}
|
||||
- {id: 419, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 2023-24 UEFA ECL"}
|
||||
- {id: 114, cat: TV/Sport, desc: " |- Qualifying Rounds"}
|
||||
- {id: 165, cat: TV/Sport, desc: " |- Group stage"}
|
||||
- {id: 164, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 3, cat: TV/Sport, desc: "Англия/England"}
|
||||
- {id: 407, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k England"}
|
||||
- {id: 561, cat: TV/Sport, desc: " |- ⚽️VIP-Extra EPL Classic"}
|
||||
- {id: 223, cat: TV/Sport, desc: " |- ⚽️VIP England"}
|
||||
- {id: 553, cat: TV/Sport, desc: " |- VIP-Light England"}
|
||||
- {id: 538, cat: TV/Sport, desc: " |- Premier League 2025-26"}
|
||||
- {id: 412, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 418, cat: TV/Sport, desc: " |- Championship+ 2025-26"}
|
||||
- {id: 54, cat: TV/Sport, desc: " |- Premier League 2024-25"}
|
||||
- {id: 538, cat: TV/Sport, desc: " |- Premier League 2023-24"}
|
||||
- {id: 412, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 418, cat: TV/Sport, desc: " |- Championship+ 2024-25"}
|
||||
- {id: 351, cat: TV/Sport, desc: " |- Championship+"}
|
||||
- {id: 53, cat: TV/Sport, desc: " |- National Cups up to 2023"}
|
||||
- {id: 53, cat: TV/Sport, desc: " |- National Cups up to 2026"}
|
||||
- {id: 55, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 2, cat: TV/Sport, desc: "Россия/СССР - Russia/USSR"}
|
||||
- {id: 381, cat: TV/Sport, desc: " |- VIP Russia"}
|
||||
- {id: 562, cat: TV/Sport, desc: " |- VIP-Light Russia"}
|
||||
- {id: 251, cat: TV/Sport, desc: " |- RPL 2025-26"}
|
||||
- {id: 423, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 496, cat: TV/Sport, desc: " |- FNL 2025-26"}
|
||||
- {id: 57, cat: TV/Sport, desc: " |- RPL 2024-25"}
|
||||
- {id: 496, cat: TV/Sport, desc: " |- FNL 2024-25"}
|
||||
- {id: 423, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 251, cat: TV/Sport, desc: " |- RPL 2023-24"}
|
||||
- {id: 56, cat: TV/Sport, desc: " |- National Cups up to 2025"}
|
||||
- {id: 46, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 8, cat: TV/Sport, desc: "Украина/Ukraine"}
|
||||
- {id: 563, cat: TV/Sport, desc: " |- VIP-Light Ukraine"}
|
||||
- {id: 410, cat: TV/Sport, desc: " |- UPL 2025-26"}
|
||||
- {id: 152, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 72, cat: TV/Sport, desc: " |- UPL 2024-25"}
|
||||
- {id: 152, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 410, cat: TV/Sport, desc: " |- UPL 2023-24"}
|
||||
- {id: 71, cat: TV/Sport, desc: " |- National Cups up to 2023"}
|
||||
- {id: 71, cat: TV/Sport, desc: " |- National Cups up to 2026"}
|
||||
- {id: 348, cat: TV/Sport, desc: " |- Lower leagues"}
|
||||
- {id: 70, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 4, cat: TV/Sport, desc: "Испания/Spain"}
|
||||
@@ -162,9 +171,9 @@ caps:
|
||||
- {id: 506, cat: TV/Sport, desc: " |- ⚽️VIP-Extra El Clasico"}
|
||||
- {id: 208, cat: TV/Sport, desc: " |- ⚽️VIP Spain"}
|
||||
- {id: 564, cat: TV/Sport, desc: " |- VIP-Light Spain"}
|
||||
- {id: 194, cat: TV/Sport, desc: " |- Primera Division 2025-26"}
|
||||
- {id: 424, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 58, cat: TV/Sport, desc: " |- Primera Division 2024-25"}
|
||||
- {id: 424, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 194, cat: TV/Sport, desc: " |- Primera Division 2023-24"}
|
||||
- {id: 59, cat: TV/Sport, desc: " |- National Cups up to 2025"}
|
||||
- {id: 353, cat: TV/Sport, desc: " |- Segunda, Segunda B"}
|
||||
- {id: 60, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
@@ -172,9 +181,9 @@ caps:
|
||||
- {id: 555, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k+ Germany"}
|
||||
- {id: 210, cat: TV/Sport, desc: " |- ⚽️VIP Germany"}
|
||||
- {id: 565, cat: TV/Sport, desc: " |- VIP-Light Germany"}
|
||||
- {id: 175, cat: TV/Sport, desc: " |- Bundesliga 2025-26"}
|
||||
- {id: 352, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 66, cat: TV/Sport, desc: " |- Bundesliga 2024-25"}
|
||||
- {id: 352, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 175, cat: TV/Sport, desc: " |- Bundesliga 2023-24"}
|
||||
- {id: 355, cat: TV/Sport, desc: " |- 2. Bundesliga"}
|
||||
- {id: 65, cat: TV/Sport, desc: " |- National Cups up to 2025"}
|
||||
- {id: 427, cat: TV/Sport, desc: " |- Lower leagues"}
|
||||
@@ -183,27 +192,27 @@ caps:
|
||||
- {id: 529, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Italy"}
|
||||
- {id: 209, cat: TV/Sport, desc: " |- ⚽️VIP Italy"}
|
||||
- {id: 566, cat: TV/Sport, desc: " |- VIP-Light Italy"}
|
||||
- {id: 174, cat: TV/Sport, desc: " |- Serie A 2025-26"}
|
||||
- {id: 196, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 63, cat: TV/Sport, desc: " |- Serie A 2024-25"}
|
||||
- {id: 196, cat: TV/Sport, desc: " |- National Cups 2024-25"}
|
||||
- {id: 174, cat: TV/Sport, desc: " |- Serie A 2023-24"}
|
||||
- {id: 354, cat: TV/Sport, desc: " |- Serie B, Lega Pro, Serie D"}
|
||||
- {id: 62, cat: TV/Sport, desc: " |- National Cups up to 2023"}
|
||||
- {id: 62, cat: TV/Sport, desc: " |- National Cups up to 2026"}
|
||||
- {id: 540, cat: TV/Sport, desc: " |- 1996-97 Juventus Classic"}
|
||||
- {id: 61, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 7, cat: TV/Sport, desc: "Франция/France"}
|
||||
- {id: 184, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4k + Sat Feed"}
|
||||
- {id: 211, cat: TV/Sport, desc: " |- ⚽️VIP France"}
|
||||
- {id: 567, cat: TV/Sport, desc: " |- VIP-Light France"}
|
||||
- {id: 69, cat: TV/Sport, desc: " |- Ligue 1 2025-26"}
|
||||
- {id: 133, cat: TV/Sport, desc: " |- National Cups 2025-26"}
|
||||
- {id: 176, cat: TV/Sport, desc: " |- Ligue 1 2024-25"}
|
||||
- {id: 133, cat: TV/Sport, desc: " |- National Cups 2023-24"}
|
||||
- {id: 69, cat: TV/Sport, desc: " |- Ligue 1 2023-24"}
|
||||
- {id: 428, cat: TV/Sport, desc: " |- Ligue 2"}
|
||||
- {id: 68, cat: TV/Sport, desc: " |- National Cups up to 2023"}
|
||||
- {id: 68, cat: TV/Sport, desc: " |- National Cups up to 2026"}
|
||||
- {id: 67, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 188, cat: TV/Sport, desc: "Нидерланды/Netherlands"}
|
||||
- {id: 189, cat: TV/Sport, desc: " |- VIP-Extra Eredividie"}
|
||||
- {id: 568, cat: TV/Sport, desc: " |- VIP Netherlands"}
|
||||
- {id: 356, cat: TV/Sport, desc: " |- Season 2024-25"}
|
||||
- {id: 356, cat: TV/Sport, desc: " |- Season 2025-26"}
|
||||
- {id: 190, cat: TV/Sport, desc: " |- National Cups"}
|
||||
- {id: 191, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Другие национальные чемпионаты..."}
|
||||
@@ -225,6 +234,7 @@ caps:
|
||||
- {id: 179, cat: TV/Sport, desc: " |- Previous years matches"}
|
||||
- {id: 11, cat: TV/Sport, desc: "Еврокубки/European Cups"}
|
||||
- {id: 523, cat: TV/Sport, desc: " |- ⚽️⚽️⚽️VIP-Ultra Archive UEFA"}
|
||||
- {id: 514, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UEFA Classic Finals"}
|
||||
- {id: 376, cat: TV/Sport, desc: " |- ⚽️VIP-Extra UEFA Classic"}
|
||||
- {id: 212, cat: TV/Sport, desc: " |- ⚽️VIP UEFA"}
|
||||
- {id: 421, cat: TV/Sport, desc: " |- VIP-Light UEFA"}
|
||||
@@ -248,10 +258,7 @@ caps:
|
||||
- {id: 117, cat: TV/Sport, desc: " |- Play-off"}
|
||||
- {id: 15, cat: TV/Sport, desc: "Чемпионаты Мира/FIFA World Cups"}
|
||||
- {id: 461, cat: TV/Sport, desc: " |- ⚽️VIP-Extra FIFA WC Classic"}
|
||||
- {id: 443, cat: TV/Sport, desc: " |- VIP-Extra 2023 FIFA U-20 World Cup"}
|
||||
- {id: 576, cat: TV/Sport, desc: " |- VIP-Light FIFA WC 2026 Qualifiers"}
|
||||
- {id: 454, cat: TV/Sport, desc: " |- FIFA WC 2026. Отборочный турнир"}
|
||||
- {id: 383, cat: TV/Sport, desc: " |- 2023 FIFA U20 World Cup"}
|
||||
- {id: 443, cat: TV/Sport, desc: " |- VIP-Extra FIFA World Cup"}
|
||||
- {id: 456, cat: TV/Sport, desc: " |- FIFA WC 2014. Финальный турнир"}
|
||||
- {id: 168, cat: TV/Sport, desc: " |- FIFA WC 2014. Отборочный турнир"}
|
||||
- {id: 495, cat: TV/Sport, desc: " |- FIFA WC 2014. Обзорные передачи"}
|
||||
@@ -260,10 +267,10 @@ caps:
|
||||
- {id: 218, cat: TV/Sport, desc: " |- VIP-Extra FIFA WC Old"}
|
||||
- {id: 14, cat: TV/Sport, desc: "Чемпионаты Европы/UEFA European..."}
|
||||
- {id: 242, cat: TV/Sport, desc: " |- ⚽️VIP-Extra EURO Classic"}
|
||||
- {id: 546, cat: TV/Sport, desc: " |- VIP-Extra EURO 2024 U17 + U19 + U21"}
|
||||
- {id: 528, cat: TV/Sport, desc: " |- ⚽️VIP-Extra 4K EURO 2020"}
|
||||
- {id: 216, cat: TV/Sport, desc: " |- ⚽️VIP-Archive UEFA EURO 2020"}
|
||||
- {id: 380, cat: TV/Sport, desc: " |- ⚽️VIP-Extra EURO 2016"}
|
||||
- {id: 546, cat: TV/Sport, desc: " |- VIP-Extra EURO 2023 U17 + U19 + U21"}
|
||||
- {id: 395, cat: TV/Sport, desc: " |- UEFA EURO 2020"}
|
||||
- {id: 447, cat: TV/Sport, desc: " |- UEFA EURO 2020 qualifying"}
|
||||
- {id: 552, cat: TV/Sport, desc: " |- EURO 2016. Финальный турнир"}
|
||||
@@ -279,14 +286,14 @@ caps:
|
||||
- {id: 243, cat: TV/Sport, desc: " |- VIP Clubs International"}
|
||||
- {id: 539, cat: TV/Sport, desc: " |- VIP-Light Clubs International"}
|
||||
- {id: 534, cat: TV/Sport, desc: " |- VIP-Extra 2023 CONCACAF Gold Cup"}
|
||||
- {id: 401, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Libertadores 2024"}
|
||||
- {id: 526, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Sudamericana 2024"}
|
||||
- {id: 401, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Libertadores 2025"}
|
||||
- {id: 526, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Copa Sudamericana 2025"}
|
||||
- {id: 399, cat: TV/Sport, desc: " |- ⚽️VIP-Extra CAF Competitions"}
|
||||
- {id: 550, cat: TV/Sport, desc: " |- ⚽️VIP-Extra AFC Competitions"}
|
||||
- {id: 524, cat: TV/Sport, desc: " |- VIP-Extra CONCACAF Competitions"}
|
||||
- {id: 463, cat: TV/Sport, desc: " |- 2024 Copa Libertadores"}
|
||||
- {id: 433, cat: TV/Sport, desc: " |- 2024 Copa Sudamericana"}
|
||||
- {id: 457, cat: TV/Sport, desc: " |- FIFA Club World Cups"}
|
||||
- {id: 463, cat: TV/Sport, desc: " |- 2025 Copa Libertadores"}
|
||||
- {id: 433, cat: TV/Sport, desc: " |- 2025 Copa Sudamericana"}
|
||||
- {id: 457, cat: TV/Sport, desc: " |- FIFA Club World Cup / FIFA Intercontinental Cup"}
|
||||
- {id: 472, cat: TV/Sport, desc: " |- CONCACAF Competitions"}
|
||||
- {id: 241, cat: TV/Sport, desc: " |- Copa Libertadores"}
|
||||
- {id: 367, cat: TV/Sport, desc: " |- Copa Sudamericana"}
|
||||
@@ -300,7 +307,7 @@ caps:
|
||||
- {id: 202, cat: TV/Sport, desc: " |- VIP-Light 2024 Copa America"}
|
||||
- {id: 575, cat: TV/Sport, desc: " |- 2024 Copa America"}
|
||||
- {id: 532, cat: TV/Sport, desc: " |- 2023 Africa Cup of Nations"}
|
||||
- {id: 422, cat: TV/Sport, desc: " |- 2021 Copa America"}
|
||||
- {id: 422, cat: TV/Sport, desc: " |- 2023 AFC Asian Cup"}
|
||||
- {id: 155, cat: TV/Sport, desc: " |- Copa America"}
|
||||
- {id: 435, cat: TV/Sport, desc: " |- CONCACAF Competitions"}
|
||||
- {id: 406, cat: TV/Sport, desc: " |- FIFA Confederations Cups"}
|
||||
@@ -312,11 +319,9 @@ caps:
|
||||
- {id: 387, cat: TV/Sport, desc: " |- ⚽️VIP-Extra Friendlies"}
|
||||
- {id: 219, cat: TV/Sport, desc: " |- VIP Friendlies"}
|
||||
- {id: 571, cat: TV/Sport, desc: " |- VIP-Light Friendlies"}
|
||||
- {id: 554, cat: TV/Sport, desc: " |- 2019 International Champions Cup"}
|
||||
- {id: 18, cat: TV/Sport, desc: "Мини-футбол/Футзал"}
|
||||
- {id: 19, cat: TV/Sport, desc: "Пляжный футбол"}
|
||||
- {id: 499, cat: TV/Sport, desc: "Женский футбол"}
|
||||
- {id: 92, cat: TV/Sport, desc: " |- Лига Чемпионов"}
|
||||
- {id: 17, cat: TV/Sport, desc: "Обзорные и аналитические..."}
|
||||
- {id: 37, cat: TV/Sport, desc: "Футбольное видео, прочее о..."}
|
||||
- {id: 199, cat: TV/Sport, desc: " |- Видео для мобильных устройств"}
|
||||
@@ -324,9 +329,9 @@ caps:
|
||||
- {id: 43, cat: TV/Sport, desc: "Аудиопередачи /Футбольное..."}
|
||||
# Спорт / Sport
|
||||
- {id: 23, cat: TV/Sport, desc: "Авто/мотоспорт"}
|
||||
- {id: 131, cat: TV/Sport, desc: " |- Formula 1. Season 2024"}
|
||||
- {id: 492, cat: TV/Sport, desc: " |- Formula 1. Season 2023"}
|
||||
- {id: 400, cat: TV/Sport, desc: " |- Formula 1. Seasons until 2022"}
|
||||
- {id: 131, cat: TV/Sport, desc: " |- Formula 1. Season 2025"}
|
||||
- {id: 492, cat: TV/Sport, desc: " |- Formula 1. Season 2024"}
|
||||
- {id: 400, cat: TV/Sport, desc: " |- Formula 1. Seasons until 2023"}
|
||||
- {id: 21, cat: TV/Sport, desc: "Хоккей"}
|
||||
- {id: 501, cat: TV/Sport, desc: " |- VIP-Extra ЧМ 2024 U-18 / IIHF WС 2024 U-18"}
|
||||
- {id: 420, cat: TV/Sport, desc: " |- ЧМ 2024 / IIHF WС 2024"}
|
||||
@@ -354,15 +359,15 @@ caps:
|
||||
- {id: 203, cat: TV/Sport, desc: " |- Women's basketball"}
|
||||
- {id: 22, cat: TV/Sport, desc: "Теннис"}
|
||||
- {id: 274, cat: TV/Sport, desc: " |- VIP-Extra Tennis"}
|
||||
- {id: 227, cat: TV/Sport, desc: " |- Australian Open 2024"}
|
||||
- {id: 248, cat: TV/Sport, desc: " |- Roland Garros 2024"}
|
||||
- {id: 388, cat: TV/Sport, desc: " |- Wimbledon 2024"}
|
||||
- {id: 227, cat: TV/Sport, desc: " |- Australian Open 2025"}
|
||||
- {id: 248, cat: TV/Sport, desc: " |- Roland Garros 2025"}
|
||||
- {id: 388, cat: TV/Sport, desc: " |- Wimbledon 2025"}
|
||||
- {id: 459, cat: TV/Sport, desc: " |- US Open 2024"}
|
||||
- {id: 505, cat: TV/Sport, desc: " |- ATP 1000 WT Masters 2023"}
|
||||
- {id: 502, cat: TV/Sport, desc: " |- ATP 250/500 World Tour 2023"}
|
||||
- {id: 504, cat: TV/Sport, desc: " |- WTA Tour 2023"}
|
||||
- {id: 503, cat: TV/Sport, desc: " |- Team Season 2023"}
|
||||
- {id: 128, cat: TV/Sport, desc: " |- Grand Slam Tournaments up to 2023"}
|
||||
- {id: 128, cat: TV/Sport, desc: " |- Grand Slam Tournaments up to 2024"}
|
||||
- {id: 127, cat: TV/Sport, desc: " |- ATP WT Masters 1000 up to 2022"}
|
||||
- {id: 125, cat: TV/Sport, desc: " |- ATP World Tour up to 2022"}
|
||||
- {id: 126, cat: TV/Sport, desc: " |- WTA Tour up to 2022"}
|
||||
@@ -373,7 +378,6 @@ caps:
|
||||
- {id: 455, cat: TV/Sport, desc: " |- Seasons until 2022"}
|
||||
- {id: 82, cat: TV/Sport, desc: "Гандбол"}
|
||||
- {id: 548, cat: TV/Sport, desc: " |- VIP-Extra Handball"}
|
||||
- {id: 205, cat: TV/Sport, desc: " |- VIP Handball"}
|
||||
- {id: 469, cat: TV/Sport, desc: " |- WC's and EURO's. Men"}
|
||||
- {id: 547, cat: TV/Sport, desc: " |- WC's and EURO's. Women"}
|
||||
- {id: 397, cat: TV/Sport, desc: " |- European club handball"}
|
||||
@@ -393,9 +397,7 @@ caps:
|
||||
- {id: 139, cat: TV/Sport, desc: "Тяжелая атлетика"}
|
||||
- {id: 122, cat: TV/Sport, desc: "Бильярд"}
|
||||
- {id: 123, cat: TV/Sport, desc: " |- Снукер"}
|
||||
- {id: 106, cat: TV/Sport, desc: "Покер"}
|
||||
- {id: 140, cat: TV/Sport, desc: "Велоспорт"}
|
||||
- {id: 141, cat: TV/Sport, desc: "Гимнастика"}
|
||||
- {id: 24, cat: TV/Sport, desc: "Зимние виды спорта"}
|
||||
- {id: 142, cat: TV/Sport, desc: " |- Фигурное катание"}
|
||||
- {id: 105, cat: TV/Sport, desc: " |- Лыжи"}
|
||||
@@ -484,10 +486,8 @@ caps:
|
||||
# Разное / Other
|
||||
- {id: 229, cat: TV/Sport, desc: "Тестовый форум"}
|
||||
# Администраторский
|
||||
- {id: 381, cat: TV/Sport, desc: " |- VIP-Extra UEL 2015-16"}
|
||||
- {id: 557, cat: TV/Sport, desc: " |- VIP-Extra UCL 2014-15"}
|
||||
- {id: 556, cat: TV/Sport, desc: " |- VIP-Extra UEL 2014-15"}
|
||||
- {id: 514, cat: TV/Sport, desc: " |- VIP-Extra UСL 2013-14"}
|
||||
- {id: 497, cat: TV/Sport, desc: " |- VIP-Light UEFA EURO 2024"}
|
||||
- {id: 383, cat: TV/Sport, desc: " |- 2023 FIFA U20 World Cup"}
|
||||
# Приватные разделы
|
||||
- {id: 509, cat: TV/Sport, desc: " |- VIP-Extra 2019 FIFA U-17 World Cup"}
|
||||
- {id: 230, cat: TV/Sport, desc: " |- VIP-Extra Copa America 2021"}
|
||||
|
||||
@@ -9,38 +9,38 @@ type: semi-private
|
||||
encoding: windows-1251
|
||||
followredirect: true
|
||||
links:
|
||||
- https://aug31.rudub.buzz/
|
||||
- https://sep23.rudub.bet/
|
||||
legacylinks:
|
||||
- https://aug16.rudub.club/
|
||||
- http://aug17.rudub.club/
|
||||
- https://aug17.rudub.club/
|
||||
- http://aug18.rudub.club/
|
||||
- https://aug18.rudub.club/
|
||||
- http://aug19.rudub.club/
|
||||
- https://aug19.rudub.club/
|
||||
- http://aug20.rudub.club/
|
||||
- https://aug20.rudub.club/
|
||||
- http://aug21.rudub.club/
|
||||
- https://aug21.rudub.club/
|
||||
- http://aug22.rudub.buzz/
|
||||
- https://aug22.rudub.buzz/
|
||||
- http://aug23.rudub.buzz/
|
||||
- https://aug23.rudub.buzz/
|
||||
- http://aug24.rudub.buzz/
|
||||
- https://aug24.rudub.buzz/
|
||||
- http://aug25.rudub.buzz/
|
||||
- https://aug25.rudub.buzz/
|
||||
- http://aug26.rudub.buzz/
|
||||
- https://aug26.rudub.buzz/
|
||||
- http://aug27.rudub.buzz/
|
||||
- https://aug27.rudub.buzz/
|
||||
- http://aug28.rudub.buzz/
|
||||
- https://aug28.rudub.buzz/
|
||||
- http://aug29.rudub.buzz/
|
||||
- https://aug29.rudub.buzz/
|
||||
- http://aug30.rudub.buzz/
|
||||
- https://aug30.rudub.buzz/
|
||||
- http://aug31.rudub.buzz/
|
||||
- https://sep08.rudub.bet/
|
||||
- http://sep09.rudub.bet/
|
||||
- https://sep09.rudub.bet/
|
||||
- http://sep10.rudub.bet/
|
||||
- https://sep10.rudub.bet/
|
||||
- http://sep11.rudub.bet/
|
||||
- https://sep11.rudub.bet/
|
||||
- http://sep12.rudub.bet/
|
||||
- https://sep12.rudub.bet/
|
||||
- http://sep13.rudub.bet/
|
||||
- https://sep13.rudub.bet/
|
||||
- http://sep14.rudub.bet/
|
||||
- https://sep14.rudub.bet/
|
||||
- http://sep15.rudub.bet/
|
||||
- https://sep15.rudub.bet/
|
||||
- http://sep16.rudub.bet/
|
||||
- https://sep16.rudub.bet/
|
||||
- http://sep17.rudub.bet/
|
||||
- https://sep17.rudub.bet/
|
||||
- http://sep18.rudub.bet/
|
||||
- https://sep18.rudub.bet/
|
||||
- http://sep19.rudub.bet/
|
||||
- https://sep19.rudub.bet/
|
||||
- http://sep20.rudub.bet/
|
||||
- https://sep20.rudub.bet/
|
||||
- http://sep21.rudub.bet/
|
||||
- https://sep21.rudub.bet/
|
||||
- http://sep22.rudub.bet/
|
||||
- https://sep22.rudub.bet/
|
||||
- http://sep23.rudub.bet/
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "TV"}
|
||||
|
||||
195
src/Jackett.Common/Definitions/sextorrent.yml
Normal file
195
src/Jackett.Common/Definitions/sextorrent.yml
Normal file
@@ -0,0 +1,195 @@
|
||||
# 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
|
||||
@@ -5,8 +5,6 @@ description: "TheEmpire (TE) is a Private Torrent Tracker for COMMONWEALTH TV /
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 922b485175aeea4e956d03596eedebcd4a09fedc # expired 23-May-2025
|
||||
links:
|
||||
- https://theempire.click/
|
||||
legacylinks:
|
||||
|
||||
@@ -60,7 +60,8 @@ caps:
|
||||
- {id: 130, cat: Books, desc: "E-Books FSK 18"}
|
||||
- {id: 159, cat: Movies/Other, desc: "Anime Movies HD"}
|
||||
- {id: 160, cat: Movies/Other, desc: "Anime Movies SD"}
|
||||
- {id: 128, cat: TV/Anime, desc: "Anime Serien"}
|
||||
- {id: 168, cat: TV/Anime, desc: "Anime Serien HD"}
|
||||
- {id: 169, cat: TV/Anime, desc: "Anime Serien SD"}
|
||||
- {id: 129, cat: TV/Anime, desc: "Anime Sonstiges"}
|
||||
- {id: 118, cat: Other, desc: "Other Mobile"}
|
||||
- {id: 119, cat: Other, desc: "Other Hörbücher"}
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "ThePlace (TP) is a Private Torrent Tracker for SEDUCTION / SELF-IM
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- ccb0ad32c7287499e90404492a7ee703b380d3a0 # Expired 30 Aug 2025
|
||||
links:
|
||||
- https://theplace.click/
|
||||
legacylinks:
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
---
|
||||
id: torlock
|
||||
name: Torlock
|
||||
description: "Torlock is a torrent search site that lists verified torrents only for TV series and movies"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.torlock.com/
|
||||
legacylinks:
|
||||
- https://torlock.com/
|
||||
- https://www.torlock.icu/
|
||||
- https://torlock.nocensor.cloud/
|
||||
- https://torlock.mrunblock.bond/
|
||||
- https://torlock.unblockit.download/
|
||||
- https://www.torlock2.com/ # 400 Bad Request No required SSL certificate was sent
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
categorymappings:
|
||||
- {id: TELEVISION, cat: TV, desc: "TV Shows"}
|
||||
- {id: MOVIES, cat: Movies, desc: "Movies"}
|
||||
- {id: MUSIC, cat: Audio, desc: "Music"}
|
||||
- {id: GAMES, cat: PC/Games, desc: "Games"}
|
||||
- {id: SOFTWARE, cat: PC, desc: "Software"}
|
||||
- {id: ANIME, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: EBOOKS, cat: Books/EBook, desc: "Books"}
|
||||
- {id: OTHER, cat: Other, desc: "Other"}
|
||||
- {id: ADULT, cat: XXX, desc: "Adult"}
|
||||
- {id: AUDIOBOOK, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: IMAGES, cat: Other/Misc, desc: "Images"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site (only works for search with keywords)
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "/all/torrents/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}"
|
||||
categories: ["!", TELEVISION, MOVIES, MUSIC, GAMES, SOFTWARE, ANIME, EBOOKS, OTHER, ADULT, AUDIOBOOK, IMAGES]
|
||||
- path: "{{ if .Keywords }}/television/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/television/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [TELEVISION]
|
||||
- path: "{{ if .Keywords }}/movie/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/movies/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [MOVIES]
|
||||
- path: "{{ if .Keywords }}/music/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/music/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [MUSIC]
|
||||
- path: "{{ if .Keywords }}/game/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/games/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [GAMES]
|
||||
- path: "{{ if .Keywords }}/software/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/software/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [SOFTWARE]
|
||||
- path: "{{ if .Keywords }}/anime/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/anime/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [ANIME]
|
||||
- path: "{{ if .Keywords }}/ebook/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/ebooks/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [EBOOKS]
|
||||
- path: "{{ if .Keywords }}/unknown/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/unknown.html{{end}}" # sorting is broken for unknown
|
||||
categories: [OTHER]
|
||||
- path: "{{ if .Keywords }}/adult/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/adult/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [ADULT]
|
||||
- path: "{{ if .Keywords }}/audiobook/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/audiobook/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [AUDIOBOOK]
|
||||
- path: "{{ if .Keywords }}/image/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/images/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
|
||||
categories: [IMAGES]
|
||||
keywordsfilters:
|
||||
- name: tolower
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "-"]
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(td:has(div:has(a[href^="/torrent/"])))
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span[class^="tv"]
|
||||
attribute: class
|
||||
case:
|
||||
span.tv0: OTHER
|
||||
span.tv1: MOVIES
|
||||
span.tv2: MUSIC
|
||||
span.tv3: TELEVISION
|
||||
span.tv4: GAMES
|
||||
span.tv5: SOFTWARE
|
||||
span.tv6: ANIME
|
||||
span.tv7: ADULT
|
||||
span.tv8: EBOOKS
|
||||
span.tv9: IMAGES
|
||||
span.tv10: EBOOKS
|
||||
span.tv12: AUDIOBOOK
|
||||
"*": OTHER # some torrents have invalid categories
|
||||
title:
|
||||
selector: td:nth-child(1) > div > a
|
||||
details:
|
||||
selector: td:nth-child(1) > div > a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-child(1) > div > a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/torrent/", "/tor/"]
|
||||
- name: regexp
|
||||
args: (^/tor/\d*)
|
||||
- name: append
|
||||
args: ".torrent"
|
||||
date_year:
|
||||
selector: td:nth-child(2):contains("/")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "M/d/yyyy zzz"
|
||||
date_day:
|
||||
selector: td:nth-child(2):contains("Today"), td:nth-child(2):contains("Yesterday")
|
||||
optional: true
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date_ago:
|
||||
selector: td:nth-child(2):not(:contains("Today")):not(:contains("Yesterday")):not(:contains("/"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(min|mins)", "minutes"]
|
||||
- name: timeago
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -5,8 +5,6 @@ description: "TOrrent-tuRK (TORK) is a TURKISH Private Torrent Tracker for HD MO
|
||||
language: tr-TR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 69ba9fe5b59701b93762e8a97a3b741718fcaef6 # Expired 5th July 2025
|
||||
links:
|
||||
- https://torrent-turk.de/
|
||||
legacylinks:
|
||||
|
||||
@@ -27,7 +27,7 @@ caps:
|
||||
- {id: 13, cat: Movies/BluRay, desc: "Movies Bluray"}
|
||||
- {id: 47, cat: Movies/UHD, desc: "Movies 4K"}
|
||||
- {id: 15, cat: Movies, desc: "Movies Boxsets"}
|
||||
- {id: 29, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 29, cat: Movies/Other, desc: "Documentaries"}
|
||||
|
||||
- {id: 26, cat: TV/SD, desc: "TV Episodes"}
|
||||
- {id: 32, cat: TV/HD, desc: "TV Episodes HD"}
|
||||
|
||||
@@ -5,19 +5,11 @@ description: "TorrentQQ (토렌트큐큐) is a Public KOREAN tracker for Korean
|
||||
language: ko-KR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 81ffa075511611129626f6dd81aa3e5a6b399c7b # cloudflare
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq383.com/
|
||||
- https://torrentegg73.com/
|
||||
- https://torrentqq386.com/
|
||||
- https://torrentegg76.com/
|
||||
legacylinks:
|
||||
- https://torrentegg59.com/
|
||||
- https://torrentqq368.com/
|
||||
- https://torrentegg60.com/
|
||||
- https://torrentqq369.com/
|
||||
- https://torrentegg61.com/
|
||||
- https://torrentqq370.com/
|
||||
- https://torrentegg62.com/
|
||||
- https://torrentqq371.com/
|
||||
- https://torrentegg63.com/
|
||||
@@ -41,6 +33,12 @@ legacylinks:
|
||||
- https://torrentqq381.com/
|
||||
- https://torrentqq382.com/
|
||||
- https://torrentegg72.com/
|
||||
- https://torrentegg73.com/
|
||||
- https://torrentqq383.com/
|
||||
- https://torrentqq384.com/
|
||||
- https://torrentegg74.com/
|
||||
- https://torrentqq385.com/
|
||||
- https://torrentegg75.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,11 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrentsome210.com/
|
||||
- https://torrentsome213.com/
|
||||
legacylinks:
|
||||
- https://torrentsome195.com/
|
||||
- https://torrentsome196.com/
|
||||
- https://torrentsome197.com/
|
||||
- https://torrentsome198.com/
|
||||
- https://torrentsome199.com/
|
||||
- https://torrentsome200.com/
|
||||
@@ -26,6 +23,9 @@ legacylinks:
|
||||
- https://torrentsome207.com/
|
||||
- https://torrentsome208.com/
|
||||
- https://torrentsome209.com/
|
||||
- https://torrentsome210.com/
|
||||
- https://torrentsome211.com/
|
||||
- https://torrentsome212.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,11 +9,8 @@ followredirect: true
|
||||
requestDelay: 2
|
||||
# to fetch current domain use https://tzip.top/
|
||||
links:
|
||||
- https://torrenttip191.top/
|
||||
- https://torrenttip194.top/
|
||||
legacylinks:
|
||||
- https://torrenttip176.com/
|
||||
- https://torrenttip177.com/
|
||||
- https://torrenttip178.com/
|
||||
- https://torrenttip179.com/
|
||||
- https://torrenttip180.top/
|
||||
- https://torrenttip181.top/
|
||||
@@ -26,6 +23,9 @@ legacylinks:
|
||||
- https://torrenttip188.top/
|
||||
- https://torrenttip189.top/
|
||||
- https://torrenttip190.top/
|
||||
- https://torrenttip191.top/
|
||||
- https://torrenttip192.top/
|
||||
- https://torrenttip193.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "TribalMixes is a ratioless Semi-Private Torrent Tracker for DJ MIX
|
||||
language: en-GB
|
||||
type: semi-private
|
||||
encoding: ISO-8859-1
|
||||
certificates:
|
||||
- 2bce64a8b2401c791d52146852fc1e194a992c75 # Expired 23rd Aug 2025
|
||||
links:
|
||||
- https://www.tribalmixes.com/
|
||||
|
||||
|
||||
@@ -113,8 +113,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -189,4 +187,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.7
|
||||
|
||||
@@ -90,8 +90,9 @@ caps:
|
||||
- {id: 124, cat: Audio, desc: " |- Фольклор, Народная и Этническая музыка"}
|
||||
- {id: 231, cat: Audio, desc: " |- Сборники и альбомы выходившие неофициальными изданиями."}
|
||||
- {id: 144, cat: Audio, desc: "♫ ROCK & METAL ♫"}
|
||||
- {id: 201, cat: Audio, desc: " |- Русский Rock, Metal"}
|
||||
- {id: 202, cat: Audio, desc: " |- Сборники Русского рока"}
|
||||
- {id: 201, cat: Audio, desc: " |- Русский Rock, Metal (mp3)"}
|
||||
- {id: 202, cat: Audio, desc: " |- Сборники Русского рока (mp3)"}
|
||||
- {id: 323, cat: Audio, desc: " |- Русский Rock, Metal (Lossless)"}
|
||||
- {id: 214, cat: Audio, desc: " |- Soft & Pop-Rock"}
|
||||
- {id: 156, cat: Audio, desc: " |- Progressive, Art, Classic & Hard Rock"}
|
||||
- {id: 213, cat: Audio, desc: " |- Melodic & Folk Rock"}
|
||||
|
||||
@@ -116,8 +116,10 @@ login:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
pin: "{{ .Config.pin }}"
|
||||
remember: 1
|
||||
error:
|
||||
- selector: table.tableinborder:contains("Login fehlgeschlagen!")
|
||||
- selector: div#loginStatus
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"], title:contains("APRILSCHERZ")
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "X-ite.me (XM) is a Private Torrent Tracker for LGBTQ MOVIES / GENE
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- BDA8F8F6401AF1D9D9A15EA3B7D30FD36DCC4F75 # Expired 19th Aug 2025
|
||||
links:
|
||||
- https://x-ite.me/
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ description: "xxxtor is a RUSSIAN Public Torrent Tracker for 3X"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 8fc6357f59e24d16d38f06ed34f780717f4bf0b4 # expired 3 Feb 2025
|
||||
links:
|
||||
- https://xxxtor.com/
|
||||
legacylinks:
|
||||
|
||||
@@ -119,8 +119,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -189,4 +187,4 @@ search:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
# json UNIT3D 9.1.2
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
id: yourbittorrent
|
||||
name: YourBittorrent
|
||||
description: "YourBittorrent is a Public torrent index"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://yourbittorrent.com/
|
||||
- https://yourbittorrent2.com/
|
||||
legacylinks:
|
||||
- https://yourbittorrent.host/
|
||||
- https://yourbittorrent.nocensor.cloud/
|
||||
- https://yourbittorrent.mrunblock.bond/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: software, cat: PC, desc: Software}
|
||||
- {id: ebooks, cat: Books, desc: Ebooks}
|
||||
- {id: adult, cat: XXX, desc: Adult}
|
||||
- {id: games, cat: PC/Games, desc: Games}
|
||||
- {id: movies, cat: Movies, desc: Movies}
|
||||
- {id: music, cat: Audio, desc: Music}
|
||||
- {id: television, cat: TV, desc: TV}
|
||||
- {id: other, cat: Other, desc: Other}
|
||||
- {id: photos, cat: Other, desc: Photos}
|
||||
- {id: pictures, cat: Other, desc: Pictures}
|
||||
- {id: unknown, cat: Other, desc: Unknown}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
q: "{{ .Keywords }}"
|
||||
allowEmptyInputs: true
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+", "-"]
|
||||
- name: tolower
|
||||
|
||||
rows:
|
||||
selector: tr.table-default:has(a[href^="/torrent/"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1)
|
||||
attribute: onclick
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "href='/(.+?).html"
|
||||
title:
|
||||
selector: td:nth-child(2) a
|
||||
details:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: href
|
||||
# turn /torrent/25778710/have-i-got-news-for-you-s59e02-720p-britishb00bseztv.html
|
||||
# into /down/25778710.torrent
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
- name: prepend
|
||||
args: "/down/"
|
||||
- name: append
|
||||
args: ".torrent"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
date_day:
|
||||
selector: td:nth-child(4):not(:contains("/")):not(:contains("-"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Today", "now"]
|
||||
- name: replace
|
||||
args: ["Yesterday", "1 day"]
|
||||
- name: timeago
|
||||
date_year:
|
||||
selector: td:nth-child(4):contains("/"), td:nth-child(4):contains("-")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["-", "/"]
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "dd/MM/yy zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -124,8 +124,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -200,4 +198,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.1.6
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.zetorrents1.com/
|
||||
- https://www.zetorrents.diy/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -22,7 +22,6 @@ legacylinks:
|
||||
- https://www.rantop.org/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.zetorrents.cc/
|
||||
- https://www.zetorrents.tv/
|
||||
- https://www.zetorrents.bz/
|
||||
- https://www.zetorrents.nl/
|
||||
@@ -39,6 +38,7 @@ legacylinks:
|
||||
- https://www.zetorrents.my/
|
||||
- https://wvw-zetorrents.com/
|
||||
- https://www-zetorrents.com/
|
||||
- https://www.zetorrents1.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
||||
@@ -7,9 +7,11 @@ description: "ZkTorrent is a FRENCH Public site for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 6daab5aed021a47614f439584fc450bde16cb528 # cloudflare
|
||||
# to fetch current domain use https://www.rantop.my/
|
||||
links:
|
||||
- https://www.zktorrent5.com/
|
||||
- https://www.zktorrent.net/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.my/
|
||||
@@ -25,7 +27,6 @@ legacylinks:
|
||||
- https://gktorrent.news/
|
||||
- https://www.site-torrent.com/
|
||||
# actual legacylinks
|
||||
- https://www.gktorrent.sk/
|
||||
- https://www.gktorrent.uno/
|
||||
- https://www.gktorrent.gy/
|
||||
- https://www.gktorrent.si/
|
||||
@@ -40,6 +41,7 @@ legacylinks:
|
||||
- https://www.zktorrent2.com/
|
||||
- https://www.zktorrent3.com/
|
||||
- https://www.zktorrent4.com/
|
||||
- https://www.zktorrent5.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -1,303 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class Anidex : IndexerBase
|
||||
{
|
||||
public override string Id => "anidex";
|
||||
public override string Name => "Anidex";
|
||||
public override string Description => "Anidex is a Public torrent tracker and indexer, primarily for English fansub groups of anime";
|
||||
public override string SiteLink { get; protected set; } = "https://anidex.info/";
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "public";
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
public Anidex(IIndexerConfigurationService configService, Utils.Clients.WebClient wc, Logger l,
|
||||
IProtectionService ps, ICacheService cs)
|
||||
: base(configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationData())
|
||||
{
|
||||
configData.AddDynamic("DDoS-Guard", new DisplayInfoConfigurationItem("DDoS-Guard", "This site may use DDoS-Guard Protection, therefore Jackett requires <a href='https://github.com/Jackett/Jackett#configuring-flaresolverr' target='_blank'>FlareSolverr</a> to access it."));
|
||||
|
||||
AddLanguageConfiguration();
|
||||
|
||||
// Configure the sort selects
|
||||
var sortBySelect = new SingleSelectConfigurationItem("Sort by", new Dictionary<string, string>
|
||||
{
|
||||
{"upload_timestamp", "created"},
|
||||
{"seeders", "seeders"},
|
||||
{"size", "size"},
|
||||
{"filename", "title"}
|
||||
})
|
||||
{ Value = "upload_timestamp" };
|
||||
configData.AddDynamic("sortrequestedfromsite", sortBySelect);
|
||||
|
||||
var orderSelect = new SingleSelectConfigurationItem("Order", new Dictionary<string, string>
|
||||
{
|
||||
{"desc", "Descending"},
|
||||
{"asc", "Ascending"}
|
||||
})
|
||||
{ Value = "desc" };
|
||||
configData.AddDynamic("orderrequestedfromsite", orderSelect);
|
||||
|
||||
EnableConfigurableRetryAttempts();
|
||||
}
|
||||
|
||||
private TorznabCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q,
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q,
|
||||
}
|
||||
};
|
||||
|
||||
// Configure the category mappings
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "Anime - Sub");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime - Raw");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.TVAnime, "Anime - Dub");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.TVAnime, "LA - Sub");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.TVAnime, "LA - Raw");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.BooksEBook, "Light Novel");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.BooksComics, "Manga - TLed");
|
||||
caps.Categories.AddCategoryMapping(8, TorznabCatType.BooksComics, "Manga - Raw");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.AudioMP3, "♫ - Lossy");
|
||||
caps.Categories.AddCategoryMapping(10, TorznabCatType.AudioLossless, "♫ - Lossless");
|
||||
caps.Categories.AddCategoryMapping(11, TorznabCatType.AudioVideo, "♫ - Video");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.PCGames, "Games");
|
||||
caps.Categories.AddCategoryMapping(13, TorznabCatType.PC0day, "Applications");
|
||||
caps.Categories.AddCategoryMapping(14, TorznabCatType.XXXImageSet, "Pictures");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.XXX, "Adult Video");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.Other, "Other");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
private void AddLanguageConfiguration()
|
||||
{
|
||||
// Configure the language select option
|
||||
var languageSelect = new MultiSelectConfigurationItem("Language (None ticked = ALL)", new Dictionary<string, string>
|
||||
{
|
||||
{"1", "English"},
|
||||
{"2", "Japanese"},
|
||||
{"3", "Polish"},
|
||||
{"4", "Serbo-Croatian"},
|
||||
{"5", "Dutch"},
|
||||
{"6", "Italian"},
|
||||
{"7", "Russian"},
|
||||
{"8", "German"},
|
||||
{"9", "Hungarian"},
|
||||
{"10", "French"},
|
||||
{"11", "Finnish"},
|
||||
{"12", "Vietnamese"},
|
||||
{"13", "Greek"},
|
||||
{"14", "Bulgarian"},
|
||||
{"15", "Spanish (Spain)"},
|
||||
{"16", "Portuguese (Brazil)"},
|
||||
{"17", "Portuguese (Portugal)"},
|
||||
{"18", "Swedish"},
|
||||
{"19", "Arabic"},
|
||||
{"20", "Danish"},
|
||||
{"21", "Chinese (Simplified)"},
|
||||
{"22", "Bengali"},
|
||||
{"23", "Romanian"},
|
||||
{"24", "Czech"},
|
||||
{"25", "Mongolian"},
|
||||
{"26", "Turkish"},
|
||||
{"27", "Indonesian"},
|
||||
{"28", "Korean"},
|
||||
{"29", "Spanish (LATAM)"},
|
||||
{"30", "Persian"},
|
||||
{"31", "Malaysian"}
|
||||
})
|
||||
{ Values = new[] { "" } };
|
||||
configData.AddDynamic("languageid", languageSelect);
|
||||
}
|
||||
|
||||
private string GetSortBy => ((SingleSelectConfigurationItem)configData.GetDynamic("sortrequestedfromsite")).Value;
|
||||
|
||||
private string GetOrder => ((SingleSelectConfigurationItem)configData.GetDynamic("orderrequestedfromsite")).Value;
|
||||
|
||||
private Uri GetAbsoluteUrl(string relativeUrl) => new Uri(SiteLink + relativeUrl.TrimStart('/'));
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
var releases = await PerformQuery(new TorznabQuery());
|
||||
|
||||
await ConfigureIfOK(string.Empty, releases.Any(), () => throw new Exception("Could not find releases from this URL"));
|
||||
|
||||
return IndexerConfigurationStatus.Completed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the selected languages, formatted so that they can be used in a query string.
|
||||
/// </summary>
|
||||
private string GetLanguagesForQuery()
|
||||
{
|
||||
var languagesConfig = (MultiSelectConfigurationItem)configData.GetDynamic("languageid");
|
||||
return string.Join(",", languagesConfig.Values);
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
// Prepare the search query
|
||||
var queryParameters = new NameValueCollection
|
||||
{
|
||||
{ "page", "search" },
|
||||
{ "s", GetSortBy },
|
||||
{ "o", GetOrder },
|
||||
{ "group_id", "0" }, // No group
|
||||
{ "q", query.GetQueryString() ?? string.Empty }
|
||||
};
|
||||
|
||||
// Get specified categories
|
||||
// AniDex throws errors when categories are url encoded. See issue #9727
|
||||
var searchCategories = MapTorznabCapsToTrackers(query);
|
||||
var catString = "";
|
||||
if (searchCategories.Any() && GetAllTrackerCategories().Except(searchCategories).Any())
|
||||
{
|
||||
catString = "&id=" + string.Join(",", searchCategories);
|
||||
}
|
||||
|
||||
// Get Selected Languages
|
||||
// AniDex throws errors when the commas between language IDs are url encoded.
|
||||
var langIds = "&lang_id=" + GetLanguagesForQuery();
|
||||
|
||||
// Make search request
|
||||
var searchUri = GetAbsoluteUrl("?" + queryParameters.GetQueryString() + catString + langIds);
|
||||
var response = await RequestWithCookiesAndRetryAsync(searchUri.AbsoluteUri);
|
||||
|
||||
if (response.Status != HttpStatusCode.OK)
|
||||
throw new WebException($"Anidex search returned unexpected result. Expected 200 OK but got {response.Status}.", WebExceptionStatus.ProtocolError);
|
||||
|
||||
// Search seems to have been a success so parse it
|
||||
return ParseResult(response.ContentString);
|
||||
}
|
||||
|
||||
private IEnumerable<ReleaseInfo> ParseResult(string response)
|
||||
{
|
||||
try
|
||||
{
|
||||
var resultParser = new HtmlParser();
|
||||
using var resultDocument = resultParser.ParseDocument(response);
|
||||
IEnumerable<IElement> rows = resultDocument.QuerySelectorAll("div#content table > tbody > tr");
|
||||
|
||||
var releases = new List<ReleaseInfo>();
|
||||
foreach (var r in rows)
|
||||
try
|
||||
{
|
||||
var language = "";
|
||||
var release = new ReleaseInfo();
|
||||
|
||||
release.Category = ParseValueFromRow(r, nameof(release.Category), "td:nth-child(1) a", (e) => MapTrackerCatToNewznab(e.Attributes["href"].Value.Substring(5)));
|
||||
language = ParseValueFromRow(r, nameof(language), "td:nth-child(1) img", (e) => e.Attributes["title"].Value);
|
||||
release.Title = ParseStringValueFromRow(r, nameof(release.Title), "td:nth-child(3) span") + " " + language;
|
||||
release.Link = ParseValueFromRow(r, nameof(release.Link), "a[href^=\"/dl/\"]", (e) => GetAbsoluteUrl(e.Attributes["href"].Value));
|
||||
release.MagnetUri = ParseValueFromRow(r, nameof(release.MagnetUri), "a[href^=\"magnet:?\"]", (e) => new Uri(e.Attributes["href"].Value));
|
||||
release.Size = ParseValueFromRow(r, nameof(release.Size), "td:nth-child(7)", (e) => ParseUtil.GetBytes(e.Text()));
|
||||
release.PublishDate = ParseValueFromRow(r, nameof(release.PublishDate), "td:nth-child(8)", (e) => DateTime.ParseExact(e.Attributes["title"].Value, "yyyy-MM-dd HH:mm:ss UTC", CultureInfo.InvariantCulture));
|
||||
release.Seeders = ParseIntValueFromRow(r, nameof(release.Seeders), "td:nth-child(9)");
|
||||
release.Peers = ParseIntValueFromRow(r, nameof(release.Peers), "td:nth-child(10)") + release.Seeders;
|
||||
release.Grabs = ParseIntValueFromRow(r, nameof(release.Grabs), "td:nth-child(11)");
|
||||
release.Details = ParseValueFromRow(r, nameof(release.Details), "td:nth-child(3) a", (e) => GetAbsoluteUrl(e.Attributes["href"].Value));
|
||||
release.Guid = release.Details;
|
||||
release.DownloadVolumeFactor = 0;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
releases.Add(release);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error($"Anidex: Error parsing search result row '{r.ToHtmlPretty()}':\n\n{ex}");
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new IOException($"Error parsing search result page: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
private static TResult ParseValueFromRow<TResult>(IElement row, string propertyName, string selector,
|
||||
Func<IElement, TResult> parseFunction)
|
||||
{
|
||||
try
|
||||
{
|
||||
var selectedElement = row.QuerySelector(selector);
|
||||
if (selectedElement == null)
|
||||
throw new IOException($"Unable to find '{selector}'.");
|
||||
|
||||
return parseFunction(selectedElement);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new IOException($"Error parsing for property '{propertyName}': {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private static string ParseStringValueFromRow(IElement row, string propertyName, string selector)
|
||||
{
|
||||
try
|
||||
{
|
||||
var selectedElement = row.QuerySelector(selector);
|
||||
if (selectedElement == null)
|
||||
throw new IOException($"Unable to find '{selector}'.");
|
||||
|
||||
return selectedElement.Text();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new IOException($"Error parsing for property '{propertyName}': {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private static int ParseIntValueFromRow(IElement row, string propertyName, string selector)
|
||||
{
|
||||
try
|
||||
{
|
||||
var text = ParseStringValueFromRow(row, propertyName, selector);
|
||||
if (!int.TryParse(text, out var value))
|
||||
throw new IOException($"Could not convert '{text}' to int.");
|
||||
return value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new IOException($"Error parsing for property '{propertyName}': {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -645,7 +645,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
var advancedSeasonRegex = new Regex(@"\b(?:(?<season>\d+)(?:st|nd|rd|th) Season|Season (?<season>\d+))\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
||||
var seasonCharactersRegex = new Regex(@"(I{2,})$", RegexOptions.Compiled);
|
||||
var seasonNumberRegex = new Regex(@"\b(?<!Part[- ._])(?<!\d[/])(?:S)?(?<season>[2-9])$", RegexOptions.Compiled);
|
||||
var seasonNumberRegex = new Regex(@"\b(?<!(Part|No\.)[- ._])(?<!\d[/])(?<!\#)(?:S)?(?<season>[2-9])$", RegexOptions.Compiled);
|
||||
|
||||
foreach (var title in titles)
|
||||
{
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Jackett.Common.Indexers.Definitions.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class CGPeers : GazelleTracker
|
||||
{
|
||||
public override string Id => "cgpeers";
|
||||
public override string Name => "CGPeers";
|
||||
public override string Description => "CGPeers is a Private Torrent Tracker for GRAPHICS SOFTWARE / TUTORIALS / ETC";
|
||||
public override string SiteLink { get; protected set; } = "https://cgpeers.to/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www.cgpeers.com/"
|
||||
};
|
||||
public override string Language => "en-US";
|
||||
public override string Type => "private";
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
public CGPeers(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cs: cs,
|
||||
supportsFreeleechTokens: true,
|
||||
has2Fa: true)
|
||||
{
|
||||
}
|
||||
|
||||
private TorznabCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new TorznabCapabilities();
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.PCISO, "Full Applications");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.PC0day, "Plugins");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.Other, "Tutorials");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.Other, "Models");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.Other, "Materials");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.OtherMisc, "Misc");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.Other, "GameDev");
|
||||
|
||||
return caps;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,10 +29,10 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH Public tracker for MOVIES / TV / GENERAL";
|
||||
// in the event the redirect is inactive https://t.me/s/dontorrent should have the latest working domain
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.irish/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.istanbul/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.irish/",
|
||||
"https://dontorrent.istanbul/",
|
||||
"https://todotorrents.org/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -41,8 +41,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.schule/",
|
||||
"https://dontorrent.stream/",
|
||||
"https://dontorrent.website/",
|
||||
"https://dontorrent.group/",
|
||||
"https://dontorrent.download/",
|
||||
@@ -56,6 +54,8 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://dontorrent.loan/",
|
||||
"https://dontorrent.graphics/",
|
||||
"https://dontorrent.international/",
|
||||
"https://dontorrent.irish/",
|
||||
"https://dontorrent.lighting/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
@@ -99,8 +99,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
// avoid CLoudflare too many requests limiter
|
||||
webclient.requestDelay = 2.1;
|
||||
|
||||
webclient.AddTrustedCertificate(new Uri(SiteLink).Host, "21658BD5F953594852103C1728C09A676B932C4D"); // cloudflare
|
||||
|
||||
var matchWords = new BoolConfigurationItem("Match words in title") { Value = true };
|
||||
configData.AddDynamic("MatchWords", matchWords);
|
||||
}
|
||||
@@ -131,12 +129,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
|
||||
return caps;
|
||||
}
|
||||
public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false)
|
||||
{
|
||||
base.LoadValuesFromJson(jsonConfig, useProtectionService);
|
||||
|
||||
webclient?.AddTrustedCertificate(new Uri(SiteLink).Host, "21658BD5F953594852103C1728C09A676B932C4D"); // cloudflare
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
|
||||
@@ -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://www36.mejortorrent.eu/";
|
||||
public override string SiteLink { get; protected set; } = "https://www37.mejortorrent.eu/";
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://www19.mejortorrent.zip/",
|
||||
"https://www20.mejortorrent.zip/",
|
||||
"https://www21.mejortorrent.zip/",
|
||||
"https://www22.mejortorrent.zip/",
|
||||
@@ -46,6 +45,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
"https://www32.mejortorrent.eu/",
|
||||
"https://www34.mejortorrent.eu/",
|
||||
"https://www35.mejortorrent.eu/",
|
||||
"https://www36.mejortorrent.eu/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
public override string Id => "passthepopcorn";
|
||||
public override string Name => "PassThePopcorn";
|
||||
public override string Description => "PassThePopcorn (PTP) is a Private site for MOVIES / TV";
|
||||
public override string Description => "PassThePopcorn (PTP) is a Private site for MOVIES";
|
||||
// Status: https://ptp.trackerstatus.info/
|
||||
public override string SiteLink { get; protected set; } = "https://passthepopcorn.me/";
|
||||
public override string Language => "en-US";
|
||||
@@ -61,10 +61,6 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
{
|
||||
LimitsDefault = 50,
|
||||
LimitsMax = 50,
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q, MovieSearchParam.ImdbId
|
||||
@@ -73,7 +69,7 @@ namespace Jackett.Common.Indexers.Definitions
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.Movies, "Feature Film");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.Movies, "Short Film");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.TV, "Miniseries");
|
||||
caps.Categories.AddCategoryMapping(3, TorznabCatType.Movies, "Miniseries");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.Movies, "Stand-up Comedy");
|
||||
caps.Categories.AddCategoryMapping(5, TorznabCatType.Movies, "Live Performance");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.Movies, "Movie Collection");
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
<PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.3.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="MimeMapping" Version="1.0.1.50" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||
<PackageReference Include="NLog" Version="5.4.0" />
|
||||
<PackageReference Include="Polly" Version="8.6.1" />
|
||||
<PackageReference Include="Polly" Version="8.6.3" />
|
||||
<PackageReference Include="SharpZipLib" Version="1.4.2" />
|
||||
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
|
||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="8.0.1" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.5" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.6" />
|
||||
<PackageReference Include="YamlDotNet" Version="16.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0;net462</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;net471</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<NoWarn />
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
@@ -9,11 +9,11 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.10.4" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.10.4" />
|
||||
<PackageReference Include="Selenium.Chrome.WebDriver" Version="85.0.0" />
|
||||
<PackageReference Include="Selenium.WebDriver" Version="4.7.0" />
|
||||
<PackageReference Include="Selenium.WebDriver" Version="4.35.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -3,7 +3,7 @@ using Jackett.Common.Models.Config;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using NLog;
|
||||
#if !NET462
|
||||
#if !NET471
|
||||
using Microsoft.Extensions.Hosting;
|
||||
#endif
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Jackett.Server
|
||||
{
|
||||
public static IContainer ApplicationContainer { get; set; }
|
||||
|
||||
#if NET462
|
||||
#if NET471
|
||||
public static IApplicationLifetime applicationLifetime;
|
||||
#else
|
||||
public static IHostApplicationLifetime applicationLifetime;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<PackageId>$(MSBuildProjectName)</PackageId>
|
||||
<TargetFrameworks>net8.0;net462</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;net471</TargetFrameworks>
|
||||
<ApplicationIcon>jackett.ico</ApplicationIcon>
|
||||
<OutputType>Exe</OutputType>
|
||||
<NoWarn></NoWarn>
|
||||
@@ -21,7 +21,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<Choose>
|
||||
<When Condition="'$(TargetFramework)' != 'net462' and $(RuntimeIdentifier.Contains('win')) == 'false'">
|
||||
<When Condition="'$(TargetFramework)' != 'net471' and $(RuntimeIdentifier.Contains('win')) == 'false'">
|
||||
<PropertyGroup>
|
||||
<AssemblyName>jackett</AssemblyName>
|
||||
</PropertyGroup>
|
||||
@@ -35,13 +35,13 @@
|
||||
|
||||
<!-- Conditionally obtain references for the .NET 8.0 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.17" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.20" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="8.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Conditionally obtain references for the .NET462 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
|
||||
<!-- Conditionally obtain references for the .NET471 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net471' ">
|
||||
<PackageReference Include="Microsoft.AspNetCore" Version="2.3.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.3.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.3.0" />
|
||||
|
||||
@@ -22,7 +22,7 @@ using Microsoft.AspNetCore.Rewrite;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
#if !NET462
|
||||
#if !NET471
|
||||
using Microsoft.Extensions.Hosting;
|
||||
#endif
|
||||
|
||||
@@ -56,7 +56,17 @@ namespace Jackett.Server
|
||||
options.Cookie.Name = "Jackett";
|
||||
});
|
||||
|
||||
#if NET462
|
||||
services.Configure<ForwardedHeadersOptions>(options =>
|
||||
{
|
||||
// When adjusting these parameters make sure it's well tested with various environments
|
||||
// See https://github.com/Jackett/Jackett/issues/3517
|
||||
options.ForwardLimit = 10;
|
||||
options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost;
|
||||
options.KnownNetworks.Clear();
|
||||
options.KnownProxies.Clear();
|
||||
});
|
||||
|
||||
#if NET471
|
||||
services.AddMvc(
|
||||
config => config.Filters.Add(
|
||||
new AuthorizeFilter(
|
||||
@@ -108,7 +118,7 @@ namespace Jackett.Server
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
#if NET462
|
||||
#if NET471
|
||||
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime applicationLifetime)
|
||||
{
|
||||
applicationLifetime.ApplicationStarted.Register(OnStarted);
|
||||
@@ -127,13 +137,7 @@ namespace Jackett.Server
|
||||
app.UsePathBase(serverBasePath);
|
||||
}
|
||||
|
||||
app.UseForwardedHeaders(new ForwardedHeadersOptions
|
||||
{
|
||||
// When adjusting these pareamters make sure it's well tested with various environments
|
||||
// See https://github.com/Jackett/Jackett/issues/3517
|
||||
ForwardLimit = 10,
|
||||
ForwardedHeaders = ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost
|
||||
});
|
||||
app.UseForwardedHeaders();
|
||||
|
||||
var rewriteOptions = new RewriteOptions()
|
||||
.AddRewrite(@"^torznab\/([\w-]*)", "api/v2.0/indexers/$1/results/torznab", skipRemainingRules: true) //legacy torznab route
|
||||
@@ -170,13 +174,7 @@ namespace Jackett.Server
|
||||
app.UsePathBase(serverBasePath);
|
||||
}
|
||||
|
||||
app.UseForwardedHeaders(new ForwardedHeadersOptions
|
||||
{
|
||||
// When adjusting these pareamters make sure it's well tested with various environments
|
||||
// See https://github.com/Jackett/Jackett/issues/3517
|
||||
ForwardLimit = 10,
|
||||
ForwardedHeaders = ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost
|
||||
});
|
||||
app.UseForwardedHeaders();
|
||||
|
||||
var rewriteOptions = new RewriteOptions()
|
||||
.AddRewrite(@"^torznab\/([\w-]*)", "api/v2.0/indexers/$1/results/torznab", skipRemainingRules: true) //legacy torznab route
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0;net462</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;net471</TargetFrameworks>
|
||||
<NoWarn />
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
@@ -25,10 +25,10 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="FluentAssertions" Version="6.12.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="8.0.11" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="8.0.20" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.10.4" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.10.4" />
|
||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||
<PackageReference Include="NUnit.ConsoleRunner" Version="3.17.0" />
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
|
||||
@@ -45,8 +45,8 @@
|
||||
<ProjectReference Include="..\Jackett.Server\Jackett.Server.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Conditionally obtain references for the .NET462 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
|
||||
<!-- Conditionally obtain references for the .NET471 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net471' ">
|
||||
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" />
|
||||
<Reference Include="System.Web" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net8.0;net462</TargetFrameworks>
|
||||
<TargetFrameworks>net8.0;net471</TargetFrameworks>
|
||||
<ApplicationIcon>jackett.ico</ApplicationIcon>
|
||||
<AssemblyName>JackettUpdater</AssemblyName>
|
||||
<OutputType>Exe</OutputType>
|
||||
@@ -13,8 +13,8 @@
|
||||
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'linux-musl-x64' or '$(RuntimeIdentifier)' == 'linux-musl-arm' or '$(RuntimeIdentifier)' == 'linux-musl-arm64'">ISLINUXMUSL</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Conditionally obtain references for the .NET462 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
|
||||
<!-- Conditionally obtain references for the .NET471 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net471' ">
|
||||
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -404,6 +404,7 @@ namespace Jackett.Updater
|
||||
"Definitions/epizod.yml",
|
||||
"Definitions/erzsebet.yml",
|
||||
"Definitions/erzsebetpl.yml",
|
||||
"Definitions/esharenet.yml",
|
||||
"Definitions/estrenosdtl.yml",
|
||||
"Definitions/ethor.yml",
|
||||
"Definitions/ettv.yml",
|
||||
@@ -444,6 +445,7 @@ namespace Jackett.Updater
|
||||
"Definitions/gamera.yml",
|
||||
"Definitions/gdf76.yml",
|
||||
"Definitions/generationfree.yml", // switch to unit3d api #12982
|
||||
"Definitions/genesismovement.yml",
|
||||
"Definitions/gfxnews.yml",
|
||||
"Definitions/gktorrent.yml", // renamed to zktorrent #15399
|
||||
"Definitions/glodls.yml",
|
||||
@@ -742,6 +744,7 @@ namespace Jackett.Updater
|
||||
"Definitions/tntvillage.yml",
|
||||
"Definitions/toonsforme.yml",
|
||||
"Definitions/topnow.yml",
|
||||
"Definitions/torlock.yml",
|
||||
"Definitions/torlook.yml",
|
||||
"Definitions/toros.yml", // renamed to bulltorrent
|
||||
"Definitions/torrent-explosiv.yml", // renamed to explosiv-world #6183
|
||||
@@ -840,6 +843,7 @@ namespace Jackett.Updater
|
||||
"Definitions/xxxtorrents.yml",
|
||||
"Definitions/ydypt.yml",
|
||||
"Definitions/yingk.yml",
|
||||
"Definitions/yourbittorrent.yml",
|
||||
"Definitions/yourexotic.yml", // renamed to exoticaz
|
||||
"Definitions/zomb.yml",
|
||||
"Definitions/zooqle.yml",
|
||||
|
||||
Reference in New Issue
Block a user