mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-11 22:30:48 +02:00
Compare commits
348 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8b0cede8ee | ||
![]() |
9f77de381b | ||
![]() |
e060c82cd3 | ||
![]() |
43f0f03b05 | ||
![]() |
25c7d84f95 | ||
![]() |
37ccf7a7a9 | ||
![]() |
a2e92da5f6 | ||
![]() |
d1e57c25d6 | ||
![]() |
db2ba3ba0b | ||
![]() |
902961dc5a | ||
![]() |
689568d147 | ||
![]() |
1cd05963df | ||
![]() |
fbb3c1bdfc | ||
![]() |
de5b26032e | ||
![]() |
0761ad7aee | ||
![]() |
6cce59126b | ||
![]() |
347191ab6a | ||
![]() |
afac5ad1cf | ||
![]() |
fa10c625dd | ||
![]() |
c546fd7ac8 | ||
![]() |
fc96965e54 | ||
![]() |
feaf5d4361 | ||
![]() |
f146b3eaa6 | ||
![]() |
d07b6ae863 | ||
![]() |
a25f2016dc | ||
![]() |
a5f0e2b5db | ||
![]() |
6ac9555cb5 | ||
![]() |
e7d9360b51 | ||
![]() |
5a7091075e | ||
![]() |
2270b13435 | ||
![]() |
80a99ce69f | ||
![]() |
c54cbb4cbe | ||
![]() |
de55e6e14e | ||
![]() |
0983540493 | ||
![]() |
6cc262a6d3 | ||
![]() |
2484ff16f3 | ||
![]() |
4e1d7ac09b | ||
![]() |
b8aa2a16dd | ||
![]() |
cf7ca97f9c | ||
![]() |
cc01b0ca05 | ||
![]() |
a84b1dce4d | ||
![]() |
be54f1a532 | ||
![]() |
064786f379 | ||
![]() |
9d140b3ab4 | ||
![]() |
a65d855cc4 | ||
![]() |
2698ac2907 | ||
![]() |
28971c2303 | ||
![]() |
6428a7134b | ||
![]() |
b33f5764ef | ||
![]() |
ebb855bf45 | ||
![]() |
9e90edd397 | ||
![]() |
ee2743cdc9 | ||
![]() |
a9731b036c | ||
![]() |
58ed5421ec | ||
![]() |
dc25480844 | ||
![]() |
789d168648 | ||
![]() |
f6668c9777 | ||
![]() |
5903e6abdf | ||
![]() |
0de4c1da43 | ||
![]() |
53bd7ce0c4 | ||
![]() |
4d4c9fe645 | ||
![]() |
caf583a684 | ||
![]() |
b445072a4d | ||
![]() |
82617f961d | ||
![]() |
c28df96332 | ||
![]() |
88c6c4af6e | ||
![]() |
df49bb8578 | ||
![]() |
a968913bc4 | ||
![]() |
5c9880e410 | ||
![]() |
d7af20d4f6 | ||
![]() |
8dc832d64a | ||
![]() |
91b87ee7be | ||
![]() |
ee8fc6a78f | ||
![]() |
18f48cb04b | ||
![]() |
dd64739af6 | ||
![]() |
05c4d1e331 | ||
![]() |
f9ad475aa8 | ||
![]() |
ad17897edd | ||
![]() |
2356ef3837 | ||
![]() |
b63e97fecd | ||
![]() |
c025a98cbf | ||
![]() |
0c84507b51 | ||
![]() |
875d7a005e | ||
![]() |
b1c25d4c5b | ||
![]() |
5ef6b8601a | ||
![]() |
a512a1e6b5 | ||
![]() |
5ba93dd9c2 | ||
![]() |
5216b6ece7 | ||
![]() |
eb5c8f4dcd | ||
![]() |
8a6ba04688 | ||
![]() |
287ad3a995 | ||
![]() |
00494bdac1 | ||
![]() |
4189aeac0e | ||
![]() |
5f66b1a297 | ||
![]() |
ad77068a7b | ||
![]() |
75d53b4026 | ||
![]() |
a4cd5e0047 | ||
![]() |
eccafdf4af | ||
![]() |
a7fab04e42 | ||
![]() |
95e17d1741 | ||
![]() |
a6c821762a | ||
![]() |
e66a839fb3 | ||
![]() |
1a8b48f4dc | ||
![]() |
e32baf18a4 | ||
![]() |
486a5313e4 | ||
![]() |
79b262569f | ||
![]() |
9a2a019ff5 | ||
![]() |
2dc4582830 | ||
![]() |
48d7ce271b | ||
![]() |
11acfddd64 | ||
![]() |
23f36bb0f8 | ||
![]() |
b2ff7b7091 | ||
![]() |
f73b55215c | ||
![]() |
806eabde31 | ||
![]() |
9538adcc30 | ||
![]() |
aef7b34ec3 | ||
![]() |
13e1548d54 | ||
![]() |
0c667322d9 | ||
![]() |
fa9abf2fed | ||
![]() |
5cd5b5277f | ||
![]() |
3e97da4c1a | ||
![]() |
610821a435 | ||
![]() |
5968285a39 | ||
![]() |
ba6453a78f | ||
![]() |
8a463886dd | ||
![]() |
a879c8af10 | ||
![]() |
f65cc2f273 | ||
![]() |
4796da7a89 | ||
![]() |
30032a6f63 | ||
![]() |
67bc9b69cf | ||
![]() |
6447bffacc | ||
![]() |
293e2efbf7 | ||
![]() |
dfaa7f1a69 | ||
![]() |
001ee19752 | ||
![]() |
5be247a1e6 | ||
![]() |
2707312d2b | ||
![]() |
7da5a9ea39 | ||
![]() |
1123c707c5 | ||
![]() |
35ac794927 | ||
![]() |
a9fe567299 | ||
![]() |
e5d2994174 | ||
![]() |
bc605a8146 | ||
![]() |
276801cc3b | ||
![]() |
463dda9f80 | ||
![]() |
38aa3eaa93 | ||
![]() |
515575f311 | ||
![]() |
79bd7bae67 | ||
![]() |
3c75f7afc0 | ||
![]() |
3c2bff5833 | ||
![]() |
d1c943d44a | ||
![]() |
5037e1871a | ||
![]() |
bb183d56cc | ||
![]() |
0ac587d97b | ||
![]() |
e7edd1734b | ||
![]() |
1ad901bfa8 | ||
![]() |
d4f16d96f1 | ||
![]() |
1762e6e02d | ||
![]() |
09ef1169b6 | ||
![]() |
2dcc21f5f7 | ||
![]() |
a7928ea4a8 | ||
![]() |
90d0f5b2e0 | ||
![]() |
56a26dd265 | ||
![]() |
99d294cc79 | ||
![]() |
880c818686 | ||
![]() |
8d8e9056a1 | ||
![]() |
915fb1d68e | ||
![]() |
e895a74f91 | ||
![]() |
f9512c8228 | ||
![]() |
2e0f6c7b03 | ||
![]() |
2cee151652 | ||
![]() |
a7117a077f | ||
![]() |
62cc95182f | ||
![]() |
4e3a420248 | ||
![]() |
a77e6211b3 | ||
![]() |
021e487528 | ||
![]() |
29ea7af919 | ||
![]() |
9843ca9491 | ||
![]() |
0b12640d58 | ||
![]() |
5329125950 | ||
![]() |
7128e0c599 | ||
![]() |
6f9a2caa18 | ||
![]() |
e98fad4f73 | ||
![]() |
2eb76ffb86 | ||
![]() |
4ffc9f06c9 | ||
![]() |
14912bba09 | ||
![]() |
bb2c8e6c6a | ||
![]() |
c4c91cc462 | ||
![]() |
fd036ecef9 | ||
![]() |
72c28319f3 | ||
![]() |
d255e83756 | ||
![]() |
a41c45b7d3 | ||
![]() |
83d11a58cb | ||
![]() |
fbadc4f3a9 | ||
![]() |
7bf35bda8f | ||
![]() |
f65df4e45d | ||
![]() |
da3f84527d | ||
![]() |
b915e815e9 | ||
![]() |
1ef7dcf457 | ||
![]() |
9eb52b76ca | ||
![]() |
55cae3657e | ||
![]() |
953e3cf701 | ||
![]() |
7a7c00c562 | ||
![]() |
7d39938af6 | ||
![]() |
47d815c805 | ||
![]() |
0300942a8f | ||
![]() |
0ba21e3f18 | ||
![]() |
008b995df4 | ||
![]() |
7dd8e247c8 | ||
![]() |
c408c6880c | ||
![]() |
68aa4184e0 | ||
![]() |
0407b15c1b | ||
![]() |
27240bcfed | ||
![]() |
a3f0131156 | ||
![]() |
5924a4fd22 | ||
![]() |
296c218308 | ||
![]() |
bce1689bfe | ||
![]() |
d0d4dcf11d | ||
![]() |
5a1f9e4af9 | ||
![]() |
a2946ca903 | ||
![]() |
a2c881a968 | ||
![]() |
25ae101654 | ||
![]() |
b9c2f8ad5d | ||
![]() |
ba39c8ad5b | ||
![]() |
a45770f541 | ||
![]() |
ba565e0376 | ||
![]() |
649d53f857 | ||
![]() |
f612345fac | ||
![]() |
d8607ee0f2 | ||
![]() |
8c84bed209 | ||
![]() |
655448fb74 | ||
![]() |
15049a4efb | ||
![]() |
a90ed2601a | ||
![]() |
fa71356666 | ||
![]() |
12ffb4cbe7 | ||
![]() |
b67f59e865 | ||
![]() |
d51dda4434 | ||
![]() |
70666c459b | ||
![]() |
60b7c7860b | ||
![]() |
fc343b336f | ||
![]() |
8cacbcc9b9 | ||
![]() |
e48a20f93d | ||
![]() |
5d2c64711f | ||
![]() |
a76becef3a | ||
![]() |
82c7900f77 | ||
![]() |
3984af24fd | ||
![]() |
375fc86937 | ||
![]() |
3d99aa3863 | ||
![]() |
5e48f764aa | ||
![]() |
3294bbcea3 | ||
![]() |
405ff7009f | ||
![]() |
a499989649 | ||
![]() |
45b47268f9 | ||
![]() |
76dd662fe3 | ||
![]() |
b6cf6c4e16 | ||
![]() |
42b4fae278 | ||
![]() |
35b8f726fb | ||
![]() |
d8d8030644 | ||
![]() |
9a417590b6 | ||
![]() |
119c7b2e34 | ||
![]() |
7df5a64a8b | ||
![]() |
28e8e765b0 | ||
![]() |
86169a41c0 | ||
![]() |
5641aa560b | ||
![]() |
0288bd4ad8 | ||
![]() |
399119b2da | ||
![]() |
4a03e52cb4 | ||
![]() |
7bcd0b5b86 | ||
![]() |
9fd4bbae4f | ||
![]() |
6b536ce62f | ||
![]() |
d878c9e05e | ||
![]() |
cb8835b878 | ||
![]() |
e188454fec | ||
![]() |
ab9d8f6403 | ||
![]() |
ce15cb8bfe | ||
![]() |
9e7d1cc547 | ||
![]() |
7b2657870a | ||
![]() |
31df2c27dd | ||
![]() |
b64b3504ba | ||
![]() |
af6c732306 | ||
![]() |
8da6140753 | ||
![]() |
3c03494d85 | ||
![]() |
5af3eaa926 | ||
![]() |
f79608fe6c | ||
![]() |
316f4f2864 | ||
![]() |
71babe611a | ||
![]() |
25ddcb10bb | ||
![]() |
4c07918cd4 | ||
![]() |
88fc9123e7 | ||
![]() |
c38b668ea2 | ||
![]() |
ea1d86f107 | ||
![]() |
a96237b38b | ||
![]() |
5c9f652ef5 | ||
![]() |
8d72b9a395 | ||
![]() |
0c3e856086 | ||
![]() |
37216bd0a9 | ||
![]() |
f9ef3b836b | ||
![]() |
a0d0b2cb40 | ||
![]() |
590fd5139f | ||
![]() |
37ccdbb19d | ||
![]() |
cb02cac1e1 | ||
![]() |
ddb8095dd2 | ||
![]() |
23ee1145c5 | ||
![]() |
431570e696 | ||
![]() |
ebcb82ed80 | ||
![]() |
1352d1528a | ||
![]() |
822dc191dc | ||
![]() |
41bf6da9c6 | ||
![]() |
f3de97be61 | ||
![]() |
869efa32f4 | ||
![]() |
332a31afa2 | ||
![]() |
398601d0ef | ||
![]() |
a5c596c200 | ||
![]() |
9b3bdc9f36 | ||
![]() |
56433c5aa3 | ||
![]() |
b8a9eef6cf | ||
![]() |
75aef1b997 | ||
![]() |
af066426fd | ||
![]() |
3999e76ae8 | ||
![]() |
ef162f07e5 | ||
![]() |
7a9adc283b | ||
![]() |
7a5407d2c4 | ||
![]() |
eaf53e0f4c | ||
![]() |
81b1e64c9a | ||
![]() |
61d333cbc3 | ||
![]() |
2c1b6dbf9f | ||
![]() |
7644a5e3bd | ||
![]() |
7ef2faaf09 | ||
![]() |
de0dd2b035 | ||
![]() |
ccf0d546e9 | ||
![]() |
e56f5314b2 | ||
![]() |
64ac67f58b | ||
![]() |
6735ad030d | ||
![]() |
041115ff0e | ||
![]() |
d239197f0f | ||
![]() |
115e476196 | ||
![]() |
98439ea414 | ||
![]() |
4cf798b4b4 | ||
![]() |
806ed2d44e | ||
![]() |
cf77ec8932 | ||
![]() |
a1113c0ef0 | ||
![]() |
0138638825 | ||
![]() |
8af7944832 | ||
![]() |
5d0b33c003 | ||
![]() |
1c1664e8cb | ||
![]() |
3339375a26 | ||
![]() |
887d5d9f59 | ||
![]() |
ed86046377 | ||
![]() |
5887774640 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -6,6 +6,7 @@
|
||||
|
||||
# Declare files that will always have LF line endings on checkout.
|
||||
*.yml text eol=lf
|
||||
*.sh text eol=lf
|
||||
|
||||
# Declare files that will always have CRLF line endings on checkout.
|
||||
*.cs text eol=crlf
|
||||
|
296
README.md
296
README.md
@@ -9,7 +9,7 @@
|
||||
|
||||
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), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), [qBittorrent](https://www.qbittorrent.org/), 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), [qBittorrent](https://www.qbittorrent.org/), [Nefarious](https://github.com/lardbit/nefarious) 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.
|
||||
|
||||
@@ -17,18 +17,22 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
|
||||
#### Supported Systems
|
||||
* Windows using .NET 4.6.1 or above [Download here](https://www.microsoft.com/net/framework/versions/net461).
|
||||
* Linux and macOS using Mono 5.8 or above. [Download here](http://www.mono-project.com/download/).
|
||||
* Linux
|
||||
* macOS using Mono 5.8 or above. [Download here](http://www.mono-project.com/download/).
|
||||
|
||||
### Supported Public Trackers
|
||||
* 1337x
|
||||
* ACG.RIP
|
||||
* Anidex
|
||||
* Anime Tosho
|
||||
* AniRena
|
||||
* AudioBookBay
|
||||
* AudioBook Bay (ABB)
|
||||
* BTstor.net
|
||||
* btbit
|
||||
* BTDB
|
||||
* BTKitty
|
||||
* cpasbien
|
||||
* cpasbienClone
|
||||
* DIGBT
|
||||
* ETTV
|
||||
* EliteTorrent.biz
|
||||
* ExtraTorrent.ag
|
||||
@@ -36,48 +40,58 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* Frozen Layer
|
||||
* GkTorrent
|
||||
* Horrible Subs
|
||||
* IdopeClone
|
||||
* Il Corsaro Nero <!-- maintained by bonny1992 -->
|
||||
* Il Corsaro Blu
|
||||
* Isohunt2
|
||||
* KATcrs
|
||||
* KickAssTorrent
|
||||
* KickAssTorrent (KATcr)
|
||||
* KickAssTorrent (thekat.se clone)
|
||||
* LimeTorrents
|
||||
* MagnetDL
|
||||
* MejorTorrent <!-- maintained by ivandelabeldad -->
|
||||
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, etc)
|
||||
* Monova
|
||||
* Newpct (aka: tvsinpagar, descargas2020, torrentlocura, torrentrapid, tumejortorrent, pctnew, etc)
|
||||
* Nyaa.si
|
||||
* Nyaa-Pantsu
|
||||
* Nyoo
|
||||
* ProStyleX
|
||||
* QXR
|
||||
* RARBG
|
||||
* RuTor
|
||||
* shokweb
|
||||
* ShowRSS
|
||||
* SkyTorrentsClone
|
||||
* SolidTorrents
|
||||
* sukebei.Nyaa.si
|
||||
* sukebei-Pantsu
|
||||
* The Pirate Bay
|
||||
* The Pirate Bay (TPB)
|
||||
* TNTVillage <!-- maintained by bonny1992 -->
|
||||
* Tokyo Toshokan
|
||||
* Tokyo Tosho
|
||||
* Torlock
|
||||
* TorrentCouch
|
||||
* Torrent Downloads
|
||||
* TorrentGalaxy.org
|
||||
* Torrent Downloads (TD)
|
||||
* TorrentFunk
|
||||
* TorrentGalaxy.org (TGx)
|
||||
* TorrentKitty
|
||||
* TorrentProject2
|
||||
* Torrents.csv
|
||||
* Torrent9
|
||||
* Torernt9 clone (torrents9.ch)
|
||||
* Torrentz2
|
||||
* Torrof (Torrentoff)
|
||||
* World Wide Torrents
|
||||
* YTS.ag
|
||||
* Zooqle
|
||||
|
||||
### Supported Semi-Private Trackers
|
||||
* 7tor
|
||||
* Alein
|
||||
* ArenaBG
|
||||
* CzTorrent
|
||||
* Deildu
|
||||
* Film-Paleis
|
||||
* Gay-Torrents.net
|
||||
* Gay-Torrents.org
|
||||
* GDF76
|
||||
* Kinozal
|
||||
* LostFilm.tv
|
||||
* Mega-Bliz
|
||||
@@ -85,97 +99,110 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* MVGroup Forum
|
||||
* MVGroup Main
|
||||
* Newstudio
|
||||
* NetHD
|
||||
* NoName Club
|
||||
* NetHD (VietTorrent)
|
||||
* NoName Club (NNM-Club)
|
||||
* RockBox
|
||||
* RuTracker
|
||||
* SkTorrent
|
||||
* Union Fansub
|
||||
* Xtreme Zone
|
||||
* YggTorrent
|
||||
* Vanila
|
||||
* XtreMeZone (MYXZ)
|
||||
* YggTorrent (YGG)
|
||||
* Ztracker
|
||||
|
||||
### Supported Private Trackers
|
||||
* 2 Fast 4 You
|
||||
* 3D Torrents
|
||||
* 3D Torrents (3DT)
|
||||
* 3evils
|
||||
* 420files
|
||||
* 720pier
|
||||
* Abnormal
|
||||
* Acid-Lounge
|
||||
* Acid Lounge (A-L)
|
||||
* AlphaRatio (AR)
|
||||
* AnimeBytes
|
||||
* AmigosShareClub
|
||||
* AnimeBytes (AB)
|
||||
* AnimeTorrents (AnT)
|
||||
* Anthelion (was TehConnection.me)
|
||||
* AOX
|
||||
* ArabaFenice
|
||||
* Arche Torrent
|
||||
* Anthelion
|
||||
* AOX (Chippu)
|
||||
* Araba Fenice (Phoenix)
|
||||
* ArcheTorrent
|
||||
* AsianCinema
|
||||
* AsianDVDClub
|
||||
* AST4u
|
||||
* Audiobook Torrents
|
||||
* Audiobook Torrents (ABT)
|
||||
* AudioNews (AN)
|
||||
* Awesome-HD (AHD)
|
||||
* Avistaz (AsiaTorrents)
|
||||
* B2S-Share
|
||||
* Back-ups
|
||||
* BakaBT [![(invite needed)][inviteneeded]](#)
|
||||
* bB
|
||||
* BakaBT
|
||||
* BaconBits (bB)
|
||||
* BeyondHD (BHD)
|
||||
* BIGTorrent
|
||||
* BigTower
|
||||
* Bit-City Reloaded
|
||||
* BIT-HDTV
|
||||
* Bithorlo
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen
|
||||
* BitMe
|
||||
* BitMeTV
|
||||
* BitSoup [![(invite needed)][inviteneeded]](#)
|
||||
* BitsPiracy
|
||||
* Bitspyder
|
||||
* BitTorrentFiles [![(invite needed)][inviteneeded]](#)
|
||||
* BJ-Share
|
||||
* BitTurk
|
||||
* BJ-Share (BJ)
|
||||
* BlueBird
|
||||
* Blutopia (BLU)
|
||||
* Brasil Tracker
|
||||
* BroadcastTheNet (BTN)
|
||||
* BrokenStones
|
||||
* BTGigs
|
||||
* BTGigs (TG)
|
||||
* BTNext (BTNT)
|
||||
* BTXpress (BTX)
|
||||
* Carpathians
|
||||
* CartoonChaos (CC)
|
||||
* CasStudioTV
|
||||
* CCFBits
|
||||
* CGPeers
|
||||
* CHDBits
|
||||
* Cinematik
|
||||
* Cinemageddon
|
||||
* Cinematik
|
||||
* CinemaZ (EuTorrents)
|
||||
* Classix
|
||||
* DanishBits
|
||||
* DataScene
|
||||
* CrnaBerza
|
||||
* DanishBits (DB)
|
||||
* DataScene (DS)
|
||||
* DesiTorrents
|
||||
* Diablo Torrent
|
||||
* DigitalCore
|
||||
* DigitalHive
|
||||
* DivTeam
|
||||
* DocumentaryTorrents (DT)
|
||||
* Downloadville
|
||||
* Dragonworld Reloaded
|
||||
* Dream Team
|
||||
* DXDHD
|
||||
* EliteHD [![(invite needed)][inviteneeded]](#)
|
||||
* Elit Tracker
|
||||
* EliteHD (HDClub) [![(invite needed)][inviteneeded]](#)
|
||||
* Elit Tracker (ET)
|
||||
* Elite-Tracker
|
||||
* Empornium (EMP)
|
||||
* eStone
|
||||
* eStone (XiDER, BeLoad)
|
||||
* Ethor.net (Thor's Land)
|
||||
* FANO.IN
|
||||
* FileList (FL)
|
||||
* Femdomcult
|
||||
* Freedom-HD
|
||||
* Freedom-HD (Freedom Paradise)
|
||||
* FullMixMusic
|
||||
* FunFile
|
||||
* FunFile (FF)
|
||||
* FunkyTorrents (FT)
|
||||
* Fuzer
|
||||
* Fuzer (FZ)
|
||||
* GAYtorrent.ru
|
||||
* GazelleGames (GGn)
|
||||
* Gfxnews
|
||||
* GFXNews
|
||||
* GFXPeers
|
||||
* GigaTorrents
|
||||
* GimmePeers <!-- maintained by jamesb2147 -->
|
||||
* Girotottent
|
||||
* GimmePeers (formerly ILT) <!-- maintained by jamesb2147 -->
|
||||
* GiroTorrent
|
||||
* GODS
|
||||
* Greek Team
|
||||
* HacheDe
|
||||
@@ -187,65 +214,77 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* HD-Spain
|
||||
* HD-Torrents (HDT)
|
||||
* HD-Bits.com
|
||||
* HDArea (HDA)
|
||||
* HDBits
|
||||
* HDChina
|
||||
* HDCenter
|
||||
* HDChina (HDWing)
|
||||
* HDCity
|
||||
* HDHome (HDBigger)
|
||||
* HDME
|
||||
* HDplus
|
||||
* HDSky
|
||||
* HDTorrents.it
|
||||
* Hebits
|
||||
* Hon3y HD
|
||||
* HQSource
|
||||
* HQSource (HQS)
|
||||
* HuSh
|
||||
* Hyperay
|
||||
* ICE Torrent
|
||||
* I Love Classics
|
||||
* Immortalseed
|
||||
* iLoveClassics (iLC)
|
||||
* ImmortalSeed (iS)
|
||||
* inPeril
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
* JPopsuki
|
||||
* Kapaki
|
||||
* Karagarga
|
||||
* Le Saloon
|
||||
* LinkoManija
|
||||
* LosslessClub
|
||||
* M-Team (TP)
|
||||
* M-Team TP (MTTP)
|
||||
* Magico (Trellas)
|
||||
* Majomparádé
|
||||
* Majomparádé (TurkDepo)
|
||||
* Manicomio Share
|
||||
* Mononoké-BT
|
||||
* MoreThanTV (MTV)
|
||||
* MyAnonamouse
|
||||
* MyAnonamouse (MAM)
|
||||
* myAmity
|
||||
* MySpleen
|
||||
* NCore
|
||||
* Nebulance (NBL)
|
||||
* Nebulance (NBL) (TransmiTheNet)
|
||||
* New Real World
|
||||
* NordicBits (NB)
|
||||
* Norbits
|
||||
* NordicBits (NB)
|
||||
* Nostalgic (The Archive)
|
||||
* notwhat.cd
|
||||
* Orpheus
|
||||
* Ourbits
|
||||
* Ourbits (HDPter)
|
||||
* Passione Torrent <!-- maintained by bonny1992 -->
|
||||
* PassThePopcorn (PTP)
|
||||
* PirateTheNet
|
||||
* PiXELHD
|
||||
* PolishSource
|
||||
* PiratBit
|
||||
* PirateTheNet (PTN)
|
||||
* PiXELHD (PxHD)
|
||||
* PolishSource (PS)
|
||||
* PolishTracker
|
||||
* Pretome
|
||||
* PrivateHD (PHD)
|
||||
* ProAudioTorrents (PAT)
|
||||
* Psytorrents
|
||||
* PTFiles
|
||||
* PT99
|
||||
* PTFiles (PTF)
|
||||
* PThome
|
||||
* PuntoTorrent
|
||||
* PWTorrents (PWT)
|
||||
* Racing4Everyone (R4E)
|
||||
* RacingForMe (RFM)
|
||||
* Redacted (PassTheHeadphones)
|
||||
* Red Star Torrent
|
||||
* Red Star Torrent (RST)
|
||||
* Redtopia (RED)
|
||||
* RetroFlix
|
||||
* RevolutionTT
|
||||
* RGU
|
||||
* RoDVD
|
||||
* Romanian Metal Torrent
|
||||
* RoDVD (Cinefiles)
|
||||
* Romanian Metal Torrent (RMT)
|
||||
* SceneFZ
|
||||
* SceneHD
|
||||
* SceneReactor
|
||||
@@ -255,18 +294,21 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* Secret Cinema
|
||||
* Shareisland
|
||||
* ShareSpaceDB
|
||||
* Sharingue
|
||||
* Shazbat
|
||||
* Shellife
|
||||
* Shellife (SL)
|
||||
* SpaceTorrent
|
||||
* Speed-Share
|
||||
* SpeedCD
|
||||
* SpeedTorrent Reloaded
|
||||
* SportsCult
|
||||
* SportHD
|
||||
* Superbits
|
||||
* SportsCult
|
||||
* SuperBits (SBS)
|
||||
* TakeaByte
|
||||
* Tasmanit
|
||||
* TBPlus
|
||||
* TenYardTracker
|
||||
* The Empire
|
||||
* TenYardTorrents (TYT)
|
||||
* TheEmpire (TE)
|
||||
* The Geeks
|
||||
* The Horror Charnel (THC)
|
||||
* The Occult
|
||||
@@ -274,42 +316,46 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* The Place
|
||||
* The Shinning (TsH)
|
||||
* The Show
|
||||
* The Vault
|
||||
* The-Torrents
|
||||
* Torrent Network
|
||||
* Torrent Sector Crew
|
||||
* The Vault
|
||||
* Torrent Network (TN)
|
||||
* Torrent Sector Crew (TSC)
|
||||
* Torrent.LT
|
||||
* TorrentBD
|
||||
* TorrentBytes
|
||||
* TorrentCCF [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentDay
|
||||
* Torrentech
|
||||
* TorrentBytes (TBy)
|
||||
* TorrentCCF (TCCF) [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentDay (TD)
|
||||
* Torrentech (TTH)
|
||||
* TorrentHeaven
|
||||
* TorrentHR
|
||||
* Torrenting
|
||||
* Torrenting (TT)
|
||||
* Torrentland
|
||||
* TorrentLeech (TL)
|
||||
* Torrents.Md
|
||||
* TorrentSeeds (TS)
|
||||
* Torrent-Syndikat
|
||||
* TOrrent-tuRK (TORK)
|
||||
* TorViet
|
||||
* TorViet (HDVNBits)
|
||||
* TotallyKids (TK)
|
||||
* ToTheGlory
|
||||
* TranceTraffic
|
||||
* Trezzor
|
||||
* TV Chaos UK
|
||||
* TurkTorrent (TT)
|
||||
* TV Chaos UK (TVCUK)
|
||||
* TV-Vault
|
||||
* TVstore
|
||||
* u-torrents (SceneFZ)
|
||||
* UHDBits
|
||||
* Ultimate Gamer Club
|
||||
* Ultimate Gamer Club (UGC)
|
||||
* Vizuk
|
||||
* Waffles
|
||||
* World-In-HD
|
||||
* WorldOfP2P (WOP)
|
||||
* x-ite.me (XM)
|
||||
* xBytesV2
|
||||
* XSpeeds
|
||||
* XSpeeds (XS)
|
||||
* XWTorrents (XWT)
|
||||
* Xthor
|
||||
* ExoticaZ (Your Exotic Torrents)
|
||||
* ExoticaZ (YourExotic)
|
||||
* Zamunda.net
|
||||
* Zelka.org
|
||||
|
||||
@@ -320,6 +366,14 @@ Trackers marked with [![(invite needed)][inviteneeded]](#) have no active maint
|
||||
A special "all" indexer is available at `/api/v2.0/indexers/all/results/torznab/api`.
|
||||
It will query all configured indexers and return the combined results.
|
||||
|
||||
If your client supports multiple feeds it's recommended to add each indexer directly instead of using the all indexer.
|
||||
Using the all indexer has no advantages (besides reduced management overhead), only disadvantages:
|
||||
* you lose control over indexer specific settings (categories, search modes, etc.)
|
||||
* mixing search modes (IMDB, query, etc.) might cause low quality results
|
||||
* indexer specific categories (>= 100000) can't be used.
|
||||
* slow indexers will slow down the overall result
|
||||
* total results are limited to 1000
|
||||
|
||||
To get all Jackett indexers including their capabilities you can use `t=indexers` on the all indexer. To get only configured/unconfigured indexers you can also add `configured=true/false` as query parameter.
|
||||
|
||||
## Installation on Windows
|
||||
@@ -339,7 +393,24 @@ When installed as a service the tray icon acts as a way to open/start/stop Jacke
|
||||
|
||||
Jackett can also be run from the command line if you would like to see log messages (Ensure the server isn't already running from the tray/service). This can be done by using "JackettConsole.exe" (for Command Prompt), found in the Jackett data folder: "%ProgramData%\Jackett".
|
||||
|
||||
## Installation on Linux
|
||||
### Install on Linux (AMDx64)
|
||||
1. Download and extract the latest `Jackett.Binaries.LinuxAMDx64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
|
||||
2. (Optional) To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
|
||||
|
||||
On most operating systems all the required dependencies will already be present. In case they are not, you can refer to this page https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x#linux-distribution-dependencies
|
||||
|
||||
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.
|
||||
|
||||
### Install on Linux (ARMv7 or above)
|
||||
1. Download and extract the latest `Jackett.Binaries.LinuxARM32.tar.gz` or `Jackett.Binaries.LinuxARM64.tar.gz` (32 bit is the most common on ARM) release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`
|
||||
2. (Optional) To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
|
||||
|
||||
On most operating systems all the required dependencies will already be present. In case they are not, you can refer to this page https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x#linux-distribution-dependencies
|
||||
|
||||
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 Linux (ARMv6 or below)
|
||||
1. Install [Mono 5.8](http://www.mono-project.com/download/#download-lin) or better (using the latest stable release is recommended)
|
||||
* Follow the instructions on the mono website and install the `mono-devel` and the `ca-certificates-mono` packages.
|
||||
* On Red Hat/CentOS/openSUSE/Fedora the `mono-locale-extras` package is also required.
|
||||
@@ -348,21 +419,12 @@ Jackett can also be run from the command line if you would like to see log messa
|
||||
* Redhat/Fedora: `yum install libcurl-devel`
|
||||
* For other distros see the [Curl docs](http://curl.haxx.se/dlwiz/?type=devel).
|
||||
3. 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`.
|
||||
|
||||
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/)
|
||||
4. (Optional) To install Jackett as a service, open the Terminal and run `sudo ./install_service_systemd_mono.sh` You need root permissions to install the service. The service will start on each logon. You can always stop it by running `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`. Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
|
||||
|
||||
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.
|
||||
|
||||
Mono must be compiled with the Roslyn compiler (default), using MCS will cause "An error has occurred." errors (See https://github.com/Jackett/Jackett/issues/2704).
|
||||
|
||||
### Install as service
|
||||
1. Install Jackett with the steps from above.
|
||||
2. Open the Terminal and run `sudo ./install_service_systemd.sh` You need root permissions to install the service.
|
||||
2. 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 `systemctl stop jackett.service` from Terminal. You can start it again it using `systemctl start jackett.service`.
|
||||
Logs are stored as usual under `~/.config/Jackett/log.txt` and also in `journalctl -u jackett.service`.
|
||||
|
||||
### Installation on Linux via Ansible
|
||||
|
||||
On a RHEL/Centos 7 system: [linuxhq.jackett](https://galaxy.ansible.com/linuxhq/jackett)
|
||||
@@ -423,7 +485,7 @@ location /jackett {
|
||||
|
||||
You can pass various options when running via the command line, see --help for details.
|
||||
|
||||
* __Error "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."__
|
||||
* __Error "An error occurred while sending the request: Error: TrustFailure (A call to SSPI failed, see inner exception.)"__
|
||||
|
||||
This is often caused by missing CA certificates.
|
||||
Try reimporting the certificates in this case:
|
||||
@@ -437,52 +499,74 @@ location /jackett {
|
||||
The logfiles (log.txt/updater.txt) are stored in `%ProgramData%\Jackett` on Windows and `~/.config/Jackett/` on Linux/macOS.
|
||||
|
||||
## Configuring OMDb
|
||||
This feature is used as a fallback to get the movie/series title if only the IMDB ID is provided in the request.
|
||||
This feature is used as a fallback (when using the aggregate Indexer) to get the movie/series title if only the IMDB ID is provided in the request.
|
||||
To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/apikey.aspx) (1,000 daily requests limit) and paste the key in Jackett
|
||||
|
||||
## 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.
|
||||
|
||||
## Contributing
|
||||
All contributions are welcome just send a pull request. Jackett's framework allows our team (and any other volunteering dev) to implement new trackers in an hour or two. If you'd like support for a new tracker but are not a developer then feel free to leave a request on the [issues page](https://github.com/Jackett/Jackett/issues). It is recommended to use Visual Studio 2017 when making code changes in this project. You can download the community version for free [here](https://www.visualstudio.com/downloads/).
|
||||
|
||||
Jackett's framework typically allows our team and volunteering developers to implement new trackers in a couple of hours
|
||||
|
||||
Depending on logic complexity, there are two common ways new trackers are implemented:
|
||||
|
||||
1. simple [definitions](http://github.com/Jackett/Jackett/tree/master/src/Jackett.Common/Definitions) (.yml / YAML), and;
|
||||
2. advanced (native) [indexers](http://github.com/Jackett/Jackett/tree/master/src/Jackett.Common/Indexers) (.cs / C#)
|
||||
|
||||
Read more about the [simple definition format](https://github.com/Jackett/Jackett/wiki/Definition-format).
|
||||
|
||||
If you are a developer then it's recommended to download the free community version of [Visual Studio](http://visualstudio.com)
|
||||
|
||||
If you are not a developer and would like a (new) tracker supported then feel free to leave an [issue](https://github.com/Jackett/Jackett/issues) request.
|
||||
|
||||
All contributions are welcome just send a pull request.
|
||||
|
||||
## Building from source
|
||||
|
||||
### Windows
|
||||
* Install the .NET Core [SDK](https://www.microsoft.com/net/download/windows)
|
||||
* Open the Jackett solution in Visual Studio 2017 (version 15.7 or above)
|
||||
* Clone Jackett
|
||||
* From the `src` directory, run `dotnet restore`
|
||||
* Open the Jackett solution in Visual Studio 2017 (version 15.9 or above)
|
||||
* Right click on the Jackett solution and click 'Rebuild Solution' to restore nuget packages
|
||||
* Select Jackett.Server as startup project
|
||||
* In the drop down menu of the run button select "Jackett.Server" instead of "IIS Express"
|
||||
* Build/Start the project
|
||||
|
||||
### OSX
|
||||
NOTE: msbuild is included in the mono release.
|
||||
* Install Homebrew https://brew.sh
|
||||
* open terminal
|
||||
* brew install nuget mono
|
||||
* git clone https://github.com/Jackett/Jackett.git
|
||||
* cd Jackett/src
|
||||
* nuget restore Jackett.sln
|
||||
|
||||
NOTE: if you get the error "NU1102: Unable to find package Microsoft.AspNetCore with version (>= 2.1.2)" while restoring packages, you'll need to install it manually.https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.302-macos-x64-installer then delete the entire project directory and restart from a new clone
|
||||
|
||||
* msbuild Jackett.Server/Jackett.Server.csproj /t:Build /p:Configuration=Debug
|
||||
* curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin
|
||||
* mono Jackett.Server/bin/Debug/JackettServer.exe
|
||||
```bash
|
||||
# manually install osx dotnet via:
|
||||
https://dotnet.microsoft.com/download?initial-os=macos
|
||||
# then:
|
||||
git clone https://github.com/Jackett/Jackett.git
|
||||
cd Jackett/src
|
||||
|
||||
# dotnet core version
|
||||
dotnet publish Jackett.Server -f netcoreapp2.2 --self-contained -r osx-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/netcoreapp2.2/osx-x64/JackettConsole # run jackett
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
|
||||
```bash
|
||||
sudo apt install mono-complete nuget msbuild # install build tools (debian/ubuntu)
|
||||
sudo apt install mono-complete nuget msbuild dotnet-sdk-2.2 # install build tools (debian/ubuntu)
|
||||
git clone https://github.com/Jackett/Jackett.git
|
||||
cd Jackett/src
|
||||
|
||||
# dotnet core version
|
||||
dotnet publish Jackett.Server -f netcoreapp2.2 --self-contained -r linux-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/netcoreapp2.2/linux-x64/JackettConsole # run jackett
|
||||
```
|
||||
<!--
|
||||
# mono version (currently broken)
|
||||
nuget restore Jackett.sln # prepare dependencies
|
||||
msbuild Jackett.Server/Jackett.Server.csproj /t:Build /p:Configuration=Debug # compile
|
||||
mono Jackett.Server/bin/Debug/JackettServer.exe # run jackett
|
||||
```
|
||||
-->
|
||||
|
||||
## Screenshots
|
||||
|
||||
|
14
appveyor.yml
14
appveyor.yml
@@ -1,6 +1,10 @@
|
||||
version: 0.10.{build}
|
||||
version: 0.11.{build}
|
||||
skip_tags: true
|
||||
image: Visual Studio 2017
|
||||
image:
|
||||
- Ubuntu
|
||||
- Visual Studio 2017
|
||||
environment:
|
||||
APPVEYOR_YML_DISABLE_PS_LINUX: true
|
||||
configuration: Release
|
||||
assembly_info:
|
||||
patch: true
|
||||
@@ -17,18 +21,20 @@ dotnet_csproj:
|
||||
file_version: '{version}'
|
||||
informational_version: '{version}'
|
||||
build_script:
|
||||
- ps: .\build.ps1
|
||||
- ps: .\build.ps1 --target=Default
|
||||
- sh: ./build.sh --target=Linux
|
||||
test: off
|
||||
before_deploy:
|
||||
- ps: ${env:release_description} = ( Get-Content -LiteralPath BuildOutput/ReleaseNotes.txt -Encoding UTF8 ) -join "`n";
|
||||
deploy:
|
||||
- provider: GitHub
|
||||
tag: v$(appveyor_build_version)
|
||||
tag: v$(APPVEYOR_BUILD_VERSION)
|
||||
description: $(release_description)
|
||||
auth_token:
|
||||
secure: hOg+16YTIbq4kO9u4D1YVOTbWDqgCX6mAQYMbnmBBSw2CiUsZh7OKbupoUb3FtWa
|
||||
artifact: /^(?:(?![Ee]xperimental).)*$/
|
||||
draft: true
|
||||
force_update: true
|
||||
on:
|
||||
branch: master
|
||||
notifications:
|
||||
|
250
build.cake
250
build.cake
@@ -14,8 +14,11 @@ var configuration = Argument("configuration", "Debug");
|
||||
|
||||
// Define directories.
|
||||
var workingDir = MakeAbsolute(Directory("./"));
|
||||
var artifactsDirName = "Artifacts";
|
||||
var testResultsDirName = "TestResults";
|
||||
string artifactsDirName = "Artifacts";
|
||||
string testResultsDirName = "TestResults";
|
||||
string netCoreFramework = "netcoreapp2.2";
|
||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||
string updaterProjectPath = "./src/Jackett.Updater/Jackett.Updater.csproj";
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// TASKS
|
||||
@@ -25,8 +28,17 @@ Task("Info")
|
||||
.Does(() =>
|
||||
{
|
||||
Information(@"Jackett Cake build script starting...");
|
||||
Information(@"Requires InnoSetup and C:\cygwin to be present for packaging (Pre-installed on AppVeyor)");
|
||||
Information(@"Requires InnoSetup and C:\cygwin to be present for packaging (Pre-installed on AppVeyor) on Windows");
|
||||
Information(@"Working directory is: " + workingDir);
|
||||
|
||||
if (IsRunningOnWindows())
|
||||
{
|
||||
Information("Platform is Windows");
|
||||
}
|
||||
else
|
||||
{
|
||||
Information("Platform is Linux, Windows builds will be skipped");
|
||||
}
|
||||
});
|
||||
|
||||
Task("Clean")
|
||||
@@ -39,6 +51,8 @@ Task("Clean")
|
||||
CleanDirectories("./" + artifactsDirName);
|
||||
CleanDirectories("./" + testResultsDirName);
|
||||
|
||||
CreateDirectory("./" + artifactsDirName);
|
||||
|
||||
Information("Clean completed");
|
||||
});
|
||||
|
||||
@@ -67,41 +81,25 @@ Task("Run-Unit-Tests")
|
||||
Results = new[] { new NUnit3Result { FileName = resultsFile } }
|
||||
});
|
||||
|
||||
if(AppVeyor.IsRunningOnAppVeyor)
|
||||
if (AppVeyor.IsRunningOnAppVeyor && IsRunningOnWindows())
|
||||
{
|
||||
AppVeyor.UploadTestResults(resultsFile, AppVeyorTestResultsType.NUnit3);
|
||||
}
|
||||
});
|
||||
|
||||
Task("Check-Packaging-Platform")
|
||||
Task("Package-Windows-Full-Framework")
|
||||
.IsDependentOn("Run-Unit-Tests")
|
||||
.Does(() =>
|
||||
{
|
||||
if (IsRunningOnWindows())
|
||||
{
|
||||
CreateDirectory("./" + artifactsDirName);
|
||||
Information("Platform is Windows");
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Packaging is currently only implemented for a Windows environment");
|
||||
}
|
||||
});
|
||||
|
||||
Task("Package-Windows-Full-Framework")
|
||||
.IsDependentOn("Check-Packaging-Platform")
|
||||
.Does(() =>
|
||||
{
|
||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||
string buildOutputPath = "./BuildOutput/Experimental/net461/win7-x86/Jackett";
|
||||
string buildOutputPath = "./BuildOutput/net461/win7-x86/Jackett";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, "net461", "win7-x86");
|
||||
DotNetCorePublish(serverProjectPath, "net461", "win7-x86", buildOutputPath);
|
||||
|
||||
CopyFiles("./src/Jackett.Service/bin/" + configuration + "/JackettService.*", buildOutputPath);
|
||||
CopyFiles("./src/Jackett.Tray/bin/" + configuration + "/JackettTray.*", buildOutputPath);
|
||||
CopyFiles("./src/Jackett.Updater/bin/" + configuration + "/net461" + "/JackettUpdater.*", buildOutputPath); //builds against multiple frameworks
|
||||
|
||||
Zip("./BuildOutput/Experimental/net461/win7-x86", $"./{artifactsDirName}/Jackett.Binaries.Windows.zip");
|
||||
Zip("./BuildOutput/net461/win7-x86", $"./{artifactsDirName}/Jackett.Binaries.Windows.zip");
|
||||
|
||||
//InnoSetup
|
||||
string sourceFolder = MakeAbsolute(Directory(buildOutputPath)).ToString();
|
||||
@@ -119,16 +117,19 @@ Task("Package-Windows-Full-Framework")
|
||||
});
|
||||
|
||||
Task("Package-Mono-Full-Framework")
|
||||
.IsDependentOn("Check-Packaging-Platform")
|
||||
.IsDependentOn("Run-Unit-Tests")
|
||||
.Does(() =>
|
||||
{
|
||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||
string buildOutputPath = "./BuildOutput/Experimental/net461/linux-x64/Jackett";
|
||||
string buildOutputPath = "./BuildOutput/net461/linux-x64/Jackett";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, "net461", "linux-x64");
|
||||
DotNetCorePublish(serverProjectPath, "net461", "linux-x64", buildOutputPath);
|
||||
|
||||
CopyFiles("./src/Jackett.Updater/bin/" + configuration + "/net461" + "/JackettUpdater.*", buildOutputPath); //builds against multiple frameworks
|
||||
|
||||
CopyFileToDirectory("./install_service_macos", buildOutputPath);
|
||||
CopyFileToDirectory("./install_service_systemd_mono.sh", buildOutputPath);
|
||||
CopyFileToDirectory("./Upstart.config", buildOutputPath);
|
||||
|
||||
//There is an issue with Mono 5.8 (fixed in Mono 5.12) where its expecting to use its own patched version of System.Net.Http.dll, instead of the version supplied in folder
|
||||
//https://github.com/dotnet/corefx/issues/19914
|
||||
//https://bugzilla.xamarin.com/show_bug.cgi?id=60315
|
||||
@@ -145,35 +146,87 @@ Task("Package-Mono-Full-Framework")
|
||||
|
||||
DeleteFile(buildOutputPath + "/System.Runtime.InteropServices.RuntimeInformation.dll");
|
||||
|
||||
Gzip("./BuildOutput/Experimental/net461/linux-x64", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.Mono.tar.gz");
|
||||
});
|
||||
|
||||
Task("Experimental-DotNetCore")
|
||||
.IsDependentOn("Check-Packaging-Platform")
|
||||
.Does(() =>
|
||||
{
|
||||
string serverProjectPath = "./src/Jackett.Server/Jackett.Server.csproj";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, "netcoreapp2.1", "win-x86");
|
||||
DotNetCorePublish(serverProjectPath, "netcoreapp2.1", "linux-x64");
|
||||
DotNetCorePublish(serverProjectPath, "netcoreapp2.1", "osx-x64");
|
||||
|
||||
Zip("./BuildOutput/Experimental/netcoreapp2.1/win-x86", $"./{artifactsDirName}/Experimental.netcoreapp.win-x86.zip");
|
||||
Zip("./BuildOutput/Experimental/netcoreapp2.1/osx-x64", $"./{artifactsDirName}/Experimental.netcoreapp.osx-x64.zip");
|
||||
Gzip("./BuildOutput/Experimental/netcoreapp2.1/linux-x64", $"./{artifactsDirName}", "Jackett", "Experimental.netcoreapp.linux-x64.tar.gz");
|
||||
Gzip("./BuildOutput/net461/linux-x64", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.Mono.tar.gz");
|
||||
});
|
||||
|
||||
Task("Package")
|
||||
.IsDependentOn("Package-Windows-Full-Framework")
|
||||
.IsDependentOn("Package-Mono-Full-Framework")
|
||||
//.IsDependentOn("Experimental-DotNetCore")
|
||||
Task("Package-DotNetCore-macOS")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
Information("Packaging completed");
|
||||
string runtimeId = "osx-x64";
|
||||
string buildOutputPath = $"./BuildOutput/{netCoreFramework}/{runtimeId}/Jackett";
|
||||
string updaterOutputPath = buildOutputPath + "/Updater";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, netCoreFramework, runtimeId, buildOutputPath);
|
||||
|
||||
DotNetCorePublish(updaterProjectPath, netCoreFramework, runtimeId, updaterOutputPath);
|
||||
CopyFiles(updaterOutputPath + "/JackettUpdater*", buildOutputPath);
|
||||
DeleteDirectory(updaterOutputPath, new DeleteDirectorySettings {Recursive = true, Force = true});
|
||||
|
||||
CopyFileToDirectory("./install_service_macos", buildOutputPath);
|
||||
|
||||
Gzip($"./BuildOutput/{netCoreFramework}/{runtimeId}", $"./{artifactsDirName}", "Jackett", "Experimental.Jackett.Binaries.macOS.tar.gz");
|
||||
});
|
||||
|
||||
Task("Package-DotNetCore-LinuxAMDx64")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
string runtimeId = "linux-x64";
|
||||
string buildOutputPath = $"./BuildOutput/{netCoreFramework}/{runtimeId}/Jackett";
|
||||
string updaterOutputPath = buildOutputPath + "/Updater";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, netCoreFramework, runtimeId, buildOutputPath);
|
||||
|
||||
DotNetCorePublish(updaterProjectPath, netCoreFramework, runtimeId, updaterOutputPath);
|
||||
CopyFiles(updaterOutputPath + "/JackettUpdater*", buildOutputPath);
|
||||
DeleteDirectory(updaterOutputPath, new DeleteDirectorySettings {Recursive = true, Force = true});
|
||||
|
||||
CopyFileToDirectory("./install_service_systemd.sh", buildOutputPath);
|
||||
|
||||
Gzip($"./BuildOutput/{netCoreFramework}/{runtimeId}", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.LinuxAMDx64.tar.gz");
|
||||
});
|
||||
|
||||
Task("Package-DotNetCore-LinuxARM32")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
string runtimeId = "linux-arm";
|
||||
string buildOutputPath = $"./BuildOutput/{netCoreFramework}/{runtimeId}/Jackett";
|
||||
string updaterOutputPath = buildOutputPath + "/Updater";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, netCoreFramework, runtimeId, buildOutputPath);
|
||||
|
||||
DotNetCorePublish(updaterProjectPath, netCoreFramework, runtimeId, updaterOutputPath);
|
||||
CopyFiles(updaterOutputPath + "/JackettUpdater*", buildOutputPath);
|
||||
DeleteDirectory(updaterOutputPath, new DeleteDirectorySettings {Recursive = true, Force = true});
|
||||
|
||||
CopyFileToDirectory("./install_service_systemd.sh", buildOutputPath);
|
||||
|
||||
Gzip($"./BuildOutput/{netCoreFramework}/{runtimeId}", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.LinuxARM32.tar.gz");
|
||||
});
|
||||
|
||||
Task("Package-DotNetCore-LinuxARM64")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
string runtimeId = "linux-arm64";
|
||||
string buildOutputPath = $"./BuildOutput/{netCoreFramework}/{runtimeId}/Jackett";
|
||||
string updaterOutputPath = buildOutputPath + "/Updater";
|
||||
|
||||
DotNetCorePublish(serverProjectPath, netCoreFramework, runtimeId, buildOutputPath);
|
||||
|
||||
DotNetCorePublish(updaterProjectPath, netCoreFramework, runtimeId, updaterOutputPath);
|
||||
CopyFiles(updaterOutputPath + "/JackettUpdater*", buildOutputPath);
|
||||
DeleteDirectory(updaterOutputPath, new DeleteDirectorySettings {Recursive = true, Force = true});
|
||||
|
||||
CopyFileToDirectory("./install_service_systemd.sh", buildOutputPath);
|
||||
|
||||
Gzip($"./BuildOutput/{netCoreFramework}/{runtimeId}", $"./{artifactsDirName}", "Jackett", "Jackett.Binaries.LinuxARM64.tar.gz");
|
||||
});
|
||||
|
||||
Task("Appveyor-Push-Artifacts")
|
||||
.IsDependentOn("Package")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
if (AppVeyor.IsRunningOnAppVeyor)
|
||||
@@ -185,12 +238,12 @@ Task("Appveyor-Push-Artifacts")
|
||||
}
|
||||
else
|
||||
{
|
||||
Information(@"Skipping as not running in AppVeyor Environment");
|
||||
Information(@"Skipping artifact push as not running in AppVeyor Windows Environment");
|
||||
}
|
||||
});
|
||||
|
||||
Task("Release-Notes")
|
||||
.IsDependentOn("Appveyor-Push-Artifacts")
|
||||
.IsDependentOn("Clean")
|
||||
.Does(() =>
|
||||
{
|
||||
string latestTag = GitDescribe(".", false, GitDescribeStrategy.Tags, 0);
|
||||
@@ -228,7 +281,7 @@ Task("Release-Notes")
|
||||
string buildNote = String.Join(Environment.NewLine, notesList);
|
||||
Information(buildNote);
|
||||
|
||||
System.IO.File.WriteAllLines(workingDir + "\\BuildOutput\\ReleaseNotes.txt", notesList.ToArray());
|
||||
System.IO.File.WriteAllLines(workingDir + "/BuildOutput/ReleaseNotes.txt", notesList.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -237,6 +290,32 @@ Task("Release-Notes")
|
||||
|
||||
});
|
||||
|
||||
Task("Windows-Environment")
|
||||
.IsDependentOn("Package-Windows-Full-Framework")
|
||||
.IsDependentOn("Package-Mono-Full-Framework")
|
||||
//.IsDependentOn("Package-DotNetCore-macOS")
|
||||
//.IsDependentOn("Package-DotNetCore-LinuxAMDx64")
|
||||
//.IsDependentOn("Package-DotNetCore-LinuxARM32")
|
||||
//.IsDependentOn("Package-DotNetCore-LinuxARM64")
|
||||
.IsDependentOn("Appveyor-Push-Artifacts")
|
||||
.IsDependentOn("Release-Notes")
|
||||
.Does(() =>
|
||||
{
|
||||
Information("Windows-Environment Task Completed");
|
||||
});
|
||||
|
||||
Task("Linux-Environment")
|
||||
.IsDependentOn("Package-DotNetCore-macOS")
|
||||
.IsDependentOn("Package-DotNetCore-LinuxAMDx64")
|
||||
.IsDependentOn("Package-DotNetCore-LinuxARM32")
|
||||
.IsDependentOn("Package-DotNetCore-LinuxARM64")
|
||||
.IsDependentOn("Appveyor-Push-Artifacts")
|
||||
.IsDependentOn("Release-Notes")
|
||||
.Does(() =>
|
||||
{
|
||||
Information("Linux-Environment Task Completed");
|
||||
});
|
||||
|
||||
|
||||
private void RunCygwinCommand(string utility, string utilityArguments)
|
||||
{
|
||||
@@ -283,29 +362,53 @@ private string RelativeWinPathToCygPath(string relativePath)
|
||||
return cygPath;
|
||||
}
|
||||
|
||||
private void Gzip(string sourceFolder, string outputDirectory, string tarCdirectoryOption, string outputFileName)
|
||||
private void RunLinuxCommand(string file, string arg)
|
||||
{
|
||||
var cygSourcePath = RelativeWinPathToCygPath(sourceFolder);
|
||||
var tarFileName = outputFileName.Remove(outputFileName.Length - 3, 3);
|
||||
var tarArguments = @"-cvf " + cygSourcePath + "/" + tarFileName + " -C " + cygSourcePath + $" {tarCdirectoryOption} --mode ='755'";
|
||||
var gzipArguments = @"-k " + cygSourcePath + "/" + tarFileName;
|
||||
var startInfo = new System.Diagnostics.ProcessStartInfo()
|
||||
{
|
||||
Arguments = arg,
|
||||
FileName = file,
|
||||
UseShellExecute = true
|
||||
};
|
||||
|
||||
RunCygwinCommand("Tar", tarArguments);
|
||||
RunCygwinCommand("Gzip", gzipArguments);
|
||||
|
||||
MoveFile($"{sourceFolder}/{tarFileName}.gz", $"{outputDirectory}/{tarFileName}.gz");
|
||||
var process = System.Diagnostics.Process.Start(startInfo);
|
||||
process.WaitForExit();
|
||||
}
|
||||
|
||||
private void DotNetCorePublish(string projectPath, string framework, string runtime)
|
||||
private void Gzip(string sourceFolder, string outputDirectory, string tarCdirectoryOption, string outputFileName)
|
||||
{
|
||||
var tarFileName = outputFileName.Remove(outputFileName.Length - 3, 3);
|
||||
|
||||
if (IsRunningOnWindows())
|
||||
{
|
||||
var cygSourcePath = RelativeWinPathToCygPath(sourceFolder);
|
||||
var tarArguments = @"-cvf " + cygSourcePath + "/" + tarFileName + " -C " + cygSourcePath + $" {tarCdirectoryOption} --mode ='755'";
|
||||
var gzipArguments = @"-k " + cygSourcePath + "/" + tarFileName;
|
||||
|
||||
RunCygwinCommand("Tar", tarArguments);
|
||||
RunCygwinCommand("Gzip", gzipArguments);
|
||||
MoveFile($"{sourceFolder}/{tarFileName}.gz", $"{outputDirectory}/{tarFileName}.gz");
|
||||
}
|
||||
else
|
||||
{
|
||||
RunLinuxCommand("find", MakeAbsolute(Directory(sourceFolder)) + @" -type d -exec chmod 755 {} \;");
|
||||
RunLinuxCommand("find", MakeAbsolute(Directory(sourceFolder)) + @" -type f -exec chmod 644 {} \;");
|
||||
RunLinuxCommand("chmod", $"755 {MakeAbsolute(Directory(sourceFolder))}/Jackett/jackett");
|
||||
RunLinuxCommand("chmod", $"755 {MakeAbsolute(Directory(sourceFolder))}/Jackett/JackettUpdater");
|
||||
RunLinuxCommand("tar", $"-C {sourceFolder} -zcvf {outputDirectory}/{tarFileName}.gz {tarCdirectoryOption}");
|
||||
}
|
||||
}
|
||||
|
||||
private void DotNetCorePublish(string projectPath, string framework, string runtime, string outputPath)
|
||||
{
|
||||
var settings = new DotNetCorePublishSettings
|
||||
{
|
||||
Framework = framework,
|
||||
Runtime = runtime,
|
||||
OutputDirectory = $"./BuildOutput/Experimental/{framework}/{runtime}/Jackett"
|
||||
};
|
||||
{
|
||||
Framework = framework,
|
||||
Runtime = runtime,
|
||||
OutputDirectory = outputPath
|
||||
};
|
||||
|
||||
DotNetCorePublish(projectPath, settings);
|
||||
DotNetCorePublish(projectPath, settings);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
@@ -313,12 +416,19 @@ private void DotNetCorePublish(string projectPath, string framework, string runt
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
Task("Default")
|
||||
.IsDependentOn("Release-Notes")
|
||||
.IsDependentOn("Windows-Environment")
|
||||
.Does(() =>
|
||||
{
|
||||
Information("Default Task Completed");
|
||||
});
|
||||
|
||||
Task("Linux")
|
||||
.IsDependentOn("Linux-Environment")
|
||||
.Does(() =>
|
||||
{
|
||||
Information("Linux Task Completed");
|
||||
});
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// EXECUTION
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
31
build.ps1
31
build.ps1
@@ -25,10 +25,6 @@ Specifies the amount of information to be displayed.
|
||||
Shows description about tasks.
|
||||
.PARAMETER DryRun
|
||||
Performs a dry run.
|
||||
.PARAMETER Experimental
|
||||
Uses the nightly builds of the Roslyn script engine.
|
||||
.PARAMETER Mono
|
||||
Uses the Mono Compiler rather than the Roslyn script engine.
|
||||
.PARAMETER SkipToolPackageRestore
|
||||
Skips restoring of packages.
|
||||
.PARAMETER ScriptArgs
|
||||
@@ -49,13 +45,25 @@ Param(
|
||||
[switch]$ShowDescription,
|
||||
[Alias("WhatIf", "Noop")]
|
||||
[switch]$DryRun,
|
||||
[switch]$Experimental,
|
||||
[switch]$Mono,
|
||||
[switch]$SkipToolPackageRestore,
|
||||
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
|
||||
[string[]]$ScriptArgs
|
||||
)
|
||||
|
||||
# Attempt to set highest encryption available for SecurityProtocol.
|
||||
# PowerShell will not set this by default (until maybe .NET 4.6.x). This
|
||||
# will typically produce a message for PowerShell v2 (just an info
|
||||
# message though)
|
||||
try {
|
||||
# Set TLS 1.2 (3072), then TLS 1.1 (768), then TLS 1.0 (192), finally SSL 3.0 (48)
|
||||
# Use integers because the enumeration values for TLS 1.2 and TLS 1.1 won't
|
||||
# exist in .NET 4.0, even though they are addressable if .NET 4.5+ is
|
||||
# installed (.NET 4.5 is an in-place upgrade).
|
||||
[System.Net.ServicePointManager]::SecurityProtocol = 3072 -bor 768 -bor 192 -bor 48
|
||||
} catch {
|
||||
Write-Output 'Unable to set PowerShell to use TLS 1.2 and TLS 1.1 due to old .NET Framework installed. If you see underlying connection closed or trust errors, you may need to upgrade to .NET Framework 4.5+ and PowerShell v3'
|
||||
}
|
||||
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
|
||||
function MD5HashFile([string] $filePath)
|
||||
{
|
||||
@@ -85,7 +93,7 @@ function GetProxyEnabledWebClient
|
||||
{
|
||||
$wc = New-Object System.Net.WebClient
|
||||
$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
|
||||
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
|
||||
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
|
||||
$wc.Proxy = $proxy
|
||||
return $wc
|
||||
}
|
||||
@@ -115,10 +123,11 @@ if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
|
||||
|
||||
# Make sure that packages.config exist.
|
||||
if (!(Test-Path $PACKAGES_CONFIG)) {
|
||||
Write-Verbose -Message "Downloading packages.config..."
|
||||
try {
|
||||
Write-Verbose -Message "Downloading packages.config..."
|
||||
try {
|
||||
$wc = GetProxyEnabledWebClient
|
||||
$wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
|
||||
$wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG)
|
||||
} catch {
|
||||
Throw "Could not download packages.config."
|
||||
}
|
||||
}
|
||||
@@ -225,8 +234,6 @@ if ($Configuration) { $cakeArguments += "-configuration=$Configuration" }
|
||||
if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" }
|
||||
if ($ShowDescription) { $cakeArguments += "-showdescription" }
|
||||
if ($DryRun) { $cakeArguments += "-dryrun" }
|
||||
if ($Experimental) { $cakeArguments += "-experimental" }
|
||||
if ($Mono) { $cakeArguments += "-mono" }
|
||||
$cakeArguments += $ScriptArgs
|
||||
|
||||
# Start Cake
|
||||
|
117
build.sh
Executable file
117
build.sh
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##########################################################################
|
||||
# This is the Cake bootstrapper script for Linux and OS X.
|
||||
# This file was downloaded from https://github.com/cake-build/resources
|
||||
# Feel free to change this file to fit your needs.
|
||||
##########################################################################
|
||||
|
||||
# Define directories.
|
||||
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
TOOLS_DIR=$SCRIPT_DIR/tools
|
||||
ADDINS_DIR=$TOOLS_DIR/Addins
|
||||
MODULES_DIR=$TOOLS_DIR/Modules
|
||||
NUGET_EXE=$TOOLS_DIR/nuget.exe
|
||||
CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
|
||||
PACKAGES_CONFIG=$TOOLS_DIR/packages.config
|
||||
PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
|
||||
ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config
|
||||
MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config
|
||||
|
||||
# Define md5sum or md5 depending on Linux/OSX
|
||||
MD5_EXE=
|
||||
if [[ "$(uname -s)" == "Darwin" ]]; then
|
||||
MD5_EXE="md5 -r"
|
||||
else
|
||||
MD5_EXE="md5sum"
|
||||
fi
|
||||
|
||||
# Define default arguments.
|
||||
SCRIPT="build.cake"
|
||||
CAKE_ARGUMENTS=()
|
||||
|
||||
# Parse arguments.
|
||||
for i in "$@"; do
|
||||
case $1 in
|
||||
-s|--script) SCRIPT="$2"; shift ;;
|
||||
--) shift; CAKE_ARGUMENTS+=("$@"); break ;;
|
||||
*) CAKE_ARGUMENTS+=("$1") ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Make sure the tools folder exist.
|
||||
if [ ! -d "$TOOLS_DIR" ]; then
|
||||
mkdir "$TOOLS_DIR"
|
||||
fi
|
||||
|
||||
# Make sure that packages.config exist.
|
||||
if [ ! -f "$TOOLS_DIR/packages.config" ]; then
|
||||
echo "Downloading packages.config..."
|
||||
curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "An error occurred while downloading packages.config."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Download NuGet if it does not exist.
|
||||
if [ ! -f "$NUGET_EXE" ]; then
|
||||
echo "Downloading NuGet..."
|
||||
curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "An error occurred while downloading nuget.exe."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Restore tools from NuGet.
|
||||
pushd "$TOOLS_DIR" >/dev/null
|
||||
if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then
|
||||
find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf
|
||||
fi
|
||||
|
||||
mono "$NUGET_EXE" install -ExcludeVersion
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not restore NuGet tools."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5"
|
||||
|
||||
popd >/dev/null
|
||||
|
||||
# Restore addins from NuGet.
|
||||
if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then
|
||||
pushd "$ADDINS_DIR" >/dev/null
|
||||
|
||||
mono "$NUGET_EXE" install -ExcludeVersion
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not restore NuGet addins."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
fi
|
||||
|
||||
# Restore modules from NuGet.
|
||||
if [ -f "$MODULES_PACKAGES_CONFIG" ]; then
|
||||
pushd "$MODULES_DIR" >/dev/null
|
||||
|
||||
mono "$NUGET_EXE" install -ExcludeVersion
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not restore NuGet modules."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
fi
|
||||
|
||||
# Make sure that Cake has been installed.
|
||||
if [ ! -f "$CAKE_EXE" ]; then
|
||||
echo "Could not find Cake.exe at '$CAKE_EXE'."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Start Cake
|
||||
exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}"
|
15
install_service_systemd.sh
Executable file → Normal file
15
install_service_systemd.sh
Executable file → Normal file
@@ -13,23 +13,19 @@ systemctl stop ${jackettservice}
|
||||
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?"
|
||||
if [ ! -f ./jackett ]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Couldn't locate jackett. Is the script in the right directory?"
|
||||
exit 1
|
||||
fi
|
||||
jackettdir="$(pwd)"
|
||||
|
||||
# Check if Jackett's owner is root
|
||||
jackettuser="$(stat -c "%U" ./JackettConsole.exe)"
|
||||
jackettuser="$(stat -c "%U" ./jackett)"
|
||||
if [ "${jackettuser}" == "root" ]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Jackett shouldn't run as root. Please, change the owner of the Jackett directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 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 [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Jackett already seems to be running as a service. Please stop it before running this script again."
|
||||
@@ -50,7 +46,7 @@ Type=simple
|
||||
User=${jackettuser}
|
||||
Group=${jackettuser}
|
||||
WorkingDirectory=${jackettdir}
|
||||
ExecStart=${monodir}/mono --debug ${jackettdir}/JackettConsole.exe --NoRestart
|
||||
ExecStart=${jackettdir}/jackett --NoRestart
|
||||
TimeoutStopSec=20
|
||||
|
||||
[Install]
|
||||
@@ -61,6 +57,9 @@ EOL
|
||||
# Reload systemd daemon
|
||||
systemctl daemon-reload
|
||||
|
||||
# Enable the service for following restarts
|
||||
systemctl enable ${jackettservice}
|
||||
|
||||
# Run the service
|
||||
systemctl start ${jackettservice}
|
||||
|
||||
|
82
install_service_systemd_mono.sh
Normal file
82
install_service_systemd_mono.sh
Normal file
@@ -0,0 +1,82 @@
|
||||
#!/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
|
||||
jackettservice="jackett.service"
|
||||
systemctl stop ${jackettservice}
|
||||
|
||||
# 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 Jackett's owner is root
|
||||
jackettuser="$(stat -c "%U" ./JackettConsole.exe)"
|
||||
if [ "${jackettuser}" == "root" ]; then
|
||||
echo "${BOLDRED}ERROR${NC}: Jackett shouldn't run as root. Please, change the owner of the Jackett directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 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 [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; 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 systemd service descriptor
|
||||
cat >"/etc/systemd/system/${jackettservice}" <<EOL
|
||||
[Unit]
|
||||
Description=Jackett Daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
SyslogIdentifier=jackett
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
Type=simple
|
||||
User=${jackettuser}
|
||||
Group=${jackettuser}
|
||||
WorkingDirectory=${jackettdir}
|
||||
ExecStart=${monodir}/mono --debug ${jackettdir}/JackettConsole.exe --NoRestart
|
||||
TimeoutStopSec=20
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
EOL
|
||||
|
||||
# Reload systemd daemon
|
||||
systemctl daemon-reload
|
||||
|
||||
# Enable the service for following restarts
|
||||
systemctl enable ${jackettservice}
|
||||
|
||||
# Run the service
|
||||
systemctl start ${jackettservice}
|
||||
|
||||
# Check that it's running
|
||||
if [[ $(systemctl status ${jackettservice} | grep "active (running)") ]]; then
|
||||
echo "${BOLDGREEN}Agent successfully installed and launched!${NC}"
|
||||
else
|
||||
cat << EOL
|
||||
${BOLDRED}ERROR${NC}: Could not launch service. 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}\`
|
||||
Jackett user: \`${jackettuser}\`
|
||||
|
||||
EOL
|
||||
fi
|
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://1337x.to
|
||||
- https://1337x.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -119,11 +119,11 @@
|
||||
search:
|
||||
paths:
|
||||
# present trending results if there are no search parms supplied
|
||||
- path: "{{if .Keywords}}/search/{{ .Keywords}}/1/{{else}}/trending{{end}}"
|
||||
- path: "{{if .Keywords}}/search/{{ .Keywords}}/2/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}/search/{{ .Keywords}}/3/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}/search/{{ .Keywords}}/4/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}/search/{{ .Keywords}}/5/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}sort-search/{{ .Keywords}}/time/desc/1/{{else}}trending{{end}}"
|
||||
- path: "{{if .Keywords}}sort-search/{{ .Keywords}}/time/desc/2/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}sort-search/{{ .Keywords}}/time/desc/3/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}sort-search/{{ .Keywords}}/time/desc/4/{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}sort-search/{{ .Keywords}}/time/desc/5/{{else}}{{end}}"
|
||||
keywordsfilters:
|
||||
- name: replace # use this as a workaround till #893 is implemented
|
||||
args: ["Greys Anatomy", "Grey's Anatomy"]
|
||||
|
@@ -15,11 +15,9 @@
|
||||
- {id: 10, cat: TV/Anime, desc: "Animation: HD720P"}
|
||||
- {id: 11, cat: TV/Anime, desc: "Animation: HD1080P"}
|
||||
- {id: 56, cat: TV/Anime, desc: "Animation: DVDRip"}
|
||||
- {id: 13, cat: TV/Anime, desc: "Animation: DVD"}
|
||||
- {id: 18, cat: PC/0day, desc: "Applications: PC"}
|
||||
- {id: 16, cat: PC/Games, desc: "Applications: Jeux"}
|
||||
- {id: 19, cat: PC/Phone-Android, desc: "Applications: Android"}
|
||||
- {id: 38, cat: PC/Phone-IOS, desc: "Applications: Mobile Phone"}
|
||||
- {id: 17, cat: PC/0day, desc: "Applications: Autres"}
|
||||
- {id: 67, cat: TV, desc: "Autres: Emission TV"}
|
||||
- {id: 68, cat: TV/Sport, desc: "Autres: Sport"}
|
||||
@@ -34,6 +32,7 @@
|
||||
- {id: 53, cat: Books, desc: "E-Books: Livre Anglais"}
|
||||
- {id: 52, cat: Books, desc: "E-Books: Revue - Journaux"}
|
||||
- {id: 51, cat: Books, desc: "E-Books: BD"}
|
||||
- {id: 95, cat: Movies, desc: "Films: Film Divx XviD"}
|
||||
- {id: 66, cat: Movies, desc: "Films: VOSTFR"}
|
||||
- {id: 71, cat: Movies/WEBDL, desc: "Films: WEB-DL"}
|
||||
- {id: 65, cat: Movies, desc: "Films: VO"}
|
||||
@@ -49,19 +48,13 @@
|
||||
- {id: 92, cat: Movies/HD, desc: "Films: 4K"}
|
||||
- {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "Films: DVDRIP"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "Films: DVD5"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Films: DVD9"}
|
||||
- {id: 91, cat: Movies/HD, desc: "Films: RemuX"}
|
||||
- {id: 89, cat: Movies/HD, desc: "Films: BD/BR Rip"}
|
||||
- {id: 88, cat: Movies/BluRay, desc: "Films: Full BD/BR"}
|
||||
- {id: 77, cat: Other, desc: "GPS: Cartes"}
|
||||
- {id: 78, cat: Other, desc: "GPS: Radars"}
|
||||
- {id: 97, cat: Movies, desc: "Films: Cours Métrage"}
|
||||
- {id: 79, cat: TV/Anime, desc: "Mangas: HD"}
|
||||
- {id: 80, cat: TV/Anime, desc: "Mangas: HD VO"}
|
||||
- {id: 81, cat: TV/Anime, desc: "Mangas: HD VOSTFR"}
|
||||
- {id: 82, cat: TV/Anime, desc: "Mangas: DVDRIP"}
|
||||
- {id: 83, cat: TV/Anime, desc: "Mangas: DVDRIP VO"}
|
||||
- {id: 84, cat: TV/Anime, desc: "Mangas: DVDRIP VOSTFR"}
|
||||
- {id: 85, cat: TV/Anime, desc: "Mangas: Web-DL"}
|
||||
- {id: 86, cat: TV/Anime, desc: "Mangas: TV-RIP"}
|
||||
- {id: 75, cat: Audio, desc: "Musique: Concert TVRip"}
|
||||
@@ -70,6 +63,7 @@
|
||||
- {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
|
||||
- {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
|
||||
- {id: 96, cat: Audio/MP3, desc: "Musique: PlayList MP3"}
|
||||
- {id: 94, cat: Audio, desc: "Musique: Podcast"}
|
||||
- {id: 58, cat: Audio, desc: "Musique: Concert"}
|
||||
- {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
|
||||
@@ -80,6 +74,7 @@
|
||||
- {id: 73, cat: TV/WEB-DL, desc: "Serie TV: WEB-DL"}
|
||||
- {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
|
||||
- {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
|
||||
- {id: 98, cat: TV/Anime, desc: "Serie TV: Manga VOSTFR"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
site: 3dtorrents
|
||||
name: 3D Torrents
|
||||
description: "3D Movie tracker"
|
||||
description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
130
src/Jackett.Common/Definitions/3evils.yml
Normal file
130
src/Jackett.Common/Definitions/3evils.yml
Normal file
@@ -0,0 +1,130 @@
|
||||
---
|
||||
site: 3evils
|
||||
name: 3evils
|
||||
description: "3evils is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.3evils.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 65, cat: Books, desc: "Books"}
|
||||
- {id: 27, cat: Console/NDS, desc: "Games/Nintendo-DS"}
|
||||
- {id: 28, cat: Console/Other, desc: "Games/Switch"}
|
||||
- {id: 42, cat: PC/Phone-Android, desc: "Mobile/Android"}
|
||||
- {id: 44, cat: Movies/UHD, desc: "Movies/4K"}
|
||||
- {id: 13, cat: Movies/BluRay, desc: "Movies/Bluray"}
|
||||
- {id: 12, cat: Movies/DVD, desc: "Movies/DVD-R"}
|
||||
- {id: 14, cat: Movies, desc: "Movies/Packs"}
|
||||
- {id: 67, cat: Movies/HD, desc: "Movies/x264"}
|
||||
- {id: 55, cat: Movies/HD, desc: "Movies/X265"}
|
||||
- {id: 45, cat: Movies, desc: "Movies/Remux"}
|
||||
- {id: 62, cat: Audio, desc: "Music/Audio"}
|
||||
- {id: 32, cat: Audio, desc: "Music/Packs"}
|
||||
- {id: 6, cat: TV, desc: "TV/Packs"}
|
||||
- {id: 3, cat: TV/HD, desc: "TV/x264"}
|
||||
- {id: 4, cat: TV/HD, desc: "TV/x265"}
|
||||
- {id: 8, cat: TV/SD, desc: "TV/Xvid"}
|
||||
- {id: 63, cat: PC/0day, desc: "Windows/Applications"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: "/browse.php"
|
||||
error:
|
||||
- selector: h2:contains("Login failed!")
|
||||
message:
|
||||
selector: table tr td.colhead2
|
||||
test:
|
||||
path: /
|
||||
selector: :has(a[href$="/logout.php?hash_please="])
|
||||
|
||||
search:
|
||||
paths:
|
||||
# ttps://www.3evils.com/browse.php?search=black+lightning+s02e11&searchin=title&incldead=1
|
||||
# https://www.3evils.com/browse.php?c3=1&c4=1&search=&searchin=title&incldead=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{.Keywords}}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: table.table-bordered tr:has(a[href^="browse.php?cat="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="] b
|
||||
title:
|
||||
# if this is available it is the full length title, as the one above can be abbreviated with ...
|
||||
optional: true
|
||||
selector: a[href^="details.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Tip\\('<b>(.*?)</b>"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
size:
|
||||
selector: td:nth-last-child(6)
|
||||
files:
|
||||
selector: a[href^="filelist.php?id="]
|
||||
grabs:
|
||||
selector: a[href^="snatches.php?id="]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d+)"
|
||||
# 2 flavours of dates
|
||||
date:
|
||||
# Today<br /> 10:20 AM
|
||||
# Yesterday<br /> 08:03 PM
|
||||
optional: true
|
||||
selector: td:nth-last-child(7):contains("day")
|
||||
date:
|
||||
# Feb 14 2019<br /> 10:20 AM
|
||||
optional: true
|
||||
selector: td:nth-last-child(7):not(:contains("day"))
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 pm"
|
||||
seeders:
|
||||
text: "0"
|
||||
seeders:
|
||||
optional: true
|
||||
selector: a[href$="#seeders"]
|
||||
leechers:
|
||||
text: "0"
|
||||
leechers:
|
||||
optional: true
|
||||
selector: a[href$="#leechers"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"b:contains(\"[FREE]\")": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -20,7 +20,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -28,11 +28,11 @@
|
||||
error:
|
||||
- selector: form[action*="/login"] .text-red
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /filterTorrents
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -95,9 +95,9 @@
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
|
55
src/Jackett.Common/Definitions/acgrip.yml
Normal file
55
src/Jackett.Common/Definitions/acgrip.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
site: acgrip
|
||||
name: ACG.RIP
|
||||
description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: zh-cn
|
||||
type: public
|
||||
followredirect: true
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acg.rip/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV
|
||||
modes:
|
||||
tv-search: [q, season, ep]
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
term: "{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: tbody tr
|
||||
fields:
|
||||
title:
|
||||
selector: td.title > span.title a
|
||||
category:
|
||||
text: 1
|
||||
details:
|
||||
selector: td.title > span.title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.action a
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.size
|
||||
seeders:
|
||||
selector: td.peers div.seed
|
||||
leechers:
|
||||
selector: td.peers div.leech
|
||||
grabs:
|
||||
selector: td.peers div.done
|
||||
date:
|
||||
selector: td.date time
|
||||
attribute: datetime
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
126
src/Jackett.Common/Definitions/alein.yml
Normal file
126
src/Jackett.Common/Definitions/alein.yml
Normal file
@@ -0,0 +1,126 @@
|
||||
---
|
||||
site: alein
|
||||
name: Alein
|
||||
description: "Alein is a BULGARIAN Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: bg
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://alein.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/SD, desc: "Movies-XviD"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Movies-x264"}
|
||||
- {id: 41, cat: Movies, desc: "Movies-BG"}
|
||||
- {id: 14, cat: Movies/HD, desc: "Movies-HD"}
|
||||
- {id: 48, cat: Movies/UHD, desc: "Movies-x265"}
|
||||
- {id: 39, cat: Movies/Foreign, desc: "Movies-XviD-Rus"}
|
||||
- {id: 40, cat: Movies/Foreign, desc: "Movies-x264-Rus"}
|
||||
- {id: 20, cat: Movies/Other, desc: "Movies-Animations"}
|
||||
- {id: 16, cat: Movies/3D, desc: "Movies-3D"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Movies-Anime"}
|
||||
- {id: 21, cat: Movies/BluRay, desc: "Movies-Blu-ray"}
|
||||
- {id: 22, cat: TV/Documentary , desc: "Movies-Documentaries"}
|
||||
- {id: 11, cat: Movies/DVD, desc: "Movies-DVD-R"}
|
||||
- {id: 47, cat: TV/SD, desc: "TV-Episodes"}
|
||||
- {id: 46, cat: TV/HD, desc: "TV-Episodes-HD"}
|
||||
- {id: 3, cat: PC/ISO, desc: "Games-PC ISO"}
|
||||
- {id: 31, cat: Console/Xbox, desc: "Games-XBOX"}
|
||||
- {id: 33, cat: Console/PSP, desc: "Games-PS"}
|
||||
- {id: 2, cat: Audio/MP3, desc: "Music-MP3"}
|
||||
- {id: 50, cat: Audio/Lossless, desc: "Music-FLAC"}
|
||||
- {id: 18, cat: Audio/Video, desc: "Music-Video"}
|
||||
- {id: 9, cat: PC/0day, desc: "Software-Windows"}
|
||||
- {id: 8, cat: PC, desc: "Software-Linux"}
|
||||
- {id: 36, cat: Other, desc: "Trailer"}
|
||||
- {id: 34, cat: Other/Misc, desc: "Pictures"}
|
||||
- {id: 4, cat: Other, desc: "Other"}
|
||||
- {id: 6, cat: Books/Comics, desc: "Books-Comics"}
|
||||
- {id: 24, cat: PC/Phone-Other, desc: "Mobile-GSM"}
|
||||
- {id: 23, cat: TV/Sport, desc: "Sport"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form[action*="/index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.lista span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: /
|
||||
selector: :has(a[href="logout.php"])
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://alein.org/index.php?page=torrents&category=1%3B15%3B41%3B14%3B48%3B39%3B20%3B16%3B5%3B21%3B22%3B11&search=venom&active=1
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: "torrents"
|
||||
category: "{{range .Categories}}{{.}};{{end}}"
|
||||
search: "{{if .Keywords }}{{.Keywords}}{{else}}{{end}}"
|
||||
active: "1"
|
||||
|
||||
rows:
|
||||
selector: tr.trclass:not(:has(td.lista-cat-rec))
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href*="id="]
|
||||
details:
|
||||
selector: td a[href*="id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href*="category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
download:
|
||||
selector: td a[href*="id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
- name: prepend
|
||||
args: "download.php?id="
|
||||
- name: append
|
||||
args: "&f={{.Result.title}}.torrent"
|
||||
banner:
|
||||
selector: td a[href*="id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) width="
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02/01/2006"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
291
src/Jackett.Common/Definitions/amigosshare.yml
Normal file
291
src/Jackett.Common/Definitions/amigosshare.yml
Normal file
@@ -0,0 +1,291 @@
|
||||
---
|
||||
site: amigosshare
|
||||
name: Amigos Share Club
|
||||
description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GENERAL"
|
||||
language: pt-br
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://amigos-share.club/
|
||||
legacylinks:
|
||||
- http://amigos-share.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
|
||||
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
|
||||
- {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
|
||||
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
|
||||
- {id: 23, cat: PC/Phone-Android, desc: "Aplicativos: Android"}
|
||||
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
|
||||
- {id: 26, cat: PC/Phone-IOS, desc: "Aplicativos: iPhone"}
|
||||
- {id: 27, cat: PC/Phone-IOS, desc: "Aplicativos: iPad"}
|
||||
- {id: 28, cat: PC/Phone-IOS, desc: "Aplicativos: iPod"}
|
||||
- {id: 71, cat: Books, desc: "Apostila: Cursos"}
|
||||
- {id: 72, cat: Books, desc: "Apostila: Apostila"}
|
||||
- {id: 67, cat: Books, desc: "Ebook: Livros"}
|
||||
- {id: 68, cat: Books, desc: "Ebook: Revistas"}
|
||||
- {id: 85, cat: Movies, desc: "Filmes: Guerra"}
|
||||
- {id: 81, cat: Movies, desc: "Filmes: Musical"}
|
||||
- {id: 17, cat: Movies, desc: "Filmes: Biografia"}
|
||||
- {id: 16, cat: Movies, desc: "Filmes: Esportes"}
|
||||
- {id: 15, cat: Movies, desc: "Filmes: Ficção"}
|
||||
- {id: 14, cat: Movies, desc: "Filmes: Infantil"}
|
||||
- {id: 13, cat: Movies, desc: "Filmes: Nacionais"}
|
||||
- {id: 12, cat: Movies, desc: "Filmes: Policial"}
|
||||
- {id: 11, cat: Movies, desc: "Filmes: Religioso"}
|
||||
- {id: 10, cat: Movies, desc: "Filmes: Suspense"}
|
||||
- {id: 9, cat: Movies, desc: "Filmes: Western"}
|
||||
- {id: 8, cat: Movies, desc: "Filmes: Animação"}
|
||||
- {id: 7, cat: Movies, desc: "Filmes: Clássicos"}
|
||||
- {id: 6, cat: Movies, desc: "Filmes: Comédia"}
|
||||
- {id: 5, cat: Movies, desc: "Filmes: Documentário"}
|
||||
- {id: 4, cat: Movies, desc: "Filmes: Drama"}
|
||||
- {id: 3, cat: Movies, desc: "Filmes: Romance"}
|
||||
- {id: 2, cat: Movies, desc: "Filmes: Terror"}
|
||||
- {id: 1, cat: Movies, desc: "Filmes: Ação"}
|
||||
- {id: 80, cat: Movies, desc: "Filmes: Aventura"}
|
||||
- {id: 70, cat: Other, desc: "Fotos: XXX"}
|
||||
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
|
||||
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
|
||||
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
|
||||
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
|
||||
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
|
||||
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
|
||||
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
|
||||
- {id: 54, cat: Console/Xbox 360, desc: "Jogos: X360"}
|
||||
- {id: 56, cat: Console/Xbox, desc: "Jogos: Xbox"}
|
||||
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
|
||||
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
|
||||
- {id: 57, cat: Console, desc: "Jogos: Android"}
|
||||
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
|
||||
- {id: 78, cat: Console/Xbox One, desc: "Jogos: Xbox One"}
|
||||
- {id: 29, cat: Audio, desc: "Musica: Axé"}
|
||||
- {id: 30, cat: Audio, desc: "Musica: Eletronica"}
|
||||
- {id: 31, cat: Audio, desc: "Musica: Funk"}
|
||||
- {id: 32, cat: Audio, desc: "Musica: Pagode"}
|
||||
- {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
|
||||
- {id: 34, cat: Audio, desc: "Musica: Rap"}
|
||||
- {id: 36, cat: Audio, desc: "Musica: Rock"}
|
||||
- {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
|
||||
- {id: 38, cat: Audio, desc: "Musica: Blues"}
|
||||
- {id: 39, cat: Audio, desc: "Musica: Dance"}
|
||||
- {id: 40, cat: Audio, desc: "Musica: Dicografia"}
|
||||
- {id: 41, cat: Audio, desc: "Musica: Erudita"}
|
||||
- {id: 42, cat: Audio, desc: "Musica: Forró"}
|
||||
- {id: 43, cat: Audio, desc: "Musica: Dubstep"}
|
||||
- {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
|
||||
- {id: 45, cat: Audio, desc: "Musica: Samba"}
|
||||
- {id: 77, cat: Audio, desc: "Musica: Outros"}
|
||||
- {id: 76, cat: Audio, desc: "Musica: Reggae"}
|
||||
- {id: 83, cat: Audio, desc: "Musica: Gospel"}
|
||||
- {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
|
||||
- {id: 88, cat: TV, desc: "Series: Musical"}
|
||||
- {id: 86, cat: TV, desc: "Series: Guerra"}
|
||||
- {id: 105, cat: TV, desc: "Series: Biografia"}
|
||||
- {id: 99, cat: TV/Sport, desc: "Series: Esportes"}
|
||||
- {id: 103, cat: TV, desc: "Series: Ficção"}
|
||||
- {id: 102, cat: TV, desc: "Series: Infantil"}
|
||||
- {id: 89, cat: TV, desc: "Series: Nacionais"}
|
||||
- {id: 100, cat: TV, desc: "Series: Policial"}
|
||||
- {id: 98, cat: TV, desc: "Series: Religioso"}
|
||||
- {id: 90, cat: TV, desc: "Series: Suspense"}
|
||||
- {id: 91, cat: TV, desc: "Series: Western"}
|
||||
- {id: 92, cat: TV, desc: "Series: Animação"}
|
||||
- {id: 93, cat: TV, desc: "Series: Clássicos"}
|
||||
- {id: 94, cat: TV, desc: "Series: Comédia"}
|
||||
- {id: 95, cat: TV/Documentary, desc: "Series: Documentário"}
|
||||
- {id: 96, cat: TV, desc: "Series: Drama"}
|
||||
- {id: 97, cat: TV, desc: "Series: Romance"}
|
||||
- {id: 101, cat: TV, desc: "Series: Terror"}
|
||||
- {id: 104, cat: TV, desc: "Series: Ação"}
|
||||
- {id: 24, cat: TV, desc: "Series: Cartoon"}
|
||||
- {id: 19, cat: TV/HD, desc: "Series: HD"}
|
||||
- {id: 20, cat: TV, desc: "Series: Seriados"}
|
||||
- {id: 87, cat: TV, desc: "Series: Aventura"}
|
||||
- {id: 65, cat: TV, desc: "Shows: Show"}
|
||||
- {id: 63, cat: TV, desc: "Tv: Aberta"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
|
||||
- {id: 64, cat: TV, desc: "Tv: Fechada"}
|
||||
- {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: "yes"
|
||||
error:
|
||||
- selector: div.alert-error
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
ratio:
|
||||
path: index.php
|
||||
selector: li:contains("Ratio:") a b
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://amigos-share.club/torrents-search.php?search=&c1=1&c19=1&c36=1&incldead=0&freeleech=0&lang=0sort=id&order=desc&page=1
|
||||
- path: torrents-search.php
|
||||
# site displays just 21 results, no profile options found to change this, so we attempt to fetch 5 pages
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 1
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 2
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 3
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 4
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 0
|
||||
freeleech: 0
|
||||
lang: 0
|
||||
sort: "id"
|
||||
order: "desc"
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr:has(a[href^="torrents-details.php?id="])
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td:first-child img
|
||||
attribute: src
|
||||
case:
|
||||
# unfortunately the site does not have category numbers on the results page, just a .png which can apply to both movies and tv.
|
||||
# therefore I've order the list to favour movies,
|
||||
# also, not all .png have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
|
||||
"[src$=\"/XXXZ.png\"]": "74"
|
||||
"[src$=\"/Hentai.png\"]": "75"
|
||||
"[src$=\"/Anime.png\"]": "69"
|
||||
"[src$=\"/Windows.png\"]": "21"
|
||||
"[src$=\"/Mac.png\"]": "22"
|
||||
"[src$=\"/Android.png\"]": "23"
|
||||
"[src$=\"/Linux.png\"]": "25"
|
||||
"[src$=\"/iPhone.png\"]": "26"
|
||||
"[src$=\"/iPad.png\"]": "27"
|
||||
"[src$=\"/iPod.png\"]": "28"
|
||||
"[src$=\"/Cursos.png\"]": "71"
|
||||
"[src$=\"/Apostila.png\"]": "72"
|
||||
"[src$=\"/E-books.png\"]": "67"
|
||||
"[src$=\"/Revista.png\"]": "68"
|
||||
"[src$=\"/Aventura.png\"]": "80"
|
||||
"[src$=\"/XXX.png\"]": "70"
|
||||
"[src$=\"/Jogos-Ps4.png\"]": "79"
|
||||
"[src$=\"/Jogos-PC.png\"]": "47"
|
||||
"[src$=\"/Jogos-EmuladoreseRoms.png\"]": "61"
|
||||
"[src$=\"/Jogos-Mac.png\"]": "48"
|
||||
"[src$=\"/Jogos-Ps1.png\"]": "49"
|
||||
"[src$=\"/Jogos-Ps2.png\"]": "50"
|
||||
"[src$=\"/Jogos-Ps3.png\"]": "51"
|
||||
"[src$=\"/Jogos-Dreamcast.png\"]": "52"
|
||||
"[src$=\"/ogos-X360.png\"]": "54"
|
||||
"[src$=\"/Jogos-Xbox.png\"]": "55"
|
||||
"[src$=\"/Jogos-Wii.png\"]": "56"
|
||||
"[src$=\"/Jogos-NintendoDS.png\"]": "58"
|
||||
"[src$=\"/Jogos-Android.png\"]": "57"
|
||||
"[src$=\"/Jogos-PSP.png\"]": "82"
|
||||
"[src$=\"/Jogos-XboxOne.png\"]": "78"
|
||||
"[src$=\"/Axe.png\"]": "29"
|
||||
"[src$=\"/Electronica.png\"]": "30"
|
||||
"[src$=\"/Funk.png\"]": "31"
|
||||
"[src$=\"/Pagode.png\"]": "32"
|
||||
"[src$=\"/Hip-Hop.png\"]": "33"
|
||||
"[src$=\"/Rap.png\"]": "34"
|
||||
"[src$=\"/Rock.png\"]": "36"
|
||||
"[src$=\"/Hard-Rock.png\"]": "37"
|
||||
"[src$=\"/Blues.png\"]": "38"
|
||||
"[src$=\"/Dance.png\"]": "39"
|
||||
"[src$=\"/Dicografia.png\"]": "40"
|
||||
"[src$=\"/Erudita.png\"]": "41"
|
||||
"[src$=\"/Forro.png\"]": "42"
|
||||
"[src$=\"/Dubstep.png\"]": "43"
|
||||
"[src$=\"/Sertanejo.png\"]": "46"
|
||||
"[src$=\"/Samba.png\"]": "45"
|
||||
"[src$=\"/Outros.png\"]": "77"
|
||||
"[src$=\"/Reggae.png\"]": "76"
|
||||
"[src$=\"/Gospel.png\"]": "83"
|
||||
"[src$=\"/Game-OST.png\"]": "84"
|
||||
"[src$=\"/Musical.png\"]": "88"
|
||||
"[src$=\"/Guerra.png\"]": "86"
|
||||
"[src$=\"/Biografia.png\"]": "105"
|
||||
"[src$=\"/Esportes.png\"]": "99"
|
||||
"[src$=\"/Ficcao.png\"]": "103"
|
||||
"[src$=\"/Infantil.png\"]": "102"
|
||||
"[src$=\"/Nacionais.png\"]": "89"
|
||||
"[src$=\"/Policial.png\"]": "100"
|
||||
"[src$=\"/Religioso.png\"]": "98"
|
||||
"[src$=\"/Suspense.png\"]": "90"
|
||||
"[src$=\"/Western.png\"]": "91"
|
||||
"[src$=\"/Animacao.png\"]": "92"
|
||||
"[src$=\"/Classicos.png\"]": "93"
|
||||
"[src$=\"/Comedia.png\"]": "94"
|
||||
"[src$=\"/Documentario.png\"]": "95"
|
||||
"[src$=\"/Drama.png\"]": "96"
|
||||
"[src$=\"/Romance.png\"]": "97"
|
||||
"[src$=\"/Terror.png\"]": "101"
|
||||
"[src$=\"/Acao.png\"]": "104"
|
||||
"[src$=\"/Cartoon.png\"]": "24"
|
||||
"[src$=\"/Serieshd.png\"]": "19"
|
||||
"[src$=\"/Seriado.png\"]": "20"
|
||||
"[src$=\"/Aventura.png\"]": "87"
|
||||
"[src$=\"/Shows.png\"]": "65"
|
||||
"[src$=\"/Aberta.png\"]": "63"
|
||||
"[src$=\"/Esportes.png\"]": "62"
|
||||
"[src$=\"/Fechada.png\"]": "64"
|
||||
"[src$=\"/Videoaula.png\"]": "73"
|
||||
"[src$=\"/Guerra.png\"]": "85"
|
||||
"[src$=\"/Musical.png\"]": "81"
|
||||
"[src$=\"/Biografia.png\"]": "17"
|
||||
"[src$=\"/Esportes.png\"]": "16"
|
||||
"[src$=\"/Ficcao.png\"]": "15"
|
||||
"[src$=\"/Infantil.png\"]": "14"
|
||||
"[src$=\"/Nacionais.png\"]": "13"
|
||||
"[src$=\"/Policial.png\"]": "12"
|
||||
"[src$=\"/Religioso.png\"]": "11"
|
||||
"[src$=\"/Suspense.png\"]": "10"
|
||||
"[src$=\"/Western.png\"]": "9"
|
||||
"[src$=\"/Animacao.png\"]": "8"
|
||||
"[src$=\"/Classicos.png\"]": "7"
|
||||
"[src$=\"/Comedia.png\"]": "6"
|
||||
"[src$=\"/Documentario.png\"]": "5"
|
||||
"[src$=\"/Drama.png\"]": "4"
|
||||
"[src$=\"/Romance.png\"]": "3"
|
||||
"[src$=\"/Terror.png\"]": "2"
|
||||
"[src$=\"/Acao.png\"]": "1"
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-child(2) span.label-info
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.label-success i:contains(\"FREE\")": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -35,7 +35,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "/{{if .Keywords}}?s={{ .Keywords}}{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}?s={{ .Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: table tbody tr:has(td.torrents_small_type_data1)
|
||||
fields:
|
||||
|
@@ -90,7 +90,7 @@
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "thanks.php"
|
||||
path: thanks.php
|
||||
method: "post"
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
---
|
||||
---
|
||||
site: archetorrent
|
||||
name: ArcheTorrent
|
||||
description: "ArcheTorrent is a FRENCH Private Torrent Tracker"
|
||||
@@ -6,8 +6,39 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://archetorrent.com
|
||||
|
||||
- https://archetorrent.com/
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: filter_title
|
||||
type: checkbox
|
||||
label: Try to normalize releases names by moving year after the title
|
||||
default: false
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH : "FRENCH"
|
||||
MULTI.FRENCH: "MULTI.FRENCH"
|
||||
ENGLISH: "ENGLISH"
|
||||
MULTI.ENGLISH: "MULTI.ENGLISH"
|
||||
VOSTFR: "VOSTFR"
|
||||
MULTI.VOSTFR: "MULTI.VOSTFR"
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
default: false
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 18, cat: PC, desc: "Applications: PC"}
|
||||
@@ -109,11 +140,43 @@
|
||||
args: "Poster le: </b>(.*?)<br />"
|
||||
- name: dateparse
|
||||
args: "02-01-2006"
|
||||
title:
|
||||
|
||||
title_normal:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
title_filtered:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"]
|
||||
- name: replace
|
||||
args: [".", " "]
|
||||
- name: trim
|
||||
- name: re_replace
|
||||
args: ["(?i)\\s(mkv|avi|divx|xvid|mp4)$", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\s{2,5})", " "]
|
||||
- name: trim
|
||||
title_phase1:
|
||||
text: "{{if .Config.filter_title }}{{ .Result.title_filtered }}{{else}}{{ .Result.title_normal }}{{end}}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[\\.\\s\\[\\-][Mm][Uu][Ll][Tt][Ii][\\.\\s\\]\\-]", ".{{ .Config.multilanguage }}."]
|
||||
title_phase2:
|
||||
text: "{{if .Config.multilang }}{{ .Result.title_multilang }}{{else}}{{ .Result.title_phase1 }}{{end}}"
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[\\.\\s\\[\\-][Vv][Oo][Ss][Tt][Ff][Rr][\\.\\s\\]\\-]", ".ENGLISH."]
|
||||
title:
|
||||
text: "{{if .Config.vostfr }}{{ .Result.title_vostfr }}{{else}}{{ .Result.title_phase2 }}{{end}}"
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
|
@@ -89,7 +89,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents/
|
||||
- path: torrents/
|
||||
method: post
|
||||
followredirect: true
|
||||
inputs:
|
||||
|
110
src/Jackett.Common/Definitions/asiancinema.yml
Normal file
110
src/Jackett.Common/Definitions/asiancinema.yml
Normal file
@@ -0,0 +1,110 @@
|
||||
---
|
||||
site: asiancinema
|
||||
name: AsianCinema
|
||||
description: "Tracker Movies/TV/Music"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://asiancinema.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: form[action*="/login"] .text-red
|
||||
test:
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: ""
|
||||
tmdb: ""
|
||||
mal: ""
|
||||
sorting: created_at
|
||||
direction: desc
|
||||
qty: 100
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/category/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/category/.*?\\.(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
size:
|
||||
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\.]+)
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch
|
||||
- name: re_replace
|
||||
args: ["(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|hace|il y a|vor|преди)", "ago"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден)", "day"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
"i[data-original-title=\"Global FreeLeech\"]": "0" # Global Freeleech
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
|
||||
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
|
||||
"*": "1"
|
@@ -54,7 +54,7 @@
|
||||
- {id: Sports, cat: Audio/Audiobook, desc: "Sports"}
|
||||
- {id: Suspense, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: Thriller, cat: Audio/Audiobook, desc: "Thriller"}
|
||||
- {id: True, cat: Audio/Audiobook, desc: "True Crime"}
|
||||
- {id: "True", cat: Audio/Audiobook, desc: "True Crime"}
|
||||
- {id: Tutorial, cat: Audio/Audiobook, desc: "Tutorial"}
|
||||
- {id: Westerns, cat: Audio/Audiobook, desc: "Westerns"}
|
||||
- {id: Anthology, cat: Audio/Audiobook, desc: "Anthology"}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://abtorrents.me
|
||||
- https://abtorrents.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -59,11 +59,11 @@
|
||||
- selector: td.embedded:has(h2:contains("Oops"))
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
272
src/Jackett.Common/Definitions/audionews.yml
Normal file
272
src/Jackett.Common/Definitions/audionews.yml
Normal file
@@ -0,0 +1,272 @@
|
||||
---
|
||||
site: audionews
|
||||
name: AudioNews
|
||||
description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://audionews.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 106, cat: PC/Phone-Other, desc: "Mobile Apps"}
|
||||
- {id: 161, cat: PC/Phone-IOS, desc: "Mobile Apps iOS"}
|
||||
- {id: 160, cat: PC/Phone-Android, desc: "Mobile Apps Android"}
|
||||
- {id: 12, cat: PC, desc: "AUDIOAPPS"}
|
||||
- {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
|
||||
- {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
|
||||
- {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
|
||||
- {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
|
||||
- {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
|
||||
- {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
|
||||
- {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
|
||||
- {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
|
||||
- {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
|
||||
- {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
|
||||
- {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
|
||||
- {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
|
||||
- {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
|
||||
- {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
|
||||
- {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
|
||||
- {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
|
||||
- {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
|
||||
- {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
|
||||
- {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
|
||||
- {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
|
||||
- {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
|
||||
- {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
|
||||
- {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
|
||||
- {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
|
||||
- {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
|
||||
- {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
|
||||
- {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
|
||||
- {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
|
||||
- {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
|
||||
- {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
|
||||
- {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
|
||||
- {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
|
||||
- {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
|
||||
- {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
|
||||
- {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
|
||||
- {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
|
||||
- {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
|
||||
- {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
|
||||
- {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
|
||||
- {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
|
||||
- {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
|
||||
- {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
|
||||
- {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
|
||||
- {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
|
||||
- {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
|
||||
- {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
|
||||
- {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
|
||||
- {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
|
||||
- {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
|
||||
- {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
|
||||
- {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
|
||||
- {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
|
||||
- {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
|
||||
- {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
|
||||
- {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
|
||||
- {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
|
||||
- {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
|
||||
- {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
|
||||
- {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
|
||||
- {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
|
||||
- {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
|
||||
- {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
|
||||
- {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
|
||||
- {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
|
||||
- {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
|
||||
- {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
|
||||
- {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
|
||||
- {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
|
||||
- {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
|
||||
- {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
|
||||
- {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
|
||||
- {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
|
||||
- {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
|
||||
- {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
|
||||
- {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
|
||||
- {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
|
||||
- {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
|
||||
- {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
|
||||
- {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
|
||||
- {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
|
||||
- {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
|
||||
- {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
|
||||
- {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
|
||||
- {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
|
||||
- {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
|
||||
- {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
|
||||
- {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
|
||||
- {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
|
||||
- {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
|
||||
- {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
|
||||
- {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
|
||||
- {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
|
||||
- {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
|
||||
- {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
|
||||
- {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
|
||||
- {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
|
||||
- {id: 15, cat: PC, desc: "VSTi + FX"}
|
||||
- {id: 72, cat: PC, desc: "VSTi + FX FX"}
|
||||
- {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
|
||||
- {id: 18, cat: PC/Mac, desc: "MAC"}
|
||||
- {id: 186, cat: PC/Mac, desc: "MAC Apps"}
|
||||
- {id: 188, cat: PC/Mac, desc: "MAC FX"}
|
||||
- {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
|
||||
- {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
|
||||
- {id: 187, cat: PC/Mac, desc: "MAC Samples"}
|
||||
- {id: 19, cat: Other, desc: "MISC"}
|
||||
- {id: 185, cat: Other, desc: "MISC Utilities"}
|
||||
- {id: 84, cat: Books, desc: "SHEET MUSIC"}
|
||||
- {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
|
||||
- {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
|
||||
- {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
|
||||
- {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
|
||||
- {id: 20, cat: Books, desc: "LEARNING"}
|
||||
- {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
|
||||
- {id: 183, cat: Books, desc: "LEARNING ADSR"}
|
||||
- {id: 141, cat: Books, desc: "LEARNING Alfred"}
|
||||
- {id: 142, cat: Books, desc: "LEARNING Ask Video"}
|
||||
- {id: 27, cat: Books, desc: "LEARNING Books"}
|
||||
- {id: 143, cat: Books, desc: "LEARNING FaderPro"}
|
||||
- {id: 144, cat: Books, desc: "LEARNING Groove3"}
|
||||
- {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
|
||||
- {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
|
||||
- {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
|
||||
- {id: 146, cat: Books, desc: "LEARNING Lick Library"}
|
||||
- {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
|
||||
- {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
|
||||
- {id: 101, cat: Books, desc: "LEARNING Magazines"}
|
||||
- {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
|
||||
- {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
|
||||
- {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
|
||||
- {id: 194, cat: Books, desc: "LEARNING SkillShare"}
|
||||
- {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
|
||||
- {id: 151, cat: Books, desc: "LEARNING Total training"}
|
||||
- {id: 152, cat: Books, desc: "LEARNING TrueFire"}
|
||||
- {id: 182, cat: Books, desc: "LEARNING Udemy"}
|
||||
- {id: 28, cat: Books, desc: "LEARNING Video"}
|
||||
- {id: 153, cat: Books, desc: "LEARNING VTC"}
|
||||
- {id: 29, cat: Audio/Other, desc: "PRESETS"}
|
||||
- {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
|
||||
- {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
|
||||
- {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
|
||||
- {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
|
||||
- {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
|
||||
- {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
|
||||
- {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
|
||||
- {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
|
||||
- {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
|
||||
- {id: 21, cat: Other, desc: "UPDATE"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
"login_username": "{{ .Config.username }}"
|
||||
"login_password": "{{ .Config.password }}"
|
||||
autologin: 1
|
||||
login: "Log in"
|
||||
redirect: "/"
|
||||
error:
|
||||
- selector: table.error
|
||||
message:
|
||||
selector: table.error tr td div.msg
|
||||
test:
|
||||
path: /
|
||||
selector: li a[href^="./login.php?logout=1"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: tracker.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
|
||||
prev_allw: 1
|
||||
prev_a: 0
|
||||
prev_dla: 0
|
||||
prev_dlc: 0
|
||||
prev_dld: 0
|
||||
prev_dlw: 0
|
||||
prev_my: 0
|
||||
prev_new: 0
|
||||
prev_sd: 0
|
||||
prev_da: 1
|
||||
prev_dc: 0
|
||||
prev_df: 1
|
||||
prev_ds: 0
|
||||
pre_tor_type: 0
|
||||
prev_date_from: ""
|
||||
prev_date_to: ""
|
||||
prev_hide_rereg: 0
|
||||
o: 1
|
||||
s: 2
|
||||
df: 1
|
||||
da: 1
|
||||
nm: "{{ .Keywords }}"
|
||||
pn: ""
|
||||
submit: "Search"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a[href*="/dl.php?id="])
|
||||
dateheaders:
|
||||
selector: td[colspan="20"] > strong
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "01-02-2006"
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
details:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href*="/dl.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href*="/tracker.php?f="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
size:
|
||||
text: "0 B"
|
||||
size:
|
||||
optional: true
|
||||
selector: td:contains(\00a0GB)
|
||||
size:
|
||||
optional: true
|
||||
selector: td:contains(\00a0MB)
|
||||
size:
|
||||
optional: true
|
||||
selector: td:contains(\00a0kB)
|
||||
size:
|
||||
optional: true
|
||||
selector: td:contains(\00a0B)
|
||||
seeders:
|
||||
text: "0"
|
||||
seeders:
|
||||
optional: true
|
||||
selector: td[title="Seeders"]
|
||||
leechers:
|
||||
text: "0"
|
||||
leechers:
|
||||
optional: true
|
||||
selector: td[title="Leechers"]
|
||||
grabs:
|
||||
text: "0"
|
||||
grabs:
|
||||
optional: true
|
||||
selector: td[title^="Replies:"]
|
||||
downloadvolumefactor:
|
||||
text: "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://awesome-hd.me
|
||||
- https://awesome-hd.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -14,12 +14,18 @@
|
||||
- {id: 2, cat: TV/HD, desc: "TV-Shows"}
|
||||
|
||||
modes:
|
||||
searchstr: [q]
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
|
@@ -43,7 +43,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
site: bigtorrent
|
||||
name: BIGTorrent
|
||||
description: "ratio-free Hungarian tracker"
|
||||
description: "BIGTorrent is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -41,7 +41,7 @@
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -49,7 +49,7 @@
|
||||
sent: "yes"
|
||||
returnto: "/"
|
||||
error:
|
||||
- selector: table:contains("Login failed!")
|
||||
- selector: div.error
|
||||
test:
|
||||
path: index.php
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{if .Keywords}}{{ .Keywords }}{{else}} {{end}}"
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr:has(a[href^="browse.php?cat="])
|
||||
fields:
|
||||
|
@@ -57,16 +57,20 @@
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
|
@@ -60,10 +60,10 @@
|
||||
- selector: table:contains("Login failed!")
|
||||
- selector: table:contains("Wrong Code!")
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
method: get
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
|
@@ -57,11 +57,11 @@
|
||||
error:
|
||||
- selector: td.msg_info > font > b
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
method: post
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
|
167
src/Jackett.Common/Definitions/bitturk.yml
Normal file
167
src/Jackett.Common/Definitions/bitturk.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
site: bitturk
|
||||
name: BitTurk
|
||||
description: "BitTurk is a Turkish Private Torrent Tracker for HD MOVIES / TV / GENERAL. This Indexer is for English only."
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.bitturk.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 69, cat: Movies, desc: "BiTTuRK Altın"}
|
||||
- {id: 56, cat: Movies, desc: "BTRG"}
|
||||
- {id: 57, cat: Movies, desc: "Yerli Dizi"}
|
||||
- {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
|
||||
- {id: 63, cat: Movies, desc: "Türkçe Film"}
|
||||
- {id: 64, cat: Movies, desc: "Türk Filmi"}
|
||||
- {id: 66, cat: Movies/HD, desc: "x265"}
|
||||
- {id: 67, cat: XXX, desc: "XxX"}
|
||||
- {id: 68, cat: Movies, desc: "Dual (TR-~)"}
|
||||
- {id: 58, cat: Movies, desc: "Film"}
|
||||
- {id: 60, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 45, cat: Movies, desc: "Eğitim / Prog "}
|
||||
- {id: 1, cat: Movies, desc: "Filmler"}
|
||||
- {id: 14, cat: Movies/3D, desc: "3D Film"}
|
||||
- {id: 16, cat: Movies, desc: "Animasyon"}
|
||||
- {id: 17, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 31, cat: Movies, desc: "Belgesel"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "Bluray"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "BRRiP"}
|
||||
- {id: 34, cat: Movies, desc: "Çizgi Film"}
|
||||
- {id: 35, cat: Movies, desc: "D-Z0N3"}
|
||||
- {id: 36, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 37, cat: Movies, desc: "MP4"}
|
||||
- {id: 38, cat: Movies, desc: "Türk Filmi"}
|
||||
- {id: 39, cat: Movies, desc: "Türkçe BoX"}
|
||||
- {id: 40, cat: Movies, desc: "Türkçe Film"}
|
||||
- {id: 41, cat: Movies, desc: "ViP"}
|
||||
- {id: 42, cat: Movies/SD, desc: "XviD"}
|
||||
- {id: 43, cat: Movies/SD, desc: "XviD BoX"}
|
||||
- {id: 55, cat: Movies/WEBDL, desc: "WEB-DL"}
|
||||
- {id: 7, cat: Audio, desc: "Müzik"}
|
||||
- {id: 20, cat: Audio, desc: "Türkçe MüziK"}
|
||||
- {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
|
||||
- {id: 21, cat: Audio/Video, desc: "Video Klipler"}
|
||||
- {id: 2, cat: Console, desc: "Oyun"}
|
||||
- {id: 6, cat: PC, desc: "Program / Misc "}
|
||||
- {id: 47, cat: Other, desc: "Resimler"}
|
||||
- {id: 48, cat: TV, desc: "Televizyon"}
|
||||
- {id: 49, cat: TV/HD, desc: "Tv HD"}
|
||||
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
|
||||
- {id: 51, cat: TV, desc: "Yerli Dizi"}
|
||||
- {id: 44, cat: Books, desc: "E-BooK"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.<li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b><li>And set the <b>Language (Dil)</b> to <b>English</b><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</ol>"
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#loginbox_form
|
||||
submitpath: ajax/login.php
|
||||
inputs:
|
||||
action: "login"
|
||||
loginbox_membername: "{{ .Config.username }}"
|
||||
loginbox_password: "{{ .Config.password }}"
|
||||
loginbox_remember: 1
|
||||
loginbox_remember: "true"
|
||||
selectorinputs:
|
||||
securitytoken:
|
||||
selector: "script:contains(\"stKey: \")"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "stKey: \"(.+?)\","
|
||||
error:
|
||||
- selector: ":contains(\"-ERROR-\")"
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: a[href*="/?p=logout&"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||
inputs:
|
||||
p: "torrents"
|
||||
pid: "32"
|
||||
$raw: "{{range .Categories}}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
search_type: "name"
|
||||
searchin: "title"
|
||||
error:
|
||||
- selector: div.error:not(:contains("Gösterilecek sonuç bulunamadı."))
|
||||
rows:
|
||||
selector: table#torrents_table_classic tr:has(td.torrent_name)
|
||||
fields:
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
category:
|
||||
selector: div.category_image > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
details:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents&pid=10&action=download"]
|
||||
attribute: href
|
||||
date:
|
||||
optional: true
|
||||
# Uploaded 30-01-2019 15:02 by
|
||||
selector: td.torrent_name:not(:contains(" at "))
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
date:
|
||||
optional: true
|
||||
# Uploaded Friday at 05:11 by
|
||||
# Uploaded Today at 00:48 by
|
||||
# Uploaded Yesterday at 23:57 by
|
||||
selector: td.torrent_name:contains(" at ")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: replace
|
||||
args: [" at ", " "]
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
banner:
|
||||
selector: a[rel="fancybox"]
|
||||
optional: true
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/torrent_free.png\"]": "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/torrent_multiple_upload.png\"]": "2"
|
||||
"*": "1"
|
@@ -24,7 +24,7 @@
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -32,11 +32,11 @@
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
site: blutopia
|
||||
name: Blutopia
|
||||
description: "HD Tracker Movies/TV/FANRES"
|
||||
description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -20,7 +20,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -28,11 +28,11 @@
|
||||
error:
|
||||
- selector: form[action*="/login"] .text-red
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /filterTorrents
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -95,9 +95,9 @@
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
|
@@ -28,9 +28,16 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
# site returns just 15 results per page, attempt to fetch 100
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/1-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/2-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/3-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/4-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/5-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/6-1-0.html"
|
||||
- path: "list/{{if .Keywords}}{{.Keywords}}{{else}}movie{{end}}/7-1-0.html"
|
||||
rows:
|
||||
selector: .rs
|
||||
selector: .rs:has(a[href^="magnet:?xt"])
|
||||
fields:
|
||||
title:
|
||||
selector: .title
|
||||
|
@@ -1,74 +0,0 @@
|
||||
---
|
||||
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.unblocked.app/
|
||||
legacylinks:
|
||||
- https://btdb.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "Other"}
|
||||
|
||||
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:
|
||||
paths:
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/?sort=time{{else}}q/test/{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/2?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/3?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/4?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/5?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/6?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/7?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/8?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/9?sort=time{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}q/{{ .Keywords}}/10?sort=time{{else}}{{end}}"
|
||||
rows:
|
||||
selector: li[class$="item"]
|
||||
filters:
|
||||
- name: andmatch
|
||||
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
|
||||
size:
|
||||
selector: div[class$="info"] span:nth-of-type(1)
|
||||
files:
|
||||
selector: div[class$="info"] span:nth-of-type(2)
|
||||
date:
|
||||
selector: div[class$="info"] span:nth-of-type(3)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05"
|
||||
grabs:
|
||||
selector: div[class$="info"] span:nth-of-type(4)
|
||||
seeders:
|
||||
selector: div[class$="info"] span:nth-of-type(4)
|
||||
leechers:
|
||||
selector: div[class$="info"] span:nth-of-type(4)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -39,7 +39,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /takelogin__akcja.php
|
||||
path: takelogin__akcja.php
|
||||
method: post
|
||||
inputs:
|
||||
username_dupa: "{{ .Config.username }}"
|
||||
@@ -49,11 +49,11 @@
|
||||
- selector: td.embedded:has(h2:contains("Error"))aD
|
||||
test:
|
||||
selector: a[href^="logout.php"]
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
@@ -86,7 +86,7 @@
|
||||
- name: append
|
||||
args: "Language: polish\n<br>"
|
||||
- name: prepend
|
||||
args: {{ .Result.description }}
|
||||
args: "{{ .Result.description }}"
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="http://www.imdb.com/title/tt"]
|
||||
|
78
src/Jackett.Common/Definitions/btkitty.yml
Normal file
78
src/Jackett.Common/Definitions/btkitty.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
site: btkitty
|
||||
name: BTKitty
|
||||
description: "BTKITTY is a Public BitTorrent DHT search engine."
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- http://btkitty.pet/
|
||||
legacylinks:
|
||||
- https://cnbtkitty.org/
|
||||
- http://cnbtkitty.org/
|
||||
- https://cnbtkitty.com/
|
||||
- http://cnbtkitty.com/
|
||||
- https://cnbtkitty.me/
|
||||
- http://cnbtkitty.me/
|
||||
- http://cnbtkitty.ws/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info
|
||||
type: info
|
||||
default: BTKitty does not use categories. In your software Indexer settings, set the category to 100001.
|
||||
|
||||
download:
|
||||
selector: a[href^="magnet:?"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
method: post
|
||||
followredirect: true
|
||||
inputs:
|
||||
keyword: "{{if .Keywords }}{{.Keywords}}{{else}}test{{end}}"
|
||||
hidden: "true"
|
||||
rows:
|
||||
selector: dl.list-con
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: dt a
|
||||
category:
|
||||
text: "1"
|
||||
details:
|
||||
selector: dt a
|
||||
attribute: href
|
||||
download:
|
||||
selector: dt a
|
||||
attribute: href
|
||||
size:
|
||||
selector: dd span:nth-of-type(4) b
|
||||
files:
|
||||
selector: dd span:nth-of-type(5) b
|
||||
date:
|
||||
selector: dd span:nth-of-type(3) b
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02"
|
||||
grabs:
|
||||
selector: dd span:nth-of-type(7) b
|
||||
seeders:
|
||||
text: "1"
|
||||
leechers:
|
||||
text: "1"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -87,7 +87,7 @@
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /?p=home&pid=1
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#loginbox_form
|
||||
submitpath: /ajax/login.php
|
||||
@@ -105,7 +105,7 @@
|
||||
error:
|
||||
- selector: ":contains(\"-ERROR-\")"
|
||||
test:
|
||||
path: /?p=torrents&pid=32
|
||||
path: ?p=torrents&pid=32
|
||||
selector: a#logout
|
||||
|
||||
search:
|
||||
|
@@ -19,7 +19,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -27,11 +27,11 @@
|
||||
error:
|
||||
- selector: table.main:contains("Login Failed!")
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /filterTorrents
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -94,9 +94,9 @@
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
|
128
src/Jackett.Common/Definitions/cartoonchaos.yml
Normal file
128
src/Jackett.Common/Definitions/cartoonchaos.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
site: cartoonchaos
|
||||
name: CartoonChaos
|
||||
description: "CartoonChaos (CC) is a Private Torrent Tracker for ANIMATED MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.cartoonchaos.org/
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info_results
|
||||
type: info
|
||||
label: "Search results"
|
||||
default: "For best results, increase the torrents number in your profile to 100.<br />Default is 15."
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 30, cat: TV, desc: "Complete Sets"}
|
||||
- {id: 15, cat: TV, desc: "Educational"}
|
||||
- {id: 16, cat: TV, desc: "Kids"}
|
||||
- {id: 17, cat: TV, desc: "Mature Cartoons"}
|
||||
- {id: 41, cat: TV, desc: "Shorts"}
|
||||
- {id: 20, cat: TV/Anime, desc: "Anime Movies"}
|
||||
- {id: 21, cat: TV/Anime, desc: "Anime Series"}
|
||||
- {id: 26, cat: Movies, desc: "Animated Movies"}
|
||||
- {id: 23, cat: Audio, desc: "Sound Tracks"}
|
||||
- {id: 24, cat: Audio, desc: "Theme Tunes"}
|
||||
- {id: 43, cat: Audio/Other, desc: "Misc Audio"}
|
||||
- {id: 14, cat: TV, desc: "Banned"}
|
||||
- {id: 29, cat: TV, desc: "Public Domain"}
|
||||
- {id: 42, cat: TV/FOREIGN, desc: "Foreign Language"}
|
||||
- {id: 28, cat: TV, desc: "Animated Adverts"}
|
||||
- {id: 45, cat: TV/Documentary, desc: "Documentaries"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form[action^="index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: tr td span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://www.cartoonchaos.org/index.php?page=torrents&search=transformers&category=30;21;20;26;15;16;17&options=0&active=0
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
|
||||
category: "{{if .Categories}}{{range .Categories}}{{.}};{{end}}{{else}}0{{end}}"
|
||||
options: 0
|
||||
active: 0
|
||||
|
||||
rows:
|
||||
selector: table.lista tr td table.lista tr:has(a[href^="index.php?page=torrent-details"])
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
download:
|
||||
selector: td a[href^="download.php"]
|
||||
attribute: href
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href*="http://www.imdb.com/title/"]
|
||||
attribute: href
|
||||
filters:
|
||||
# http://anonym.to?javascript:popdetails('http://www.imdb.com/title/tt0086817');
|
||||
- name: replace
|
||||
args: [" http://anonym.to?javascript:popdetails('", ""]
|
||||
- name: replace
|
||||
args: ["');", ""]
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
# two flavours of dates
|
||||
date:
|
||||
# Yesterday at 10:03:30 PM
|
||||
selector: td:nth-child(5):contains("day")
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[ ]at|[\\s+]|[//\xa0],\\/g", " "]
|
||||
date:
|
||||
# February 09, 2019, 06:35:08 AM
|
||||
selector: td:nth-child(5):not(:contains("day"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
|
||||
- name: dateparse
|
||||
args: "January 02 2006 03:04:05 PM"
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="gold/gold.gif"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
339
src/Jackett.Common/Definitions/casstudiotv.yml
Normal file
339
src/Jackett.Common/Definitions/casstudiotv.yml
Normal file
@@ -0,0 +1,339 @@
|
||||
---
|
||||
site: casstudiotv
|
||||
name: CasStudioTV
|
||||
description: "CasStudioTV is a RUSSIAN Private Torrent Tracker for TV"
|
||||
language: ru
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://casstudio.tv/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 259, cat: TV, desc: "Сериалы (TV Series)"}
|
||||
- {id: 56, cat: TV, desc: "Зарубежные сериалы (Foreign series)"}
|
||||
- {id: 310, cat: TV, desc: "9-1-1"}
|
||||
- {id: 246, cat: TV, desc: "11.22.63"}
|
||||
- {id: 158, cat: TV, desc: "4400 / The 4400"}
|
||||
- {id: 86, cat: TV, desc: "12 Обезьян / 12 Monkeys"}
|
||||
- {id: 120, cat: TV, desc: "Агенты Щ.И.Т. / Agents of S.H.I.E.L.D."}
|
||||
- {id: 72, cat: TV, desc: "Агент Картер / Agent Carter"}
|
||||
- {id: 103, cat: TV, desc: "Ад На Колёсах / Hell On Wheels"}
|
||||
- {id: 110, cat: TV, desc: "Американская семейка / Modern Family"}
|
||||
- {id: 62, cat: TV, desc: "Американцы / The Americans"}
|
||||
- {id: 70, cat: TV, desc: "Анатомия страсти / Анатомия Грей / Grey's Anatomy"}
|
||||
- {id: 210, cat: TV, desc: "База Куантико / Quantico"}
|
||||
- {id: 305, cat: TV, desc: "Беглецы / Runaways"}
|
||||
- {id: 122, cat: TV, desc: "Безумцы / Mad Men"}
|
||||
- {id: 134, cat: TV, desc: "Белый воротничок / White Collar"}
|
||||
- {id: 281, cat: TV, desc: "Барыги / Narcos"}
|
||||
- {id: 239, cat: TV, desc: "Баскетс / Baskets"}
|
||||
- {id: 155, cat: TV, desc: "Бешеные псы / Mad Dogs"}
|
||||
- {id: 243, cat: TV, desc: "Библиотекари / The Librarians"}
|
||||
- {id: 154, cat: TV, desc: "Блудливая Калифорния / Californication"}
|
||||
- {id: 208, cat: TV, desc: "Бойтесь ходячих мертвецов / Fear the Walking Dead"}
|
||||
- {id: 150, cat: TV, desc: "Больница Никербокер / The Knick"}
|
||||
- {id: 119, cat: TV, desc: "Бывает и хуже / The Middle"}
|
||||
- {id: 87, cat: TV, desc: "В поле зрения / Person of Interest"}
|
||||
- {id: 219, cat: TV, desc: "В пустыне смерти / Into the Badlands"}
|
||||
- {id: 118, cat: TV, desc: "Веб терапия / Web Therapy"}
|
||||
- {id: 123, cat: TV, desc: "Ведьмы Ист-Энда / Witches of East End"}
|
||||
- {id: 309, cat: TV, desc: "Видоизмененный углерод / Altered Carbon"}
|
||||
- {id: 241, cat: TV, desc: "Винил / Vinyl"}
|
||||
- {id: 91, cat: TV, desc: "Викинги / Vikings"}
|
||||
- {id: 172, cat: TV, desc: "Вице-Президент / Veep"}
|
||||
- {id: 204, cat: TV, desc: "Власть в ночном городе / Power"}
|
||||
- {id: 228, cat: TV, desc: "Волшебники / The Magicians"}
|
||||
- {id: 220, cat: TV, desc: "Восприятие / Perception"}
|
||||
- {id: 254, cat: TV, desc: "Восстание / Rebellion"}
|
||||
- {id: 248, cat: TV, desc: "Вместе / Togetherness"}
|
||||
- {id: 192, cat: TV, desc: "Водолей / Aquarius"}
|
||||
- {id: 65, cat: TV, desc: "Возмездие / Revenge"}
|
||||
- {id: 121, cat: TV, desc: "Все Ненавидят Криса / Everybody Hates Chris"}
|
||||
- {id: 166, cat: TV, desc: "Ганнибал / Hannibal"}
|
||||
- {id: 211, cat: TV, desc: "Герои: Возрождение / Heroes Reborn"}
|
||||
- {id: 293, cat: TV, desc: "Голубая кровь / Blue Bloods"}
|
||||
- {id: 145, cat: TV, desc: "Город Хищниц / Cougar Town"}
|
||||
- {id: 61, cat: TV, desc: "Готэм / Gotham"}
|
||||
- {id: 117, cat: TV, desc: "Гримм / Grimm"}
|
||||
- {id: 108, cat: TV, desc: "Две девицы на мели / 2 Broke Girls"}
|
||||
- {id: 66, cat: TV, desc: "Девочки / Girls"}
|
||||
- {id: 271, cat: TV, desc: "Девушка по вызову / The Girlfriend Experience"}
|
||||
- {id: 176, cat: TV, desc: "Декстер / Dexter"}
|
||||
- {id: 232, cat: TV, desc: "Десница Божья / Hand of God"}
|
||||
- {id: 307, cat: TV, desc: "Династия / Dynasty"}
|
||||
- {id: 102, cat: TV, desc: "Дневники вампира / The Vampire Diaries"}
|
||||
- {id: 229, cat: TV, desc: "Джессика Джонс / Jessica Jones"}
|
||||
- {id: 282, cat: TV, desc: "Дорожная команда / Roadies"}
|
||||
- {id: 205, cat: TV, desc: "До смерти красива / Drop Dead Diva"}
|
||||
- {id: 104, cat: TV, desc: "Древние / The Originals"}
|
||||
- {id: 278, cat: TV, desc: "Загадочные события / Stranger Things"}
|
||||
- {id: 182, cat: TV, desc: "Задержка в развитии / Arrested Development"}
|
||||
- {id: 201, cat: TV, desc: "За пределами / Выжившая / Род человеческий / Extant"}
|
||||
- {id: 301, cat: TV, desc: "Защитники / The Defenders"}
|
||||
- {id: 314, cat: TV, desc: "Звёздный путь / Star Trek"}
|
||||
- {id: 167, cat: TV, desc: "Зов крови / Потерянная / Фейри / Lost Girl"}
|
||||
- {id: 116, cat: TV, desc: "Зовите меня Фитц / Call Me Fitz"}
|
||||
- {id: 74, cat: TV, desc: "Империя / Empire"}
|
||||
- {id: 75, cat: TV, desc: "Как избежать наказания за убийство / How to Get Away with Murder"}
|
||||
- {id: 203, cat: TV, desc: "Как бы счастье / Happyish"}
|
||||
- {id: 141, cat: TV, desc: "Как Я Встретил Вашу Маму / How I Met Your Mother"}
|
||||
- {id: 277, cat: TV, desc: "Карантин / Containment"}
|
||||
- {id: 306, cat: TV, desc: "Каратель / The Punisher"}
|
||||
- {id: 174, cat: TV, desc: "Карточный домик / House of Cards"}
|
||||
- {id: 63, cat: TV, desc: "Касл / Castle"}
|
||||
- {id: 285, cat: TV, desc: "Квантовый скачок / Quantum Leap"}
|
||||
- {id: 169, cat: TV, desc: "Кей и Пил / Key and Peele"}
|
||||
- {id: 195, cat: TV, desc: "Киллджойс / Killjoys"}
|
||||
- {id: 222, cat: TV, desc: "Клуб жен астронавтов / The Astronaut Wives Club"}
|
||||
- {id: 197, cat: TV, desc: "Коварные горничные / Devious Maids"}
|
||||
- {id: 230, cat: TV, desc: "Колония / Colony"}
|
||||
- {id: 170, cat: TV, desc: "Континуум / Continuum"}
|
||||
- {id: 233, cat: TV, desc: "Конец детства / Childhood's End"}
|
||||
- {id: 147, cat: TV, desc: "Копы-новобранцы / Rookie Blue"}
|
||||
- {id: 291, cat: TV, desc: "Королева Юга / Queen of the South"}
|
||||
- {id: 193, cat: TV, desc: "Красавица и чудовище / Beauty and the Beast"}
|
||||
- {id: 132, cat: TV, desc: "Крах / The Fall"}
|
||||
- {id: 146, cat: TV, desc: "Красотки в Кливленде / Hot in Cleveland"}
|
||||
- {id: 171, cat: TV, desc: "Красавцы / Антураж / Entourage"}
|
||||
- {id: 207, cat: TV, desc: "Кремниевая долина / Silicon Valley"}
|
||||
- {id: 238, cat: TV, desc: "Легенды завтрашнего дня / Legends of Tomorrow"}
|
||||
- {id: 300, cat: TV, desc: "Легион / Legion"}
|
||||
- {id: 294, cat: TV, desc: "Лемони Сникет: 33 несчастья / A Series of Unfortunate Events"}
|
||||
- {id: 130, cat: TV, desc: "Лиллехаммер / Lilyhammer"}
|
||||
- {id: 276, cat: TV, desc: "Любовницы / Mistresses US"}
|
||||
- {id: 198, cat: TV, desc: "Люди / Humans"}
|
||||
- {id: 165, cat: TV, desc: "Лютер / Luther"}
|
||||
- {id: 247, cat: TV, desc: "Люцифер / Lucifer"}
|
||||
- {id: 313, cat: TV, desc: "МакГайвер / MacGyver"}
|
||||
- {id: 127, cat: TV, desc: "Майк и Молли / Mike & Molly"}
|
||||
- {id: 156, cat: TV, desc: "Мастера Секса / Masters of Sex"}
|
||||
- {id: 245, cat: TV, desc: "Медики Чикаго / Chicago Med"}
|
||||
- {id: 180, cat: TV, desc: "Миллеры в разводе / The Millers"}
|
||||
- {id: 244, cat: TV, desc: "Миллиарды / Billions"}
|
||||
- {id: 234, cat: TV, desc: "Мистер Робинсон / Mr. Robinson"}
|
||||
- {id: 200, cat: TV, desc: "Мистер робот / Mr. Robot"}
|
||||
- {id: 173, cat: TV, desc: "Мост / Broen / Bron"}
|
||||
- {id: 126, cat: TV, desc: "Мотель Бейтс / Bates Motel"}
|
||||
- {id: 231, cat: TV, desc: "Моцарт в джунглях / Mozart in the Jungle"}
|
||||
- {id: 69, cat: TV, desc: "Мушкетеры / The Musketeers"}
|
||||
- {id: 76, cat: TV, desc: "Мыслить как преступник / Criminal Minds"}
|
||||
- {id: 202, cat: TV, desc: "На грани / The Brink"}
|
||||
- {id: 175, cat: TV, desc: "Налёт / Braquo"}
|
||||
- {id: 125, cat: TV, desc: "Настоящая кровь / True Blood"}
|
||||
- {id: 152, cat: TV, desc: "Настоящий детектив / True Detective"}
|
||||
- {id: 79, cat: TV, desc: "Не те парни / The Wrong Mans"}
|
||||
- {id: 164, cat: TV, desc: "Нэшвилл / Nashville"}
|
||||
- {id: 58, cat: TV, desc: "Обитель лжи / House of Lies"}
|
||||
- {id: 137, cat: TV, desc: "Оборотень / Teen Wolf"}
|
||||
- {id: 303, cat: TV, desc: "Одаренные / The Gifted"}
|
||||
- {id: 92, cat: TV, desc: "Однажды в сказке / Once Upon A Time"}
|
||||
- {id: 279, cat: TV, desc: "Однажды ночью / The Night Of"}
|
||||
- {id: 275, cat: TV, desc: "Оранжевый - хит сезона / Orange is the New Black"}
|
||||
- {id: 304, cat: TV, desc: "Орвилл / The Orville"}
|
||||
- {id: 212, cat: TV, desc: "Оставленные / The Leftovers"}
|
||||
- {id: 139, cat: TV, desc: "Острые козырьки / Peaky Blinders"}
|
||||
- {id: 163, cat: TV, desc: "Отчаянные домохозяйки / Desperate Housewives"}
|
||||
- {id: 138, cat: TV, desc: "Отбросы / Misfits"}
|
||||
- {id: 80, cat: TV, desc: "Пересекающиеся линии / Пересекая черту / Crossing Lines"}
|
||||
- {id: 218, cat: TV, desc: "Плоть и кости / Flesh and Bone"}
|
||||
- {id: 99, cat: TV, desc: "Под куполом / Under The Dome"}
|
||||
- {id: 149, cat: TV, desc: "Подпольная Империя / Boardwalk Empire"}
|
||||
- {id: 78, cat: TV, desc: "Помнить все / Незабываемое / Unforgettable"}
|
||||
- {id: 272, cat: TV, desc: "Поворот / TURN"}
|
||||
- {id: 90, cat: TV, desc: "Пожарные Чикаго / Chicago Fire"}
|
||||
- {id: 236, cat: TV, desc: "Полицейские на велосипедах / Pacific Blue"}
|
||||
- {id: 144, cat: TV, desc: "Полиция Гавайев / Hawaii Five-0"}
|
||||
- {id: 77, cat: TV, desc: "Полиция Чикаго / Chicago PD"}
|
||||
- {id: 162, cat: TV, desc: "Последователи / The Following"}
|
||||
- {id: 287, cat: TV, desc: "Приговор / Conviction"}
|
||||
- {id: 135, cat: TV, desc: "ПригорАД / Suburgatory"}
|
||||
- {id: 274, cat: TV, desc: "Проповедник / Preacher"}
|
||||
- {id: 113, cat: TV, desc: "Просветленная / Enlightened"}
|
||||
- {id: 235, cat: TV, desc: "Пространство / The Expanse"}
|
||||
- {id: 290, cat: TV, desc: "Радиоволна / Frequency"}
|
||||
- {id: 112, cat: TV, desc: "Революция / Revolution"}
|
||||
- {id: 83, cat: TV, desc: "Родина / Homeland"}
|
||||
- {id: 128, cat: TV, desc: "Рэй Донован / Ray Donovan"}
|
||||
- {id: 136, cat: TV, desc: "Риццоли и Айлc / Rizzoli & Isles"}
|
||||
- {id: 160, cat: TV, desc: "Рухнувшие Небеса / Falling Skies"}
|
||||
- {id: 199, cat: TV, desc: "Салем / Salem"}
|
||||
- {id: 111, cat: TV, desc: "Сверхъестественное / Supernatural"}
|
||||
- {id: 157, cat: TV, desc: "Секретные материалы / X-Files"}
|
||||
- {id: 267, cat: TV, desc: "Семья / The Family"}
|
||||
- {id: 311, cat: TV, desc: "Сирена / Siren"}
|
||||
- {id: 64, cat: TV, desc: "Скандал / Scandal"}
|
||||
- {id: 213, cat: TV, desc: "Слепое пятно / Blindspot"}
|
||||
- {id: 129, cat: TV, desc: "Служба новостей / Новости / The Newsroom"}
|
||||
- {id: 286, cat: TV, desc: "Смертельное Оружие / Lethal Weapon"}
|
||||
- {id: 93, cat: TV, desc: "Сообщество / Community"}
|
||||
- {id: 179, cat: TV, desc: "Сопрано / The Sopranos"}
|
||||
- {id: 194, cat: TV, desc: "Сорвиголова / Daredevil"}
|
||||
- {id: 109, cat: TV, desc: "Сотня / 100 / The Hundred"}
|
||||
- {id: 153, cat: TV, desc: "Спартак / Spartacus"}
|
||||
- {id: 266, cat: TV, desc: "Страна чудес / Wonderland"}
|
||||
- {id: 191, cat: TV, desc: "Страшные сказки / Penny Dreadful"}
|
||||
- {id: 131, cat: TV, desc: "Стрела / Arrow"}
|
||||
- {id: 190, cat: TV, desc: "Супергёрл / Supergirl"}
|
||||
- {id: 82, cat: TV, desc: "Сыны Анархии / Sons of Anarchy"}
|
||||
- {id: 295, cat: TV, desc: "Табу / Taboo"}
|
||||
- {id: 273, cat: TV, desc: "Тайны Лауры / The Mysteries of Laura"}
|
||||
- {id: 178, cat: TV, desc: "Твин Пикс / Twin Peaks"}
|
||||
- {id: 107, cat: TV, desc: "Теория Большого Взрыва / The Big Bang Theory"}
|
||||
- {id: 196, cat: TV, desc: "Тёмная материя / Dark Matter"}
|
||||
- {id: 280, cat: TV, desc: "Тик / The Tick"}
|
||||
- {id: 181, cat: TV, desc: "Тугая струна / Wire in the Blood"}
|
||||
- {id: 95, cat: TV, desc: "Убийство / The Killing"}
|
||||
- {id: 81, cat: TV, desc: "Убить скуку / Bored to Death"}
|
||||
- {id: 98, cat: TV, desc: "Уилфред / Wilfred"}
|
||||
- {id: 187, cat: TV, desc: "Уэйуорд Пайнс / Wayward Pines"}
|
||||
- {id: 142, cat: TV, desc: "Флэш / Flash"}
|
||||
- {id: 168, cat: TV, desc: "Форс-мажоры / Костюмы / Suits"}
|
||||
- {id: 59, cat: TV, desc: "Ходячие мертвецы / The Walking Dead"}
|
||||
- {id: 308, cat: TV, desc: "Хороший доктор / The Good Doctor"}
|
||||
- {id: 143, cat: TV, desc: "Хранилище 13 / Warehouse 13"}
|
||||
- {id: 237, cat: TV, desc: "Хроники Шаннары / The Shannara Chronicles"}
|
||||
- {id: 94, cat: TV, desc: "Хэйвен / Haven"}
|
||||
- {id: 124, cat: TV, desc: "Царство / Reign"}
|
||||
- {id: 268, cat: TV, desc: "Час пик / Rush Hour"}
|
||||
- {id: 115, cat: TV, desc: "Чёрное зеркало / Black Mirror"}
|
||||
- {id: 73, cat: TV, desc: "Черные Паруса / Black Sails"}
|
||||
- {id: 177, cat: TV, desc: "Черный список / The Blacklist"}
|
||||
- {id: 189, cat: TV, desc: "Шёпот / The Whispers"}
|
||||
- {id: 106, cat: TV, desc: "Шпионка / Alias"}
|
||||
- {id: 85, cat: TV, desc: "Штамм / The Strain"}
|
||||
- {id: 288, cat: TV, desc: "Экзорцист / The Exorcist"}
|
||||
- {id: 105, cat: TV, desc: "Элементарно / Elementary"}
|
||||
- {id: 217, cat: TV, desc: "Эш против Зловещих мертвецов / Ash vs Evil Dead"}
|
||||
- {id: 270, cat: TV, desc: "яЗомби / iZombie"}
|
||||
- {id: 53, cat: TV, desc: "Другие сериалы (Other TV series)"}
|
||||
- {id: 240, cat: TV, desc: "Клим (Klim)"}
|
||||
- {id: 283, cat: TV, desc: "Amazon"}
|
||||
- {id: 284, cat: TV, desc: "Amazon English"}
|
||||
- {id: 88, cat: TV, desc: "Мультсериалы (Cartoons)"}
|
||||
- {id: 101, cat: TV, desc: "Южный Парк / South Park"}
|
||||
- {id: 89, cat: TV, desc: "Спецагент Арчер / Archer"}
|
||||
- {id: 225, cat: TV, desc: "Стендап / Stand Up"}
|
||||
- {id: 54, cat: TV, desc: "Особый раздел (Special section)"}
|
||||
- {id: 100, cat: TV, desc: "Короткометражки (Short films)"}
|
||||
- {id: 60, cat: TV, desc: "Документальные (Documentaries)"}
|
||||
- {id: 159, cat: TV, desc: "Разное (Misc.)"}
|
||||
- {id: 261, cat: TV, desc: "Спорт (Sport)"}
|
||||
- {id: 262, cat: TV, desc: "Автомотоспорт (Autosport)"}
|
||||
- {id: 263, cat: TV, desc: "Формула 1 / Formula 1"}
|
||||
- {id: 264, cat: TV, desc: "MotoGP / SBK"}
|
||||
- {id: 265, cat: TV, desc: "V8 supercars"}
|
||||
- {id: 31, cat: TV, desc: "Пользователи (Users)"}
|
||||
- {id: 188, cat: TV, desc: "Поздравления (Congratulations)"}
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: ucp.php?mode=login
|
||||
method: form
|
||||
form: form#login
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: fieldset:has(div.error)
|
||||
test:
|
||||
path: /
|
||||
selector: :has(a[href^="./ucp.php?mode=logout&sid="])
|
||||
|
||||
# download:
|
||||
# selector: a[href^="./download/file.php?id="]:not(img)
|
||||
|
||||
search:
|
||||
paths:
|
||||
#https://casstudio.tv/search.php?tracker_search=torrent&keywords=star&terms=all&author=&sc=1&sf=titleonly&sr=topics&sk=t&sd=d&st=0&ch=300&t=0&submit=Search
|
||||
- path: search.php
|
||||
inputs:
|
||||
tracker_search: "torrent"
|
||||
keywords: "{{if .Keywords }}{{.Keywords}}{{else}}star{{end}}"
|
||||
terms: "all"
|
||||
author: ""
|
||||
sc: "1"
|
||||
sf: "titleonly"
|
||||
sr: "topics"
|
||||
sk: "t"
|
||||
sd: "d"
|
||||
st: "0"
|
||||
ch: "300"
|
||||
t: "0"
|
||||
submit: "Search"
|
||||
|
||||
rows:
|
||||
selector: tr.row
|
||||
fields:
|
||||
title:
|
||||
selector: a.topictitle
|
||||
details:
|
||||
selector: a.topictitle
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="./viewforum.php?f="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
download:
|
||||
selector: a[href^="./download/file.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: a[href^="./viewforum.php?f="] + b
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
seeders:
|
||||
selector: td.forumtopics span.seed
|
||||
leechers:
|
||||
selector: td.forumtopics span.leech
|
||||
grabs:
|
||||
selector: td.forumposts span.complet
|
||||
date:
|
||||
# 12 янв 2019, 11:26
|
||||
selector: td.forumdetails span.forum-descriptions
|
||||
filters:
|
||||
# extract the date
|
||||
- name: regexp
|
||||
args: "(\\d{2} \\D{3} \\d{4}, \\d{2}:\\d{2})"
|
||||
# replace month abbreviations
|
||||
- name: replace
|
||||
args: ["янв", "Jan"]
|
||||
- name: replace
|
||||
args: ["фев", "Feb"]
|
||||
- name: replace
|
||||
args: ["мар", "Mar"]
|
||||
- name: replace
|
||||
args: ["апр", "Apr"]
|
||||
- name: replace
|
||||
args: ["май", "May"]
|
||||
- name: replace
|
||||
args: ["июн", "Jun"]
|
||||
- name: replace
|
||||
args: ["июл", "Jul"]
|
||||
- name: replace
|
||||
args: ["авг", "Aug"]
|
||||
- name: replace
|
||||
args: ["сен", "Sep"]
|
||||
- name: replace
|
||||
args: ["окт", "Oct"]
|
||||
- name: replace
|
||||
args: ["ноя", "Nov"]
|
||||
- name: replace
|
||||
args: ["дек", "Dec"]
|
||||
- name: dateparse
|
||||
args: "02 Jan 06, 15:04"
|
||||
downloadvolumefactor:
|
||||
text: "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -47,7 +47,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
@@ -56,11 +56,11 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("登录失败"))
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
method: get
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
|
@@ -1,12 +1,12 @@
|
||||
---
|
||||
site: chdbits
|
||||
name: CHDBits
|
||||
description: "A general tracker"
|
||||
description: "CHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://chdbits.co
|
||||
- https://chdbits.co/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -25,7 +25,7 @@
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -33,10 +33,10 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
ratio:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
selector: table#info_block
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
- path: torrents.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
|
@@ -9,7 +9,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.cinematik.net
|
||||
- https://www.cinematik.net/
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
|
@@ -34,7 +34,7 @@
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{if .Keywords}}\"{{.Keywords}}\"{{else}}{{end}}"
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a[href^="torrents.php?cat="])
|
||||
fields:
|
||||
|
@@ -7,16 +7,14 @@
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.cpasbien.blue/
|
||||
- https://www.cpasbiens.bz/
|
||||
legacylinks:
|
||||
- http://www.cpasbiens.cc/
|
||||
- http://www.cpabien.cm/
|
||||
- http://cpabien.cm/
|
||||
- http://cpasbiens1.com/
|
||||
- http://cpabien.mx/
|
||||
- https://www.cpabien.bz/
|
||||
- http://www.cpabien.bz/
|
||||
- http://www.cpabien.cx/
|
||||
- http://cpabien.org/
|
||||
- http://cpabien.cc/
|
||||
- http://cpabien.co/
|
||||
@@ -26,9 +24,16 @@
|
||||
- https://ww1.cpabien.io/
|
||||
- https://wvw.cpabien.cm/
|
||||
- https://www.cpabien.io/
|
||||
- https://www.cpabien.cx/
|
||||
- https://www.cpabien9.net/
|
||||
- https://wwv.cpabien.cm/
|
||||
- http://www.cpabien.cx/
|
||||
- https://www.cpasbien.blue/
|
||||
- https://www.cpabien.cx/
|
||||
- https://www.cpasbien.re/
|
||||
- http://www.cpasbien.io/
|
||||
- https://www.cpabien.bz/
|
||||
- https://www.cpabien.link/
|
||||
- https://www.cpasbiens.cz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -46,9 +51,9 @@
|
||||
attribute: href
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}recherche/{{ .Keywords }}{{else}}derniers/{{end}}"
|
||||
- path: "{{if .Keywords}}recherche/{{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: table.table-corps tbody tr td
|
||||
selector: div#gauche > table > tbody > tr:has(a)
|
||||
fields:
|
||||
site_date:
|
||||
selector: a
|
||||
|
96
src/Jackett.Common/Definitions/cpasbienclone.yml
Normal file
96
src/Jackett.Common/Definitions/cpasbienclone.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
site: cpasbienclone
|
||||
name: cpasbien clone
|
||||
description: "cpasbien clone is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-fr
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://cpasbiens.cm/
|
||||
legacylinks:
|
||||
- https://www1.cpasbiens.ws/
|
||||
- https://www2.cpasbiens.ws/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: films, cat: Movies, desc: "Movies"}
|
||||
- {id: series, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selector: div#btn-download a
|
||||
attribute: href
|
||||
search:
|
||||
paths:
|
||||
- path: "{{if .Keywords}}recherche/{{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: div#gauche > table > tbody > tr:has(a)
|
||||
fields:
|
||||
site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# date is at the end of the title, so we get it and name it site_date
|
||||
- name: regexp
|
||||
args: "(\\w+)$"
|
||||
title:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result.site_date
|
||||
- name: replace
|
||||
args: ["FRENCH", "{{ .Result.site_date }} FRENCH"]
|
||||
- name: replace
|
||||
args: ["TRUEFRENCH", "{{ .Result.site_date }} TRUEFRENCH"]
|
||||
- name: replace
|
||||
args: ["VOSTFR", "{{ .Result.site_date }} VOSTFR"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(\\w+)$", ""]
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
size:
|
||||
selector: div.poid
|
||||
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", "" ]
|
||||
date:
|
||||
text: "now"
|
||||
seeders:
|
||||
text: 0
|
||||
seeders:
|
||||
selector: div.up
|
||||
optional: true
|
||||
leechers:
|
||||
text: 0
|
||||
leechers:
|
||||
selector: div.down
|
||||
optional: true
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
159
src/Jackett.Common/Definitions/crnaberza.yml
Normal file
159
src/Jackett.Common/Definitions/crnaberza.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
site: crnaberza
|
||||
name: CrnaBerza
|
||||
description: "Crna Berza is a BALKAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: sr-sp
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.crnaberza.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 65, cat: Movies/3D, desc: "3D Film"}
|
||||
- {id: 37, cat: Movies, desc: "Deca"}
|
||||
- {id: 43, cat: TV/Documentary, desc: "Dokumentarci"}
|
||||
- {id: 52, cat: Movies/DVD, desc: "Film/DVD Domaće"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/DVD Strano"}
|
||||
- {id: 73, cat: Movies/HD, desc: "Film/HD Domaće"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Film/HD Strano"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Film/SD Domaće"}
|
||||
- {id: 54, cat: Movies/SD, desc: "Film/SD Strano"}
|
||||
- {id: 64, cat: Movies/HD, desc: "HD Boxset"}
|
||||
- {id: 61, cat: Movies/HD, desc: "HD Mesano"}
|
||||
- {id: 50, cat: PC/Games, desc: "Igre"}
|
||||
- {id: 44, cat: Books, desc: "Knjige"}
|
||||
- {id: 46, cat: Audio, desc: "Koncerti"}
|
||||
- {id: 58, cat: Audio/Lossless, desc: "Lossless/Domaće"}
|
||||
- {id: 59, cat: Audio/Lossless, desc: "Lossless/Strano"}
|
||||
- {id: 5, cat: Audio/MP3, desc: "MP3/Domaće"}
|
||||
- {id: 57, cat: Audio/MP3, desc: "MP3/Strano"}
|
||||
- {id: 49, cat: PC, desc: "Programi"}
|
||||
- {id: 28, cat: Other, desc: "Razno"}
|
||||
- {id: 62, cat: TV/SD, desc: "SD Boxset"}
|
||||
- {id: 38, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 39, cat: Audio/Video, desc: "Spotovi DVD"}
|
||||
- {id: 45, cat: Books/Comics, desc: "Stripovi"}
|
||||
- {id: 75, cat: TV/HD, desc: "TV/HD Domaće"}
|
||||
- {id: 77, cat: TV/HD, desc: "TV/HD Strano"}
|
||||
- {id: 78, cat: TV/Other, desc: "TV/ostalo"}
|
||||
- {id: 30, cat: TV/SD, desc: "TV/SD Domaće"}
|
||||
- {id: 34, cat: TV/SD, desc: "TV/SD Strano"}
|
||||
- {id: 60, cat: XXX, desc: "XXX/Domace"}
|
||||
- {id: 63, cat: XXX, desc: "XXX/Strano"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: incldead
|
||||
type: select
|
||||
label: "Search Torrents that are:"
|
||||
default: "0"
|
||||
options:
|
||||
"0" : "Active"
|
||||
"1": "Including Dead"
|
||||
"2": "Only Dead"
|
||||
- name: info
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the 'Torrents per page' setting to 100 on your 'Personal Options' from the 'Personal' menu on the Crna Berza webpage.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
submitme: "X"
|
||||
error:
|
||||
- selector: h2
|
||||
message:
|
||||
selector: table tr td.text
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href$="/logout.php"]
|
||||
|
||||
ratio:
|
||||
path: browse.php
|
||||
selector: div div font:contains("Ratio:")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Ratio:\\s(.*?)\\s\\s"
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://www.crnaberza.com/browse.php?c52=1&c20=1&c73=1&c48=1&c29=1&c75=1&c77=1&c78=1&c30=1&c34=1&incldead=1&search=star+trek
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
searchin: "title"
|
||||
incldead: "{{ .Config.incldead }}"
|
||||
|
||||
rows:
|
||||
selector: tr:has(td.trowtorrent)
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-of-type(1) a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "[-](\\d{1,2})$"
|
||||
title:
|
||||
selector: td:nth-of-type(2) a
|
||||
details:
|
||||
selector: td:nth-of-type(2) a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-of-type(3) a
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-of-type(4)
|
||||
date:
|
||||
# Danas<br>08:10 AM
|
||||
optional: true
|
||||
selector: td:nth-of-type(6):contains("Danas")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Danas", "Today"]
|
||||
date:
|
||||
# Juče<br>06:44 PM
|
||||
optional: true
|
||||
selector: td:nth-of-type(6):contains("Juče")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Juče", "Yesterday"]
|
||||
date:
|
||||
# Feb 14 2019<br>10:20 AM
|
||||
optional: true
|
||||
selector: td:nth-of-type(6):not(:contains("Juče")):not(:contains("Danas"))
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
size:
|
||||
selector: td:nth-of-type(7)
|
||||
grabs:
|
||||
selector: td:nth-of-type(8) a
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "([\\d]+)"
|
||||
seeders:
|
||||
selector: td:nth-of-type(9)
|
||||
leechers:
|
||||
selector: td:nth-of-type(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/pic/freedownload.gif\"]": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -42,17 +42,21 @@
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents
|
||||
- path: torrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
s: "{{ .Keywords }}"
|
||||
|
@@ -22,6 +22,7 @@
|
||||
- {id: 2, cat: Other, desc: "MiSC"}
|
||||
- {id: 5, cat: PC/Phone-Other, desc: "Mobile"}
|
||||
- {id: 27, cat: Movies, desc: "Movies | Pack"}
|
||||
- {id: 63, cat: Movies, desc: "Movies | Pack-Ro"}
|
||||
- {id: 46, cat: Movies/3D, desc: "Movies | 3D"}
|
||||
- {id: 26, cat: Movies/SD, desc: "Movies | Cam"}
|
||||
- {id: 25, cat: Movies, desc: "Movies | Documentary"}
|
||||
@@ -30,24 +31,33 @@
|
||||
- {id: 23, cat: Movies/HD, desc: "Movies | HD"}
|
||||
- {id: 31, cat: Movies/HD, desc: "Movies | HD-Ro"}
|
||||
- {id: 34, cat: Movies/Foreign, desc: "Movies | Hindi"}
|
||||
- {id: 30, cat: Movies/SD, desc: "Movies | Xvid"}
|
||||
- {id: 36, cat: Movies/SD, desc: "Movies | Xvid-Ro"}
|
||||
- {id: 30, cat: Movies/SD, desc: "Movies | SD"}
|
||||
- {id: 36, cat: Movies/SD, desc: "Movies | SD-Ro"}
|
||||
- {id: 50, cat: Movies/BluRay, desc: "Movies | Blu-Ray"}
|
||||
- {id: 51, cat: Movies/BluRay, desc: "Movies | Blu-Ray-Ro"}
|
||||
- {id: 55, cat: Movies/UHD, desc: "Movies | 4K"}
|
||||
- {id: 59, cat: Movies/UHD, desc: "Movies | 4K-Ro"}
|
||||
- {id: 21, cat: Audio/Video, desc: "Music | Video"}
|
||||
- {id: 19, cat: Audio , desc: "Music | Mp3/Flac"}
|
||||
- {id: 18, cat: Other, desc: "Other"}
|
||||
- {id: 42, cat: Other, desc: "Premiera | DsT"}
|
||||
- {id: 14, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 47, cat: TV/SD, desc: "Tv | Episodes"}
|
||||
- {id: 28, cat: TV/HD, desc: "Tv-HD | Episodes"}
|
||||
- {id: 47, cat: TV/HD, desc: "Tv | HD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Tv | HD-Ro"}
|
||||
- {id: 28, cat: TV/SD, desc: "Tv | SD"}
|
||||
- {id: 58, cat: TV/SD, desc: "Tv | SD-Ro"}
|
||||
- {id: 54, cat: TV, desc: "Tv | Pack"}
|
||||
- {id: 61, cat: TV, desc: "Tv | Pack-Ro"}
|
||||
- {id: 13, cat: Other, desc: "Tutoriale"}
|
||||
- {id: 12, cat: XXX, desc: "XxX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -55,57 +65,27 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
ratio:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
selector: font:contains("Ratio:") > span
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: div.ncls > table > tbody > tr:has(a.tname)
|
||||
fields:
|
||||
title-attribute:
|
||||
selector: a.tname
|
||||
attribute: title
|
||||
title-text:
|
||||
selector: a.tname
|
||||
title:
|
||||
text: "{{if .Result.title-attribute }}{{ .Result.title-attribute }}{{else}}{{ .Result.title-text }}{{end}}"
|
||||
selector: a.tname
|
||||
details:
|
||||
selector: a.tname
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
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)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(2) > right > div:has(font:contains("Uploaded"))
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Uploaded: ", ""]
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
banner:
|
||||
selector: a.tname
|
||||
attribute: onmouseover
|
||||
@@ -116,13 +96,35 @@
|
||||
selector: a[href^="http://www.imdb.com/title/"]
|
||||
optional: true
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="/download.php/"], a[href^="/downloadd.php/"] # some releases use a download link with two d's
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:contains("Added:") a#added-btn
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Added: ", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src=\"pic/free.png\"]": "0"
|
||||
"a#free-btn": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2) > right
|
||||
remove: div
|
||||
|
146
src/Jackett.Common/Definitions/desitorrents.yml
Normal file
146
src/Jackett.Common/Definitions/desitorrents.yml
Normal file
@@ -0,0 +1,146 @@
|
||||
---
|
||||
site: desitorrents
|
||||
name: DesiTorrents
|
||||
description: "Desitorrents is a Private Torrent Tracker for BOLLYWOOD / TOLLYWOOD / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://desitorrents.tv/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# movies
|
||||
- {id: 47, cat: Movies, desc: "Movies/Bollywood"}
|
||||
- {id: 48, cat: Movies, desc: "Movies/Bengali"}
|
||||
- {id: 49, cat: Movies, desc: "Movies/Tamil"}
|
||||
- {id: 51, cat: Movies, desc: "Movies/Punjabi"}
|
||||
- {id: 52, cat: Movies, desc: "Movies/Marathi"}
|
||||
- {id: 53, cat: Movies, desc: "Movies/Malayalam"}
|
||||
- {id: 54, cat: Movies, desc: "Movies/Kannada"}
|
||||
- {id: 55, cat: Movies, desc: "Movies/Gujarati"}
|
||||
- {id: 56, cat: Movies, desc: "Movies/Foreign"}
|
||||
- {id: 57, cat: Movies, desc: "Movies/Lollywood"}
|
||||
- {id: 58, cat: Movies, desc: "Movies/Hollywood"}
|
||||
- {id: 103, cat: Movies, desc: "Movies/Telugu"}
|
||||
- {id: 104, cat: Movies, desc: "Movies/South Dubbed"}
|
||||
- {id: 110, cat: Movies, desc: "Movies/Documentary"}
|
||||
- {id: 117, cat: Movies, desc: "Movies/Bhojpuri"}
|
||||
- {id: 124, cat: Movies, desc: "Movies/Movie Packs"}
|
||||
- {id: 128, cat: Movies, desc: "Movies/Dubbed Audio"}
|
||||
- {id: 129, cat: Movies, desc: "Movies/Animated"}
|
||||
# tv shows
|
||||
- {id: 59, cat: TV, desc: "TV/Colors"}
|
||||
- {id: 60, cat: TV, desc: "TV/Sony"}
|
||||
- {id: 61, cat: TV, desc: "TV/& TV"}
|
||||
- {id: 62, cat: TV, desc: "TV/Starplus"}
|
||||
- {id: 63, cat: TV, desc: "TV/ZeeTV"}
|
||||
- {id: 97, cat: TV, desc: "TV/Life Ok"}
|
||||
- {id: 98, cat: TV, desc: "TV/Docu"}
|
||||
- {id: 101, cat: TV/Sport, desc: "TV/Sports"}
|
||||
- {id: 102, cat: TV/Other, desc: "TV/Others"}
|
||||
- {id: 113, cat: TV, desc: "TV/Pak Drama"}
|
||||
- {id: 125, cat: TV, desc: "TV/TV Packs"}
|
||||
- {id: 130, cat: TV, desc: "TV/Star Bharat"}
|
||||
- {id: 132, cat: TV, desc: "TV/SAB TV"}
|
||||
# music
|
||||
- {id: 67, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 68, cat: Audio, desc: "Hindi Soundtrack"}
|
||||
- {id: 70, cat: Audio, desc: "Remix"}
|
||||
- {id: 71, cat: Audio, desc: "Ghazal"}
|
||||
- {id: 72, cat: Audio, desc: "Instrumental"}
|
||||
- {id: 105, cat: Audio, desc: "Telugu Music"}
|
||||
- {id: 106, cat: Audio, desc: "Tmil Music"}
|
||||
- {id: 107, cat: Audio, desc: "Punjabi Music"}
|
||||
- {id: 108, cat: Audio, desc: "Gujarati Music"}
|
||||
- {id: 109, cat: Audio, desc: "Compilations"}
|
||||
- {id: 118, cat: Audio, desc: "Kannada Music"}
|
||||
- {id: 126, cat: Audio, desc: "Marathi"}
|
||||
- {id: 127, cat: Audio, desc: "Lollywood"}
|
||||
- {id: 131, cat: Audio, desc: "Classical"}
|
||||
# games
|
||||
- {id: 78, cat: PC/Games, desc: "PC"}
|
||||
- {id: 79, cat: PC/Games, desc: "Mac"}
|
||||
- {id: 80, cat: PC/Games, desc: "IOS"}
|
||||
- {id: 81, cat: PC/Games, desc: "Android"}
|
||||
- {id: 83, cat: PC/Games, desc: "XBOX"}
|
||||
- {id: 86, cat: PC/Games, desc: "Playstation"}
|
||||
# XXX
|
||||
- {id: 89, cat: XXX, desc: "Adult Videos"}
|
||||
- {id: 90, cat: XXX, desc: "Adult Pics"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: login.php?from=index1
|
||||
method: post
|
||||
inputs:
|
||||
action: "login"
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: ":contains(\"-WARNING-\")"
|
||||
test:
|
||||
path: ajax.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: ajax.php?action=search_torrent_cats
|
||||
method: post
|
||||
inputs:
|
||||
search_string: "{{ .Keywords }}"
|
||||
selected_sorting: "relevance"
|
||||
selected_group: ""
|
||||
search_username: ""
|
||||
selected_sub[]: "{{join .Categories \",\"}}"
|
||||
error:
|
||||
- selector: ":contains(\"Something was wrong with your request\")"
|
||||
preprocessingfilters:
|
||||
- name: replace
|
||||
args: ["{\"torrent_html\":\"", ""]
|
||||
- name: replace
|
||||
args: ["\\", ""]
|
||||
- name: re_replace
|
||||
args: ["\",\"paging.*", ""]
|
||||
- name: prepend
|
||||
args: "<table>"
|
||||
- name: append
|
||||
args: "</table>"
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
fields:
|
||||
title:
|
||||
selector: th:nth-child(2) > a[href]
|
||||
details:
|
||||
selector: th:nth-child(2) > a[href]
|
||||
attribute: href
|
||||
files:
|
||||
selector: th:nth-child(8)
|
||||
# no standard for categories yet :(
|
||||
download:
|
||||
selector: th:nth-child(5) > a[href]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Config.sitelink }}"
|
||||
grabs:
|
||||
selector: th:nth-child(11)
|
||||
size:
|
||||
selector: th:nth-child(7)
|
||||
seeders:
|
||||
selector: th:nth-child(9)
|
||||
leechers:
|
||||
selector: th:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
74
src/Jackett.Common/Definitions/digbt.yml
Normal file
74
src/Jackett.Common/Definitions/digbt.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
---
|
||||
site: digbt
|
||||
name: DIGBT
|
||||
description: "DIGBT is a Public BitTorrent DHT search engine"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.digbt.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
# DIGBT does not support categories
|
||||
1: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
# DIGBT does not support a default empty search or provide trending/latest/new pages
|
||||
# attempt to fetch up to 50 results (10 per page)
|
||||
paths:
|
||||
- path: "search/{{if .Keywords}}{{.Keywords}}{{else}}test{{end}}?c=&s=time&u=y"
|
||||
- path: "search/{{if .Keywords}}{{.Keywords}}-time-2/{{else}}test-time-2/{{end}}?c=&s=time&u=y"
|
||||
- path: "search/{{if .Keywords}}{{.Keywords}}-time-3/{{else}}test-time-3/{{end}}?c=&s=time&u=y"
|
||||
- path: "search/{{if .Keywords}}{{.Keywords}}-time-4/{{else}}test-time-4/{{end}}?c=&s=time&u=y"
|
||||
- path: "search/{{if .Keywords}}{{.Keywords}}-time-5/{{else}}test-time-5/{{end}}?c=&s=time&u=y"
|
||||
rows:
|
||||
selector: tr td.x-item
|
||||
fields:
|
||||
title:
|
||||
selector: div a
|
||||
category:
|
||||
text: "1"
|
||||
details:
|
||||
selector: div a
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.tail a[href^="magnet:?"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: div.tail a[href^="magnet:?"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div span.ctime
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["yesterday", "1 day"]
|
||||
- name: timeago
|
||||
size:
|
||||
selector: div.tail
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Size: (.+?) Downloads:"
|
||||
files:
|
||||
selector: div.tail
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Files: (.+?) Size:"
|
||||
seeders:
|
||||
text: "1"
|
||||
leechers:
|
||||
text: "1"
|
||||
grabs:
|
||||
selector: div.tail
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Downloads: (.+?) Updated:"
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
129
src/Jackett.Common/Definitions/divteam.yml
Normal file
129
src/Jackett.Common/Definitions/divteam.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
site: divteam
|
||||
name: DivTeam
|
||||
description: "DivTeam is a SPANISH Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: es-es
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://divteam.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 60, cat: Movies/HD, desc: "MicroHD 720p"}
|
||||
- {id: 77, cat: Movies/HD, desc: "MicroHD 1080p"}
|
||||
- {id: 78, cat: Movies/HD, desc: "MicroHD 4k"}
|
||||
- {id: 64, cat: TV/HD, desc: "Pack Series"}
|
||||
- {id: 65, cat: TV/HD, desc: "Pack Series VOSE"}
|
||||
- {id: 80, cat: Movies/BluRay, desc: "BDRip X265 1080p"}
|
||||
- {id: 81, cat: Movies/UHD, desc: "UHDRip x265 4K"}
|
||||
- {id: 82, cat: Movies/WEBDL, desc: "Pelis Web-DL 1080"}
|
||||
- {id: 83, cat: Movies/WEBDL, desc: "Pelis Web-DL 720"}
|
||||
- {id: 84, cat: Movies/UHD, desc: "UHD Remux x265"}
|
||||
- {id: 23, cat: TV/Sport, desc: "Deportes"}
|
||||
- {id: 20, cat: TV/HD, desc: "Series"}
|
||||
- {id: 31, cat: TV/HD, desc: "Series VOSE"}
|
||||
- {id: 69, cat: Movies, desc: "Ciclo Cine Clasico"}
|
||||
- {id: 70, cat: Movies, desc: "Ciclo Clint Eastwood"}
|
||||
- {id: 71, cat: Movies, desc: "Ciclo Studio Ghibli"}
|
||||
- {id: 72, cat: Movies, desc: "Ciclo George A. Romero"}
|
||||
- {id: 73, cat: Movies, desc: "Saga Fast And Furious"}
|
||||
- {id: 74, cat: Movies, desc: "Saga Crepúsculo"}
|
||||
- {id: 75, cat: Movies, desc: "Saga The Purge"}
|
||||
- {id: 79, cat: Movies, desc: "Saga Star Wars"}
|
||||
- {id: 18, cat: Movies/BluRay, desc: "Video Full & Remux"}
|
||||
- {id: 76, cat: Movies, desc: "x-men saga"}
|
||||
- {id: 6, cat: Books/Ebook, desc: "EBooks"}
|
||||
- {id: 58, cat: Books/Ebook, desc: "Kiosko"}
|
||||
- {id: 24, cat: TV/Documentary, desc: "Documentales"}
|
||||
- {id: 32, cat: TV/Documentary, desc: "Documentales VOSE"}
|
||||
- {id: 49, cat: Books/Ebook, desc: "eLearning"}
|
||||
- {id: 68, cat: TV, desc: "eLearning Multimedia"}
|
||||
- {id: 16, cat: Movies/DVD, desc: "DVD-Rip"}
|
||||
- {id: 48, cat: Movies/BluRay, desc: "BR-Rip/HD-Rip"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "BD-Rip"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 34, cat: PC/Games, desc: "Juegos Pc"}
|
||||
- {id: 7, cat: PC/0day, desc: "Software Pc"}
|
||||
- {id: 35, cat: Console, desc: "Juegos Sony"}
|
||||
- {id: 36, cat: PC/Games, desc: "Juegos Microsoft"}
|
||||
- {id: 37, cat: Console/NDS, desc: "Juegos Nintendo"}
|
||||
- {id: 45, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 44, cat: Audio/Lossless, desc: "Music flac"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div#login-alert
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://divteam.com/index.php?page=torrents&search=daredevil&category=20;23;31;65;64;60;63;69;70;71;72;73;74;75;76;77;78;80;81;82;83;84&active=1
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: "torrents"
|
||||
category: "{{range .Categories}}{{.}};{{end}}"
|
||||
search: "{{if .Keywords }}{{.Keywords}}{{else}}{{end}}"
|
||||
active: 0
|
||||
options: 0
|
||||
|
||||
rows:
|
||||
selector: table.table.table-bordered > tbody > tr:has(a[href^="download.php?id="])
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
banner:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02/01/2006"
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/gold.png"]: "0"
|
||||
img[src="images/silver.png"]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="images/2x.png"]: "2"
|
||||
img[src="images/3x.png"]: "3"
|
||||
img[src="images/4x.png"]: "4"
|
||||
img[src="images/5x.png"]: "5"
|
||||
"*": "1"
|
142
src/Jackett.Common/Definitions/documentarytorrents.yml
Normal file
142
src/Jackett.Common/Definitions/documentarytorrents.yml
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
site: documentarytorrents
|
||||
name: DocumentaryTorrents
|
||||
description: "Documentary Torrents (DT) is a Private Torrent Tracker for E-LEARNING MOVIES / TV"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.documentarytorrents.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 128, cat: TV/HD, desc: "Adventure: HD"}
|
||||
- {id: 129, cat: TV/SD, desc: "Adventure: Xvid / x264"}
|
||||
- {id: 85, cat: TV/SD, desc: "Biography: Xvid / x264"}
|
||||
- {id: 86, cat: TV/HD, desc: "Biography: HD"}
|
||||
- {id: 60, cat: TV/HD, desc: "Computers: HD"}
|
||||
- {id: 58, cat: TV/SD, desc: "Computers: Xvid / x264"}
|
||||
- {id: 103, cat: TV/SD, desc: "Crime: Xvid / x264"}
|
||||
- {id: 105, cat: TV/HD, desc: "Crime: HD"}
|
||||
- {id: 64, cat: TV/SD, desc: "Culture: Xvid / x264"}
|
||||
- {id: 66, cat: TV/HD, desc: "Culture: HD"}
|
||||
- {id: 122, cat: TV/SD, desc: "Discovery: Xvid / x264"}
|
||||
- {id: 123, cat: TV/HD, desc: "Discovery: HD"}
|
||||
- {id: 98, cat: TV/HD, desc: "Drugs: HD"}
|
||||
- {id: 97, cat: TV/SD, desc: "Drugs: Xvid / x264"}
|
||||
- {id: 92, cat: TV/HD, desc: "Economy: HD"}
|
||||
- {id: 91, cat: TV/SD, desc: "Economy: Xvid / x264"}
|
||||
- {id: 83, cat: TV/HD, desc: "Food: HD"}
|
||||
- {id: 82, cat: TV/SD, desc: "Food: Xvid / x264"}
|
||||
- {id: 124, cat: TV/HD, desc: "HBO: HD"}
|
||||
- {id: 125, cat: TV/SD, desc: "HBO: Xvid / x264"}
|
||||
- {id: 76, cat: TV/SD, desc: "Health: Xvid / x264"}
|
||||
- {id: 78, cat: TV/HD, desc: "Health: HD"}
|
||||
- {id: 67, cat: TV/SD, desc: "History: Xvid / x264"}
|
||||
- {id: 69, cat: TV/HD, desc: "History: HD"}
|
||||
- {id: 79, cat: TV/SD, desc: "Humor: Xvid / x264"}
|
||||
- {id: 80, cat: TV/HD, desc: "Humor: HD"}
|
||||
- {id: 116, cat: TV/HD, desc: "Music: HD"}
|
||||
- {id: 115, cat: TV/SD, desc: "Music: Xvid / x264"}
|
||||
- {id: 118, cat: TV/HD, desc: "NatGeo: HD"}
|
||||
- {id: 119, cat: TV/SD, desc: "NatGeo: Xvid / x264"}
|
||||
- {id: 63, cat: TV/HD, desc: "Nature: HD"}
|
||||
- {id: 61, cat: TV/SD, desc: "Nature: Xvid / x264"}
|
||||
- {id: 109, cat: TV/SD, desc: "New World Order: Xvid / x264"}
|
||||
- {id: 111, cat: TV/HD, desc: "New World Order: HD"}
|
||||
- {id: 48, cat: TV/HD, desc: "Other: HD"}
|
||||
- {id: 50, cat: TV/HD, desc: "Other: DVD"}
|
||||
- {id: 9, cat: TV/SD, desc: "Other: Xvid / x264"}
|
||||
- {id: 126, cat: TV/HD, desc: "PBS: HD"}
|
||||
- {id: 127, cat: TV/SD, desc: "PBS: Xvid / x264"}
|
||||
- {id: 72, cat: TV/HD, desc: "Politics: HD"}
|
||||
- {id: 112, cat: Books/Ebook, desc: "Politics: Ebook"}
|
||||
- {id: 70, cat: TV/SD, desc: "Politics: Xvid / x264"}
|
||||
- {id: 114, cat: Books/Ebook, desc: "Reference: Ebook"}
|
||||
- {id: 117, cat: Audio/Audiobook, desc: "Reference: Audio Book"}
|
||||
- {id: 56, cat: TV/HD, desc: "Religion: HD"}
|
||||
- {id: 54, cat: TV/SD, desc: "Religion: Xvid / x264"}
|
||||
- {id: 94, cat: TV/SD, desc: "Science: Xvid / x264"}
|
||||
- {id: 95, cat: TV/HD, desc: "Science: HD"}
|
||||
- {id: 75, cat: TV/HD, desc: "Space: HD"}
|
||||
- {id: 73, cat: TV/SD, desc: "Space: Xvid / x264"}
|
||||
- {id: 113, cat: TV/HD, desc: "Space: DVD"}
|
||||
- {id: 100, cat: TV/SD, desc: "Sports: Xvid / x264"}
|
||||
- {id: 102, cat: TV/HD, desc: "Sports: HD"}
|
||||
- {id: 106, cat: TV/SD, desc: "Technology: Xvid / x264"}
|
||||
- {id: 108, cat: TV/HD, desc: "Technology: HD"}
|
||||
- {id: 121, cat: TV/SD, desc: "Transport: Xvid / x264"}
|
||||
- {id: 120, cat: TV/HD, desc: "Transport: HD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Travel: HD"}
|
||||
- {id: 52, cat: TV/SD, desc: "Travel: Xvid / x264"}
|
||||
- {id: 89, cat: TV/HD, desc: "War: HD"}
|
||||
- {id: 88, cat: TV/SD, desc: "War: Xvid / x264"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: form
|
||||
form: form[action="account-login.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.myBlock:has(font.error)
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href$="/account-logout.php"]
|
||||
|
||||
ratio:
|
||||
path: index.php
|
||||
selector: img[title="Ratio"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://documentarytorrents.com/torrents.php?c123=1&c69=1&c67=1&c89=1&c88=1&search=grow+old&cat=0&incldead=1&freeleech=0&lang=0
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
incldead: 1
|
||||
freeleech: 0
|
||||
lang: 0
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech_star.gif"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -206,24 +206,24 @@
|
||||
filters:
|
||||
- name: querystring
|
||||
args: "category"
|
||||
date:
|
||||
selector: td:nth-of-type(5)
|
||||
date: # some users will have a extra wait time column before the bookmark column, so use last-of-type
|
||||
selector: td:nth-last-of-type(10)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -04:00"
|
||||
- name: dateparse
|
||||
args: "02/01/2006 15:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-of-type(7)
|
||||
selector: td:nth-last-of-type(8)
|
||||
leechers:
|
||||
selector: td:nth-of-type(8)
|
||||
selector: td:nth-last-of-type(7)
|
||||
grabs:
|
||||
selector: td:nth-of-type(9)
|
||||
selector: td:nth-last-of-type(6)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["---", "0"]
|
||||
size:
|
||||
selector: td:nth-of-type(11)
|
||||
selector: td:nth-last-of-type(4)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech.gif"]: "0"
|
||||
|
@@ -86,7 +86,7 @@
|
||||
label: Pin
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="/login.php"]
|
||||
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "ajax_det_poll.php"
|
||||
path: ajax_det_poll.php
|
||||
method: "post"
|
||||
inputs:
|
||||
set_thanks: "thanks"
|
||||
|
@@ -30,23 +30,6 @@
|
||||
- {id: 144, cat: Movies, desc: "9.5 packages"}
|
||||
- {id: 145, cat: Movies, desc: "9.6 filmography"}
|
||||
- {id: 143, cat: Movies, desc: "9.7 Tv Movies"}
|
||||
# - {id: 130, cat: , desc: ""}
|
||||
# - {id: 131, cat: , desc: ""}
|
||||
# - {id: 132, cat: , desc: ""}
|
||||
# - {id: 133, cat: , desc: ""}
|
||||
# - {id: 134, cat: , desc: ""}
|
||||
# - {id: 135, cat: , desc: ""}
|
||||
# - {id: 136, cat: , desc: ""}
|
||||
# - {id: 137, cat: , desc: ""}
|
||||
# - {id: 138, cat: , desc: ""}
|
||||
# - {id: 139, cat: , desc: ""}
|
||||
# - {id: 140, cat: , desc: ""}
|
||||
# - {id: 141, cat: , desc: ""}
|
||||
# - {id: 142, cat: , desc: ""}
|
||||
# - {id: 144, cat: , desc: ""}
|
||||
# - {id: 145, cat: , desc: ""}
|
||||
# - {id: 143, cat: , desc: ""}
|
||||
# - {id: 116, cat: , desc: ""}
|
||||
- {id: 116, cat: Movies, desc: "Two foreign films integrated subtitles"}
|
||||
- {id: 146, cat: Movies, desc: "CAM / TS / TC"}
|
||||
- {id: 147, cat: Movies, desc: "DVDSCR / PPVRiP / WebRip / R5"}
|
||||
@@ -55,24 +38,10 @@
|
||||
- {id: 150, cat: Movies, desc: "MicroHD"}
|
||||
- {id: 151, cat: Movies, desc: "HD - WEB-DL"}
|
||||
- {id: 152, cat: Movies, desc: "Tv Movies"}
|
||||
# - {id: 242, cat: , desc: ""}
|
||||
- {id: 153, cat: Movies, desc: "Packages"}
|
||||
- {id: 154, cat: Movies, desc: "filmography"}
|
||||
- {id: 243, cat: Movies, desc: "HD 1080p"}
|
||||
- {id: 244, cat: Movies, desc: "HD 480p"}
|
||||
# - {id: 146, cat: , desc: ""}
|
||||
# - {id: 147, cat: , desc: ""}
|
||||
# - {id: 148, cat: , desc: ""}
|
||||
# - {id: 149, cat: , desc: ""}
|
||||
# - {id: 150, cat: , desc: ""}
|
||||
# - {id: 151, cat: , desc: ""}
|
||||
# - {id: 152, cat: , desc: ""}
|
||||
# - {id: 242, cat: , desc: ""}
|
||||
# - {id: 153, cat: , desc: ""}
|
||||
# - {id: 154, cat: , desc: ""}
|
||||
# - {id: 243, cat: , desc: ""}
|
||||
# - {id: 244, cat: , desc: ""}
|
||||
# - {id: 117, cat: , desc: ""}
|
||||
- {id: 117, cat: Movies, desc: "???????e? ?a???e?"}
|
||||
- {id: 155, cat: Movies, desc: "CAM / TS / TC"}
|
||||
- {id: 156, cat: Movies, desc: "SCR / PPVRiP / Webrip / R5"}
|
||||
@@ -85,18 +54,6 @@
|
||||
- {id: 163, cat: Movies, desc: "TV Movies"}
|
||||
- {id: 164, cat: Movies, desc: "?a?eta 8"}
|
||||
- {id: 165, cat: Movies, desc: "F??µ???af?e?"}
|
||||
# - {id: 155, cat: , desc: ""}
|
||||
# - {id: 156, cat: , desc: ""}
|
||||
# - {id: 157, cat: , desc: ""}
|
||||
# - {id: 158, cat: , desc: ""}
|
||||
# - {id: 159, cat: , desc: ""}
|
||||
# - {id: 160, cat: , desc: ""}
|
||||
# - {id: 161, cat: , desc: ""}
|
||||
# - {id: 162, cat: , desc: ""}
|
||||
# - {id: 163, cat: , desc: ""}
|
||||
# - {id: 164, cat: , desc: ""}
|
||||
# - {id: 165, cat: , desc: ""}
|
||||
# - {id: 118, cat: , desc: ""}
|
||||
- {id: 118, cat: TV, desc: "Foreign Television external subtitles"}
|
||||
- {id: 166, cat: TV, desc: "SD"}
|
||||
- {id: 167, cat: TV, desc: "720p"}
|
||||
@@ -104,13 +61,6 @@
|
||||
- {id: 169, cat: TV, desc: "Sport"}
|
||||
- {id: 170, cat: TV, desc: "documentaries"}
|
||||
- {id: 171, cat: TV, desc: "Packages"}
|
||||
# - {id: 166, cat: , desc: ""}
|
||||
# - {id: 167, cat: , desc: ""}
|
||||
# - {id: 168, cat: , desc: ""}
|
||||
# - {id: 169, cat: , desc: ""}
|
||||
# - {id: 170, cat: , desc: ""}
|
||||
# - {id: 171, cat: , desc: ""}
|
||||
# - {id: 119, cat: , desc: ""}
|
||||
- {id: 119, cat: TV, desc: "foreign Television integrated subtitles"}
|
||||
- {id: 172, cat: TV, desc: "SD"}
|
||||
- {id: 173, cat: TV, desc: "720p"}
|
||||
@@ -119,14 +69,6 @@
|
||||
- {id: 176, cat: TV, desc: "documentaries"}
|
||||
- {id: 177, cat: TV, desc: "Tv Rips"}
|
||||
- {id: 178, cat: TV, desc: "Packages"}
|
||||
# - {id: 172, cat: , desc: ""}
|
||||
# - {id: 173, cat: , desc: ""}
|
||||
# - {id: 174, cat: , desc: ""}
|
||||
# - {id: 175, cat: , desc: ""}
|
||||
# - {id: 176, cat: , desc: ""}
|
||||
# - {id: 177, cat: , desc: ""}
|
||||
# - {id: 178, cat: , desc: ""}
|
||||
# - {id: 120, cat: , desc: ""}
|
||||
- {id: 120, cat: TV, desc: "Greek Television"}
|
||||
- {id: 179, cat: TV, desc: "SD"}
|
||||
- {id: 180, cat: TV, desc: "720p"}
|
||||
@@ -135,14 +77,6 @@
|
||||
- {id: 183, cat: TV, desc: "five documentaries"}
|
||||
- {id: 184, cat: TV, desc: "six Tv Rips"}
|
||||
- {id: 185, cat: TV, desc: "Packages"}
|
||||
# - {id: 179, cat: , desc: ""}
|
||||
# - {id: 180, cat: , desc: ""}
|
||||
# - {id: 181, cat: , desc: ""}
|
||||
# - {id: 182, cat: , desc: ""}
|
||||
# - {id: 183, cat: , desc: ""}
|
||||
# - {id: 184, cat: , desc: ""}
|
||||
# - {id: 185, cat: , desc: ""}
|
||||
# - {id: 122, cat: , desc: ""}
|
||||
- {id: 122, cat: Audio, desc: "?e?? ???s???"}
|
||||
- {id: 216, cat: Audio, desc: "1. DJs Stuff & Promos"}
|
||||
- {id: 217, cat: Audio, desc: "2. DJs Stuff & Promos (Flac)"}
|
||||
@@ -156,7 +90,6 @@
|
||||
- {id: 225, cat: Audio, desc: "9.1 Varius Artist"}
|
||||
- {id: 226, cat: Audio, desc: "9.2 Compact Disc Club"}
|
||||
- {id: 227, cat: Audio, desc: "9.3 ???s??a Video Clips"}
|
||||
# - {id: 123, cat: , desc: ""}
|
||||
- {id: 123, cat: Audio, desc: "???????? ???s???"}
|
||||
- {id: 228, cat: Audio, desc: "1. DJs Stuff & Promos"}
|
||||
- {id: 229, cat: Audio, desc: "2. DJs Stuff & Promos (Flac)"}
|
||||
@@ -171,7 +104,6 @@
|
||||
- {id: 238, cat: Audio, desc: "9.2 Varius Artist"}
|
||||
- {id: 239, cat: Audio, desc: "9.3 Compact Disc Club"}
|
||||
- {id: 240, cat: Audio, desc: "9.4 ???s??a Video Clips"}
|
||||
# - {id: 121, cat: , desc: ""}
|
||||
- {id: 121, cat: Movies, desc: "children"}
|
||||
- {id: 186, cat: Movies, desc: "children's films external subtitles"}
|
||||
- {id: 187, cat: Movies, desc: "two children's films integrated subtitles"}
|
||||
@@ -182,16 +114,6 @@
|
||||
- {id: 192, cat: Movies, desc: "Anime external subtitles"}
|
||||
- {id: 193, cat: Movies, desc: "Anime integrated subtitles"}
|
||||
- {id: 194, cat: Movies, desc: "Anime Metaglotismenes"}
|
||||
# - {id: 186, cat: , desc: ""}
|
||||
# - {id: 187, cat: , desc: ""}
|
||||
# - {id: 188, cat: , desc: ""}
|
||||
# - {id: 189, cat: , desc: ""}
|
||||
# - {id: 190, cat: , desc: ""}
|
||||
# - {id: 191, cat: , desc: ""}
|
||||
# - {id: 192, cat: , desc: ""}
|
||||
# - {id: 193, cat: , desc: ""}
|
||||
# - {id: 194, cat: , desc: ""}
|
||||
# - {id: 128, cat: , desc: ""}
|
||||
- {id: 128, cat: Console, desc: "9.1 ?a????d?a"}
|
||||
- {id: 195, cat: Console, desc: "Windows Games"}
|
||||
- {id: 196, cat: Console, desc: "Nintendo DS"}
|
||||
@@ -201,41 +123,23 @@
|
||||
- {id: 200, cat: Console, desc: "Sony PSP"}
|
||||
- {id: 201, cat: Console, desc: "Wii"}
|
||||
- {id: 202, cat: Console, desc: "XboX 360"}
|
||||
# - {id: 124, cat: , desc: ""}
|
||||
- {id: 124, cat: PC, desc: "9.2 Applications"}
|
||||
- {id: 203, cat: PC, desc: "Applications Windows"}
|
||||
- {id: 204, cat: PC, desc: "Applications Mac"}
|
||||
- {id: 205, cat: PC, desc: "Linux Applications"}
|
||||
# - {id: 203, cat: , desc: ""}
|
||||
# - {id: 204, cat: , desc: ""}
|
||||
# - {id: 205, cat: , desc: ""}
|
||||
# - {id: 126, cat: , desc: ""}
|
||||
- {id: 126, cat: Books, desc: "9.3 Electronic Books"}
|
||||
- {id: 206, cat: Books, desc: "Electronic books"}
|
||||
- {id: 207, cat: Books, desc: "Magazines"}
|
||||
- {id: 208, cat: Books, desc: "Comic Books"}
|
||||
# - {id: 206, cat: , desc: ""}
|
||||
# - {id: 207, cat: , desc: ""}
|
||||
# - {id: 208, cat: , desc: ""}
|
||||
# - {id: 125, cat: , desc: ""}
|
||||
- {id: 125, cat: Other, desc: "9.4 Gallery"}
|
||||
- {id: 209, cat: Other, desc: "Gallery"}
|
||||
- {id: 210, cat: Other, desc: "Gallery HD"}
|
||||
- {id: 211, cat: Other, desc: "Photos 3D"}
|
||||
- {id: 212, cat: Other, desc: "Wallpapers"}
|
||||
- {id: 213, cat: Other, desc: "Screensavers"}
|
||||
# - {id: 209, cat: , desc: ""}
|
||||
# - {id: 210, cat: , desc: ""}
|
||||
# - {id: 211, cat: , desc: ""}
|
||||
# - {id: 212, cat: , desc: ""}
|
||||
# - {id: 213, cat: , desc: ""}
|
||||
# - {id: 127, cat: , desc: ""}
|
||||
- {id: 127, cat: PC/Phone-Other, desc: "9.5 Mobile / Miscellaneous"}
|
||||
- {id: 214, cat: PC/Phone-Other, desc: "Mobile"}
|
||||
- {id: 215, cat: PC/Phone-Other, desc: "Miscellaneous"}
|
||||
# - {id: 214, cat: , desc: ""}
|
||||
# - {id: 215, cat: , desc: ""}
|
||||
# - {id: 129, cat: , desc: ""}
|
||||
- {id: 129, cat: Other, desc: "9.6 Blocked DREAM TEAM"}
|
||||
|
||||
modes:
|
||||
@@ -256,7 +160,7 @@
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "takethanks.php"
|
||||
path: takethanks.php
|
||||
method: "post"
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
|
@@ -26,7 +26,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -34,11 +34,11 @@
|
||||
error:
|
||||
- selector: table.main:contains("Login Failed!")
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /filterTorrents
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -101,9 +101,9 @@
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
|
@@ -25,7 +25,11 @@
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
path: index.php
|
||||
# site returns just 30 results, attempt to fetch upto 90
|
||||
paths:
|
||||
- path: /
|
||||
- path: /page/2/
|
||||
- path: /page/3/
|
||||
keywordsfilters:
|
||||
# most ES/ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
|
||||
- name: re_replace
|
||||
@@ -35,6 +39,8 @@
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
$raw: "&x=0&y=0"
|
||||
error:
|
||||
- selector: "#principal div.not_results"
|
||||
rows:
|
||||
selector: "#principal .miniboxs-ficha li"
|
||||
fields:
|
||||
@@ -59,6 +65,10 @@
|
||||
- name: split
|
||||
args: ["/", 3]
|
||||
size:
|
||||
text: "0 B"
|
||||
size:
|
||||
# size can be missing
|
||||
optional: true
|
||||
selector: .voto1
|
||||
filters:
|
||||
- name: replace
|
||||
|
@@ -4,7 +4,7 @@
|
||||
---
|
||||
site: empornium
|
||||
name: Empornium
|
||||
description: "A porn tracker"
|
||||
description: "Empornium (EMP) is a Private Torrent Tracker for XXX"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
@@ -53,11 +53,11 @@
|
||||
- name: replace
|
||||
args: ["\");", ""]
|
||||
test:
|
||||
path: /letoltes.php
|
||||
path: letoltes.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /letoltes.php
|
||||
- path: letoltes.php
|
||||
method: get
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}kat[]={{.}}&{{end}}"
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.ettv.tv
|
||||
- https://www.ettv.tv/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -65,7 +65,7 @@
|
||||
selector: a[href^="{{ .Config.downloadlink }}"]
|
||||
|
||||
search:
|
||||
path: torrents-search.php
|
||||
path: "{{if .Keywords}}torrents-search.php{{else}}torrents.php{{end}}"
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
@@ -28,7 +28,7 @@
|
||||
- name: re_replace
|
||||
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode (search doesn't support it)
|
||||
rows:
|
||||
selector: "table.forum_header_border tr[name='hover'].forum_header_border"
|
||||
selector: "table.forum_header_border tr[name='hover'].forum_header_border:has(a.magnet)" # some torrents don't have any download links, skip them
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
@@ -49,6 +49,8 @@
|
||||
download:
|
||||
selector: td:nth-child(3) a.magnet, td:nth-child(3) a
|
||||
attribute: href
|
||||
size:
|
||||
text: "500 MB"
|
||||
size:
|
||||
optional: true
|
||||
selector: td:nth-child(4)
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.fano.in
|
||||
- https://www.fano.in/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -4,7 +4,7 @@
|
||||
---
|
||||
site: femdomcult
|
||||
name: Femdomcult
|
||||
description: "A porn tracker"
|
||||
description: "Femdomcult is a Private Torrent Tracker for FETISH XXX"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
141
src/Jackett.Common/Definitions/film-paleis.yml
Normal file
141
src/Jackett.Common/Definitions/film-paleis.yml
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
site: film-paleis
|
||||
name: Film-Paleis
|
||||
description: "Film-Paleis is a DUTCH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: nl-NL
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.film-paleis.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: Movies/BluRay, desc: " Bluray/HD"}
|
||||
- {id: 3, cat: Movies/DVD, desc: " DVD Kids"}
|
||||
- {id: 4, cat: Audio/Video, desc: " DVD Muziek"}
|
||||
- {id: 5, cat: Movies/DVD, desc: " DVD Films"}
|
||||
- {id: 7, cat: Movies/UHD, desc: " 4K films"}
|
||||
- {id: 8, cat: XXX, desc: " Erotiek"}
|
||||
- {id: 9, cat: PC/Phone-Other, desc: " GSM/Navigatie"}
|
||||
- {id: 10, cat: Audio, desc: " Muziek Album"}
|
||||
- {id: 11, cat: Audio/Other, desc: " Muziek Diverse"}
|
||||
- {id: 12, cat: Console/NDS, desc: " Nintendo"}
|
||||
- {id: 13, cat: Movies, desc: " Classic"}
|
||||
- {id: 15, cat: Other, desc: " Overige"}
|
||||
- {id: 16, cat: PC/0day, desc: " PC Software"}
|
||||
- {id: 17, cat: PC, desc: " PC Spellen"}
|
||||
- {id: 19, cat: TV, desc: " TV Series"}
|
||||
- {id: 21, cat: Movies/SD, desc: " Divx/Xvid"}
|
||||
- {id: 24, cat: Books/Ebook, desc: " E-Books"}
|
||||
- {id: 26, cat: Audio/Other, desc: " Cabaret"}
|
||||
- {id: 27, cat: TV/Documentary, desc: " Documentaire"}
|
||||
- {id: 31, cat: Movies/HD, desc: " HD 265"}
|
||||
- {id: 32, cat: Audio/Audiobook, desc: " Luister Boeken"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table[border="0"][cellspacing="0"][cellpadding="10"] tr td font[color="yellow"]
|
||||
test:
|
||||
path: /
|
||||
selector: :has(a[href="logout.php"])
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{.Keywords}}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
size:
|
||||
selector: td:nth-child(4) table tr td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?) in"
|
||||
files:
|
||||
selector: td:nth-child(4) table tr td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "in (\\d{1,}) bestan"
|
||||
grabs:
|
||||
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(1)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{1,})"
|
||||
date:
|
||||
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(2)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["januari", "January"]
|
||||
- name: replace
|
||||
args: ["februari", "February"]
|
||||
- name: replace
|
||||
args: ["maart", "March"]
|
||||
- name: replace
|
||||
args: ["april", "April"]
|
||||
- name: replace
|
||||
args: ["mei", "May"]
|
||||
- name: replace
|
||||
args: ["juni", "June"]
|
||||
- name: replace
|
||||
args: ["juli", "July"]
|
||||
- name: replace
|
||||
args: ["augustus", "August"]
|
||||
- name: replace
|
||||
args: ["september", "September"]
|
||||
- name: replace
|
||||
args: ["oktober", "October"]
|
||||
- name: replace
|
||||
args: ["november", "November"]
|
||||
- name: replace
|
||||
args: ["december", "December"]
|
||||
- name: re_replace
|
||||
args: ["\\s*om\\s*"," "]
|
||||
- name: dateparse
|
||||
args: "2 January 2006 15:04:05"
|
||||
seeders:
|
||||
text: "0"
|
||||
seeders:
|
||||
optional: true
|
||||
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) b:nth-child(1)
|
||||
leechers:
|
||||
text: "0"
|
||||
leechers:
|
||||
optional: true
|
||||
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) b:nth-child(2)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -10,7 +10,7 @@
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "list_thanks.php"
|
||||
path: list_thanks.php
|
||||
method: "get"
|
||||
inputs:
|
||||
id: "{{ .DownloadUri.Query.id }}"
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://funkytorrents.com
|
||||
- http://funkytorrents.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
#$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
site: gay-torrents
|
||||
name: Gay-Torrents.net
|
||||
description: "Gay Torrents Live Free!"
|
||||
description: "Gay-Torrents.net is a Private Torrent Tracker for GAY XXX"
|
||||
language: en-us
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
|
@@ -3,12 +3,12 @@
|
||||
#
|
||||
site: gay-torrentsorg
|
||||
name: gay-torrents.org
|
||||
description: "Tracker for GAY XXX, movies, TV, books and PC."
|
||||
description: "Gay-Torrents.org is a Private Torrent Tracker for GAY XXX"
|
||||
language: en-us
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://gay-torrents.org
|
||||
- https://gay-torrents.org/
|
||||
- https://gay-area.org/
|
||||
|
||||
settings:
|
||||
|
@@ -4,7 +4,7 @@
|
||||
#
|
||||
site: gaytorrentru
|
||||
name: GAYtorrent.ru
|
||||
description: "World largest gay porn library for free with a stunning forum and 24/7 chat."
|
||||
description: "GayTorrent.ru is a Private Torrent Tracker for GAY XXX"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
|
86
src/Jackett.Common/Definitions/gdf76.yml
Normal file
86
src/Jackett.Common/Definitions/gdf76.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
site: gdf76
|
||||
name: gdf76
|
||||
description: "gdf76 is an ITALIAN semi-private site for ITA films in mp4 format optimized for streaming"
|
||||
language: it-it
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://gdf76.altervista.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 11, cat: Movies, desc: "Film 720p"}
|
||||
- {id: 13, cat: TV, desc: "Serie TV"}
|
||||
- {id: 2, cat: Audio, desc: "Music"}
|
||||
- {id: 3, cat: PC/Games, desc: "Games"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 6, cat: Books, desc: "Books"}
|
||||
- {id: 7, cat: PC/0day, desc: "Apps Win"}
|
||||
- {id: 8, cat: PC, desc: "Apps Linux"}
|
||||
- {id: 9, cat: PC/Mac, desc: "Apps Mac"}
|
||||
- {id: 4, cat: Other, desc: "Other"}
|
||||
- {id: 12, cat: XXX, desc: "Adult"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action="index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: tr td span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
|
||||
category: 0
|
||||
active: 0
|
||||
|
||||
rows:
|
||||
selector: tr > td > table > tbody tr:has(a[href^="index.php?page=torrent-details"])
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
download:
|
||||
selector: td a[href^="download.php"]
|
||||
attribute: href
|
||||
size:
|
||||
text: "500 MB"
|
||||
date:
|
||||
# 19/01/2019
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02/01/2006"
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
@@ -218,7 +218,7 @@
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
"login_username": "{{ .Config.username }}"
|
||||
@@ -230,12 +230,12 @@
|
||||
message:
|
||||
selector: td.thead b
|
||||
test:
|
||||
path: /tracker.php
|
||||
path: tracker.php
|
||||
selector: li a[href^="login.php?logout=1"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /tracker.php
|
||||
- path: tracker.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
|
||||
|
@@ -23,7 +23,7 @@
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -32,11 +32,11 @@
|
||||
error:
|
||||
- selector: .auth_form > .warning
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Query.Keywords }}"
|
||||
|
@@ -51,7 +51,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
@@ -60,11 +60,11 @@
|
||||
error:
|
||||
- selector: div.box:has(div.title:contains("bejelentkez"))
|
||||
test:
|
||||
path: /torrentek.php
|
||||
path: torrentek.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrentek.php
|
||||
- path: torrentek.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
@@ -77,7 +77,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /index.php?page=login
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
@@ -85,12 +85,12 @@
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /index.php
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: "thanks.php"
|
||||
path: thanks.php
|
||||
method: "post"
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
@@ -100,12 +100,43 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /index.php
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 1
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 2
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 3
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 4
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 5
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 6
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 7
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 8
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 9
|
||||
- path: index.php
|
||||
inputs:
|
||||
pages: 10
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{range .Categories}}{{.}};{{end}}"
|
||||
page: "torrents"
|
||||
active: 0
|
||||
order: 3
|
||||
by: 2
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
|
@@ -7,9 +7,8 @@
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.gktorrent.me/
|
||||
- https://www.gktorrent.tv/
|
||||
legacylinks:
|
||||
- https://www.gktorrent.org/
|
||||
- https://www.gktorrent.com/
|
||||
- http://www.gktorrent.com/
|
||||
- http://ww1.gktorrent.com/
|
||||
@@ -17,9 +16,15 @@
|
||||
- https://ww2.gktorrent.com/
|
||||
- https://ww3.gktorrent.com/
|
||||
- http://www.gktorrent.net/
|
||||
- https://www.gktorrent.net/
|
||||
- https://ww4.gktorrent.com/
|
||||
|
||||
- http://www.gktorrent.co/
|
||||
- https://www.gktorrent.co/
|
||||
- https://www.gktorrent.ws/
|
||||
- https://www.gktorrent.org/
|
||||
- https://www.gktorrent.me/
|
||||
- https://www.rantop.org/
|
||||
- https://www.gktorrent.net/
|
||||
- https://www.gktorrent.cx/
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: movies, cat: Movies, desc: "Movies"}
|
||||
@@ -38,11 +43,11 @@
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selector: a[href^="/get_torrent/"]
|
||||
selector: a[href*="/get_torrent/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{if .Keywords}}/recherche/{{.Keywords}}{{else}}{{end}}"
|
||||
- path: "{{if .Keywords}}recherche/{{.Keywords}}{{else}}{{end}}"
|
||||
rows:
|
||||
selector: div.listing-torrent > table > tbody > tr:has(a)
|
||||
fields:
|
||||
|
@@ -89,7 +89,7 @@
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: /login/
|
||||
path: login/
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
|
@@ -78,7 +78,7 @@
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
take_login: "1"
|
||||
@@ -88,11 +88,11 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
@@ -130,7 +130,7 @@
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
files:
|
||||
selector: td:nth-last-child(7)
|
||||
selector: td:nth-last-child(8)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
|
@@ -60,9 +60,11 @@
|
||||
- {id: 129, cat: Other/Misc, desc: "Documentales H265"}
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
login:
|
||||
path: /ajax/login.php
|
||||
path: ajax/login.php
|
||||
method: post
|
||||
headers:
|
||||
user-agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36"
|
||||
@@ -75,7 +77,7 @@
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /?p=home&pid=1
|
||||
path: ?p=home&pid=1
|
||||
selector: div#member_info_bar
|
||||
|
||||
search:
|
||||
|
@@ -25,7 +25,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -33,11 +33,11 @@
|
||||
error:
|
||||
- selector: table.main:contains("Login Failed!")
|
||||
test:
|
||||
path: /torrents
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /filterTorrents
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -100,9 +100,9 @@
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0"
|
||||
|
115
src/Jackett.Common/Definitions/hdarea.yml
Normal file
115
src/Jackett.Common/Definitions/hdarea.yml
Normal file
@@ -0,0 +1,115 @@
|
||||
---
|
||||
site: hdarea
|
||||
name: HDArea
|
||||
description: "HDArea is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.hdarea.co
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
||||
- {id: 415, cat: Movies/HD, desc: "Movies REMUX"}
|
||||
- {id: 416, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 410, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 411, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 414, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 412, cat: Movies/WEBDL, desc: "Movies WEB-DL"}
|
||||
- {id: 413, cat: Movies/HD, desc: "Movies HDTV"}
|
||||
- {id: 417, cat: Movies/Other, desc: "Movies iPad"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations"}
|
||||
- {id: 402, cat: TV, desc: "TV Series"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 409, cat: Other, desc: "Misc"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
||||
|
||||
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.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /torrents.php
|
||||
|
||||
ratio:
|
||||
path: /torrents.php
|
||||
selector: table#info_block
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Ratio:\\s(.*?)\\s\\s"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: "1"
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: "0"
|
||||
img.pro_free2up: "0"
|
||||
img.pro_50pctdown: "0.5"
|
||||
img.pro_50pctdown2up: "0.5"
|
||||
img.pro_30pctdown: "0.3"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: "2"
|
||||
img.pro_free2up: "2"
|
||||
img.pro_2up: "2"
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hdbits.org
|
||||
- https://hdbits.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -23,7 +23,7 @@
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: /login
|
||||
path: login
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
|
@@ -6,7 +6,7 @@
|
||||
encoding: UTF-8
|
||||
type: private
|
||||
links:
|
||||
- https://www.hd-bits.com
|
||||
- https://www.hd-bits.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -33,7 +33,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -42,7 +42,7 @@
|
||||
error:
|
||||
- selector: div#error-text
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -97,6 +97,7 @@
|
||||
selector: td.leecher_col
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.freeleech_slot": "0" # 24h freeelech slot
|
||||
"span.freeleech": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
site: hdchina
|
||||
name: HDChina
|
||||
description: "A chinese tracker"
|
||||
description: "HDChina (HDWing) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -41,26 +41,28 @@
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker in your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find 'cookie:' in the <b>Request Headers</b> section<li>Copy & paste the whole cookie string to here</ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
method: cookie
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
@@ -114,10 +116,15 @@
|
||||
args: " ago"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown: ".5"
|
||||
img.pro_30pctdown: ".3"
|
||||
img.pro_free: "0"
|
||||
img.pro_free2up: "0"
|
||||
img.pro_50pctdown: "0.5"
|
||||
img.pro_50pctdown2up: "0.5"
|
||||
img.pro_30pctdown: "0.3"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
img.pro_50pctdown2up: "2"
|
||||
img.pro_free2up: "2"
|
||||
img.pro_2up: "2"
|
||||
"*": "1"
|
||||
|
@@ -115,8 +115,20 @@
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info
|
||||
type: info
|
||||
label: "IP requirement"
|
||||
default: "This site accepts only users with Spanish IP addresses.<br>For others it will return error: 403 Forbidden."
|
||||
|
||||
login:
|
||||
path: /index.php?page=login
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
|
220
src/Jackett.Common/Definitions/hdforever.yml
Normal file
220
src/Jackett.Common/Definitions/hdforever.yml
Normal file
@@ -0,0 +1,220 @@
|
||||
---
|
||||
site: hdforever
|
||||
name: HD-Forever
|
||||
description: "HD-Forever (HD-F) is a FRENCH Private Torrent Tracker for HD MOVIES"
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hdf.world/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: Movies
|
||||
2: Movies
|
||||
3: Movies
|
||||
4: Movies
|
||||
5: TV
|
||||
6: TV/Anime
|
||||
7: Movies
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
login: "Log in"
|
||||
error:
|
||||
- selector: form#loginform > span.warning
|
||||
test:
|
||||
path: torrents.php
|
||||
|
||||
ratio:
|
||||
path: torrents.php
|
||||
selector: li#stats_ratio > span
|
||||
|
||||
search:
|
||||
path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
|
||||
searchstr: "{{ .Query.Keywords }}"
|
||||
order_by: time
|
||||
order_way: desc
|
||||
action: basic
|
||||
searchsubmit: 1
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr.torrent
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: div.group_info
|
||||
remove: span:nth-child(1), div.tags
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: re_replace
|
||||
args: ["^(.+) (.+)", "$2-$1"]
|
||||
- name: replace
|
||||
args: [" ", " "]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Original", "Complete.BluRay"]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Remux", "Remux"]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Rip", "BluRay.Rip"]
|
||||
- name: replace
|
||||
args: ["mHD", "mHD.BluRay.Rip"]
|
||||
- name: replace
|
||||
args: ["/ DC", "/ Directors.Cut"]
|
||||
- name: replace
|
||||
args: ["/ VL", "/ Extended"]
|
||||
- name: replace
|
||||
args: ["/ RM", "/ Remastered"]
|
||||
- name: replace
|
||||
args: ["/ UC", "/ Uncut"]
|
||||
- name: replace
|
||||
args: ["/ ES", "/ Special.Edition"]
|
||||
- name: replace
|
||||
args: [" / Cust_sub", ""]
|
||||
- name: replace
|
||||
args: [" / Cust", ""]
|
||||
- name: replace
|
||||
args: ["/ UN", "/ Unrated"]
|
||||
- name: replace
|
||||
args: [" / Crit", ""]
|
||||
- name: replace
|
||||
args: [" / WAC", ""]
|
||||
- name: replace
|
||||
args: [" / MoC", ""]
|
||||
- name: replace
|
||||
args: [" / BFI", ""]
|
||||
- name: replace
|
||||
args: [" / MUET", ""]
|
||||
- name: replace
|
||||
args: ["/ Exc NF", "/ NF"]
|
||||
- name: replace
|
||||
args: ["/ Exc AMZ", "/ AMZ"]
|
||||
- name: replace
|
||||
args: ["/ Exc YOU", "/ YT"]
|
||||
- name: replace
|
||||
args: [" / ↓25%", ""]
|
||||
- name: replace
|
||||
args: [" / ↓50%", ""]
|
||||
- name: replace
|
||||
args: [" / ↓75%", ""]
|
||||
- name: replace
|
||||
args: [" / Free", ""]
|
||||
- name: replace
|
||||
args: [" / Complété!", ""]
|
||||
- name: replace
|
||||
args: [" / ", "."]
|
||||
- name: trim
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.StFr.MULTI", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.VO.StFr.MULTI", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.VO.StFr", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFQ.VO.StFr", ".MULTI.VFQ"]
|
||||
- name: replace
|
||||
args: [".VO.VFI.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VO.VF?.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VFF.VO.StFr", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VOF.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFQ.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFF.StFr.MULTI", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VFF.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFI.MULTI", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VO.StFr", ".VOSTFR"]
|
||||
- name: replace
|
||||
args: [".VFQ.VO", ".MULTI.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VO", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VO.VF?.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VFI.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VOF.MULTI", ".MULTI.FRENCH"]
|
||||
- name: replace
|
||||
args: [".VOF", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFQ.MULTI", ".MULTI.VFQ"]
|
||||
description:
|
||||
selector: div.group_info
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
comments:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td.cats_col
|
||||
case:
|
||||
div.cats_film: 1
|
||||
div.cats_dessinanimé: 2
|
||||
div.cats_bonusbd: 3
|
||||
div.cats_concert: 4
|
||||
div.cats_série: 5
|
||||
div.cats_sérieanim: 6
|
||||
div.cats_doc: 7
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Il y a ", ""]
|
||||
- name: replace
|
||||
args: ["heures", "hours"]
|
||||
- name: replace
|
||||
args: ["heure", "hour"]
|
||||
- name: replace
|
||||
args: ["jours", "days"]
|
||||
- name: replace
|
||||
args: ["jour", "day"]
|
||||
- name: replace
|
||||
args: ["semaines", "weeks"]
|
||||
- name: replace
|
||||
args: ["semaine", "week"]
|
||||
- name: replace
|
||||
args: ["mois", "months"]
|
||||
- name: replace
|
||||
args: ["ans", "years"]
|
||||
- name: replace
|
||||
args: ["an", "year"]
|
||||
- name: append
|
||||
args: " ago"
|
||||
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:
|
||||
"div.group_info:contains(\"↓Free\")": "0"
|
||||
"div.group_info:contains(\"↓75%\")": "0.75"
|
||||
"div.group_info:contains(\"↓50%\")": "0.50"
|
||||
"div.group_info:contains(\"↓25%\")": "0.25"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
links:
|
||||
- https://hdme.eu
|
||||
- https://hdme.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -43,7 +43,7 @@
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
form: form
|
||||
inputs:
|
||||
@@ -54,10 +54,10 @@
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: /my.php
|
||||
path: my.php
|
||||
|
||||
ratio:
|
||||
path: /my.php
|
||||
path: my.php
|
||||
selector: span.smallfont > font
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
122
src/Jackett.Common/Definitions/hdplus.yml
Normal file
122
src/Jackett.Common/Definitions/hdplus.yml
Normal file
@@ -0,0 +1,122 @@
|
||||
---
|
||||
site: hdplus
|
||||
name: HDplus
|
||||
description: "HDplus is Private Torrent Tracker for MOVIES / TV / MUSIC"
|
||||
language: en-us
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hdplus.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: 1
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: meta[name="csrf-token"]
|
||||
attribute: content
|
||||
error:
|
||||
- selector: form[action$="/login"] .text-red
|
||||
test:
|
||||
path: /
|
||||
selector: a[href$="/logout"]
|
||||
|
||||
ratio:
|
||||
path: /
|
||||
selector: span:has(i.fa-sync-alt)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Ratio : (\\d+)"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: ""
|
||||
tmdb: ""
|
||||
sort: created_at
|
||||
direction: desc
|
||||
qty: 100
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
size:
|
||||
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\.]+)
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch
|
||||
- name: re_replace
|
||||
args: ["(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|hace|il y a|vor|преди)", "ago"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден)", "day"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
"i[data-original-title=\"Global freeleech\"]": "0" # Global Freeleech
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
|
||||
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
|
||||
"*": "1"
|
@@ -1,12 +1,12 @@
|
||||
---
|
||||
site: hdsky
|
||||
name: HDSky
|
||||
description: "A chinese tracker"
|
||||
description: "HDSky is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-cn
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://hdsky.me
|
||||
- https://hdsky.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -40,10 +40,10 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
ratio:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
selector: table#info_block
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
|
||||
|
@@ -38,6 +38,8 @@
|
||||
search:
|
||||
path: index.php
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "T$1"]
|
||||
- name: re_replace
|
||||
args: ["S0?(\\d{1,2})E(\\d{1,2})", "$1x$2"]
|
||||
inputs:
|
||||
|
@@ -56,23 +56,25 @@
|
||||
- name: re_replace #separate title
|
||||
args: ["(\\s+\\/\\s+|\\/\\s+|\\s+\\/|\\/)(.*)\\s\\(", " ("]
|
||||
- name: re_replace #remove (yyyy) from the title
|
||||
args: ["(\\(\\d{4}\\))|(\\(\\d{4})", ""]
|
||||
args: ["(\\(\\d{4}\\)?\\s?)", ""]
|
||||
- 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"]
|
||||
args: ["(\\s\\||\\s\\/)", ""]
|
||||
- name: re_replace # Stagione X --> S0X
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
|
||||
- name: re_replace # Stagione XX --> SXX
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
|
||||
- name: re_replace #/ Episodio [YY-YY --> EYY-YY
|
||||
args: ["(\\s\\/\\sEpisodio|\\s\\/\\sEpisodi|\\sEpisodio|\\s\\|\\sEpisodio|\\sEpisodi)\\s\\[", "E"]
|
||||
args: ["(?i)(\\s\\/?\\s?Episodi[o]?)\\s\\[", "E"]
|
||||
- name: re_replace # Episodio 4 to E4
|
||||
args: ["(?i)\\b(?:[\\s\\/\\|]?Episodi[o]?\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
|
||||
- name: re_replace #/ Completa [episodi YY-YY --> EYY-YY
|
||||
args: ["(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
|
||||
args: ["(?i)(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
|
||||
- name: re_replace #remove di YY] | remove /YY]
|
||||
args: ["(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
|
||||
args: ["(?i)(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
|
||||
- name: re_replace #remove various
|
||||
args: ["(Serie completa|Completa|\\[in pausa\\])", ""]
|
||||
args: ["(?i)(Serie completa|Completa|\\[in pausa\\])", ""]
|
||||
title|append: #start year
|
||||
text: "("
|
||||
text: " ("
|
||||
title|append: #add year
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
filters:
|
||||
@@ -99,6 +101,9 @@
|
||||
args: ["ITA", ""]
|
||||
title|append: #end TAG
|
||||
text: "ITA]"
|
||||
filters:
|
||||
- name: re_replace # replace multiple spaces
|
||||
args: ["[ ]{2,}", " "]
|
||||
details:
|
||||
selector: td:nth-child(2) a:nth-child(1)
|
||||
attribute: href
|
||||
@@ -135,6 +140,8 @@
|
||||
"a[href^=\"details.php\"]:contains(\"Stagione\")": 5040 # TV/HD
|
||||
"*": 2040 # default to Movies/HD
|
||||
downloadvolumefactor:
|
||||
text: "1"
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
||||
|
@@ -63,11 +63,11 @@
|
||||
- selector: tbody:has(td.colhead > span:contains("Error"))
|
||||
- selector: tbody:has(td.colhead > span:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
@@ -43,7 +43,7 @@
|
||||
label: Pin
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
@@ -55,11 +55,11 @@
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
test:
|
||||
selector: a[href^="logout.php"]
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /browse.php
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
@@ -90,7 +90,7 @@
|
||||
- name: append
|
||||
args: "Language: polish\n<br>"
|
||||
- name: prepend
|
||||
args: {{ .Result.description }}
|
||||
args: "{{ .Result.description }}"
|
||||
description:
|
||||
optional: true
|
||||
selector: img[src="pic/napisy.png"]
|
||||
@@ -98,7 +98,7 @@
|
||||
- name: append
|
||||
args: "Subbed\n<br>"
|
||||
- name: prepend
|
||||
args: {{ .Result.description }}
|
||||
args: "{{ .Result.description }}"
|
||||
imdb:
|
||||
optional: true
|
||||
selector: a[href^="http://www.imdb.com/title/tt"]
|
||||
|
113
src/Jackett.Common/Definitions/hush.yml
Normal file
113
src/Jackett.Common/Definitions/hush.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
site: hush
|
||||
name: HuSh
|
||||
description: "HuSh is a community-built Movie/TV/FANRES database."
|
||||
language: fr-fr
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://team-hush.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Film"}
|
||||
- {id: 2, cat: TV, desc: "Serie"}
|
||||
- {id: 3, cat: Movies, desc: "Doc"}
|
||||
- {id: 4, cat: Movies, desc: "Dessin Anime"}
|
||||
- {id: 5, cat: Movies, desc: "Rlz Hush"}
|
||||
- {id: 6, cat: Movies, desc: "Media"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: form[action*="/login"] .text-red
|
||||
test:
|
||||
path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: filterTorrents
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}categories[]={{.}}&{{end}}"
|
||||
search: "{{if .Query.IMDBID}}{{else}}{{ .Keywords }}{{end}}"
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: ""
|
||||
tmdb: ""
|
||||
mal: ""
|
||||
sorting: created_at
|
||||
direction: desc
|
||||
qty: 100
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
size:
|
||||
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\.]+)
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portoguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch
|
||||
- name: re_replace
|
||||
args: ["(önce|tagasi|geleden|fa|temu|siden|atrás|nazpět|назад|acum|hace|il y a|vor|преди)", "ago"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut)", "minute"]
|
||||
- name: re_replace
|
||||
args: ["(dakika|minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur)", "hour"]
|
||||
- name: re_replace
|
||||
args: ["(saat|tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден)", "day"]
|
||||
- name: re_replace
|
||||
args: ["(gün|päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица)", "week"]
|
||||
- name: re_replace
|
||||
args: ["(hafta|nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|mois|Monat|месец|maand)", "month"]
|
||||
- name: re_replace
|
||||
args: [" (ay|kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"100% Free\"]": "0" # Single Torrent Freeleech
|
||||
"i[data-original-title=\"Global FreeLeech\"]": "0" # Global Freeleech
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"i[data-original-title=\"Double upload\"]": "2" # Single Torrent Double Upload
|
||||
"i[data-original-title=\"Double Upload\"]": "2" # Global Double Upload
|
||||
"*": "1"
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.hyperay.org
|
||||
- https://www.hyperay.org/
|
||||
legacylinks:
|
||||
- https://www.hyperay.cc
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /torrents.php
|
||||
path: torrents.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /torrents.php
|
||||
- path: torrents.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
|
||||
|
@@ -6,7 +6,7 @@
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.icetorrent.org
|
||||
- https://www.icetorrent.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -26,7 +26,7 @@
|
||||
- {id: 26, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 38, cat: PC/Phone-Other, desc: "Mobile"}
|
||||
- {id: 59, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 92, cat: Movies/HD, desc: "Movies/4K-UHD"}
|
||||
- {id: 92, cat: Movies/UHD, desc: "Movies/4K-UHD"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "Movies/Blu-Ray"}
|
||||
- {id: 28, cat: Movies/DVD, desc: "Movies/DVD"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies/HD-x264"}
|
||||
@@ -53,7 +53,7 @@
|
||||
movie-search: [q, imdbid]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
path: login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
@@ -62,7 +62,7 @@
|
||||
error:
|
||||
- selector: font:contains("failed") + table
|
||||
test:
|
||||
path: /browse.php
|
||||
path: browse.php
|
||||
|
||||
ratio:
|
||||
text: -1
|
||||
@@ -79,7 +79,7 @@
|
||||
incldead: 1
|
||||
search_by: "{{ if .Query.IMDBID }}imdb{{else}}name{{end}}"
|
||||
rows:
|
||||
selector: table.torrenttable > tbody > tr:has(a[title][href^="details.php?id="])
|
||||
selector: table.table-striped > tbody > tr:has(a[title][href^="details.php?id="])
|
||||
fields:
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
@@ -88,18 +88,15 @@
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href*=".php?cat="]
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
imdb:
|
||||
selector: a[title="IMDB"]
|
||||
attribute: href
|
||||
banner:
|
||||
attribute: rel
|
||||
imdb:
|
||||
selector: a[href^="http://www.imdb.com/title/"]
|
||||
selector: a[href*="https://www.imdb.com/title/"]
|
||||
optional: true
|
||||
attribute: href
|
||||
download:
|
||||
@@ -114,13 +111,10 @@
|
||||
selector: td:has(a[href$="filelist=1#filelist"])
|
||||
remove: a
|
||||
date:
|
||||
selector: td > span:has(i.fa-clock)
|
||||
remove: b
|
||||
selector: td > small:has(i.fa-clock)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Added on ", ""]
|
||||
- name: replace
|
||||
args: ["st ", " "]
|
||||
- name: replace
|
||||
@@ -129,8 +123,8 @@
|
||||
args: ["rd ", " "]
|
||||
- name: replace
|
||||
args: ["th ", " "]
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: regexp
|
||||
args: "(.+?) by"
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
@@ -145,6 +139,3 @@
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:has(a[title][href^="details.php?id="])
|
||||
remove: a[title][href^="details.php?id="], div, font:contains("Added on")
|
||||
|
@@ -1,92 +0,0 @@
|
||||
---
|
||||
site: idopeclone
|
||||
name: IdopeClone
|
||||
description: "This Clone of iDope is a Public torrent search engine"
|
||||
language: en-us
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.idope.site/
|
||||
legacylinks:
|
||||
- https://idope.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: other, cat: Other, desc: "Others"}
|
||||
- {id: movies, cat: Movies, desc: "Movies"}
|
||||
- {id: videos, cat: Other, desc: "Videos"}
|
||||
- {id: tv, cat: TV, desc: "TV"}
|
||||
- {id: anime, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: xxx, cat: XXX, desc: "XXX"}
|
||||
- {id: adult, cat: XXX, desc: "XXX"}
|
||||
- {id: music, cat: Audio, desc: "Music"}
|
||||
- {id: games, cat: PC/Games, desc: "Games"}
|
||||
- {id: apps, cat: PC/0day, desc: "Apps"}
|
||||
- {id: applications, cat: PC/0day, desc: "Apps"}
|
||||
- {id: android, cat: PC/Phone-Android, desc: "Android"}
|
||||
- {id: software, cat: PC/0day, desc: "Apps"}
|
||||
- {id: books, cat: Books, desc: "Books"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{if .Keywords}}search/{{ .Keywords}}/{{else}}recent/{{end}}"
|
||||
- path: "{{if .Keywords}}s/{{ .Keywords}}/page/2{{else}}recent/2{{end}}"
|
||||
- path: "{{if .Keywords}}s/{{ .Keywords}}/page/3{{else}}recent/3{{end}}"
|
||||
- path: "{{if .Keywords}}s/{{ .Keywords}}/page/4{{else}}recent/4{{end}}"
|
||||
- path: "{{if .Keywords}}s/{{ .Keywords}}/page/5{{else}}recent/5{{end}}"
|
||||
rows:
|
||||
selector: li:has(div.opt-text-w3layouts)
|
||||
filters:
|
||||
- name: andmatch
|
||||
fields:
|
||||
title:
|
||||
selector: div.opt-text-w3layouts a
|
||||
details:
|
||||
selector: div.opt-text-w3layouts a
|
||||
attribute: href
|
||||
category:
|
||||
optional: true
|
||||
selector: a[href^="/browse/"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/browse/", ""]
|
||||
magnet:
|
||||
selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: div.seedbar span:nth-child(4)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Age: ", ""]
|
||||
- name: timeago
|
||||
files:
|
||||
selector: div.seedbar span:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Files: ", ""]
|
||||
size:
|
||||
selector: div.seedbar span:nth-child(3)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Size: ", ""]
|
||||
seeders:
|
||||
selector: div.seedbar span:nth-child(1)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Seed: ", ""]
|
||||
leechers:
|
||||
selector: div.seedbar span:nth-child(2)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Leech: ", ""]
|
||||
downloadvolumefactor:
|
||||
text: "0"
|
||||
uploadvolumefactor:
|
||||
text: "1"
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user