mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 01:14:12 +02:00
Compare commits
275 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e6a2646a98 | ||
![]() |
6dc12f0d3c | ||
![]() |
0846ca40cd | ||
![]() |
dae55ad500 | ||
![]() |
5e361c2087 | ||
![]() |
3d7ecd197b | ||
![]() |
c0524db98d | ||
![]() |
fa8021c048 | ||
![]() |
246a761eb7 | ||
![]() |
28260afdd9 | ||
![]() |
4c42995ebc | ||
![]() |
bdc2843b40 | ||
![]() |
6e61f38644 | ||
![]() |
8ff186d716 | ||
![]() |
c58b9d58a9 | ||
![]() |
1603516666 | ||
![]() |
46e841fc13 | ||
![]() |
d4ff5d3022 | ||
![]() |
935416cf0d | ||
![]() |
7ca75f51e3 | ||
![]() |
9b592259aa | ||
![]() |
281678892d | ||
![]() |
9aace8ae16 | ||
![]() |
adcfade7f2 | ||
![]() |
d0d51a907e | ||
![]() |
0a4e003bde | ||
![]() |
7230507f5a | ||
![]() |
07744ab88f | ||
![]() |
a8f80ca60e | ||
![]() |
3011f22101 | ||
![]() |
f3098bd6d9 | ||
![]() |
b9d3592f3a | ||
![]() |
f299cf3ac3 | ||
![]() |
48118d5691 | ||
![]() |
5d6b71b7a7 | ||
![]() |
e5982b49a2 | ||
![]() |
bb80da9b19 | ||
![]() |
d027901257 | ||
![]() |
8b8629ef19 | ||
![]() |
3cdab54f5c | ||
![]() |
d0342019bc | ||
![]() |
3c61cb6f06 | ||
![]() |
3863008846 | ||
![]() |
22ca2d9552 | ||
![]() |
e6029c41a7 | ||
![]() |
63cf687f02 | ||
![]() |
d30bde715c | ||
![]() |
12b9d6ca7d | ||
![]() |
0933d913dc | ||
![]() |
8aa82a22f4 | ||
![]() |
91817a10ff | ||
![]() |
8f10d27d0f | ||
![]() |
49a7c8df7a | ||
![]() |
34780f91be | ||
![]() |
851a4d30e1 | ||
![]() |
2ab6d13493 | ||
![]() |
fd79b317ea | ||
![]() |
0e0d53fa00 | ||
![]() |
034edbd32a | ||
![]() |
ecc438b21e | ||
![]() |
d2d3dfbe77 | ||
![]() |
addd6ae226 | ||
![]() |
5818548dbf | ||
![]() |
38e039ac34 | ||
![]() |
4c3f45fd8c | ||
![]() |
1b7e8a9edf | ||
![]() |
af4df90832 | ||
![]() |
c99fdfe641 | ||
![]() |
211e80cb17 | ||
![]() |
d687dfc3e1 | ||
![]() |
1ea5b21956 | ||
![]() |
aff3af0214 | ||
![]() |
f9b2875470 | ||
![]() |
606c82921b | ||
![]() |
4463fc0550 | ||
![]() |
2bdb1ee0ff | ||
![]() |
2af27c0a87 | ||
![]() |
db9fb73b4d | ||
![]() |
aee64183fc | ||
![]() |
9cabf72829 | ||
![]() |
ec7a2d049c | ||
![]() |
11ebe34f55 | ||
![]() |
db476951fe | ||
![]() |
a49e0d5667 | ||
![]() |
605c6bcada | ||
![]() |
9c2e5b4219 | ||
![]() |
2e1ce6f202 | ||
![]() |
650435aaef | ||
![]() |
f2248200af | ||
![]() |
6a9777895c | ||
![]() |
47a8c977d9 | ||
![]() |
b138e243ee | ||
![]() |
fbab796e76 | ||
![]() |
8126fc3c85 | ||
![]() |
27a7b2d711 | ||
![]() |
86ecacffcb | ||
![]() |
8b5d3d0170 | ||
![]() |
4c3cb9f295 | ||
![]() |
c9f945a08e | ||
![]() |
46c6bd74a2 | ||
![]() |
61e2add89a | ||
![]() |
24fe395cf0 | ||
![]() |
aab8968a14 | ||
![]() |
de98438102 | ||
![]() |
108213f098 | ||
![]() |
861271ac04 | ||
![]() |
b378f74202 | ||
![]() |
866e1df174 | ||
![]() |
0bb231eeca | ||
![]() |
fb5c82ff85 | ||
![]() |
d9f57b4e13 | ||
![]() |
4676972493 | ||
![]() |
1d3ac34011 | ||
![]() |
634a860f5c | ||
![]() |
eb00665df1 | ||
![]() |
5e77d27021 | ||
![]() |
8fec3ede4e | ||
![]() |
ae6d5ccfc6 | ||
![]() |
e309d96c51 | ||
![]() |
2a3b42f83a | ||
![]() |
4819a3c8ed | ||
![]() |
34d091942a | ||
![]() |
ee2abe6751 | ||
![]() |
27f0448caf | ||
![]() |
6493037251 | ||
![]() |
0cd11e1882 | ||
![]() |
cfdafa01c9 | ||
![]() |
e3852bcb1b | ||
![]() |
e33e95c1b2 | ||
![]() |
3d0e777d22 | ||
![]() |
aeb3d49c06 | ||
![]() |
c2cf5adeb2 | ||
![]() |
40ab7280ca | ||
![]() |
0c37a191fd | ||
![]() |
19547bc58f | ||
![]() |
bcbe18214b | ||
![]() |
eb60a6854c | ||
![]() |
11406697be | ||
![]() |
b2b576a72d | ||
![]() |
e537e4976e | ||
![]() |
490254d16b | ||
![]() |
a5cc7d973f | ||
![]() |
3e000453a5 | ||
![]() |
8f090fabef | ||
![]() |
91eb4c37cb | ||
![]() |
da43f17558 | ||
![]() |
3b3c3b0947 | ||
![]() |
06e386c253 | ||
![]() |
a2ae2d3384 | ||
![]() |
3532a73d59 | ||
![]() |
b7daffea87 | ||
![]() |
e7b9f8c5ec | ||
![]() |
9ada58a6e3 | ||
![]() |
c8d974cf52 | ||
![]() |
c544de8fed | ||
![]() |
93ec102a86 | ||
![]() |
92bda2b09b | ||
![]() |
1cd0358531 | ||
![]() |
222fec2fd0 | ||
![]() |
3790cbb894 | ||
![]() |
05d5798046 | ||
![]() |
9e9deb17c7 | ||
![]() |
2aedc4f335 | ||
![]() |
dfa708e355 | ||
![]() |
6d1997ef96 | ||
![]() |
db479d8de8 | ||
![]() |
741e6407ce | ||
![]() |
141f3e57e5 | ||
![]() |
00027a41c1 | ||
![]() |
e754d3da9f | ||
![]() |
bf54a2f171 | ||
![]() |
7b7d0082b6 | ||
![]() |
3614b1b3da | ||
![]() |
39b0670a29 | ||
![]() |
1689c46c91 | ||
![]() |
0143bdfe14 | ||
![]() |
93a9568a77 | ||
![]() |
40079b0365 | ||
![]() |
168f04e786 | ||
![]() |
861a33f4af | ||
![]() |
57c52d9eb2 | ||
![]() |
f574dedbe8 | ||
![]() |
a6d2ecffbb | ||
![]() |
300354ef13 | ||
![]() |
4a519226f5 | ||
![]() |
6a4f6e3638 | ||
![]() |
157b042c0a | ||
![]() |
9385218c9d | ||
![]() |
7482e8d9c4 | ||
![]() |
5501d282de | ||
![]() |
123bb4af5f | ||
![]() |
4d36dae634 | ||
![]() |
eac11ab807 | ||
![]() |
b6892f1dc6 | ||
![]() |
0695b8f84e | ||
![]() |
04995f1a10 | ||
![]() |
44d9b3ecc8 | ||
![]() |
a311509b7c | ||
![]() |
0db4229bd4 | ||
![]() |
441aad5a18 | ||
![]() |
d8d911abf8 | ||
![]() |
7423e3f5bc | ||
![]() |
48fea35645 | ||
![]() |
cef72f11d0 | ||
![]() |
ad3039b70f | ||
![]() |
73d590cebd | ||
![]() |
1d0790471f | ||
![]() |
3b3048aa01 | ||
![]() |
183fb56b0a | ||
![]() |
466be31e6f | ||
![]() |
db42bc944b | ||
![]() |
102e7338f9 | ||
![]() |
01b30b0743 | ||
![]() |
947dbac485 | ||
![]() |
0d29e85c80 | ||
![]() |
89a28e2e95 | ||
![]() |
66b2c20b42 | ||
![]() |
e6035bcaa5 | ||
![]() |
68aac78360 | ||
![]() |
4b02141250 | ||
![]() |
8e1d321817 | ||
![]() |
3354d37aa3 | ||
![]() |
7675214092 | ||
![]() |
7af8e1916e | ||
![]() |
6d4720e58f | ||
![]() |
9928815777 | ||
![]() |
a7d65fedfb | ||
![]() |
464b142130 | ||
![]() |
e1bcdce019 | ||
![]() |
ced9bad4f8 | ||
![]() |
c6140d7eef | ||
![]() |
97f4a9de5d | ||
![]() |
be1f6a43a7 | ||
![]() |
c8d96990d5 | ||
![]() |
e9db6edce8 | ||
![]() |
eee7f2999f | ||
![]() |
01e5ad792e | ||
![]() |
aa02644e05 | ||
![]() |
26dd740a53 | ||
![]() |
952b6d7f95 | ||
![]() |
e8742554c2 | ||
![]() |
7229da2fbb | ||
![]() |
39db77eb7c | ||
![]() |
d866758a0d | ||
![]() |
4d72d08e26 | ||
![]() |
2e169a8c3a | ||
![]() |
978ce0827f | ||
![]() |
fe94e4833d | ||
![]() |
592f04389f | ||
![]() |
5992e6d701 | ||
![]() |
d44ebb7d43 | ||
![]() |
852142e9ae | ||
![]() |
3ba52f15dd | ||
![]() |
502a4dc763 | ||
![]() |
d336a761a7 | ||
![]() |
9240f9d72b | ||
![]() |
cab91ff346 | ||
![]() |
2a327549f5 | ||
![]() |
5748881a29 | ||
![]() |
69aa38c1ff | ||
![]() |
aa157cfcb9 | ||
![]() |
f963f8d173 | ||
![]() |
1d75164aaf | ||
![]() |
f503f0543e | ||
![]() |
333f7297fa | ||
![]() |
3fdfc4a142 | ||
![]() |
0ac58224f9 | ||
![]() |
3d08fcb4b9 | ||
![]() |
c2f11306b1 | ||
![]() |
07a0c2c828 | ||
![]() |
28eaa637df | ||
![]() |
8707e6b2e9 | ||
![]() |
7a8d83b693 | ||
![]() |
403c0ef7e4 | ||
![]() |
3374c14311 |
118
README.md
118
README.md
@@ -1,14 +1,16 @@
|
||||
# Jackett
|
||||
# Jackett
|
||||
|
||||
[](https://github.com/Jackett/Jackett/issues)
|
||||
[](https://github.com/Jackett/Jackett/pulls)
|
||||
[](https://www.bountysource.com/teams/jackett)
|
||||
[](https://ci.appveyor.com/project/camjac251/jackett)
|
||||
[](https://github.com/Jackett/Jackett/releases/latest)
|
||||
[](https://hub.docker.com/r/linuxserver/jackett/)
|
||||
[](https://discord.gg/J865QuA)
|
||||
|
||||
This project is a new fork and is recruiting development help. If you are able to help out please contact us.
|
||||
|
||||
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar](https://github.com/evilhero/mylar), etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
|
||||
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar](https://github.com/evilhero/mylar), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
|
||||
|
||||
Developer note: The software implements the [Torznab](https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with [nZEDb](https://github.com/nZEDb/nZEDb/blob/dev/docs/newznab_api_specification.txt) category numbering) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
|
||||
|
||||
@@ -16,19 +18,25 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
|
||||
#### Supported Systems
|
||||
* Windows using .NET 4.5
|
||||
* Linux and OSX using Mono 4 (mono 3 is no longer supported).
|
||||
* Linux and macOS using Mono 4 (mono 3 is no longer supported).
|
||||
|
||||
### Supported Public Trackers
|
||||
* 1337x
|
||||
* Anidex
|
||||
* Anime Tosho
|
||||
* AniRena
|
||||
* btbit
|
||||
* BTDB
|
||||
* cpasbien
|
||||
* EZTV
|
||||
* GkTorrent
|
||||
* Horrible Subs
|
||||
* Idope
|
||||
* Il Corsaro Nero <!-- maintained by bonny1992 -->
|
||||
* Isohunt
|
||||
* KickAssTorrent
|
||||
* KickAssTorrent (kat.how clone)
|
||||
* KickAssTorrent (thekat.se clone)
|
||||
* LimeTorrents
|
||||
* MagnetDL
|
||||
* NextTorrent
|
||||
* Nyaa.si
|
||||
* Nyaa-Pantsu
|
||||
@@ -36,18 +44,37 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* RARBG
|
||||
* ShowRSS
|
||||
* Sky torrents
|
||||
* T411 v2
|
||||
* The Pirate Bay
|
||||
* TNTVillage <!-- maintained by bonny1992 -->
|
||||
* Tokyo Toshokan
|
||||
* Torlock
|
||||
* Torrent Downloads
|
||||
* Torrent9
|
||||
* TorrentProject
|
||||
* Torrentz2
|
||||
* zetorrents
|
||||
* World Wide Torrents
|
||||
* YTS.ag
|
||||
* Zooqle
|
||||
|
||||
### Supported Semi-Private Trackers
|
||||
* 7tor
|
||||
* CzTorrent
|
||||
* Deildu
|
||||
* Gay-Torrents.net
|
||||
* LostFilm.tv
|
||||
* Metal Tracker
|
||||
* NetHD
|
||||
* RuTracker
|
||||
* SkTorrent
|
||||
* TorrentBytes
|
||||
* Xtreme Zone
|
||||
* YggTorrent
|
||||
* Ztracker
|
||||
|
||||
### Supported Private Trackers
|
||||
* 2 Fast 4 You
|
||||
* 3D Torrents
|
||||
* 7tor
|
||||
* Abnormal
|
||||
* Acid-Lounge
|
||||
* AlphaRatio
|
||||
@@ -59,13 +86,14 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* ArabaFenice
|
||||
* Arche Torrent
|
||||
* AsianDVDClub
|
||||
* AST4u
|
||||
* Audiobook Torrents
|
||||
* Awesome-HD
|
||||
* Avistaz
|
||||
* B2S-Share
|
||||
* Back-ups
|
||||
* BakaBT [![(invite needed)][inviteneeded]](#)
|
||||
* bB
|
||||
* Best Friends
|
||||
* BeyondHD
|
||||
* BIGTorrent
|
||||
* Bit-City Reloaded
|
||||
@@ -75,13 +103,15 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* BitMeTV
|
||||
* BitSoup [![(invite needed)][inviteneeded]](#)
|
||||
* Bitspyder
|
||||
* BJ-Share
|
||||
* Blu-bits
|
||||
* BlueBird
|
||||
* Blutopia
|
||||
* BroadcastTheNet [![(invite needed)][inviteneeded]](#)
|
||||
* BroadcastTheNet
|
||||
* BrokenStones
|
||||
* BTNext
|
||||
* Carpathians
|
||||
* CGPeers
|
||||
* CHDBits
|
||||
* Cinematik
|
||||
* Cinemageddon
|
||||
@@ -90,13 +120,13 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* CZTeam
|
||||
* DanishBits
|
||||
* DataScene
|
||||
* Deildu
|
||||
* Demonoid
|
||||
* Diablo Torrent
|
||||
* DigitalHive
|
||||
* Dragon World (DTW)
|
||||
* Dragonworld Reloaded
|
||||
* Dream Team
|
||||
* EliteHD [![(invite needed)][inviteneeded]](#)
|
||||
* Elite-Tracker
|
||||
* EoT-Forum
|
||||
* eStone
|
||||
* Ethor.net (Thor's Land)
|
||||
@@ -107,23 +137,26 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* FunFile
|
||||
* FunkyTorrents
|
||||
* Fuzer
|
||||
* GayTorrent.ru
|
||||
* GFTracker
|
||||
* GFXPeers
|
||||
* Ghost City
|
||||
* GigaTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* GigaTorrents
|
||||
* GimmePeers <!-- maintained by jamesb2147 -->
|
||||
* GODS [![(invite needed)][inviteneeded]](#)
|
||||
* Gormogon
|
||||
* Greek Team
|
||||
* Hardbay
|
||||
* HD-Forever
|
||||
* HD-Only
|
||||
* HD-Space
|
||||
* HD-Torrents
|
||||
* HD-Bits.com
|
||||
* HD4Free
|
||||
* HDBits
|
||||
* HDChina
|
||||
* HDClub
|
||||
* HDHome
|
||||
* HDME
|
||||
* HDSky
|
||||
* HDTorrents.it
|
||||
* Hebits
|
||||
@@ -141,7 +174,6 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* JPopsuki
|
||||
* Kapaki
|
||||
* Karagarga
|
||||
* Le Paradis Du Net
|
||||
* LinkoManija
|
||||
* LosslessClub
|
||||
* M-Team - TP
|
||||
@@ -155,9 +187,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* MySpleen
|
||||
* NCore
|
||||
* Nebulance
|
||||
* NetHD
|
||||
* New Real World
|
||||
* NextGen
|
||||
* Norbits [![(invite needed)][inviteneeded]](#) <!-- added by DiseaseNO but no longer maintained? -->
|
||||
* notwhat.cd
|
||||
* Ourbits
|
||||
@@ -171,13 +201,10 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* PrivateHD
|
||||
* Psytorrents
|
||||
* PTFiles
|
||||
* QcTorrent
|
||||
* Redacted (PassTheHeadphones)
|
||||
* RevolutionTT
|
||||
* Rockhard Lossless
|
||||
* RoDVD
|
||||
* RuTracker
|
||||
* SceneAccess
|
||||
* SceneFZ
|
||||
* SceneTime
|
||||
* SDBits
|
||||
@@ -187,9 +214,11 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* Shazbat
|
||||
* Shellife
|
||||
* SpeedCD
|
||||
* SpeedTorrent Reloaded
|
||||
* SportsCult
|
||||
* SportHD
|
||||
* Superbits
|
||||
* Synthesiz3r
|
||||
* Tasmanit
|
||||
* The Empire
|
||||
* The Geeks
|
||||
@@ -205,38 +234,35 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* TenYardTracker
|
||||
* Torrent Network
|
||||
* Torrent Sector Crew
|
||||
* Torrent9
|
||||
* TorrentBD
|
||||
* TorrentBytes
|
||||
* TorrentCCF [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentDay
|
||||
* Torrentech
|
||||
* TorrentHeaven
|
||||
* TorrentHR
|
||||
* Torrenting
|
||||
* TorrentLeech
|
||||
* Torrents.Md
|
||||
* TorrentVault
|
||||
* Torrent-Syndikat
|
||||
* TorViet
|
||||
* ToTheGlory
|
||||
* TranceTraffic
|
||||
* Trezzor
|
||||
* TV Chaos UK
|
||||
* TV-Vault
|
||||
* T411 v2
|
||||
* u-Torrent
|
||||
* UHDBits
|
||||
* Ultimate Gamer Club
|
||||
* ULTRAHDCLUB
|
||||
* Waffles
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* World-In-HD
|
||||
* WorldOfP2P
|
||||
* x264
|
||||
* XSpeeds
|
||||
* Xthor
|
||||
* Xtreme Zone
|
||||
* YggTorrent
|
||||
* Zamunda.net
|
||||
* Zelka.org
|
||||
* Ztracker
|
||||
|
||||
Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maintainer and are missing features or are broken. If you have an invite for them please send it to kaso1717 -at- gmail.com to get them fixed/improved.
|
||||
|
||||
@@ -269,14 +295,24 @@ Jackett can also be run from the command line if you would like to see log messa
|
||||
|
||||
Detailed instructions for [Ubuntu 14.x](http://www.htpcguides.com/install-jackett-on-ubuntu-14-x-for-custom-torrents-in-sonarr/) and [Ubuntu 15.x](http://www.htpcguides.com/install-jackett-ubuntu-15-x-for-custom-torrents-in-sonarr/)
|
||||
|
||||
## Installation on OSX
|
||||
1. Install [Mono 4](http://www.mono-project.com/download/#download-mac) or better (version 4.8 is recommended)
|
||||
* Setup ssl support by running
|
||||
```
|
||||
https://curl.haxx.se/ca/cacert.pem
|
||||
cert-sync --user ~/Downloads/cacert.pem
|
||||
```
|
||||
1. Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command `mono --debug JackettConsole.exe`.
|
||||
If you want to run it with a user without a /home directory you need to add `Environment=XDG_CONFIG_HOME=/path/to/folder` to your systemd file, this folder will be used to store your config files.
|
||||
|
||||
## Installation on macOS
|
||||
|
||||
### Prerequisites
|
||||
Install [Mono 4](http://www.mono-project.com/download/#download-mac) or better (version 4.8 is recommended).
|
||||
* Setup ssl support by running `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
|
||||
|
||||
### Install as service
|
||||
1. Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
|
||||
2. Open the extracted folder and double-click on `install_service_macos`.
|
||||
3. If the installation was a success, you can close the Terminal window.
|
||||
|
||||
The service will start on each logon. You can always stop it by running `launchctl unload ~/Library/LaunchAgents/org.user.Jackett.plist` from Terminal. You can start it again it using `launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist`.
|
||||
Logs are stored as usual under `~/.config/Jackett/log.txt`.
|
||||
|
||||
### Run without installing as a service
|
||||
Download and extract the latest `Jackett.Binaries.Mono.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett using mono with the command `mono --debug JackettConsole.exe`.
|
||||
|
||||
## Installation using Docker
|
||||
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system eg. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
|
||||
@@ -290,20 +326,18 @@ Jackett is available as beta package from [SynoCommunity](https://synocommunity.
|
||||
|
||||
You can pass various options when running via the command line, see --help for details.
|
||||
|
||||
* __Unable to connect to trackers with invalid SSL certificates__
|
||||
* __Error "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."__
|
||||
|
||||
If you're using mono this is often caused by missing ca-certificates.
|
||||
This is often caused by missing CA certificates.
|
||||
Try reimporting the certificates in this case:
|
||||
|
||||
`wget -O - https://curl.haxx.se/ca/cacert.pem | cert-sync /dev/stdin`
|
||||
|
||||
As a option of last resort you can disable certificate validation using the `--IgnoreSslErrors true` option but it's not recommended to use it as it enables Man-in-the-middle attacks on your connections.
|
||||
- On Linux (as user root): `wget -O - https://curl.haxx.se/ca/cacert.pem | cert-sync /dev/stdin`
|
||||
- On macOS: `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
|
||||
|
||||
* __Enable logging__
|
||||
|
||||
You can get additional logging with the command line switches `-t -l` or by enabeling `Enhanced logging` via the web interface.
|
||||
You can get additional logging with the command line switches `-t -l` or by enabling `Enhanced logging` via the web interface.
|
||||
Please post logs if you are unable to resolve your issue with these switches ensuring to remove your username/password/cookies.
|
||||
The logfiles (log.txt/updater.txt) are stored in `%ProgramData%\Jackett` on Windows and `~/.config/Jackett/` on Linux/OSX.
|
||||
The logfiles (log.txt/updater.txt) are stored in `%ProgramData%\Jackett` on Windows and `~/.config/Jackett/` on Linux/macOS.
|
||||
|
||||
## Creating an issue
|
||||
Please supply as much information about the problem you are experiencing as possible. Your issue has a much greater chance of being resolved if logs are supplied so that we can see what is going on. Creating an issue with '### isn't working' doesn't help anyone to fix the problem.
|
||||
|
@@ -60,7 +60,7 @@ namespace Jackett.Console
|
||||
[Option('n', "IgnoreSslErrors", HelpText = "[true/false] Ignores invalid SSL certificates")]
|
||||
public bool? IgnoreSslErrors { get; set; }
|
||||
|
||||
[Option('d', "DataFolder", HelpText = "Specify the location of the data folder (Must be admin on Windows) eg. --DataFolder=\"D:\\Your Data\\Jackett\\\"")]
|
||||
[Option('d', "DataFolder", HelpText = "Specify the location of the data folder (Must be admin on Windows) eg. --DataFolder=\"D:\\Your Data\\Jackett\\\". Don't use this on Unix (mono) systems. On Unix just adjust the HOME directory of the user to the datedir or set the XDG_CONFIG_HOME environment variable.")]
|
||||
public string DataFolder { get; set; }
|
||||
|
||||
[Option(HelpText = "Don't restart after update")]
|
||||
|
@@ -153,6 +153,9 @@
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
<Content Include="install_service_macos">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CurlSharp\CurlSharp.csproj">
|
||||
@@ -182,4 +185,4 @@
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
|
76
src/Jackett.Console/install_service_macos
Executable file
76
src/Jackett.Console/install_service_macos
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
#Setting up colors
|
||||
BOLDRED="$(printf '\033[1;31m')"
|
||||
BOLDGREEN="$(printf '\033[1;32m')"
|
||||
NC="$(printf '\033[0m')" # No Color
|
||||
|
||||
# Stop and unload the service if it's running
|
||||
launchctl remove org.user.Jackett
|
||||
|
||||
# Move working directory to Jackett's
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Check if we're running from Jackett's directory
|
||||
if [ ! -f ./JackettConsole.exe ]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Couldn't locate JackettConsole.exe. Is the script in the right directory?"
|
||||
exit 1
|
||||
fi
|
||||
jackettdir="$(pwd)"
|
||||
|
||||
# Check if mono is installed
|
||||
command -v mono >/dev/null 2>&1 || { echo >&2 "${BOLDRED}ERROR${NC}: Jackett requires Mono but it's not installed. Aborting."; exit 1; }
|
||||
monodir="$(dirname $(command -v mono))"
|
||||
|
||||
# Check that no other service called Jackett is already running
|
||||
if [[ $(launchctl list | grep org.user.Jackett) ]]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Jackett already seems to be running as a service. Please stop it before running this script again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Write the plist to LaunchAgents
|
||||
cat >~/Library/LaunchAgents/org.user.Jackett.plist <<EOL
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>EnvironmentVariables</key>
|
||||
<dict>
|
||||
<key>PATH</key>
|
||||
<string>/usr/bin:/bin:/usr/sbin:/sbin:${monodir}</string>
|
||||
</dict>
|
||||
<key>KeepAlive</key>
|
||||
<true/>
|
||||
<key>Label</key>
|
||||
<string>org.user.Jackett</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>${monodir}/mono</string>
|
||||
<string>--debug</string>
|
||||
<string>JackettConsole.exe</string>
|
||||
<string>--NoRestart</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>WorkingDirectory</key>
|
||||
<string>${jackettdir}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
EOL
|
||||
|
||||
# Run the agent
|
||||
launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist
|
||||
|
||||
# Check that it's running
|
||||
if [[ $(launchctl list | grep org.user.Jackett) ]]; then
|
||||
echo "${BOLDGREEN}Agent successfully installed and launched!${NC}"
|
||||
else
|
||||
cat << EOL
|
||||
${BOLDRED}ERROR${NC}: Could not launch agent. The installation might have failed.
|
||||
Please open an issue on https://github.com/Jackett/Jackett/issues and paste following information:
|
||||
Mono directory: \`${monodir}\`
|
||||
Jackett directory: \`${jackettdir}\`
|
||||
|
||||
EOL
|
||||
fi
|
@@ -188,6 +188,14 @@ namespace Jackett.Updater
|
||||
"Definitions/maniatorrent.yml",
|
||||
"Definitions/nyaa.yml",
|
||||
"Definitions/nachtwerk.yml",
|
||||
"Definitions/leparadisdunet.yml",
|
||||
"Definitions/qctorrent.yml",
|
||||
"Definitions/dragonworld.yml",
|
||||
"Definitions/hdclub.yml",
|
||||
"Definitions/polishtracker.yml",
|
||||
"Definitions/zetorrents.yml",
|
||||
"Definitions/rapidetracker.yml",
|
||||
"Definitions/isohunt.yml",
|
||||
};
|
||||
|
||||
foreach (var oldFIle in oldFiles)
|
||||
|
1
src/Jackett/Content/css/bootstrap-multiselect.css
vendored
Normal file
1
src/Jackett/Content/css/bootstrap-multiselect.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
span.multiselect-native-select{position:relative}span.multiselect-native-select select{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px -1px -1px -3px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;left:50%;top:30px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px 3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}
|
@@ -33,17 +33,18 @@ $(document).ready(function () {
|
||||
return opts.inverse(this);
|
||||
});
|
||||
|
||||
var index = window.location.pathname.indexOf("/UI");
|
||||
var pathPrefix = window.location.pathname.substr(0, index);
|
||||
api.root = pathPrefix + api.root;
|
||||
|
||||
bindUIButtons();
|
||||
loadJackettSettings();
|
||||
});
|
||||
|
||||
function openSearchIfNecessary() {
|
||||
var parser = document.createElement('a');
|
||||
parser.href = window.location.href;
|
||||
|
||||
if (parser.hash.startsWith("#search")) {
|
||||
var query = parser.hash.split('=')[1];
|
||||
showSearch(null, query);
|
||||
const hashArgs = location.hash.substring(1).split('&').reduce((prev, item) => Object.assign({ [item.split('=')[0]]: (item.split('=').length < 2 ? undefined : decodeURIComponent(item.split('=')[1])) }, prev), {});
|
||||
if ("search" in hashArgs) {
|
||||
showSearch(hashArgs.tracker, hashArgs.search, hashArgs.category);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +55,7 @@ function insertWordWrap(str) {
|
||||
|
||||
function getJackettConfig(callback) {
|
||||
api.getServerConfig(callback).fail(function () {
|
||||
doNotify("Error loading Jackett settings, request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
doNotify("Error loading Jackett settings, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -110,16 +111,16 @@ function reloadIndexers() {
|
||||
item.state = "success";
|
||||
|
||||
if (item.type == "public") {
|
||||
item.type_icon_content = "🔓\uFE0E";
|
||||
item.type_label = "success";
|
||||
}
|
||||
else if (item.type == "private") {
|
||||
item.type_icon_content = "🔐\uFE0E";
|
||||
item.type_label = "danger";
|
||||
}
|
||||
else if (item.type == "semi-private") {
|
||||
item.type_icon_content = "🔒\uFE0E";
|
||||
item.type_label = "warning";
|
||||
}
|
||||
else {
|
||||
item.type_icon_content = "";
|
||||
item.type_label = "default";
|
||||
}
|
||||
|
||||
var main_cats_list = item.caps.filter(function(c) {
|
||||
@@ -138,7 +139,7 @@ function reloadIndexers() {
|
||||
$('#indexers div.dataTables_filter input').focusWithoutScrolling();
|
||||
openSearchIfNecessary();
|
||||
}).fail(function () {
|
||||
doNotify("Error loading indexers, request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
doNotify("Error loading indexers, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -186,7 +187,7 @@ function displayUnconfiguredIndexersList() {
|
||||
var indexer = unconfiguredIndexers[i];
|
||||
$(btn).click(function () {
|
||||
$('#select-indexer-modal').modal('hide').on('hidden.bs.modal', function (e) {
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks);
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -209,8 +210,13 @@ function displayUnconfiguredIndexersList() {
|
||||
}
|
||||
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
}).fail(function () {
|
||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
}).fail(function (data) {
|
||||
if(data.responseJSON.error !== undefined) {
|
||||
doNotify("An error occured while configuring this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
|
||||
} else {
|
||||
doNotify("An error occured while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -362,6 +368,7 @@ function prepareSearchButtons(element) {
|
||||
var $btn = $(btn);
|
||||
var id = $btn.data("id");
|
||||
$btn.click(function() {
|
||||
window.location.hash = "search&tracker=" + id;
|
||||
showSearch(id);
|
||||
});
|
||||
});
|
||||
@@ -371,7 +378,7 @@ function prepareSetupButtons(element) {
|
||||
element.find('.indexer-setup').each(function (i, btn) {
|
||||
var indexer = configuredIndexers[i];
|
||||
$(btn).click(function () {
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks);
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -425,8 +432,13 @@ function testIndexer(id, notifyResult) {
|
||||
if (notifyResult)
|
||||
doNotify("Test failed for " + id + ": \n" + data.error, "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
}).fail(function () {
|
||||
doNotify("Error testing indexer, request to Jackett server error", "danger", "glyphicon glyphicon-alert");
|
||||
}).fail(function (data) {
|
||||
updateTestState(id, "error", data.error, indexers);
|
||||
if(data.responseJSON.error !== undefined && notifyResult) {
|
||||
doNotify("An error occured while testing this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + id + "] " + data.responseJSON.error + " (Test)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
|
||||
} else {
|
||||
doNotify("An error occured while testing indexers, please take a look at indexers with failed test for more informations.", "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -444,14 +456,14 @@ function prepareTestButtons(element) {
|
||||
});
|
||||
}
|
||||
|
||||
function displayIndexerSetup(id, name, caps, link, alternativesitelinks) {
|
||||
function displayIndexerSetup(id, name, caps, link, alternativesitelinks, description) {
|
||||
api.getIndexerConfig(id, function (data) {
|
||||
if (data.result !== undefined && data.result == "error") {
|
||||
doNotify("Error: " + data.error, "danger", "glyphicon glyphicon-alert");
|
||||
return;
|
||||
}
|
||||
|
||||
populateSetupForm(id, name, data, caps, link, alternativesitelinks);
|
||||
populateSetupForm(id, name, data, caps, link, alternativesitelinks, description);
|
||||
}).fail(function () {
|
||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
});
|
||||
@@ -527,9 +539,9 @@ function populateConfigItems(configForm, config) {
|
||||
}
|
||||
}
|
||||
|
||||
function newConfigModal(title, config, caps, link, alternativesitelinks) {
|
||||
function newConfigModal(title, config, caps, link, alternativesitelinks, description) {
|
||||
var configTemplate = Handlebars.compile($("#jackett-config-setup-modal").html());
|
||||
var configForm = $(configTemplate({ title: title, caps: caps, link:link }));
|
||||
var configForm = $(configTemplate({ title: title, caps: caps, link: link, description: description }));
|
||||
$("#modals").append(configForm);
|
||||
populateConfigItems(configForm, config);
|
||||
|
||||
@@ -537,6 +549,10 @@ function newConfigModal(title, config, caps, link, alternativesitelinks) {
|
||||
var AlternativeSiteLinksTemplate = Handlebars.compile($("#setup-item-alternativesitelinks").html());
|
||||
var template = $(AlternativeSiteLinksTemplate({ "alternativesitelinks": alternativesitelinks }));
|
||||
configForm.find("div[data-id='sitelink']").after(template);
|
||||
template.find("a.alternativesitelink").click(function (a) {
|
||||
$("div[data-id='sitelink'] input").val(this.href);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
return configForm;
|
||||
@@ -586,8 +602,8 @@ function getConfigModalJson(configForm) {
|
||||
return configJson;
|
||||
}
|
||||
|
||||
function populateSetupForm(indexerId, name, config, caps, link, alternativesitelinks) {
|
||||
var configForm = newConfigModal(name, config, caps, link, alternativesitelinks);
|
||||
function populateSetupForm(indexerId, name, config, caps, link, alternativesitelinks, description) {
|
||||
var configForm = newConfigModal(name, config, caps, link, alternativesitelinks, description);
|
||||
var $goButton = configForm.find(".setup-indexer-go");
|
||||
$goButton.click(function () {
|
||||
var data = getConfigModalJson(configForm);
|
||||
@@ -607,8 +623,12 @@ function populateSetupForm(indexerId, name, config, caps, link, alternativesitel
|
||||
}
|
||||
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
}).fail(function () {
|
||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
}).fail(function (data) {
|
||||
if(data.responseJSON.error !== undefined) {
|
||||
doNotify("An error occured while updating this indexer<br /><b>" + data.responseJSON.error + "</b><br /><i><a href=\"https://github.com/Jackett/Jackett/issues/new?title=[" + indexerId + "] " + data.responseJSON.error + " (Config)\" target=\"_blank\">Click here to open an issue on Github for this indexer.</a><i>", "danger", "glyphicon glyphicon-alert", false);
|
||||
} else {
|
||||
doNotify("An error occured while updating this indexer, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
}).always(function () {
|
||||
$goButton.html(originalBtnText);
|
||||
$goButton.prop('disabled', false);
|
||||
@@ -707,7 +727,10 @@ function updateReleasesRow(row)
|
||||
}
|
||||
}
|
||||
|
||||
function showSearch(selectedIndexer, query) {
|
||||
function showSearch(selectedIndexer, query, category) {
|
||||
var selectedIndexers = []
|
||||
if (selectedIndexer)
|
||||
selectedIndexers = selectedIndexer.split(",");
|
||||
$('#select-indexer-modal').remove();
|
||||
var releaseTemplate = Handlebars.compile($("#jackett-search").html());
|
||||
var releaseDialog = $(releaseTemplate({
|
||||
@@ -725,28 +748,30 @@ function showSearch(selectedIndexer, query) {
|
||||
window.location.hash = '';
|
||||
}) ;
|
||||
|
||||
var setCategories = function (tracker, items) {
|
||||
var setCategories = function (trackers, items) {
|
||||
var cats = {};
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
if (items[i].configured === true && (items[i].id === tracker || tracker === '')) {
|
||||
indexers["'" + items[i].id + "'"] = items[i].name;
|
||||
for (var prop in items[i].caps) {
|
||||
if (prop < 100000 || tracker)
|
||||
cats[prop] = items[i].caps[prop];
|
||||
if (trackers.length == 0 || $.inArray(items[i].id, trackers) !== -1) {
|
||||
for (var j in items[i].caps) {
|
||||
var cat = items[i].caps[j]
|
||||
if (cat.ID < 100000 || trackers.length == 1)
|
||||
cats[cat.ID] = cat.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
var select = $('#searchCategory');
|
||||
select.html("<option value=''>-- All --</option>");
|
||||
$.each(cats, function (index, value) {
|
||||
select.append($("<option></option>")
|
||||
.attr("value", value["ID"]).text(value["ID"] + ' (' + value["Name"] + ')'));
|
||||
var selected = select.val();
|
||||
var options = []
|
||||
$.each(cats, function (ID, Name) {
|
||||
options.push({ label: ID + ' (' + Name + ')', value: ID });
|
||||
});
|
||||
select.multiselect('dataprovider', options);
|
||||
select.val(selected).multiselect("refresh");
|
||||
};
|
||||
|
||||
$('#searchTracker').change(jQuery.proxy(function () {
|
||||
var trackerId = $('#searchTracker').val();
|
||||
setCategories(trackerId, this.items);
|
||||
var trackerIds = $('#searchTracker').val();
|
||||
setCategories(trackerIds, this.items);
|
||||
}, { items: configuredIndexers }));
|
||||
|
||||
var queryField = document.getElementById("searchquery");
|
||||
@@ -767,18 +792,16 @@ function showSearch(selectedIndexer, query) {
|
||||
var queryObj = {
|
||||
Query: searchString,
|
||||
Category: releaseDialog.find('#searchCategory').val(),
|
||||
Tracker: releaseDialog.find('#searchTracker').val().replace("'", "").replace("'", ""),
|
||||
Tracker: releaseDialog.find('#searchTracker').val()
|
||||
};
|
||||
|
||||
window.location.hash = "search=" + searchString;
|
||||
window.location.hash = $.param({ search: queryObj.Query, tracker: queryObj.Tracker.join(","), category: queryObj.Category.join(",") });
|
||||
|
||||
$('#jackett-search-perform').html($('#spinner').html());
|
||||
$('#searchResults div.dataTables_filter input').val("");
|
||||
clearSearchResultTable($('#searchResults'));
|
||||
|
||||
var trackerId = queryObj.Tracker;
|
||||
if (trackerId == null || trackerId == "")
|
||||
trackerId = "all";
|
||||
var trackerId = "all";
|
||||
api.resultsForIndexer(trackerId, queryObj, function (data) {
|
||||
for (var i = 0; i < data.Results.length; i++) {
|
||||
var item = data.Results[i];
|
||||
@@ -798,16 +821,38 @@ function showSearch(selectedIndexer, query) {
|
||||
});
|
||||
|
||||
var searchTracker = releaseDialog.find("#searchTracker");
|
||||
if (selectedIndexer)
|
||||
searchTracker.val(selectedIndexer);
|
||||
var searchCategory = releaseDialog.find('#searchCategory')
|
||||
searchCategory.multiselect({
|
||||
maxHeight: 400,
|
||||
enableFiltering: true,
|
||||
includeSelectAllOption: true,
|
||||
enableCaseInsensitiveFiltering: true,
|
||||
nonSelectedText: 'Any'
|
||||
});
|
||||
if (selectedIndexers)
|
||||
searchTracker.val(selectedIndexers);
|
||||
searchTracker.trigger("change");
|
||||
|
||||
updateSearchResultTable($('#searchResults'), []);
|
||||
clearSearchResultTable($('#searchResults'));
|
||||
releaseDialog.modal("show");
|
||||
|
||||
searchTracker.multiselect({
|
||||
maxHeight: 400,
|
||||
enableFiltering: true,
|
||||
includeSelectAllOption: true,
|
||||
enableCaseInsensitiveFiltering: true,
|
||||
nonSelectedText: 'All'
|
||||
});
|
||||
|
||||
|
||||
if (category !== undefined) {
|
||||
searchCategory.val(category.split(","));
|
||||
searchCategory.multiselect("refresh");
|
||||
}
|
||||
|
||||
releaseDialog.modal("show");
|
||||
if (query !== undefined) {
|
||||
queryField.value = decodeURIComponent(query);
|
||||
queryField.value = query;
|
||||
searchButton.click();
|
||||
}
|
||||
}
|
||||
@@ -1091,17 +1136,17 @@ function bindUIButtons() {
|
||||
omdbkey: jackett_omdb_key
|
||||
};
|
||||
api.updateServerConfig(jsonObject, function (data) {
|
||||
if (data !== undefined && data.result == "error") {
|
||||
doNotify("Error: " + data.error, "danger", "glyphicon glyphicon-alert");
|
||||
doNotify("Redirecting you to complete configuration update..", "success", "glyphicon glyphicon-ok");
|
||||
window.setTimeout(function () {
|
||||
window.location.reload(true);
|
||||
}, 3000);
|
||||
}).fail(function (data) {
|
||||
if (data.responseJSON !== undefined && data.responseJSON.result == "error") {
|
||||
doNotify("Error: " + data.responseJSON.error, "danger", "glyphicon glyphicon-alert");
|
||||
return;
|
||||
} else {
|
||||
doNotify("Redirecting you to complete configuration update..", "success", "glyphicon glyphicon-ok");
|
||||
window.setTimeout(function () {
|
||||
window.location.reload(true);
|
||||
}, 3000);
|
||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
}
|
||||
}).fail(function () {
|
||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||
});
|
||||
});
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
1716
src/Jackett/Content/libs/bootstrap-multiselect.js
vendored
Normal file
1716
src/Jackett/Content/libs/bootstrap-multiselect.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -154,7 +154,7 @@ namespace Jackett.Controllers.V20
|
||||
|
||||
private void ConfigureCacheResults(IEnumerable<TrackerCacheResult> results)
|
||||
{
|
||||
var serverUrl = string.Format("{0}://{1}:{2}{3}", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port, serverService.BasePath());
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
foreach (var result in results)
|
||||
{
|
||||
var link = result.Link;
|
||||
|
@@ -19,6 +19,7 @@ using Jackett.Utils;
|
||||
using Jackett.Utils.Clients;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using Jackett.Models.DTO;
|
||||
|
||||
namespace Jackett.Controllers.V20
|
||||
{
|
||||
@@ -27,9 +28,8 @@ namespace Jackett.Controllers.V20
|
||||
public override void OnAuthorization(HttpActionContext actionContext)
|
||||
{
|
||||
var validApiKey = Engine.Server.Config.APIKey;
|
||||
var queryParams = actionContext.Request.GetQueryNameValuePairs().ToDictionary();
|
||||
var queryApiKey = queryParams.ContainsKey("apikey") ? queryParams["apikey"] : null;
|
||||
queryApiKey = queryParams.ContainsKey("passkey") ? queryParams["passkey"] : queryApiKey;
|
||||
var queryParams = actionContext.Request.GetQueryNameValuePairs();
|
||||
var queryApiKey = queryParams.Where(x => x.Key == "apikey" || x.Key == "passkey").Select(x => x.Value).FirstOrDefault();
|
||||
|
||||
#if DEBUG
|
||||
if (Debugger.IsAttached)
|
||||
@@ -111,6 +111,9 @@ namespace Jackett.Controllers.V20
|
||||
var torznabQuery = converted as TorznabQuery;
|
||||
resultController.CurrentQuery = torznabQuery;
|
||||
|
||||
if (queryType == typeof(ApiSearch)) // Skip CanHandleQuery() check for manual search (CurrentIndexer isn't used during manul search)
|
||||
return;
|
||||
|
||||
if (!resultController.CurrentIndexer.CanHandleQuery(resultController.CurrentQuery))
|
||||
actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, $"{resultController.CurrentIndexer.ID} does not support the requested query.");
|
||||
}
|
||||
@@ -122,6 +125,9 @@ namespace Jackett.Controllers.V20
|
||||
{
|
||||
base.OnActionExecuted(actionExecutedContext);
|
||||
|
||||
if (actionExecutedContext.Exception != null)
|
||||
throw new Exception("Error while executing request", actionExecutedContext.Exception);
|
||||
|
||||
var content = actionExecutedContext.Response.Content as ObjectContent;
|
||||
actionExecutedContext.Response.Content = new JsonContent(content.Value);
|
||||
}
|
||||
@@ -132,7 +138,7 @@ namespace Jackett.Controllers.V20
|
||||
TorznabQuery CurrentQuery { get; set; }
|
||||
}
|
||||
|
||||
[JackettAuthorized]
|
||||
[AllowAnonymous]
|
||||
[JackettAPINoCache]
|
||||
[RoutePrefix("api/v2.0/indexers")]
|
||||
[RequiresApiKey]
|
||||
@@ -154,20 +160,67 @@ namespace Jackett.Controllers.V20
|
||||
[HttpGet]
|
||||
public async Task<Models.DTO.ManualSearchResult> Results([FromUri]Models.DTO.ApiSearch request)
|
||||
{
|
||||
var manualResult = new ManualSearchResult();
|
||||
var trackers = IndexerService.GetAllIndexers().Where(t => t.IsConfigured);
|
||||
if (CurrentIndexer.ID != "all")
|
||||
trackers = trackers.Where(t => t.ID == CurrentIndexer.ID).ToList();
|
||||
trackers = trackers.Where(t => t.IsConfigured && t.CanHandleQuery(CurrentQuery));
|
||||
if (request.Tracker != null)
|
||||
trackers = trackers.Where(t => request.Tracker.Contains(t.ID));
|
||||
trackers = trackers.Where(t => t.CanHandleQuery(CurrentQuery));
|
||||
|
||||
var tasks = trackers.ToList().Select(t => t.ResultsForQuery(CurrentQuery)).ToList();
|
||||
var aggregateTask = Task.WhenAll(tasks);
|
||||
|
||||
await aggregateTask;
|
||||
|
||||
var results = tasks.Where(t => t.Status == TaskStatus.RanToCompletion).Where(t => t.Result.Count() > 0).SelectMany(t =>
|
||||
try
|
||||
{
|
||||
var searchResults = t.Result;
|
||||
var indexer = searchResults.First().Origin;
|
||||
var aggregateTask = Task.WhenAll(tasks);
|
||||
await aggregateTask;
|
||||
}
|
||||
catch (AggregateException aex)
|
||||
{
|
||||
foreach (var ex in aex.InnerExceptions)
|
||||
{
|
||||
logger.Error(ex);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(ex);
|
||||
}
|
||||
|
||||
manualResult.Indexers = tasks.Select(t =>
|
||||
{
|
||||
var resultIndexer = new ManualSearchResultIndexer();
|
||||
IIndexer indexer = null;
|
||||
if (t.Status == TaskStatus.RanToCompletion)
|
||||
{
|
||||
resultIndexer.Status = ManualSearchResultIndexerStatus.OK;
|
||||
resultIndexer.Results = t.Result.Releases.Count();
|
||||
resultIndexer.Error = null;
|
||||
indexer = t.Result.Indexer;
|
||||
}
|
||||
else if (t.Exception.InnerException is IndexerException)
|
||||
{
|
||||
resultIndexer.Status = ManualSearchResultIndexerStatus.Error;
|
||||
resultIndexer.Results = 0;
|
||||
resultIndexer.Error = ((IndexerException)t.Exception.InnerException).ToString();
|
||||
indexer = ((IndexerException)t.Exception.InnerException).Indexer;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultIndexer.Status = ManualSearchResultIndexerStatus.Unknown;
|
||||
resultIndexer.Results = 0;
|
||||
resultIndexer.Error = null;
|
||||
}
|
||||
|
||||
if (indexer != null)
|
||||
{
|
||||
resultIndexer.ID = indexer.ID;
|
||||
resultIndexer.Name = indexer.DisplayName;
|
||||
}
|
||||
return resultIndexer;
|
||||
}).ToList();
|
||||
|
||||
manualResult.Results = tasks.Where(t => t.Status == TaskStatus.RanToCompletion).Where(t => t.Result.Releases.Count() > 0).SelectMany(t =>
|
||||
{
|
||||
var searchResults = t.Result.Releases;
|
||||
var indexer = t.Result.Indexer;
|
||||
cacheService.CacheRssResults(indexer, searchResults);
|
||||
|
||||
return searchResults.Select(result =>
|
||||
@@ -181,19 +234,9 @@ namespace Jackett.Controllers.V20
|
||||
});
|
||||
}).OrderByDescending(d => d.PublishDate).ToList();
|
||||
|
||||
ConfigureCacheResults(results);
|
||||
ConfigureCacheResults(manualResult.Results);
|
||||
|
||||
var manualResult = new Models.DTO.ManualSearchResult()
|
||||
{
|
||||
Results = results,
|
||||
Indexers = trackers.Select(t => t.DisplayName).ToList()
|
||||
};
|
||||
|
||||
|
||||
if (manualResult.Indexers.Count() == 0)
|
||||
manualResult.Indexers = new List<string>() { "None" };
|
||||
|
||||
logger.Info(string.Format("Manual search for \"{0}\" on {1} with {2} results.", CurrentQuery.SanitizedSearchTerm, string.Join(", ", manualResult.Indexers), manualResult.Results.Count()));
|
||||
logger.Info(string.Format("Manual search for \"{0}\" on {1} with {2} results.", CurrentQuery.SanitizedSearchTerm, string.Join(", ", manualResult.Indexers.Select(i => i.ID)), manualResult.Results.Count()));
|
||||
return manualResult;
|
||||
}
|
||||
|
||||
@@ -236,7 +279,7 @@ namespace Jackett.Controllers.V20
|
||||
}
|
||||
}
|
||||
|
||||
var releases = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
||||
var result = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
||||
|
||||
// Some trackers do not support multiple category filtering so filter the releases that match manually.
|
||||
int? newItemCount = null;
|
||||
@@ -244,19 +287,19 @@ namespace Jackett.Controllers.V20
|
||||
// Cache non query results
|
||||
if (string.IsNullOrEmpty(CurrentQuery.SanitizedSearchTerm))
|
||||
{
|
||||
newItemCount = cacheService.GetNewItemCount(CurrentIndexer, releases);
|
||||
cacheService.CacheRssResults(CurrentIndexer, releases);
|
||||
newItemCount = cacheService.GetNewItemCount(CurrentIndexer, result.Releases);
|
||||
cacheService.CacheRssResults(CurrentIndexer, result.Releases);
|
||||
}
|
||||
|
||||
// Log info
|
||||
var logBuilder = new StringBuilder();
|
||||
if (newItemCount != null)
|
||||
{
|
||||
logBuilder.AppendFormat("Found {0} ({1} new) releases from {2}", releases.Count(), newItemCount, CurrentIndexer.DisplayName);
|
||||
logBuilder.AppendFormat("Found {0} ({1} new) releases from {2}", result.Releases.Count(), newItemCount, CurrentIndexer.DisplayName);
|
||||
}
|
||||
else
|
||||
{
|
||||
logBuilder.AppendFormat("Found {0} releases from {1}", releases.Count(), CurrentIndexer.DisplayName);
|
||||
logBuilder.AppendFormat("Found {0} releases from {1}", result.Releases.Count(), CurrentIndexer.DisplayName);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
||||
@@ -266,7 +309,7 @@ namespace Jackett.Controllers.V20
|
||||
|
||||
logger.Info(logBuilder.ToString());
|
||||
|
||||
var serverUrl = string.Format("{0}://{1}:{2}{3}", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port, serverService.BasePath());
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
var resultPage = new ResultPage(new ChannelInfo
|
||||
{
|
||||
Title = CurrentIndexer.DisplayName,
|
||||
@@ -278,7 +321,7 @@ namespace Jackett.Controllers.V20
|
||||
ImageDescription = CurrentIndexer.DisplayName
|
||||
});
|
||||
|
||||
var proxiedReleases = releases.Select(r => AutoMapper.Mapper.Map<ReleaseInfo>(r)).Select(r =>
|
||||
var proxiedReleases = result.Releases.Select(r => AutoMapper.Mapper.Map<ReleaseInfo>(r)).Select(r =>
|
||||
{
|
||||
r.Link = serverService.ConvertToProxyLink(r.Link, serverUrl, r.Origin.ID, "dl", r.Title + ".torrent");
|
||||
return r;
|
||||
@@ -316,20 +359,20 @@ namespace Jackett.Controllers.V20
|
||||
[JsonResponse]
|
||||
public async Task<Models.DTO.TorrentPotatoResponse> Potato([FromUri]Models.DTO.TorrentPotatoRequest request)
|
||||
{
|
||||
var releases = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
||||
var result = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
||||
|
||||
// Cache non query results
|
||||
if (string.IsNullOrEmpty(CurrentQuery.SanitizedSearchTerm))
|
||||
cacheService.CacheRssResults(CurrentIndexer, releases);
|
||||
cacheService.CacheRssResults(CurrentIndexer, result.Releases);
|
||||
|
||||
// Log info
|
||||
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
||||
logger.Info($"Found {releases.Count()} torrentpotato releases from {CurrentIndexer.DisplayName}");
|
||||
logger.Info($"Found {result.Releases.Count()} torrentpotato releases from {CurrentIndexer.DisplayName}");
|
||||
else
|
||||
logger.Info($"Found {releases.Count()} torrentpotato releases from {CurrentIndexer.DisplayName} for: {CurrentQuery.GetQueryString()}");
|
||||
logger.Info($"Found {result.Releases.Count()} torrentpotato releases from {CurrentIndexer.DisplayName} for: {CurrentQuery.GetQueryString()}");
|
||||
|
||||
var serverUrl = string.Format("{0}://{1}:{2}{3}", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port, serverService.BasePath());
|
||||
var potatoReleases = releases.Where(r => r.Link != null || r.MagnetUri != null).Select(r =>
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
var potatoReleases = result.Releases.Where(r => r.Link != null || r.MagnetUri != null).Select(r =>
|
||||
{
|
||||
var release = AutoMapper.Mapper.Map<ReleaseInfo>(r);
|
||||
release.Link = serverService.ConvertToProxyLink(release.Link, serverUrl, CurrentIndexer.ID, "dl", release.Title + ".torrent");
|
||||
@@ -360,7 +403,7 @@ namespace Jackett.Controllers.V20
|
||||
|
||||
private void ConfigureCacheResults(IEnumerable<TrackerCacheResult> results)
|
||||
{
|
||||
var serverUrl = string.Format("{0}://{1}:{2}{3}", Request.RequestUri.Scheme, Request.RequestUri.Host, Request.RequestUri.Port, serverService.BasePath());
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
foreach (var result in results)
|
||||
{
|
||||
var link = result.Link;
|
||||
|
@@ -69,6 +69,13 @@ namespace Jackett.Controllers.V20
|
||||
bool preRelease = config.prerelease;
|
||||
bool logging = config.logging;
|
||||
string basePathOverride = config.basepathoverride;
|
||||
if (basePathOverride != null)
|
||||
{
|
||||
basePathOverride = basePathOverride.TrimEnd('/');
|
||||
if (!string.IsNullOrWhiteSpace(basePathOverride) && !basePathOverride.StartsWith("/"))
|
||||
throw new Exception("The Base Path Override must start with a /");
|
||||
}
|
||||
|
||||
string omdbApiKey = config.omdbkey;
|
||||
|
||||
Engine.Server.Config.UpdateDisabled = updateDisabled;
|
||||
|
182
src/Jackett/Definitions/1337x.yml
Normal file
182
src/Jackett/Definitions/1337x.yml
Normal file
@@ -0,0 +1,182 @@
|
||||
---
|
||||
site: 1337x
|
||||
name: 1337x
|
||||
description: "1337X is a Public torrent site that offers verified torrent downloads"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://1337x.to
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
#Audio
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
|
||||
- {id: 24, cat: Audio, desc: "Music/DVD"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 26, cat: Audio, desc: "Music/Radio"}
|
||||
- {id: 27, cat: Audio/Other, desc: "Music/Other"}
|
||||
- {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
|
||||
- {id: 53, cat: Audio, desc: "Music/Album"}
|
||||
- {id: 58, cat: Audio, desc: "Music/Box set"}
|
||||
- {id: 59, cat: Audio, desc: "Music/Discography"}
|
||||
- {id: 60, cat: Audio, desc: "Music/Single"}
|
||||
- {id: 68, cat: Audio, desc: "Music/Concerts"}
|
||||
- {id: 69, cat: Audio, desc: "Music/AAC"}
|
||||
|
||||
#Movies
|
||||
- {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
|
||||
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
|
||||
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
|
||||
- {id: 9, cat: Movies, desc: "Documentaries/Documentary"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 54, cat: Movies, desc: "Movies/h.264/x264"}
|
||||
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 70, cat: Movies, desc: "Movies/HEVC/x265"}
|
||||
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
|
||||
|
||||
#TV
|
||||
- {id: 5, cat: TV, desc: "TV/DVD"}
|
||||
- {id: 6, cat: TV/SD, desc: "TV/Divx/Xvid"}
|
||||
- {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
|
||||
- {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV/HD"}
|
||||
- {id: 71, cat: TV, desc: "TV/HEVC/x265"}
|
||||
|
||||
#Apps
|
||||
- {id: 18, cat: PC, desc: "Apps/PC Software"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
|
||||
- {id: 20, cat: PC, desc: "Apps/Linux"}
|
||||
- {id: 21, cat: PC, desc: "Apps/Other"}
|
||||
- {id: 56, cat: PC/Phone-Android, desc: "Apps/Android"}
|
||||
- {id: 57, cat: PC/Phone-IOS, desc: "Apps/iOS"}
|
||||
|
||||
#Games
|
||||
- {id: 10, cat: PC/Games, desc: "Games/PC Game"}
|
||||
- {id: 11, cat: Console, desc: "Games/PS2"}
|
||||
- {id: 12, cat: Console/PSP, desc: "Games/PSP"}
|
||||
- {id: 13, cat: Console/Xbox, desc: "Games/Xbox"}
|
||||
- {id: 14, cat: Console/Xbox 360, desc: "Games/Xbox360"}
|
||||
- {id: 15, cat: Console, desc: "Games/PS1"}
|
||||
- {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
|
||||
- {id: 17, cat: PC/Phone-Other, desc: "Games/Other"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Games/PS3"}
|
||||
- {id: 44, cat: Console/Wii, desc: "Games/Wii"}
|
||||
- {id: 45, cat: Console/NDS, desc: "Games/DS"}
|
||||
- {id: 46, cat: Console, desc: "Games/GameCube"}
|
||||
- {id: 72, cat: Console/3DS, desc: "Games/3DS"}
|
||||
|
||||
#XXX
|
||||
- {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
|
||||
- {id: 49, cat: XXX/Imageset, desc: "XXX/Picture"}
|
||||
- {id: 50, cat: XXX, desc: "XXX/Magazine"}
|
||||
- {id: 51, cat: XXX, desc: "XXX/Hentai"}
|
||||
- {id: 67, cat: XXX, desc: "XXX/Games"}
|
||||
|
||||
#Other
|
||||
- {id: 33, cat: Other, desc: "Other/Emulation"}
|
||||
- {id: 34, cat: Books, desc: "Other/Tutorial"}
|
||||
- {id: 35, cat: Other, desc: "Other/Sounds"}
|
||||
- {id: 36, cat: Books/Ebook, desc: "Other/E-books"}
|
||||
- {id: 37, cat: Other, desc: "Other/Images"}
|
||||
- {id: 38, cat: Other, desc: "Other/Mobile Phone"}
|
||||
- {id: 39, cat: Books/Comics, desc: "Other/Comics"}
|
||||
- {id: 40, cat: Other/Misc, desc: "Other/Other"}
|
||||
- {id: 47, cat: Other, desc: "Other/Nulled Script"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
# the .torrent url is on the on the details page
|
||||
selector: ul li a[href^="http://itorrents.org/"]
|
||||
|
||||
# it appears that Jackett Definitions do not currently support fetching magnets from the details page :-(
|
||||
# magnet:
|
||||
# the magnet url is on the on the details page
|
||||
# selector: ul li a[href^="magnet:?"]
|
||||
|
||||
search:
|
||||
# present trending results if there are no search parms supplied
|
||||
path: "{{if .Keywords}}/search/{{ .Keywords}}/1/{{else}}/trending{{end}}"
|
||||
rows:
|
||||
selector: tr:has(a[href^="/torrent/"])
|
||||
fields:
|
||||
title:
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
category:
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/sub/"]
|
||||
attribute: href
|
||||
filters:
|
||||
# extract the third part
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
details:
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
# .torrent link is on the details page
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
# magnet:
|
||||
# magnet URI is on the details page
|
||||
# selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
# attribute: href
|
||||
# dates come in three flavours:
|
||||
date:
|
||||
# (within this year) 7am Sep. 14th
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["st", ""]
|
||||
- name: replace
|
||||
args: ["nd", ""]
|
||||
- name: replace
|
||||
args: ["rd", ""]
|
||||
- name: replace
|
||||
args: ["th", ""]
|
||||
- name: dateparse
|
||||
args: "3pm Jan. 2"
|
||||
date:
|
||||
# (more than a year ago) Apr. 18th '11
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains("'")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["'", ""]
|
||||
- name: replace
|
||||
args: ["st", ""]
|
||||
- name: replace
|
||||
args: ["nd", ""]
|
||||
- name: replace
|
||||
args: ["rd", ""]
|
||||
- name: replace
|
||||
args: ["th", ""]
|
||||
- name: dateparse
|
||||
args: "Jan. 2 06"
|
||||
date:
|
||||
# # (today) 12:25am
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains(":")
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "3:04pm"
|
||||
size:
|
||||
selector: td[class^="coll-4"]
|
||||
seeders:
|
||||
selector: td[class^="coll-2"]
|
||||
leechers:
|
||||
selector: td[class^="coll-3"]
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: 2fast4you
|
||||
name: 2 Fast 4 You
|
||||
description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -112,6 +113,9 @@
|
||||
args: ["torrents-details.php", "download.php"]
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
@@ -136,4 +140,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: acidlounge
|
||||
name: Acid-Lounge
|
||||
description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: anidex
|
||||
name: Anidex
|
||||
description: "Anidex is a torrent tracker and indexer, primarily for English fansub groups of anime"
|
||||
description: "Anidex is a Public torrent tracker and indexer, primarily for English fansub groups of anime"
|
||||
language: en-us
|
||||
encoding: UTF-8
|
||||
type: public
|
||||
@@ -34,42 +34,22 @@
|
||||
- name: cat-id
|
||||
type: text
|
||||
label: Category Id
|
||||
- name: lang-id
|
||||
type: text
|
||||
label: Language Id
|
||||
- name: info
|
||||
type: info
|
||||
label: Category Id Note
|
||||
default: "You can filter your searches by using any of the following category numbers (comma delimited):<br>1 :Anime - Sub<br>2 :Anime - Raw<br>3 :Anime - Dub<br>4 :LA - Sub<br>5 :LA - Raw<br>6 :Light Novel<br>7 :Manga - TLed<br>8 :Manga - Raw<br>9 :♫ - Lossy<br>10 :♫ - Lossless<br>11 :♫ - Video<br>12 :Games<br>13 :Applications<br>14 :Pictures<br>15 :Adult Video<br>16 :Other"
|
||||
|
||||
search:
|
||||
path: "ajax/page.ajax.php"
|
||||
headers:
|
||||
x-requested-with: ["XMLHttpRequest"]
|
||||
inputs:
|
||||
page: "torrents"
|
||||
filename: "{{ .Query.Keywords }}"
|
||||
category: "{{ .Config.cat-id }}"
|
||||
lang_id: "{{ .Config.lang-id }}"
|
||||
path: "?{{if .Config.cat-id}}id={{.Config.cat-id }}&{{else}}{{end}}q={{if .Keywords}}{{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: div.table-responsive > table > tbody > tr
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1) > div
|
||||
case:
|
||||
":contains(\"Anime - Sub\")": 1
|
||||
":contains(\"Anime - Raw\")": 2
|
||||
":contains(\"Anime - Dub\")": 3
|
||||
":contains(\"LA - Sub\")": 4
|
||||
":contains(\"LA - Raw\")": 5
|
||||
":contains(\"Light Novel\")": 6
|
||||
":contains(\"Manga - TLed\")": 7
|
||||
":contains(\"Manga - Raw\")": 8
|
||||
":contains(\"♫ - Lossy\")": 9
|
||||
":contains(\"♫ - Lossless\")": 10
|
||||
":contains(\"♫ - Video\")": 11
|
||||
":contains(\"Games\")": 12
|
||||
":contains(\"Applications\")": 13
|
||||
":contains(\"Pictures\")": 14
|
||||
":contains(\"Adult Video\")": 15
|
||||
":contains(\"Other\")": 16
|
||||
"*": 0 # some old torrents don't have a category
|
||||
selector: a[href^="/?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
title:
|
||||
selector: td:nth-child(3) > a.torrent > span.span-1440
|
||||
details:
|
||||
@@ -78,6 +58,9 @@
|
||||
download:
|
||||
selector: td:nth-child(5) > a
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
@@ -92,3 +75,9 @@
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
grabs:
|
||||
selector: td:nth-child(11)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: aniRena
|
||||
name: AniRena
|
||||
description: "AniRena is a Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
@@ -12,28 +13,30 @@
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Drama"}
|
||||
- {id: 9, cat: TV/Anime, desc: "Anime Music Videos"}
|
||||
- {id: 10, cat: TV/Anime, desc: "Non-English"}
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
# Audio
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
# Literature
|
||||
- {id: 7, cat: Books, desc: "Manga"}
|
||||
# Software
|
||||
- {id: 5, cat: PC/ISO, desc: "DVD/ISO"}
|
||||
- {id: 6, cat: PC, desc: "Hentai-Game"}
|
||||
# Literature
|
||||
- {id: 7, cat: Books, desc: "Manga"}
|
||||
# Audio
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
# Other
|
||||
- {id: 11, cat: Other, desc: "Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
|
||||
search:
|
||||
path: "/"
|
||||
inputs:
|
||||
s: "{{ .Query.Keywords }}"
|
||||
path: "/{{if .Keywords}}?s={{ .Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: table tbody tr
|
||||
selector: table tbody tr:has(td.torrents_small_type_data1)
|
||||
fields:
|
||||
title:
|
||||
selector: .torrents_small_info_data1 div
|
||||
@@ -43,6 +46,8 @@
|
||||
magnet:
|
||||
selector: .torrents_small_info_data2 a[title="Magnet Link"]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: .torrents_small_size_data1
|
||||
seeders:
|
||||
@@ -51,3 +56,22 @@
|
||||
selector: .torrents_small_leechers_data1 b big
|
||||
grabs:
|
||||
selector: .torrents_small_downloads_data1
|
||||
category:
|
||||
selector: .torrents_small_type_data1 img
|
||||
attribute: src
|
||||
case:
|
||||
"[src=\"./styles/tracker/imageset/cat_raw_small.png\"]": "1"
|
||||
"[src=\"./styles/tracker/imageset/cat_anime_small.png\"]": "2"
|
||||
"[src=\"./styles/tracker/imageset/cat_hentai_small.png\"]": "3"
|
||||
"[src=\"./styles/tracker/imageset/cat_drama_small.png\"]": "4"
|
||||
"[src=\"./styles/tracker/imageset/cat_dvd_small.png\"]": "5"
|
||||
"[src=\"./styles/tracker/imageset/cat_hgame2_small.png\"]": "6"
|
||||
"[src=\"./styles/tracker/imageset/cat_manga_small.png\"]": "7"
|
||||
"[src=\"./styles/tracker/imageset/cat_music_small.png\"]": "8"
|
||||
"[src=\"./styles/tracker/imageset/cat_musicvid_small.png\"]": "9"
|
||||
"[src=\"./styles/tracker/imageset/cat_noneng_small.png\"]": "10"
|
||||
"[src=\"./styles/tracker/imageset/cat_other_small.png\"]": "11"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: aox
|
||||
name: AOX
|
||||
description: "AOX (Chippu) is a Private Torrent Tracker for ASIAN MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -121,4 +122,4 @@
|
||||
- name: prepend
|
||||
args: "<br>Language: "
|
||||
|
||||
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: arabafenice
|
||||
name: ArabaFenice
|
||||
description: "Araba Fenice (Phoenix) is an ITALIAN Private site for TV / MOVIES / GENERAL"
|
||||
language: it-it
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
135
src/Jackett/Definitions/archetorrent.yml
Normal file
135
src/Jackett/Definitions/archetorrent.yml
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
site: archetorrent
|
||||
name: ArcheTorrent
|
||||
description: "ArcheTorrent is a FRENCH Private Torrent Tracker"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://archetorrent.com
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 18, cat: PC, desc: "Applications: PC"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Applications: Mac"}
|
||||
- {id: 54, cat: PC, desc: "Applications: linux"}
|
||||
- {id: 56, cat: XXX/Other, desc: "Autres: ebook xxx"}
|
||||
- {id: 36, cat: Books, desc: "Autres: E-Books"}
|
||||
- {id: 37, cat: Other, desc: "Autres: Images"}
|
||||
- {id: 38, cat: PC/Phone-Other, desc: "Autres: Telephone-mobile"}
|
||||
- {id: 47, cat: Movies, desc: "Films: Animé"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "Films: DVD"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Films: Dvdrip"}
|
||||
- {id: 68, cat: Movies, desc: "Films: TAT Releases"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Films: UHD 4K"}
|
||||
- {id: 69, cat: Movies, desc: "Films: Retro"}
|
||||
- {id: 3, cat: Movies/HD, desc: "Films: HD1080"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Films: HD720"}
|
||||
- {id: 4, cat: Movies, desc: "Films: Cam/Ts"}
|
||||
- {id: 22, cat: Movies/BluRay, desc: "Films: bluray"}
|
||||
- {id: 23, cat: Movies/3D, desc: "Films: 3D"}
|
||||
- {id: 24, cat: Movies/Foreign, desc: "Films: VOSTFR"}
|
||||
- {id: 25, cat: XXX, desc: "Films: Adulte"}
|
||||
- {id: 48, cat: TV/Documentary, desc: "Films: Documentaire"}
|
||||
- {id: 49, cat: Movies/Other, desc: "Films: Spectacle"}
|
||||
- {id: 51, cat: Movies/SD, desc: "Films: R5"}
|
||||
- {id: 52, cat: Movies/SD, desc: "Films: bdrip"}
|
||||
- {id: 53, cat: Movies/SD, desc: "Films: brrip"}
|
||||
- {id: 55, cat: Movies/DVD, desc: "Films: dvd-pack"}
|
||||
- {id: 57, cat: Movies, desc: "Films: manga"}
|
||||
- {id: 59, cat: Movies/WEBDL, desc: "Films: Webrip"}
|
||||
- {id: 63, cat: Movies/SD, desc: "Films: M-HD"}
|
||||
- {id: 10, cat: PC/Games, desc: "Jeux: PC"}
|
||||
- {id: 11, cat: Console/Other, desc: "Jeux: PS2"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Jeux: PS3"}
|
||||
- {id: 12, cat: Console/PSP, desc: "Jeux: PSP"}
|
||||
- {id: 14, cat: Console/Xbox 360, desc: "Jeux: Xbox360"}
|
||||
- {id: 44, cat: Console/Wii, desc: "Jeux: Wii"}
|
||||
- {id: 45, cat: Console/NDS, desc: "Jeux: DS"}
|
||||
- {id: 27, cat: Audio/Video, desc: "Musique: Clip Video"}
|
||||
- {id: 62, cat: TV/SD, desc: "Serie tv: TV BDRip"}
|
||||
- {id: 5, cat: TV/SD, desc: "Serie tv: Dvdrip"}
|
||||
- {id: 41, cat: TV/HD, desc: "Serie tv: Hd"}
|
||||
- {id: 60, cat: TV/SD, desc: "Serie tv: pack série tv"}
|
||||
- {id: 64, cat: TV/FOREIGN, desc: "Serie tv: vostfr"}
|
||||
- {id: 65, cat: TV/HD, desc: "Serie tv: Série tv 720P"}
|
||||
- {id: 66, cat: TV/HD, desc: "Serie tv: Série tv 1080P"}
|
||||
- {id: 67, cat: TV/HD, desc: "Serie tv: Série tv PackHD"}
|
||||
- {id: 73, cat: TV/Anime, desc: "Serie tv: Anime "}
|
||||
- {id: 72, cat: TV/Sport, desc: "Sport: sport"}
|
||||
- {id: 61, cat: TV/SD, desc: "Tv: DVDRip"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: form:contains("Erreur")
|
||||
message:
|
||||
selector: form
|
||||
remove: table
|
||||
test:
|
||||
path: torrents-search.php
|
||||
|
||||
search:
|
||||
path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: "1"
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr[class^="t-row"]
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrents-details.php", "download.php"]
|
||||
date:
|
||||
selector: td:nth-child(2) a
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Poster le: </b>(.*?)<br />"
|
||||
- name: dateparse
|
||||
args: "02-01-2006"
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
banner:
|
||||
selector: img.rounded-img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(8) font b
|
||||
seeders:
|
||||
selector: td:nth-child(6) font b
|
||||
leechers:
|
||||
selector: td:nth-child(7) font b
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="freeleech"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: asiandvdclub
|
||||
name: AsianDVDClub
|
||||
description: "AsianDVDClub is an ASIAN Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
110
src/Jackett/Definitions/ast4u.yml
Normal file
110
src/Jackett/Definitions/ast4u.yml
Normal file
@@ -0,0 +1,110 @@
|
||||
---
|
||||
site: ast4u
|
||||
name: AST4u
|
||||
description: "AST4u is a GERMAN Private site for TV / MOVIES / ANIME / HENTAI"
|
||||
language: de-de
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://www.ast4u.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime Movie"}
|
||||
- {id: 36, cat: TV/Anime, desc: "Anime Serie"}
|
||||
- {id: 37, cat: Audio/Foreign, desc: "Anime Musik"}
|
||||
- {id: 41, cat: Books, desc: "Anime Pic & Manga"}
|
||||
- {id: 42, cat: XXX, desc: "Hentai Movie & OVA"}
|
||||
- {id: 43, cat: XXX, desc: "Hentai Serie"}
|
||||
- {id: 44, cat: PC, desc: "Hentai Game"}
|
||||
- {id: 45, cat: Movies, desc: "Cartoon Movie"}
|
||||
- {id: 46, cat: TV, desc: "Cartoon Serie"}
|
||||
- {id: 47, cat: TV, desc: "TV-Serie"}
|
||||
- {id: 49, cat: TV/Documentary, desc: "Sonstiges Doku"}
|
||||
- {id: 50, cat: Audio, desc: "Sonstiges Soundtrack"}
|
||||
- {id: 52, cat: Movies/HD, desc: "Movie HD"}
|
||||
- {id: 53, cat: Other, desc: "Sonstiges"}
|
||||
- {id: 55, cat: Movies/Foreign, desc: "Movie Asia & MartialArts"}
|
||||
- {id: 56, cat: TV/Anime, desc: "Anime OVA"}
|
||||
- {id: 58, cat: Movies, desc: "Movie"}
|
||||
- {id: 59, cat: Audio/Audiobook, desc: "Sonstiges Hoerspiele"}
|
||||
- {id: 62, cat: Console, desc: "Sonstiges Game"}
|
||||
- {id: 65, cat: Movies/BluRay, desc: "Movie BluRay"}
|
||||
- {id: 66, cat: TV, desc: "TV-Serie BluRay"}
|
||||
- {id: 67, cat: TV/HD, desc: "TV-Serie HD"}
|
||||
- {id: 68, cat: TV/Anime, desc: "Anime Movie HD & BD"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Anime OVA HD & BD"}
|
||||
- {id: 70, cat: TV/Anime, desc: "Anime Serie HD & BD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: "/index.php"
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: "0"
|
||||
orderby: "added"
|
||||
sort: "desc"
|
||||
|
||||
rows:
|
||||
selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php"]
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^=" /gettorrent/ssl/"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2)
|
||||
grabs:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1)
|
||||
size:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1)
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
- name: replace
|
||||
args: [",", "."]
|
||||
seeders:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(1)
|
||||
leechers:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +2:00"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="/pic/free.gif"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: audiobooktorrents
|
||||
name: Audiobook Torrents
|
||||
description: "Audiobook Torrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -133,4 +134,4 @@
|
||||
selector: td[colspan=13]
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description }}<br>\n"
|
||||
args: "{{ .Result.description }}<br>\n"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: b2s-share
|
||||
name: B2S-Share
|
||||
description: "B2S-Share is a Brazilian Private site for TV / MOVIES / GENERAL"
|
||||
language: pt-br
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
@@ -214,8 +215,11 @@
|
||||
|
||||
search:
|
||||
path: torrents-search.php
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{ .Keywords }}"
|
||||
rows:
|
||||
selector: table[class^="ttable_headinner"] > tbody > tr:has(a[href^="torrents-details.php?id="])
|
||||
fields:
|
||||
|
122
src/Jackett/Definitions/backups.yml
Normal file
122
src/Jackett/Definitions/backups.yml
Normal file
@@ -0,0 +1,122 @@
|
||||
site: backups
|
||||
name: Back-ups
|
||||
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://back-ups.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 24, cat: PC, desc: "Apple"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 23, cat: Console, desc: "Visionary"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
- {id: 13, cat: Console, desc: "XBOX-JTAG"}
|
||||
- {id: 35, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 27, cat: Console, desc: "Roms and Emulators"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
||||
- {id: 5, cat: Books, desc: "EBooks"}
|
||||
- {id: 38, cat: Console, desc: "Hyperspin Bolt-on Edition"}
|
||||
- {id: 34, cat: TV, desc: "Kids"}
|
||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 22, cat: PC/Games, desc: "CoinOPS"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td:contains("remaining tries")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="/logout.php"]
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
keywordsfilters:
|
||||
# remove words <= 3 characters and surrounding special characters
|
||||
- name: re_replace
|
||||
args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
|
||||
inputs:
|
||||
do: "search"
|
||||
keywords: "{{ .Keywords }}"
|
||||
search_type: "t_name"
|
||||
category: "0" # multi cat search not supported
|
||||
include_dead_torrents: "yes"
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
fields:
|
||||
title:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title:
|
||||
optional: true
|
||||
selector: div.tooltip-content > div
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
|
||||
remove: span
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
banner:
|
||||
optional: true
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="Free Torrent "]: "0"
|
||||
img[alt^="Silver Torrent "]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: bithq
|
||||
name: BitHQ
|
||||
description: "BitHQ is a Private Torrent Tracker for DVD-R / BLURAY MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
@@ -90,4 +91,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: bithumen
|
||||
name: BitHUmen
|
||||
description: "BitHUmen is a Hungarian Private site for TV / MOVIES / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
@@ -72,7 +73,8 @@
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
title|optional:
|
||||
title:
|
||||
optional: true
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
@@ -108,14 +110,16 @@
|
||||
selector: td:nth-child(6) > u
|
||||
downloadvolumefactor:
|
||||
text: "1"
|
||||
downloadvolumefactor|optional:
|
||||
downloadvolumefactor:
|
||||
optional: true
|
||||
selector: td:nth-child(6) > nobr > font:contains(" × ")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["×", ""]
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
uploadvolumefactor|optional:
|
||||
uploadvolumefactor:
|
||||
optional: true
|
||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
||||
filters:
|
||||
- name: replace
|
||||
@@ -131,4 +135,3 @@
|
||||
|
||||
description:
|
||||
selector: td:nth-child(2) > div
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: bitspyder
|
||||
name: Bitspyder
|
||||
description: "Bitspyder is a Private site for Educational BOOKS / AUDIO"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
@@ -94,7 +95,7 @@
|
||||
files:
|
||||
selector: a[href*="&filelist=1"]
|
||||
grabs:
|
||||
selector: td.rowcol:nth-child(7):has(br)
|
||||
selector: td.rowcol:nth-child(7):has(br), td.clear:nth-child(4)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d,]+)
|
||||
@@ -102,7 +103,8 @@
|
||||
selector: td.rowcol:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td.rowcol:nth-last-child(2)
|
||||
date|optional|1:
|
||||
date:
|
||||
optional: true
|
||||
selector: font[color="5F5F5F"]
|
||||
filters:
|
||||
- name: split
|
||||
@@ -113,7 +115,8 @@
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date|optional|2:
|
||||
date:
|
||||
optional: true
|
||||
selector: a[title^="Upploaded at"]
|
||||
attribute: title
|
||||
filters:
|
||||
@@ -129,5 +132,6 @@
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description|optional:
|
||||
description:
|
||||
optional: true
|
||||
selector: font[color="#990000"]
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: bluebirdhd
|
||||
name: BlueBird
|
||||
description: "BlueBird is a RUSSIAN Private Torrent Tracker for HD MOVIES"
|
||||
language: ru-ru
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
@@ -28,56 +30,74 @@
|
||||
test:
|
||||
path: /torrents
|
||||
|
||||
download:
|
||||
selector: a[href^="/download.php/"]
|
||||
|
||||
search:
|
||||
path: /torrents/search
|
||||
path: /filter
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
name: "{{ .Query.Keywords }}"
|
||||
category_id: 1
|
||||
type: BD50
|
||||
order: created_at:desc
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: ""
|
||||
tmdb: ""
|
||||
sorting: created_at
|
||||
direction: desc
|
||||
qty: 100
|
||||
preprocessingfilters:
|
||||
- name: jsonjoinarray
|
||||
args: ["$.result", ""]
|
||||
- name: prepend
|
||||
args: "<table>"
|
||||
- name: append
|
||||
args: "</table>"
|
||||
rows:
|
||||
selector: table.table > tbody > tr
|
||||
selector: tr
|
||||
fields:
|
||||
# category:
|
||||
# selector: a[href^="categories"]
|
||||
# attribute: href
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: strdump
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
- name: strdump
|
||||
title:
|
||||
remove: ul
|
||||
selector: td:nth-child(2)
|
||||
download:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download_check/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/torrents/", "/download/"]
|
||||
args: ["/download_check/", "/download/"]
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href*="://www.imdb.com/title/"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
args: ([\d\.]+)
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
selector: time
|
||||
attribute: datetime
|
||||
filters:
|
||||
- name: append
|
||||
args: " ago"
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
#"i[data-original-title=\"100% Free\"]": "0"
|
||||
"i[data-original-title=\"100% Free\"]": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
#"i[data-original-title=\"Double upload\"]": "2"
|
||||
"i[data-original-title=\"Double upload\"]": "2"
|
||||
"*": "1"
|
58
src/Jackett/Definitions/btbit.yml
Normal file
58
src/Jackett/Definitions/btbit.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
site: btbit
|
||||
name: btbit
|
||||
description: "btbit is a public magnet search engine for MOVIES / GENERAL. This definition is for the English site."
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://en.btbit.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"Movie": Movies
|
||||
"Package": PC/0day
|
||||
"Other": Other
|
||||
"Software": PC
|
||||
"Mirror": PC/ISO
|
||||
"Music": Audio
|
||||
"Picture": Other/Misc
|
||||
"Document": Books
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}.html"
|
||||
rows:
|
||||
selector: .rs
|
||||
fields:
|
||||
title:
|
||||
selector: .title
|
||||
category:
|
||||
selector: .sbar span[class^="cpill"]
|
||||
details:
|
||||
selector: .title h3 a
|
||||
attribute: href
|
||||
download:
|
||||
selector: .sbar a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: .sbar span:nth-of-type(3) b
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02"
|
||||
size:
|
||||
selector: .sbar span:nth-of-type(4) b
|
||||
files:
|
||||
selector: .sbar span:nth-of-type(5) b
|
||||
grabs:
|
||||
selector: .sbar span:nth-of-type(6) b
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
77
src/Jackett/Definitions/btdb.yml
Normal file
77
src/Jackett/Definitions/btdb.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
site: btdb
|
||||
name: BTDB
|
||||
description: "BTDB is a Public BitTorrent DHT search engine. Torrents can be downloaded via magnet links"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btdb.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "Other"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Movies, desc: ""}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: Category for Sonarr and Radarr
|
||||
default: BTDB does not use categories. In your Sonarr or Radarr Torznab Indexer settings, set the category to 100001.
|
||||
|
||||
search:
|
||||
path: "{{if .Keywords}}q/{{ .Keywords}}/?sort=time{{else}}recent{{end}}"
|
||||
rows:
|
||||
selector: li[class$="item"]
|
||||
fields:
|
||||
title:
|
||||
selector: h2[class$="title"] a[href^="/torrent/"]
|
||||
attribute: title
|
||||
category:
|
||||
text: "1"
|
||||
details:
|
||||
selector: h2[class$="title"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: div[class$="info"] a[href^="magnet:"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div[class$="info"]
|
||||
filters:
|
||||
- name: split
|
||||
args: ["\n", 3]
|
||||
- name: replace
|
||||
args: ["AddTime: ", ""]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05"
|
||||
size:
|
||||
selector: div[class$="info"]
|
||||
filters:
|
||||
- name: split
|
||||
args: ["\n", 1]
|
||||
- name: replace
|
||||
args: ["Size: ", ""]
|
||||
files:
|
||||
selector: div[class$="info"]
|
||||
filters:
|
||||
- name: split
|
||||
args: ["\n", 2]
|
||||
- name: replace
|
||||
args: ["Files: ", ""]
|
||||
grabs:
|
||||
selector: div[class$="info"]
|
||||
filters:
|
||||
- name: split
|
||||
args: ["\n", 4]
|
||||
- name: replace
|
||||
args: ["Popularity: ", ""]
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: btnext
|
||||
name: BTNext
|
||||
description: "BTNext (BTNT) is a PORTUGUESE Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: pt-pt
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -120,7 +121,7 @@
|
||||
search_type: "name"
|
||||
searchin: "title"
|
||||
error:
|
||||
- selector: div.error
|
||||
- selector: div.error:not(:contains("Não existem resultados encontrados."))
|
||||
rows:
|
||||
selector: table#torrents_table_classic > tbody > tr:has(td.torrent_name)
|
||||
fields:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: carpathians
|
||||
name: Carpathians
|
||||
description: "Carpathians is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -1,4 +1,4 @@
|
||||
---
|
||||
---
|
||||
site: chdbits
|
||||
name: CHDBits
|
||||
description: "A general tracker"
|
||||
@@ -54,7 +54,8 @@
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
title|optional:
|
||||
title:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
|
@@ -1,11 +1,16 @@
|
||||
---
|
||||
site: cpasbien
|
||||
name: cpasbien
|
||||
description: "cpasbien is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://cpabien.la/
|
||||
legacylinks:
|
||||
- http://cpabien.org/
|
||||
- http://cpabien.cc/
|
||||
- http://cpabien.co/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -72,6 +77,8 @@
|
||||
args: [ " To", "000000000000"]
|
||||
- name: replace
|
||||
args: [ "X", "" ]
|
||||
date:
|
||||
text: "now"
|
||||
seeders:
|
||||
text: 0
|
||||
seeders:
|
||||
@@ -85,4 +92,4 @@
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
text: "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: czteam
|
||||
name: CZTeam
|
||||
description: "CZTeam (CZT) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: cs-cz
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -91,4 +92,4 @@
|
||||
"*": "1"
|
||||
description:
|
||||
selector: div.torrent_info
|
||||
remove: strong
|
||||
remove: strong
|
||||
|
137
src/Jackett/Definitions/cztorrent.yml
Normal file
137
src/Jackett/Definitions/cztorrent.yml
Normal file
@@ -0,0 +1,137 @@
|
||||
site: cztorrent
|
||||
name: CzTorrent
|
||||
description: "CzTorrent is a Czech Semi-Private site for TV / MOVIES / GENERAL"
|
||||
language: cs-cz
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://tracker.cztorrent.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Filmy"}
|
||||
- {id: 25, cat: TV, desc: "Seriály"}
|
||||
- {id: 23, cat: TV/Documentary, desc: "Filmy - dokument"}
|
||||
- {id: 22, cat: PC, desc: "Aplikace"}
|
||||
- {id: 36, cat: Movies/3D, desc: "Filmy - 3D"}
|
||||
- {id: 35, cat: Movies/Other, desc: "Filmy - anime"}
|
||||
- {id: 37, cat: Movies/BluRay, desc: "Filmy - Blu-ray"}
|
||||
- {id: 11, cat: Movies/DVD, desc: "Filmy - DVD"}
|
||||
- {id: 30, cat: Movies/DVD, desc: "Filmy - DVD full"}
|
||||
- {id: 5, cat: Movies, desc: "Filmy - kreslené"}
|
||||
- {id: 31, cat: Movies/HD, desc: "HD"}
|
||||
- {id: 38, cat: Movies/HD, desc: "HD-LQ"}
|
||||
- {id: 3, cat: PC/Games, desc: "Hry"}
|
||||
- {id: 2, cat: Audio, desc: "Hudba"}
|
||||
- {id: 34, cat: Audio/Video, desc: "Hudba DVD/HD"}
|
||||
- {id: 6, cat: Books, desc: "Knihy"}
|
||||
- {id: 13, cat: Console, desc: "Konzole"}
|
||||
- {id: 32, cat: Audio, desc: "Mluvené slovo"}
|
||||
- {id: 16, cat: PC/Phone-Other, desc: "Mobil, PDA"}
|
||||
- {id: 4, cat: Other, desc: "Ostatní"}
|
||||
- {id: 29, cat: Audio, desc: "Soundtrack"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Videoklipy"}
|
||||
- {id: 24, cat: XXX, desc: "xXx"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /login-page
|
||||
method: form
|
||||
form: form[action^="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
persistent_login: "1"
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /torrents
|
||||
|
||||
search:
|
||||
path: /torrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
s: "{{ .Keywords }}"
|
||||
t: "1"
|
||||
rows:
|
||||
selector: tr.torr_hover
|
||||
fields:
|
||||
title:
|
||||
selector: td.detaily a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [".*? / ", ""]
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: replace
|
||||
args: ["serie", ""]
|
||||
- name: replace
|
||||
args: ["Serie", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\d{2})\\.", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\d{1})\\.", "S0$1"]
|
||||
category:
|
||||
selector: td:nth-child(2)
|
||||
case:
|
||||
":contains(\"Filmy\")": 1
|
||||
":contains(\"Seriály\")": 25
|
||||
":contains(\"Filmy - dokument\")": 23
|
||||
":contains(\"Aplikace\")": 22
|
||||
":contains(\"Filmy - 3D\")": 36
|
||||
":contains(\"Filmy - anime\")": 35
|
||||
":contains(\"Filmy - Blu-ray\")": 37
|
||||
":contains(\"Filmy - DVD\")": 11
|
||||
":contains(\"Filmy - DVD full\")": 30
|
||||
":contains(\"Filmy - kreslené\")": 5
|
||||
":contains(\"HD\")": 31
|
||||
":contains(\"HD-LQ\")": 38
|
||||
":contains(\"Hry\")": 3
|
||||
":contains(\"Hudba\")": 2
|
||||
":contains(\"Hudba DVD/HD\")": 34
|
||||
":contains(\"Knihy\")": 6
|
||||
":contains(\"Konzole\")": 13
|
||||
":contains(\"Mluvené slovo\")": 32
|
||||
":contains(\"Mobil, PDA\")": 16
|
||||
":contains(\"Ostatní\")": 4
|
||||
":contains(\"Soundtrack\")": 29
|
||||
":contains(\"Videoklipy\")": 19
|
||||
":contains(\"xXx\")": 24
|
||||
details:
|
||||
selector: td.detaily a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.download a
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.detaily
|
||||
filters:
|
||||
- name: split
|
||||
args: [ "|", 0 ]
|
||||
- name: regexp
|
||||
args: "Velikost: (.+?) ?$"
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: split
|
||||
args: [ "|", 1 ]
|
||||
- name: regexp
|
||||
args: "Přidán: (.+?) ?$"
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
args: "2.1.2006 15:04 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(7) span
|
||||
leechers:
|
||||
selector: td:nth-child(8) span
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: datascene
|
||||
name: DataScene
|
||||
description: "DataScene (DS) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ro-ro
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
@@ -67,7 +68,7 @@
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: tr:has(a.tname)
|
||||
selector: div.ncls > table > tbody > tr:has(a.tname)
|
||||
fields:
|
||||
title-attribute:
|
||||
selector: a.tname
|
||||
@@ -86,7 +87,7 @@
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="/download.php/"]
|
||||
selector: a[href^="/download.php/"], a[href^="/downloadd.php/"] # some releases use a download link with two d's
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
@@ -97,10 +98,9 @@
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(2) > right > div:has(font:contains("Uploaded"))
|
||||
remove: div > font
|
||||
filters:
|
||||
- name: trim
|
||||
args: ":"
|
||||
- name: replace
|
||||
args: ["Uploaded: ", ""]
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
@@ -117,11 +117,11 @@
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src=\"pic/free.gif\"]": "0"
|
||||
"img[src=\"pic/free.png\"]": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2) > right
|
||||
remove: div
|
||||
remove: div
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: deildu
|
||||
name: Deildu
|
||||
description: "Deildu is an Icelandic Semi-Private site for TV / MOVIES / GENERAL"
|
||||
language: is-is
|
||||
type: semi-private
|
||||
encoding: iso-8859-1
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: diablotorrent
|
||||
name: Diablo Torrent
|
||||
description: " Diablo Torrent is a Hungarian Private site for TV / MOVIES / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -58,32 +59,25 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
submitpath: login.php
|
||||
path: login
|
||||
submitpath: login/run
|
||||
method: form
|
||||
inputs:
|
||||
referer: ""
|
||||
nev: "{{ .Config.username }}"
|
||||
jelszo: "{{ .Config.password }}"
|
||||
fsv: "-1"
|
||||
ssl: "1"
|
||||
fsv: "0"
|
||||
login: "1"
|
||||
belepes: "1"
|
||||
getselectorinputs:
|
||||
c:
|
||||
selector: "script:contains(\"login.php\")"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "login.php\\?c=(.*?)&rhash="
|
||||
rhash:
|
||||
text: "123"
|
||||
rhash: "123"
|
||||
test:
|
||||
path: browse.php
|
||||
path: browse
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
path: browse
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}category[]={{.}}&{{end}}"
|
||||
cim: "{{ .Keywords }}"
|
||||
search: "{{ .Keywords }}"
|
||||
s_alapjan: "7"
|
||||
s_sorrend: "desc"
|
||||
rows:
|
||||
@@ -93,10 +87,8 @@
|
||||
download:
|
||||
selector: div.box_download > a
|
||||
attribute: href
|
||||
#title: # shortened
|
||||
# selector: a.box_name_a
|
||||
title:
|
||||
selector: div.torrent_details_po + h2
|
||||
selector: a.box_name_a > span
|
||||
details:
|
||||
selector: a.box_name_a
|
||||
attribute: href
|
||||
@@ -123,13 +115,15 @@
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
size:
|
||||
selector: div.box_size
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: a.cover_a
|
||||
attribute: title
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src='(.*?)'
|
||||
imdb|optional:
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="http://www.imdb.com/title/"]
|
||||
attribute: href
|
||||
description:
|
||||
|
@@ -1,154 +0,0 @@
|
||||
---
|
||||
site: dragonworld
|
||||
name: Dragon World (DTW)
|
||||
language: de-de
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://dtw.sytes.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Dokumentation
|
||||
- {id: 46, cat: TV/Documentary, desc: "Dokumentation"}
|
||||
- {id: 55, cat: TV/Documentary, desc: "Dokumentation/HD"}
|
||||
- {id: 56, cat: TV/Documentary, desc: "Dokumentation/SD"}
|
||||
# Ebooks
|
||||
- {id: 36, cat: Books, desc: "Ebooks"}
|
||||
- {id: 37, cat: Books, desc: "Ebooks"}
|
||||
- {id: 38, cat: Books, desc: "Ebooks/Hoerspiele/Hoerbuecher"}
|
||||
# Games
|
||||
- {id: 21, cat: Console, desc: "Games"}
|
||||
- {id: 24, cat: Console/Other, desc: "Games/Nintendo"}
|
||||
- {id: 22, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 23, cat: Console/PS4, desc: "Games/Playstation"}
|
||||
- {id: 25, cat: Console/Xbox, desc: "Games/Xbox"}
|
||||
# Kinder
|
||||
- {id: 10, cat: Other, desc: "Kinder"}
|
||||
- {id: 14, cat: Other, desc: "Kinder/Diverses"}
|
||||
- {id: 12, cat: Movies, desc: "Kinder/Filme"}
|
||||
- {id: 11, cat: PC/Games, desc: "Kinder/Games"}
|
||||
- {id: 13, cat: Audio, desc: "Kinder/Musik"}
|
||||
# Movies
|
||||
- {id: 15, cat: Movies, desc: "Movies"}
|
||||
- {id: 50, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Movies/HD Pack"}
|
||||
- {id: 45, cat: Movies/HD, desc: "Movies/Remuxe"}
|
||||
- {id: 17, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 54, cat: Movies/SD, desc: "Movies/SD Pack"}
|
||||
# Musik
|
||||
- {id: 4, cat: Audio, desc: "Musik"}
|
||||
- {id: 57, cat: Audio, desc: "Musik/Album"}
|
||||
- {id: 8, cat: Audio/Lossless, desc: "Musik/Flac"}
|
||||
- {id: 7, cat: Audio/MP3, desc: "Musik/Mp3"}
|
||||
- {id: 9, cat: Audio/Video, desc: "Musik/Video"}
|
||||
# Serien
|
||||
- {id: 26, cat: TV, desc: "Serien"}
|
||||
- {id: 27, cat: TV/HD, desc: "Serien/HD"}
|
||||
- {id: 28, cat: TV/SD, desc: "Serien/SD"}
|
||||
# Software
|
||||
- {id: 29, cat: PC/0day, desc: "Software"}
|
||||
- {id: 32, cat: PC/0day, desc: "Software/Diverses"}
|
||||
- {id: 31, cat: PC/Mac, desc: "Software/Mac"}
|
||||
- {id: 30, cat: PC/0day, desc: "Software/Windows"}
|
||||
# Sport
|
||||
- {id: 39, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 40, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 58, cat: TV/Sport, desc: "Sport SD"}
|
||||
# XXX
|
||||
- {id: 33, cat: XXX, desc: "XXX"}
|
||||
- {id: 34, cat: XXX, desc: "XXX/HD"}
|
||||
- {id: 35, cat: XXX, desc: "XXX/SD"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(td:contains("Ein Fehler ist aufgetreten"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="/logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "takethanks.php"
|
||||
method: "post"
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
do: "search"
|
||||
keywords: "{{ .Keywords }}"
|
||||
search_type: "t_name"
|
||||
category: "0" # multi cat search not supported
|
||||
include_dead_torrents: "yes"
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
fields:
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title:
|
||||
selector: div.tooltip-content > div
|
||||
optional: true
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
banner:
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
optional: true
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="OnlyUp Torrent"]: "0"
|
||||
img[alt^="50% "]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt^="multi2 Torrent"]: "2"
|
||||
"*": "1"
|
||||
date:
|
||||
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
|
||||
remove: span
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: dragonworldreloaded
|
||||
name: Dragonworld Reloaded
|
||||
description: "Dragonworld Reloaded is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: de-de
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -1,10 +1,13 @@
|
||||
---
|
||||
site: dreamteam
|
||||
name: Dream Team
|
||||
description: "Dream Team is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: el-gr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://dream-team.ga/
|
||||
legacylinks:
|
||||
- http://dream-team.ml/
|
||||
|
||||
caps:
|
||||
@@ -249,7 +252,7 @@
|
||||
- selector: td:contains("remaining tries")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href^="http://dream-team.ml/logout.php"]
|
||||
selector: a[href*="/logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
@@ -271,29 +274,32 @@
|
||||
category: "0" # multi cat search not supported
|
||||
include_dead_torrents: "yes"
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href^="http://dream-team.ml/details.php?id="])
|
||||
selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="http://dream-team.ml/download.php?id="]
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="http://dream-team.ml/details.php?id="]
|
||||
title|optional:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title:
|
||||
optional: true
|
||||
selector: div.tooltip-content > div
|
||||
details:
|
||||
selector: a[href^="http://dream-team.ml/details.php?id="]
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="http://dream-team.ml/browse.php?category="]
|
||||
selector: a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
|
@@ -1,11 +1,12 @@
|
||||
---
|
||||
site: hdclub
|
||||
name: HDClub
|
||||
---
|
||||
site: elitehd
|
||||
name: EliteHD
|
||||
description: "EliteHD (HDClub) is a RUSSIAN Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: ru-ru
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- http://hdclub.org
|
||||
- https://elitehd.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -95,4 +96,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
links:
|
||||
- http://eot-forum.net
|
||||
- https://eot-forum.net
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: estone
|
||||
name: eStone
|
||||
description: "eStone (XiDER, BeLoad) is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -52,6 +52,8 @@
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
secure_cookie: "0"
|
||||
error:
|
||||
- selector: :contains("\"status\":\"error\"")
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: eztv
|
||||
name: EZTV
|
||||
description: "EZTV is a Public torrent site for TV shows"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
@@ -43,7 +44,8 @@
|
||||
download:
|
||||
selector: td:nth-child(3) a.magnet, td:nth-child(3) a
|
||||
attribute: href
|
||||
size|optional:
|
||||
size:
|
||||
optional: true
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: fanoin
|
||||
name: FANO.IN
|
||||
description: "Fano.in is a LATVIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: lv-lv
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: freedomhd
|
||||
name: Freedom-HD
|
||||
description: "Freedom-HD (Freedom Paradise) is a ratioless FRENCH Private Torrent Tracker for HD MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -137,4 +138,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,10 +1,13 @@
|
||||
---
|
||||
site: fullmixmusic
|
||||
name: FullMixMusic
|
||||
description: "FullMixMusic is a HUNGARIAN Private Torrent Tracker for MUSIC"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://fullmixmusic.org/
|
||||
legacylinks:
|
||||
- http://fullmixmusic.org/
|
||||
|
||||
caps:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: funkytorrents
|
||||
name: FunkyTorrents
|
||||
description: "FunkyTorrents (FT) is a Private Torrent Tracker for MUSIC"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -72,7 +73,8 @@
|
||||
rows:
|
||||
selector: table.mainouter > tbody > tr > td.outer > table > tbody > tr.mouse_out
|
||||
fields:
|
||||
description|optional:
|
||||
description:
|
||||
optional: true
|
||||
selector: td:nth-child(2) > font
|
||||
title:
|
||||
selector: td:nth-child(2)
|
||||
@@ -83,7 +85,8 @@
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
category|optional:
|
||||
category:
|
||||
optional: true
|
||||
case:
|
||||
a[href="/browse.php?ext=1&bitrate=Lossless"]: "3040"
|
||||
a[href="/browse.php?ext=1&format=MP3"]: "3010"
|
||||
@@ -116,4 +119,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
114
src/Jackett/Definitions/gay-torrents.yml
Normal file
114
src/Jackett/Definitions/gay-torrents.yml
Normal file
@@ -0,0 +1,114 @@
|
||||
site: gay-torrents
|
||||
name: Gay-Torrents.net
|
||||
description: "Gay Torrents Live Free!"
|
||||
language: en-us
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.gay-torrents.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: porn , cat: XXX , desc: "Porn"}
|
||||
- {id: porn/Amateur , cat: XXX , desc: "Amateur"}
|
||||
- {id: porn/Anal , cat: XXX , desc: "Anal"}
|
||||
- {id: porn/Asian , cat: XXX , desc: "Asian"}
|
||||
- {id: porn/Bareback , cat: XXX , desc: "Bareback"}
|
||||
- {id: porn/Bears , cat: XXX , desc: "Bears"}
|
||||
- {id: porn/Bisexual , cat: XXX , desc: "Bisexual"}
|
||||
- {id: porn/Black-Men , cat: XXX , desc: "Black-Men"}
|
||||
- {id: porn/Chubs , cat: XXX , desc: "Chubs"}
|
||||
- {id: porn/Clips , cat: XXX/Packs , desc: "Clips"}
|
||||
- {id: porn/Cross-Generation , cat: XXX , desc: "Cross-Generation"}
|
||||
- {id: porn/DVD-R , cat: XXX/DVD , desc: "DVD-R"}
|
||||
- {id: porn/Fetish , cat: XXX , desc: "Fetish"}
|
||||
- {id: porn/Group-Sex , cat: XXX , desc: "Group-Sex"}
|
||||
- {id: porn/HD-Movies , cat: XXX , desc: "HD-Movies"}
|
||||
- {id: porn/Hunks , cat: XXX , desc: "Hunks"}
|
||||
- {id: porn/Images , cat: XXX/Imageset , desc: "Images"}
|
||||
- {id: porn/Interracial , cat: XXX , desc: "Interracial"}
|
||||
- {id: porn/Jocks , cat: XXX , desc: "Jocks"}
|
||||
- {id: porn/Latino , cat: XXX , desc: "Latino"}
|
||||
- {id: porn/Mature , cat: XXX , desc: "Mature"}
|
||||
- {id: porn/Member , cat: XXX , desc: "Member"}
|
||||
- {id: porn/MiddleEast , cat: XXX , desc: "MiddleEast"}
|
||||
- {id: porn/Military , cat: XXX , desc: "Military"}
|
||||
- {id: porn/Muscle , cat: XXX , desc: "Muscle"}
|
||||
- {id: porn/Oral-Sex , cat: XXX , desc: "Oral-Sex"}
|
||||
- {id: porn/Solo , cat: XXX , desc: "Solo"}
|
||||
- {id: porn/Transsexual , cat: XXX , desc: "Transsexual"}
|
||||
- {id: porn/Twinks , cat: XXX , desc: "Twinks"}
|
||||
- {id: porn/Vintage , cat: XXX , desc: "Vintage"}
|
||||
- {id: porn/Wrestling , cat: XXX , desc: "Wrestling"}
|
||||
- {id: nonporn , cat: Other , desc: "NonPorn"}
|
||||
- {id: nonporn/Anime , cat: TV/Anime , desc: "Anime"}
|
||||
- {id: nonporn/Applications , cat: PC , desc: "Applications"}
|
||||
- {id: nonporn/Comedy , cat: Movies , desc: "Comedy"}
|
||||
- {id: nonporn/Comics , cat: Books/Comics , desc: "Comics"}
|
||||
- {id: nonporn/Coming-Out , cat: Movies , desc: "Coming-Out"}
|
||||
- {id: nonporn/Documentary , cat: Movies , desc: "Documentary"}
|
||||
- {id: nonporn/Drama , cat: Movies , desc: "Drama"}
|
||||
- {id: nonporn/DVD-R , cat: Movies/DVD , desc: "DVD-R"}
|
||||
- {id: nonporn/Gay-Movies , cat: Movies , desc: "Gay-Movies"}
|
||||
- {id: nonporn/Misc , cat: Other/Misc , desc: "Misc"}
|
||||
- {id: nonporn/Short-Film , cat: Movies , desc: "Short-Film"}
|
||||
- {id: nonporn/Softcore , cat: Movies , desc: "Softcore"}
|
||||
- {id: nonporn/Thriller , cat: Movies , desc: "Thriller"}
|
||||
- {id: nonporn/TV-Episode , cat: TV , desc: "TV-Episode"}
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
vb_login_username: "{{ .Config.username }}"
|
||||
vb_login_password: "{{ .Config.password }}"
|
||||
cookieuser: "1"
|
||||
do: "login"
|
||||
test:
|
||||
path: torrentslist.php
|
||||
selector: ul.isuser
|
||||
|
||||
search:
|
||||
path: "{{if .Query.Keywords}}search.php{{else}}torrentslist.php{{end}}"
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}type={{.}}&{{end}}"
|
||||
textsearch: "{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: ul.TorrentList
|
||||
fields:
|
||||
category:
|
||||
selector: .TorrentList1 > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: type
|
||||
title:
|
||||
selector: .TorrentList2 > a
|
||||
download:
|
||||
selector: .TorrentList2 > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: append
|
||||
args: "&do=download"
|
||||
details:
|
||||
selector: .TorrentList2 > a
|
||||
attribute: href
|
||||
size:
|
||||
selector: .TorrentList3
|
||||
seeders:
|
||||
selector: .TorrentList6
|
||||
leechers:
|
||||
selector: .TorrentList7
|
||||
date:
|
||||
selector: li.TorrentList8
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02 Jan 06, 15:04"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
".TorrentList2 > a:contains(\"[FFL]\")": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
113
src/Jackett/Definitions/gaytorrentru.yml
Normal file
113
src/Jackett/Definitions/gaytorrentru.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
site: gaytorrentru
|
||||
name: GayTorrent.ru
|
||||
description: "World largest gay porn library for free with a stunning forum and 24/7 Chat"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.gaytorrent.ru/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 62 , cat: XXX , desc: "Amateur"}
|
||||
- {id: 29 , cat: XXX , desc: "Anal"}
|
||||
- {id: 46 , cat: XXX , desc: "Anime Games"}
|
||||
- {id: 30 , cat: XXX , desc: "Asian"}
|
||||
- {id: 43 , cat: XXX , desc: "Bareback"}
|
||||
- {id: 19 , cat: XXX , desc: "BDSM"}
|
||||
- {id: 17 , cat: XXX , desc: "Bears"}
|
||||
- {id: 44 , cat: XXX , desc: "Black"}
|
||||
- {id: 50 , cat: Books , desc: "Books & Magazines"}
|
||||
- {id: 9 , cat: XXX , desc: "Chubbies"}
|
||||
- {id: 7 , cat: XXX , desc: "Clips"}
|
||||
- {id: 48 , cat: Books/Comics , desc: "Comic & Yaoi"}
|
||||
- {id: 5 , cat: XXX , desc: "Daddies / Sons"}
|
||||
- {id: 34 , cat: XXX , desc: "Fetish"}
|
||||
- {id: 27 , cat: XXX , desc: "Grey / Older"}
|
||||
- {id: 32 , cat: XXX , desc: "Group-Sex"}
|
||||
- {id: 63 , cat: XXX , desc: "Homemade"}
|
||||
- {id: 12 , cat: XXX , desc: "Hunks"}
|
||||
- {id: 33 , cat: XXX , desc: "Images"}
|
||||
- {id: 53 , cat: XXX , desc: "Interracial"}
|
||||
- {id: 57 , cat: XXX , desc: "Jocks"}
|
||||
- {id: 35 , cat: XXX , desc: "Latino"}
|
||||
- {id: 36 , cat: XXX , desc: "Mature"}
|
||||
- {id: 58 , cat: PC , desc: "Media Programs"}
|
||||
- {id: 37 , cat: XXX , desc: "Member"}
|
||||
- {id: 54 , cat: XXX , desc: "Middle Eastern"}
|
||||
- {id: 38 , cat: XXX , desc: "Military"}
|
||||
- {id: 39 , cat: XXX , desc: "Oral-Sex"}
|
||||
- {id: 47 , cat: XXX , desc: "Shemale"}
|
||||
- {id: 56 , cat: XXX , desc: "Softcore"}
|
||||
- {id: 40 , cat: XXX , desc: "Solo"}
|
||||
- {id: 45 , cat: Movies , desc: "Themed Movie"}
|
||||
- {id: 1 , cat: TV , desc: "TV / Episodes"}
|
||||
- {id: 41 , cat: XXX , desc: "Twinks"}
|
||||
- {id: 42 , cat: XXX , desc: "Vintage"}
|
||||
- {id: 51 , cat: XXX , desc: "Voyeur"}
|
||||
- {id: 65 , cat: XXX , desc: "Wrestling and Sports"}
|
||||
- {id: 28 , cat: XXX , desc: "Youngblood"}
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: "0" # Searches only for alive torrents
|
||||
rows:
|
||||
selector: table.browse_result > tbody > tr:has(a[href^="details.php?id="])
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: .browsedesc > a
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: .tsnatch
|
||||
files:
|
||||
selector: .tfiles
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d]+)
|
||||
size:
|
||||
selector: .tsize
|
||||
seeders:
|
||||
optional: true
|
||||
selector: a[href$="&toseeders=1"]
|
||||
leechers:
|
||||
optional: true
|
||||
selector: a[href$="&todlers=1"]
|
||||
date:
|
||||
selector: .tadded
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(\\d{4}-\\d{2}-\\d{2})(\\d{2}:\\d{2}:\\d{2})(.*)","$1 $2"]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"td:nth-child(3) > div > nobr > font[color=\"yellow\"]": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: gfxpeers
|
||||
name: GFXPeers
|
||||
description: "GFXPeers is a ratio-based torrent tracker for all things graphic design and visual effects"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: gigatorrents
|
||||
name: GigaTorrents
|
||||
description: "Giga Torrents is a Hungarian Private site for TV / MOVIES / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -70,6 +71,8 @@
|
||||
blah: "0"
|
||||
rows:
|
||||
selector: table#torrenttable > tbody > tr:has()
|
||||
error:
|
||||
- selector: div.content:contains("Meg van vonva a letöltési jogod")
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="/details.php?id="]
|
||||
@@ -138,4 +141,4 @@
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
remove: span
|
||||
|
||||
|
||||
|
@@ -1,20 +1,28 @@
|
||||
---
|
||||
site: zetorrents
|
||||
name: zetorrents
|
||||
site: gktorrent
|
||||
name: GkTorrent
|
||||
description: "GkTorrent is a French Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.zetorrents.cc/
|
||||
- http://www.gktorrent.com
|
||||
legacylinks:
|
||||
- https://www.gktorrent.com # they're forcing http
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: films, cat: Movies, desc: "Movies"}
|
||||
- {id: series, cat: TV, desc: "TV"}
|
||||
- {id: movies, cat: Movies, desc: "Movies"}
|
||||
- {id: tvshows, cat: TV, desc: "TV Shows"}
|
||||
- {id: softwares, cat: PC, desc: "Softwares"}
|
||||
- {id: music, cat: Audio, desc: "Music"}
|
||||
- {id: games, cat: Console, desc: "Games"}
|
||||
- {id: books, cat: Books, desc: "Books"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
@@ -22,9 +30,9 @@
|
||||
selector: a[href^="/get_torrent/"]
|
||||
|
||||
search:
|
||||
path: "/recherche/{{ .Query.Keywords }}"
|
||||
path: "{{if .Keywords}}/recherche/{{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: div.content-list-torrent > table tbody tr
|
||||
selector: div.listing-torrent > table > tbody > tr:has(a)
|
||||
fields:
|
||||
site_date:
|
||||
selector: td:nth-child(1) a
|
||||
@@ -53,36 +61,22 @@
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [ "\\.(\\d) Ko", "$1X00"]
|
||||
- name: re_replace
|
||||
args: [ " Ko", "000"]
|
||||
- name: re_replace
|
||||
args: [ "\\.(\\d) Mo", "$1X00000"]
|
||||
- name: re_replace
|
||||
args: [ " Mo", "000000"]
|
||||
- name: re_replace
|
||||
args: [ "\\.(\\d) Go", "$1X00000000"]
|
||||
- name: re_replace
|
||||
args: [ " Go", "000000000"]
|
||||
- name: re_replace
|
||||
args: [ "\\.(\\d) To", "$1X00000000000"]
|
||||
- name: re_replace
|
||||
args: [ " To", "000000000000"]
|
||||
- name: replace
|
||||
args: [ "X", "" ]
|
||||
seeders:
|
||||
text: 0
|
||||
seeders:
|
||||
selector: td:nth-child(3)
|
||||
optional: true
|
||||
leechers:
|
||||
text: 0
|
||||
leechers:
|
||||
selector: td:nth-child(4)
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
text: "1"
|
||||
category:
|
||||
selector: td:nth-child(1) > i
|
||||
case:
|
||||
.Films: "movies"
|
||||
.Séries: "tvshows"
|
||||
.Logiciels: "softwares"
|
||||
.Musiques: "music"
|
||||
.Jeux: "games"
|
||||
.Ebooks: "books"
|
||||
date:
|
||||
text: "now"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: gods
|
||||
name: GODS
|
||||
description: "GODS is a German Private site for TV / MOVIES / GENERAL"
|
||||
language: de-de
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
@@ -159,4 +160,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: gormogon
|
||||
name: Gormogon
|
||||
description: "Gormogon is a Private Torrent Tracker for CLASSIC MOVIES / TV / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -190,4 +191,4 @@
|
||||
img[alt="8x Upload Multiplier"]: "8"
|
||||
img[alt="9x Upload Multiplier"]: "9"
|
||||
img[alt="10x Upload Multiplier"]: "10"
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -2,6 +2,7 @@
|
||||
site: greekteam
|
||||
name: Greek Team
|
||||
language: el-gr
|
||||
description: "Greek Team is a GREEK Private site for TV / MOVIES / GENERAL"
|
||||
type: private
|
||||
encoding: windows-1253
|
||||
links:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: hdhome
|
||||
name: HDHome
|
||||
description: "HDHome (HDBiger) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -139,4 +140,4 @@
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
remove: a, img
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: hdme
|
||||
name: HDME
|
||||
description: "HDME is a Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: hdtorrentsit
|
||||
name: HDTorrents.it
|
||||
description: "HDTorrents.it is an ITALIAN Private site for TV / MOVIES"
|
||||
language: it-it
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -31,34 +32,71 @@
|
||||
paths:
|
||||
- path: browse.php
|
||||
method: post
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace #remove SXXEYY from research
|
||||
args: ["(S\\d{1,2}E\\d{1,2})", ""]
|
||||
- name: re_replace #remove SXX from research
|
||||
args: ["(S\\d{1,2})", ""]
|
||||
inputs:
|
||||
ajax: false
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 0
|
||||
rows:
|
||||
selector: tbody#highlighted tr
|
||||
fields:
|
||||
title-no-filters:
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
title:
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
filters:
|
||||
- name: re_replace #separate title
|
||||
args: ["(\\s+\\/\\s+|\\/\\s+|\\s+\\/|\\/)(.*)\\s\\(", " ("]
|
||||
- name: re_replace #remove (yyyy) from the title
|
||||
args: ["(\\(\\d{4}\\))|(\\(\\d{4})", ""]
|
||||
- name: re_replace #remove |
|
||||
args: ["(\\s\\|\\s)", " "]
|
||||
- name: re_replace #Stagione X --> S0X
|
||||
args: ["Stagione (\\d{0,1}\\s)", "S0$1"]
|
||||
- name: re_replace #Stagione XX --> SXX
|
||||
args: ["Stagione (\\d{2}\\s)", "S$1"]
|
||||
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
|
||||
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
|
||||
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
|
||||
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
|
||||
- name: re_replace #remove di YY] | remove /YY]
|
||||
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
|
||||
- name: re_replace #remove various
|
||||
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
|
||||
title|append: #start year
|
||||
text: "("
|
||||
title|append: #add year
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
filters:
|
||||
- name: regexp #find torrent year
|
||||
args: (\d{4})
|
||||
title|append: #end year
|
||||
text: ") "
|
||||
title|append: #start quality TAG
|
||||
text: "["
|
||||
title|append: #quality TAG (BDRip 1080, BDRip 720p etc)
|
||||
selector: td:nth-child(1) a:nth-child(1) img
|
||||
attribute: alt
|
||||
title|append: #separator
|
||||
text: " - "
|
||||
title|append: #ita audio TAG
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: name
|
||||
- name: regexp
|
||||
args: (DTS AC3 ITA|DTS ITA|AC3 ITA)
|
||||
- name: re_replace
|
||||
args: ["Stagione (\\d{0,1})", "S0$1"]
|
||||
- name: re_replace
|
||||
args: ["Stagione (\\d{2})", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["Episodio{0,1} \\[(\\d{0,1})", "E0$1"]
|
||||
- name: re_replace
|
||||
args: ["Episodio{0,1} \\[(\\d{2})", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["-(\\d{0,1}) ", "-0$1 "]
|
||||
- name: re_replace
|
||||
args: ["-(\\d{2}) ", "-$1 "]
|
||||
- name: re_replace
|
||||
args: ["(\\d) *\\/ *(E)", "$1$2"]
|
||||
- name: replace
|
||||
args: ["]", ""]
|
||||
args: ["ITA", ""]
|
||||
title|append: #end TAG
|
||||
text: "ITA]"
|
||||
details:
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
attribute: href
|
||||
@@ -86,8 +124,10 @@
|
||||
date:
|
||||
selector: td:nth-child(2) i
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
args: "2006-02-01 15:04:05"
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
category:
|
||||
case:
|
||||
"a[href^=\"details.php\"]:contains(\"Stagione\")": 5040 # TV/HD
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: hon3yhd
|
||||
name: Hon3y HD
|
||||
description: "Hon3yHD is an INDIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -68,9 +69,15 @@
|
||||
path: /browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{ .Keywords }}"
|
||||
searchin: "title"
|
||||
incldead: "1"
|
||||
keywordsfilters:
|
||||
# by default the search returns unordered resuts of an OR query making the results useless in many cases, adding + to the keywords improves the situration (Issue #1859)
|
||||
- name: re_replace # replace special characters with " +"
|
||||
args: ["[^\\w\\d]+", " +"]
|
||||
- name: prepend
|
||||
args: "+"
|
||||
rows:
|
||||
selector: table > tbody > tr.tt
|
||||
fields:
|
||||
@@ -88,7 +95,8 @@
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
|
@@ -1,10 +1,13 @@
|
||||
---
|
||||
site: hyperay
|
||||
name: Hyperay
|
||||
description: "Hyperay is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.hyperay.org
|
||||
legacylinks:
|
||||
- https://www.hyperay.cc
|
||||
|
||||
caps:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: icetorrent
|
||||
name: ICE Torrent
|
||||
description: "ICE Torrent is a ratioless ROMANIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: ro-ro
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
101
src/Jackett/Definitions/idope.yml
Normal file
101
src/Jackett/Definitions/idope.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
---
|
||||
site: idope
|
||||
name: Idope
|
||||
description: "iDope is a Public torrent search engine presenting direct magnet links"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://idope.se/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 0, cat: Other, desc: "Others"}
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: Other, desc: "Video"}
|
||||
- {id: 3, cat: TV, desc: "TV"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 5, cat: XXX, desc: "XXX"}
|
||||
- {id: 6, cat: Audio, desc: "Music"}
|
||||
- {id: 7, cat: PC/Games, desc: "Games"}
|
||||
- {id: 8, cat: PC, desc: "Apps"}
|
||||
- {id: 9, cat: Books, desc: "Books"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: itorrents-links
|
||||
type: checkbox
|
||||
label: Add download links via itorrents.org
|
||||
- name: info
|
||||
type: info
|
||||
label: ITorrents Note
|
||||
default: Without the itorrents option only magnet links will be provided.
|
||||
|
||||
search:
|
||||
# present trending results if there are no search parms supplied
|
||||
# sort torrent-list by age in descending order
|
||||
path: "{{if .Keywords}}torrent-list/{{ .Keywords}}?&o=-3&c={{range .Categories }}{{.}}{{end}}{{else}}browse.html{{end}}"
|
||||
rows:
|
||||
selector: div[class="resultdiv"]
|
||||
fields:
|
||||
title:
|
||||
selector: div[class="resultdivtop"] a div[class="resultdivtopname"]
|
||||
category:
|
||||
optional: true
|
||||
selector: div[class="resultdivbotton"] div[class="resultdivbottoncategory"]
|
||||
case:
|
||||
":contains(\"Others\")": 0
|
||||
":contains(\"Movies\")": 1
|
||||
":contains(\"Video\")": 2
|
||||
":contains(\"TV\")": 3
|
||||
":contains(\"Anime\")": 4
|
||||
":contains(\"XXX\")": 5
|
||||
":contains(\"Music\")": 6
|
||||
":contains(\"Games\")": 7
|
||||
":contains(\"Apps\")": 8
|
||||
":contains(\"Books\")": 9
|
||||
details:
|
||||
selector: div[class="resultdivtop"] a
|
||||
attribute: href
|
||||
download-itorrents:
|
||||
selector: div[class="resultdivbotton"] div[id^="hideinfohash"]
|
||||
filters:
|
||||
- name: toupper
|
||||
- name: prepend
|
||||
args: http://itorrents.org/torrent/
|
||||
- name: append
|
||||
args: ".torrent"
|
||||
download:
|
||||
text: "{{if .Config.itorrents-links}}{{ .Result.download-itorrents }}{{else}}{{end}}"
|
||||
magfile:
|
||||
text: "{{ .Result.title }}"
|
||||
filters:
|
||||
- name: validfilename
|
||||
- name: urlencode
|
||||
magnet:
|
||||
selector: div[class="resultdivbotton"] div[id^="hideinfohash"]
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "magnet:?xt=urn:btih:"
|
||||
- name: append
|
||||
args: "&dn={{ .Result.magfile }}.torrent"
|
||||
- name: append
|
||||
args: "&tr=http://182.176.139.129:6969/announce&tr=http://explodie.org:6969/announce&tr=http://tracker.mgtracker.org:2710/announce&tr=udp://tracker.coppersurfer.tk:6969/announce&tr=udp://tracker.leechers-paradise.org:6969/announce&tr=udp://tracker.pirateparty.gr:6969/announce&tr=udp://tracker.sktorrent.net:6969/announce&tr=udp://tracker.zer0day.to:1337/announce"
|
||||
date:
|
||||
selector: div[class="resultdivbotton"] div[class="resulttime"] div[class="resultdivbottontime"]
|
||||
filters:
|
||||
- name: timeago
|
||||
size:
|
||||
selector: div[class="resultdivbotton"] div[class="resultlength"] div[class="resultdivbottonlength"]
|
||||
seeders:
|
||||
selector: div[class="resultdivbotton"] div[class="resultseed"] div[class="resultdivbottonseed"]
|
||||
files:
|
||||
selector: div[class="resultdivbotton"] div[class="resultfile"] div[class="resultdivbottonfiles"]
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,13 +1,14 @@
|
||||
---
|
||||
site: ilcorsaronero
|
||||
name: Il Corsaro Nero
|
||||
description: "Il Corsaro Nero is an ITALIAN Public site for TV / MOVIES / GENERAL"
|
||||
language: it-it
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://ilcorsaronero.info/
|
||||
certificates:
|
||||
- FFB230323B987B07C24DCC13BC892CF30536F015 # incomplete CA chain
|
||||
- 8D4B5B12D12693F29271C6A0A65ACB3DF6029202 # incomplete CA chain
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: infinityt
|
||||
name: Infinity-T
|
||||
description: "Infinity-T is a DANISH Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: da-dk
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -103,4 +104,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: inperil
|
||||
name: inPeril
|
||||
description: "InPeril is a LATVIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
type: private
|
||||
language: lv-lv
|
||||
type: private
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: insanetracker
|
||||
name: Insane Tracker
|
||||
description: "Insane Tracker is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -80,13 +81,16 @@
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
imdb|optional:
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[title="IMDb link"]
|
||||
attribute: href
|
||||
banner|optional|1:
|
||||
banner:
|
||||
optional: true
|
||||
selector: img[alt="offer"]
|
||||
attribute: src
|
||||
banner|optional|2:
|
||||
banner:
|
||||
optional: true
|
||||
selector: a.cover
|
||||
attribute: href
|
||||
files:
|
||||
|
@@ -1,61 +0,0 @@
|
||||
---
|
||||
site: isohunt
|
||||
name: Isohunt
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://isohunt.to/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"series+&+tv": TV
|
||||
"movies": Movies
|
||||
"other": Other/Misc
|
||||
"music": Audio
|
||||
"games": PC/Games
|
||||
"software": PC/0day
|
||||
"anime": TV/Anime
|
||||
"adult": XXX
|
||||
"books": Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selector: a.btn-download
|
||||
|
||||
search:
|
||||
path: "{{if .Query.Keywords}}torrents/{{else}}latest.php{{end}}"
|
||||
inputs:
|
||||
ihq: "{{ .Keywords }}"
|
||||
rows:
|
||||
selector: "#serps > table > tbody > tr:has(td.title-row)"
|
||||
fields:
|
||||
title:
|
||||
selector: td.title-row > a[href^="/"] > span
|
||||
details:
|
||||
selector: td.title-row > a[href^="/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.title-row > a[href^="/"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.size-row
|
||||
seeders:
|
||||
selector: td.sy, td.sn
|
||||
date:
|
||||
selector: td.date-row
|
||||
filters:
|
||||
- name: append
|
||||
args: " ago"
|
||||
category:
|
||||
selector: td.category-row > span
|
||||
attribute: title
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: jpopsuki
|
||||
name: JPopsuki
|
||||
description: "JPopSuki is a Private Torrent Tracker for ASIAN MUSIC"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -102,4 +103,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: kapaki
|
||||
name: Kapaki
|
||||
description: "Kapaki is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: el-gr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -77,7 +78,7 @@
|
||||
search_type: "name"
|
||||
searchin: "title"
|
||||
error:
|
||||
- selector: div#show_error
|
||||
- selector: div#show_error:not(:contains("Ουπς! Λάθος!Δεν βρέθηκαν αποτελέσματα."))
|
||||
rows:
|
||||
selector: div#content > div.torrent-box[id^="torrent_"]
|
||||
filters:
|
||||
@@ -108,7 +109,8 @@
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
description:
|
||||
@@ -120,10 +122,12 @@
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
date|optional|1:
|
||||
date:
|
||||
optional: true
|
||||
selector: div.torrentOwner > abbr.timeago
|
||||
attribute: data-time
|
||||
date|optional|2:
|
||||
date:
|
||||
optional: true
|
||||
selector: div.torrentOwner:not(:has(abbr.timeago))
|
||||
remove: span
|
||||
filters:
|
||||
@@ -156,4 +160,4 @@
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
|
||||
|
||||
|
||||
|
@@ -29,9 +29,6 @@
|
||||
- selector: table:contains("Login failed!")
|
||||
test:
|
||||
path: index.php
|
||||
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
|
5
src/Jackett/Definitions/kickasstorrent-kathow.yml
Normal file → Executable file
5
src/Jackett/Definitions/kickasstorrent-kathow.yml
Normal file → Executable file
@@ -1,11 +1,12 @@
|
||||
---
|
||||
site: kickasstorrent-kathow
|
||||
name: KickAssTorrent (kat.how)
|
||||
name: KickAssTorrent (thekat.se)
|
||||
description: "thekat.se is a Public KickAssTorrent clone for TV / MOVIES / GENERAL"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://kat.how
|
||||
- https://thekat.se
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
29
src/Jackett/Definitions/kickasstorrent.yml
Normal file → Executable file
29
src/Jackett/Definitions/kickasstorrent.yml
Normal file → Executable file
@@ -1,8 +1,9 @@
|
||||
---
|
||||
site: kickasstorrent
|
||||
name: KickAssTorrent
|
||||
description: "Kickass Torrents (KATcr) is a well-know Public torrent site indexing thousands of torrents verified and commented by a large file-sharing community"
|
||||
language: en-us
|
||||
type: semi-private
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://katcr.co/
|
||||
@@ -84,32 +85,12 @@
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: passkey
|
||||
type: text
|
||||
label: Passkey
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: "/new/account-login.php"
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
error:
|
||||
- selector: font.error:contains("Access Denied")
|
||||
test:
|
||||
path: "/new/index.php"
|
||||
selector: a[href="account-logout.php"]
|
||||
settings: []
|
||||
|
||||
search:
|
||||
path: "/new/{{if .Query.Keywords}}search-torrents.php{{else}}torrents.php{{end}}"
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "\"{{ .Query.Keywords }}\""
|
||||
path: "/new/{{if .Keywords}}search-torrents.php?{{range .Categories }}c{{.}}=1&{{end}}search={{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr[class^="t-row"]
|
||||
filters:
|
||||
|
@@ -1,163 +0,0 @@
|
||||
---
|
||||
site: leparadisdunet
|
||||
name: Le Paradis Du Net
|
||||
language: fr-fr
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://le-paradis-du-net.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 9, cat: XXX, desc: "Adultes"}
|
||||
- {id: 1, cat: PC, desc: "APPLICATION"}
|
||||
- {id: 33, cat: PC/Phone-Other, desc: " Iphone/Ipod/Android"}
|
||||
- {id: 3, cat: PC/0day, desc: " Linux"}
|
||||
- {id: 32, cat: PC/Mac, desc: " Mac"}
|
||||
- {id: 4, cat: PC/0day, desc: " Windows"}
|
||||
- {id: 70, cat: Movies/HD, desc: "BDRIP"}
|
||||
- {id: 69, cat: Movies/BluRay, desc: "Blueray"}
|
||||
- {id: 73, cat: Movies/HD, desc: "BRRIP"}
|
||||
- {id: 22, cat: Movies/SD, desc: "CAM TS SCREENER"}
|
||||
- {id: 39, cat: Movies/DVD, desc: " R5"}
|
||||
- {id: 13, cat: TV/Anime, desc: "DESSINS ANIMES"}
|
||||
- {id: 48, cat: TV/Anime, desc: " Animations"}
|
||||
- {id: 47, cat: TV/Anime, desc: " Mangas"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "DOCUMENTAIRE"}
|
||||
- {id: 52, cat: TV/Documentary, desc: " EmissionsTV"}
|
||||
- {id: 49, cat: TV/Documentary, desc: " Tv docs"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "DVDR"}
|
||||
- {id: 16, cat: Movies/SD, desc: "DVDRIP"}
|
||||
- {id: 35, cat: Movies, desc: " Action"}
|
||||
- {id: 64, cat: Movies, desc: " Autres"}
|
||||
- {id: 36, cat: Movies, desc: " Aventure"}
|
||||
- {id: 55, cat: Movies, desc: " Comédie"}
|
||||
- {id: 37, cat: Movies, desc: " Drame"}
|
||||
- {id: 38, cat: Movies, desc: " Fantastique"}
|
||||
- {id: 63, cat: Movies, desc: " Guerre"}
|
||||
- {id: 72, cat: Movies, desc: " Historique/Biopic"}
|
||||
- {id: 67, cat: Movies, desc: " Horreur"}
|
||||
- {id: 65, cat: Movies, desc: " Thriller"}
|
||||
- {id: 71, cat: Movies, desc: " Werstern"}
|
||||
- {id: 17, cat: Movies/SD, desc: "DVDRIP VOSTFR"}
|
||||
- {id: 19, cat: Books, desc: "EBOOK"}
|
||||
- {id: 54, cat: Books, desc: " Journaux"}
|
||||
- {id: 81, cat: Books, desc: " Magazines"}
|
||||
- {id: 82, cat: Books, desc: " People"}
|
||||
- {id: 40, cat: Movies/HD, desc: "HD"}
|
||||
- {id: 41, cat: Movies/HD, desc: " 1080p"}
|
||||
- {id: 42, cat: Movies/HD, desc: " 720P"}
|
||||
- {id: 77, cat: Movies/HD, desc: " HD LIGHT"}
|
||||
- {id: 86, cat: TV/SD, desc: " HDTV"}
|
||||
- {id: 20, cat: Console/Other, desc: "JEUX"}
|
||||
- {id: 56, cat: Console/NDS, desc: " DS"}
|
||||
- {id: 57, cat: PC/Games, desc: " Pc"}
|
||||
- {id: 26, cat: Console/PS3, desc: " PS3"}
|
||||
- {id: 58, cat: Console/PSP, desc: " PSP"}
|
||||
- {id: 25, cat: Console/Wii, desc: " Wii"}
|
||||
- {id: 24, cat: Console/Xbox360, desc: " Xbox360"}
|
||||
- {id: 21, cat: Audio, desc: "MUSIQUES"}
|
||||
- {id: 29, cat: Audio/Video, desc: " Clip"}
|
||||
- {id: 68, cat: Audio/Video, desc: " Concert"}
|
||||
- {id: 31, cat: Audio/Lossless, desc: " FLAC"}
|
||||
- {id: 30, cat: Audio/MP3, desc: " mp3"}
|
||||
- {id: 28, cat: Audio/Lossless, desc: " wave"}
|
||||
- {id: 27, cat: Audio/Other, desc: " wma"}
|
||||
- {id: 5, cat: TV, desc: "SERIES"}
|
||||
- {id: 79, cat: TV/HD, desc: " SERIES HD 1080P"}
|
||||
- {id: 80, cat: TV/HD, desc: " SERIES HD 720p"}
|
||||
- {id: 75, cat: TV, desc: " TV pack"}
|
||||
- {id: 8, cat: TV, desc: " vf"}
|
||||
- {id: 6, cat: TV, desc: " vo"}
|
||||
- {id: 7, cat: TV, desc: " vost"}
|
||||
- {id: 12, cat: TV/Sport, desc: "SPORTS"}
|
||||
- {id: 61, cat: TV/Sport, desc: " Autres "}
|
||||
- {id: 45, cat: TV/Sport, desc: " Catch VF"}
|
||||
- {id: 59, cat: TV/Sport, desc: " Catch VO"}
|
||||
- {id: 44, cat: TV/Sport, desc: " Football"}
|
||||
- {id: 60, cat: TV/Sport, desc: " UFC/MMA"}
|
||||
- {id: 76, cat: TV, desc: "Télévision"}
|
||||
- {id: 78, cat: Movies/WEBDL, desc: "WEBRIP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(td:contains("Une erreur est survenue"))
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "/takethanks.php"
|
||||
method: "post"
|
||||
inputs:
|
||||
torrentid: "{{ re_replace .DownloadUri.AbsolutePath \"^.*download-torrent-(\\d+)/.*$\" \"$1\" }}"
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
do: "chercher"
|
||||
keywords: "{{ .Query.Keywords }}"
|
||||
search_type: "t_name"
|
||||
category: "0" # multi cat search not supported
|
||||
include_dead_torrents: "yes"
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href*="/torrent-details-"])
|
||||
fields:
|
||||
download:
|
||||
selector: a[href*="/torrent-details-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrent-details-", "download-torrent-"]
|
||||
title:
|
||||
selector: a[href*="/torrent-details-"]
|
||||
details:
|
||||
selector: a[href*="/torrent-details-"]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href*="/torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: torrent-category-(\d+)
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
selector: td:nth-child(2) > div > font[color="white"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["le ", ""]
|
||||
- name: replace
|
||||
args: [" à ", " "]
|
||||
- name: trim
|
||||
args: "\t"
|
||||
- name: trim
|
||||
args: "\n"
|
||||
- name: append
|
||||
args: " +01:00"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="Free Torrent "]: "0"
|
||||
img[alt^="Silver Torrent "]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: limetorrents
|
||||
name: LimeTorrents
|
||||
description: "LimeTorrents is a Public general torrent index with mostly verified torrents"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
@@ -57,7 +58,8 @@
|
||||
download:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
category|optional:
|
||||
category:
|
||||
optional: true
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: split
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: linkomanija
|
||||
name: LinkoManija
|
||||
description: "LinkoManija is an ITALIAN Private site for TV / MOVIES / GENERAL"
|
||||
language: lt-lt
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -72,7 +73,8 @@
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="details?"]
|
||||
description|optional:
|
||||
description:
|
||||
optional: true
|
||||
selector: td:nth-child(2) > span
|
||||
details:
|
||||
selector: a[href^="details?"]
|
||||
@@ -108,4 +110,4 @@
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
|
||||
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: losslessclub
|
||||
name: LosslessClub
|
||||
description: "LosslessClub is a Romanian Private site for High Quality Music"
|
||||
language: ru-ru
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
@@ -45,12 +46,14 @@
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: img.thumbnail
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs|optional:
|
||||
grabs:
|
||||
optional: true
|
||||
selector: td:nth-child(6) br + span
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: magico
|
||||
name: Magico
|
||||
description: "Magico (Trellas) is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: el-gr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -165,7 +166,8 @@
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: a[rel="fancybox"]
|
||||
attribute: href
|
||||
description:
|
||||
@@ -177,10 +179,12 @@
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
date|optional|1:
|
||||
date:
|
||||
optional: true
|
||||
selector: div.torrentOwner > abbr.timeago
|
||||
attribute: data-time
|
||||
date|optional|2:
|
||||
date:
|
||||
optional: true
|
||||
selector: div.torrentOwner:not(:has(abbr.timeago))
|
||||
remove: span
|
||||
filters:
|
||||
@@ -213,4 +217,4 @@
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
|
||||
|
||||
|
||||
|
68
src/Jackett/Definitions/magnetdl.yml
Normal file
68
src/Jackett/Definitions/magnetdl.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
site: magnetdl
|
||||
name: MagnetDL
|
||||
description: "MagnetDL is a Public torrent Magnet Links search engine"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.magnetdl.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"TV": TV
|
||||
"Movie": Movies
|
||||
"Music": Audio
|
||||
"E-Book": Books/Ebook
|
||||
"Game": PC/Games
|
||||
"Software": PC
|
||||
"Other": Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
headers:
|
||||
# prevent redirect
|
||||
Accept: ["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"]
|
||||
keywordsfilters:
|
||||
# replace space between keywords with - to prevent 404 Not Found
|
||||
- name: re_replace
|
||||
args: [" ", "-"]
|
||||
- name: tolower
|
||||
# return movie results if there are no search parms supplied (for use with the TEST button)
|
||||
# http://www.magnetdl.com/m/midnight-texas-s01e10/
|
||||
path: "{{if .Keywords}}/{{ re_replace .Keywords \"(.).*\" \"$1\" }}/{{ .Keywords }}/{{else}}download/movies/{{end}}"
|
||||
rows:
|
||||
selector: tr:has(td[class="m"])
|
||||
fields:
|
||||
title:
|
||||
selector: td[class="n"] a
|
||||
attribute: title
|
||||
category:
|
||||
optional: true
|
||||
selector: td[class^="t"]
|
||||
details:
|
||||
selector: td[class="n"] a
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: td[class="m"] a
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
filters:
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td[class="s"]
|
||||
files:
|
||||
selector: td[class="l"]
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: majomparade
|
||||
name: Majomparádé
|
||||
description: "Majomparádé (TurkDepo) is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: hu-hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -115,10 +116,12 @@
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
imdb|optional:
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="https://www.imdb.com/title/"]
|
||||
attribute: href
|
||||
banner|optional:
|
||||
banner:
|
||||
optional: true
|
||||
selector: img[src="pic/borito.png"]
|
||||
attribute: title
|
||||
filters:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: manicomioshare
|
||||
name: Manicomio Share
|
||||
description: "Manicomio Share is a Brazilian Private site for TV / MOVIES / GENERAL"
|
||||
language: pt-br
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
@@ -199,22 +200,26 @@
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: index.php
|
||||
method: post
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
dados: "ok"
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
test:
|
||||
path: index.php
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
path: pesquisa.php
|
||||
keywordsfilters:
|
||||
# workaroud to remove year in search keywords
|
||||
- name: re_replace
|
||||
args: ["([1-2]\\d{3})", ""]
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
inputs:
|
||||
busca: "{{ .Query.Keywords }}"
|
||||
busca: "{{ .Keywords }}"
|
||||
rows:
|
||||
selector: table#tbltorrent > tbody > tr[data-id]
|
||||
fields:
|
||||
@@ -236,6 +241,8 @@
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["|", ""]
|
||||
- name: replace
|
||||
args: ["Ep. ","E"]
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
grabs:
|
||||
|
78
src/Jackett/Definitions/metaltracker.yml
Normal file
78
src/Jackett/Definitions/metaltracker.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
site: metaltracker
|
||||
name: Metal Tracker
|
||||
description: "Metal Tracker is a Semi-Private site dedicated to HEAVY METAL MUSIC. This definition is for the English site."
|
||||
language: en-us
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://en.metal-tracker.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"Books": Audio/Audiobook
|
||||
"Video": Audio/Video
|
||||
"Music": Audio/MP3
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q, album, artist, label, year]
|
||||
|
||||
login:
|
||||
path: /user/login.html
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
go: "Enter"
|
||||
error:
|
||||
- selector: div.errorSummary
|
||||
message:
|
||||
selector: div.errorSummary ul li
|
||||
test:
|
||||
path: /torrents/search.html
|
||||
selector: li li:has(a[href="/user/logout.html"])
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents/search.html
|
||||
method: post
|
||||
inputs:
|
||||
"SearchTorrentsForm[nameTorrent]": "{{ .Keywords }}"
|
||||
go-search: "Search"
|
||||
rows:
|
||||
selector: .smallalbum
|
||||
fields:
|
||||
title:
|
||||
selector: a h3
|
||||
banner:
|
||||
selector: .thumb a img
|
||||
attribute: src
|
||||
details:
|
||||
selector: .thumb a
|
||||
attribute: href
|
||||
download:
|
||||
selector: .center a[href^="/torrents/download/id/"]
|
||||
attribute: href
|
||||
date:
|
||||
text: "now"
|
||||
seeders:
|
||||
selector: .center font:nth-of-type(1)
|
||||
leechers:
|
||||
selector: .center font:nth-of-type(2)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
category:
|
||||
selector: .smallalbum
|
||||
remove: div.thumb, div.center, a
|
||||
case:
|
||||
":contains(\"Type: Music\")": "Music"
|
||||
":contains(\"Type: Video\")": "Video"
|
||||
":contains(\"Type: Books\")": "Books"
|
||||
size:
|
||||
selector: .smallalbum
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Size:\\s+([\\w\\d\\.,]+ \\w\\w)"
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: mononokebt
|
||||
name: Mononoké-BT
|
||||
description: "Mononoke-BT is a FRENCH Private Torrent Tracker for ANIME"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: ISO-8859-15
|
||||
@@ -77,4 +78,4 @@
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
|
||||
|
||||
|
||||
|
@@ -29,12 +29,40 @@
|
||||
- {id: 423, cat: PC/Games, desc: "PCGame(PC遊戲)"}
|
||||
- {id: 427, cat: Books, desc: "eBook(電子書)"}
|
||||
- {id: 409, cat: Other, desc: "Misc(其他)"}
|
||||
# adult
|
||||
- {id: 410, cat: XXX, desc: "AV(有碼)/HD Censored"}
|
||||
- {id: 429, cat: XXX, desc: "AV(無碼)/HD Uncensored"}
|
||||
- {id: 424, cat: XXX, desc: "AV(有碼)/SD Censored"}
|
||||
- {id: 430, cat: XXX, desc: "AV(無碼)/SD Uncensored"}
|
||||
- {id: 426, cat: XXX, desc: "AV(無碼)/DVDiSo Uncensored"}
|
||||
- {id: 437, cat: XXX, desc: "AV(有碼)/DVDiSo Censored"}
|
||||
- {id: 431, cat: XXX, desc: "AV(有碼)/Blu-Ray Censored"}
|
||||
- {id: 432, cat: XXX, desc: "AV(無碼)/Blu-Ray Uncensored"}
|
||||
- {id: 436, cat: XXX, desc: "AV(網站)/0Day"}
|
||||
- {id: 425, cat: XXX, desc: "IV(寫真影集)/Video Collection"}
|
||||
- {id: 433, cat: XXX, desc: "IV(寫真圖集)/Picture Collection"}
|
||||
- {id: 411, cat: XXX, desc: "H-Game(遊戲)"}
|
||||
- {id: 412, cat: XXX, desc: "H-Anime(動畫)"}
|
||||
- {id: 413, cat: XXX, desc: "H-Comic(漫畫)"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info
|
||||
type: info
|
||||
label: ""
|
||||
default: For best results disable the torrent name tooltip (User CP/Tracker Settings/Torrents Page). Otherwise long release names will be cut off.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
@@ -54,7 +82,11 @@
|
||||
args: "Ratio:\\s(.*?)\\s\\s"
|
||||
|
||||
search:
|
||||
path: /torrents.php
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categorymappings: ["!", 410, 429, 424, 430, 426, 437, 431, 432, 436, 425, 433, 411, 412, 413]
|
||||
- path: adult.php
|
||||
categorymappings: [410, 429, 424, 430, 426, 437, 431, 432, 436, 425, 433, 411, 412, 413]
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
@@ -67,7 +99,10 @@
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
fields:
|
||||
title: # shortened for long release names
|
||||
selector: a[href^="details.php?id="] > b
|
||||
title:
|
||||
optional: true # not available if IMDB tooltips are turned on
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
@@ -77,7 +112,7 @@
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: myspleen
|
||||
name: MySpleen
|
||||
description: "MySpleen is a Private Torrent Tracker for TV / COMEDY / ANIMATION / 80-90’S VHS NOSTALGIA"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -96,4 +97,4 @@
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
10
src/Jackett/Definitions/nexttorrent.yml
Normal file → Executable file
10
src/Jackett/Definitions/nexttorrent.yml
Normal file → Executable file
@@ -1,10 +1,14 @@
|
||||
---
|
||||
site: nexttorrent
|
||||
name: NextTorrent
|
||||
description: "NextTorrent is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.nextorrent.tv/
|
||||
legacylinks:
|
||||
- https://www.nextorrent.cc/
|
||||
- https://www.nextorrent.org/
|
||||
|
||||
caps:
|
||||
@@ -24,7 +28,7 @@
|
||||
search:
|
||||
path: "recherche/{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: div.listing-torrent > table tbody tr
|
||||
selector: div.listing-torrent > table tbody tr:has(a)
|
||||
fields:
|
||||
site_date:
|
||||
selector: td:nth-child(1) a
|
||||
@@ -72,6 +76,8 @@
|
||||
args: [ " To", "000000000000"]
|
||||
- name: replace
|
||||
args: [ "X", "" ]
|
||||
date:
|
||||
text: "now"
|
||||
seeders:
|
||||
text: 0
|
||||
seeders:
|
||||
@@ -85,4 +91,4 @@
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
text: "1"
|
||||
|
@@ -6,6 +6,7 @@
|
||||
---
|
||||
site: nyaa-pantsu
|
||||
name: Nyaa-pantsu
|
||||
description: "Nyaa-pantsu is a Public site for dedicated to Asian ANIME"
|
||||
language: en-en
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
@@ -110,4 +111,4 @@
|
||||
selector: td.tr-size
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Unknown", "0"]
|
||||
args: ["Unknown", "0"]
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: nyaasi
|
||||
name: Nyaa.si
|
||||
description: "Nyaa is a Public torrent site focused on Eastern Asian media including anime, manga, literature and music"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
|
@@ -2,6 +2,7 @@
|
||||
---
|
||||
site: nyoo
|
||||
name: Nyoo
|
||||
description: "Nyoo is a mirror for Nyaa-Pantsu, a Public site for Asian ANIME"
|
||||
language: en-en
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: ourbits
|
||||
name: Ourbits
|
||||
description: "Ourbits (HDPter) is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -56,7 +57,8 @@
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
title|optional:
|
||||
title:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
@@ -71,7 +73,8 @@
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdb|optional:
|
||||
imdb:
|
||||
optional: true
|
||||
selector: div.imdb_100 > a
|
||||
attribute: href
|
||||
size:
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: passionetorrent
|
||||
name: Passione Torrent
|
||||
description: "PassioneTorrent is an ITALIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: it-it
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -155,4 +156,4 @@
|
||||
img[alt="8x Upload Multiplier"]: "8"
|
||||
img[alt="9x Upload Multiplier"]: "9"
|
||||
img[alt="10x Upload Multiplier"]: "10"
|
||||
"*": "1"
|
||||
"*": "1"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
---
|
||||
site: polishsource
|
||||
name: PolishSource
|
||||
description: "PolishSource (PS) is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-pl
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
@@ -72,24 +73,32 @@
|
||||
download:
|
||||
selector: a[href^="downloadssl.php?id="]
|
||||
attribute: href
|
||||
description|optional:
|
||||
description:
|
||||
optional: true
|
||||
selector: td:nth-child(2) > small
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "Genre: "
|
||||
- name: append
|
||||
args: "\n<br>"
|
||||
description|optional|append|1:
|
||||
description:
|
||||
optional: true
|
||||
selector: img[src="pic/pl.png"]
|
||||
filters:
|
||||
- name: append
|
||||
args: "Language: polish\n<br>"
|
||||
description|optional|append|2:
|
||||
- name: prepend
|
||||
args: {{ .Result.description }}
|
||||
description:
|
||||
optional: true
|
||||
selector: img[src="pic/napisy.png"]
|
||||
filters:
|
||||
- name: append
|
||||
args: "Subbed\n<br>"
|
||||
imdb|optional:
|
||||
- name: prepend
|
||||
args: {{ .Result.description }}
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="http://www.imdb.com/title/tt"]
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
|
@@ -1,114 +0,0 @@
|
||||
---
|
||||
site: polishtracker
|
||||
name: PolishTracker
|
||||
language: pl-pl
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://polishtracker.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 32, cat: PC/0day, desc: "0day"}
|
||||
- {id: 21, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Apps"}
|
||||
- {id: 17, cat: Console, desc: "Consoles"}
|
||||
- {id: 33, cat: Movies/DVD, desc: "DVDR Custom"}
|
||||
- {id: 3, cat: Books, desc: "E-Books"}
|
||||
- {id: 28, cat: Movies/BluRay, desc: "Movies BDiSC"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 26, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 6, cat: Audio, desc: "Music"}
|
||||
- {id: 24, cat: Audio/Other, desc: "Music DVD"}
|
||||
- {id: 8, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 4, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 29, cat: TV/SD, desc: "TV DVDRip"}
|
||||
- {id: 31, cat: TV/HD, desc: "TV HD"}
|
||||
- {id: 7, cat: TV/SD, desc: "TV SD"}
|
||||
- {id: 9, cat: XXX, desc: "XXX"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
cookies: ["language=1", "eid=123", "dabg=yes", "dasc=yes", "dafx=yes", "dabo=yes", "dapi=yes"]
|
||||
captcha:
|
||||
type: image
|
||||
image: img[src^="/login.php?rand="]
|
||||
input: kodzik
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("FAILED"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href^="logout.php?"]
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: div#bro1 > table.shad1 > tbody > tr[class^="rowfx"]
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="/download.php/"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="/details.php?id="]
|
||||
title:
|
||||
selector: a[href^="/details.php?id="][onmouseover]
|
||||
optional: true
|
||||
attribute: title
|
||||
filters:
|
||||
- name: strdump
|
||||
- name: regexp
|
||||
args: "<td class=nobotol>(.*?)</td>"
|
||||
details:
|
||||
selector: a[href^="/details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
imdb:
|
||||
selector: a[href^="http://www.imdb.com/title/tt"]
|
||||
optional: true
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(6) > b
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
remove: font
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="Freebie torrent."]: "0"
|
||||
img[alt*="-50% download"]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt*="+50% upload"]: "1.5"
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a
|
@@ -1,6 +1,7 @@
|
||||
---
|
||||
site: ptfiles
|
||||
name: PTFiles
|
||||
description: "PTFiles (PTF) is a Private site for TV / MOVIES / GENERAL"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
@@ -62,7 +63,8 @@
|
||||
onlyname: 1
|
||||
onlyname2: true
|
||||
rows:
|
||||
selector: table#tortable > tbody > tr.rowhead
|
||||
# for some users (don't know why) the table is called tablethree instead of tortable
|
||||
selector: table#tortable > tbody > tr.rowhead, table#tablethree > tbody > tr.rowhead
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="dl.php/"]
|
||||
|
@@ -1,107 +0,0 @@
|
||||
---
|
||||
site: qctorrent
|
||||
name: QcTorrent
|
||||
description: "A French gerneral tracker"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.qctorrent.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 30, cat: PC, desc: "++ Applications"}
|
||||
- {id: 1, cat: PC, desc: "Applications/Divers"}
|
||||
- {id: 2, cat: PC, desc: "Applications/PC ISO"}
|
||||
- {id: 3, cat: PC, desc: "Applications/Portable"}
|
||||
- {id: 31, cat: Movies, desc: "++ Films"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Films/Bluray"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Films/DVDr"}
|
||||
- {id: 6, cat: Movies/HD, desc: "Films/HD Rip"}
|
||||
- {id: 7, cat: Movies/SD, desc: "Films/SD Rip"}
|
||||
- {id: 8, cat: Movies/SD, desc: "Films/VCD"}
|
||||
- {id: 32, cat: Console, desc: "++ Jeux"}
|
||||
- {id: 9, cat: PC/Games, desc: "Jeux/PC"}
|
||||
- {id: 10, cat: Console, desc: "Jeux/Portable"}
|
||||
- {id: 11, cat: Console/PS4, desc: "Jeux/PS"}
|
||||
- {id: 12, cat: Console/Wii, desc: "Jeux/Wii"}
|
||||
- {id: 13, cat: Console/Xbox, desc: "Jeux/Xbox"}
|
||||
- {id: 33, cat: Audio, desc: "++ Musique"}
|
||||
- {id: 14, cat: Audio, desc: "Musique"}
|
||||
- {id: 15, cat: Audio/Video, desc: "Musique/Video"}
|
||||
- {id: 34, cat: TV, desc: "++ Série-Télé"}
|
||||
- {id: 16, cat: TV/HD, desc: "Série-Télé/Bluray"}
|
||||
- {id: 17, cat: TV/SD, desc: "Série-Télé/DVDr"}
|
||||
- {id: 18, cat: TV/HD, desc: "Série-Télé/HD Rip"}
|
||||
- {id: 19, cat: TV/SD, desc: "Série-Télé/SD Rip"}
|
||||
- {id: 20, cat: Books, desc: "E-Books"}
|
||||
- {id: 21, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
login-username: "{{ .Config.username }}"
|
||||
login-password: "{{ .Config.password }}"
|
||||
login-remember-me: "on"
|
||||
login: ""
|
||||
error:
|
||||
- selector: "script[type=\"text/javascript\"]:contains(\"$.ambiance({message: \")"
|
||||
test:
|
||||
path: search.php
|
||||
selector: div.top-bar > div.container > div.textleft > div.hidden-sm > font:contains("Ratio:") > font
|
||||
|
||||
ratio:
|
||||
path: search.php
|
||||
selector: div.top-bar > div.container > div.textleft > div.hidden-sm > font:contains("Ratio:") > font
|
||||
|
||||
search:
|
||||
path: search.php
|
||||
inputs:
|
||||
category: "{{range .Categories}}{{.}};{{end}}"
|
||||
title: "{{ .Query.Keywords }}"
|
||||
search: "Recherche"
|
||||
rows:
|
||||
selector: tr[data-snatches]
|
||||
fields:
|
||||
download:
|
||||
selector: td.name > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/torrent/", "/dl/"]
|
||||
title:
|
||||
selector: td.name > a
|
||||
category:
|
||||
selector: td.coll-0 > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
details:
|
||||
selector: td.name > a
|
||||
attribute: href
|
||||
grabs:
|
||||
attribute: data-snatches
|
||||
seeders:
|
||||
selector: td.seeds
|
||||
leechers:
|
||||
selector: td.leeches
|
||||
date:
|
||||
selector: td[data-date]
|
||||
attribute: data-date
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span[title^="Freeleech:"]: "0"
|
||||
span[title^="Half Freeleech:"]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
size:
|
||||
selector: td.size
|
||||
remove: span
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user