mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-16 08:54:24 +02:00
Compare commits
122 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f2c9c616f0 | ||
![]() |
51ce6a23b7 | ||
![]() |
441c1c6305 | ||
![]() |
a469179f7e | ||
![]() |
da5c93930e | ||
![]() |
5431d72db5 | ||
![]() |
aecc9f75d5 | ||
![]() |
ce795166a6 | ||
![]() |
e8d6fd58bb | ||
![]() |
b51a7ebc72 | ||
![]() |
ae6294efcd | ||
![]() |
19948b34ed | ||
![]() |
2f26e55721 | ||
![]() |
812f35fb65 | ||
![]() |
5c1515f433 | ||
![]() |
a7f19b2336 | ||
![]() |
2f0db09826 | ||
![]() |
99d2e3931f | ||
![]() |
e56c4ab103 | ||
![]() |
7c36fdbf8f | ||
![]() |
79553c08f6 | ||
![]() |
3c27ed82cf | ||
![]() |
ccfe3c41c4 | ||
![]() |
747920f501 | ||
![]() |
e2dd35a2c4 | ||
![]() |
d15560099b | ||
![]() |
b664abdab6 | ||
![]() |
856e6d0954 | ||
![]() |
b72d4f3ab2 | ||
![]() |
04ddc20d2a | ||
![]() |
33523003d2 | ||
![]() |
7133c99dde | ||
![]() |
c7a5041294 | ||
![]() |
f355ef26b6 | ||
![]() |
ee59fc0c5c | ||
![]() |
1df4ec64f5 | ||
![]() |
c6fc22dde3 | ||
![]() |
f7f35c6458 | ||
![]() |
e6533be431 | ||
![]() |
b6b37e2378 | ||
![]() |
2ec26ac987 | ||
![]() |
e305d5828d | ||
![]() |
7e00f22bf9 | ||
![]() |
1541d112e0 | ||
![]() |
d0e3b30a27 | ||
![]() |
209b9392de | ||
![]() |
215dc12f4d | ||
![]() |
e124029bda | ||
![]() |
5cddc0576a | ||
![]() |
ad06a669a6 | ||
![]() |
bced4b14f9 | ||
![]() |
30b30e8861 | ||
![]() |
cf1db13b8d | ||
![]() |
a0a922a390 | ||
![]() |
987c68260b | ||
![]() |
607c3f6b0b | ||
![]() |
b71d856695 | ||
![]() |
dd9a4b075c | ||
![]() |
b7faddf39f | ||
![]() |
9bd5622921 | ||
![]() |
5b6a855ed5 | ||
![]() |
6ba887ef57 | ||
![]() |
03c9e3036c | ||
![]() |
f08db1adc2 | ||
![]() |
1f591f3c44 | ||
![]() |
b7bfa2baad | ||
![]() |
2b1f138d6f | ||
![]() |
cc749530de | ||
![]() |
64a78c4965 | ||
![]() |
39403eb39c | ||
![]() |
b492c24647 | ||
![]() |
dd76673e12 | ||
![]() |
e289b81875 | ||
![]() |
a25a8746d8 | ||
![]() |
9768f5881d | ||
![]() |
bdbd406236 | ||
![]() |
bdaa180eb8 | ||
![]() |
ce75ba4a92 | ||
![]() |
9ba0e271fa | ||
![]() |
b830cb135b | ||
![]() |
55a6166922 | ||
![]() |
6c5c96e356 | ||
![]() |
e07a231cb3 | ||
![]() |
1a9a78aeda | ||
![]() |
db5ee7d012 | ||
![]() |
6a6b943d83 | ||
![]() |
ff21baf468 | ||
![]() |
da7f0f1f1c | ||
![]() |
3261a3910c | ||
![]() |
632fea3bce | ||
![]() |
861b710346 | ||
![]() |
f018470d69 | ||
![]() |
be33903ca8 | ||
![]() |
4c3a041f1d | ||
![]() |
08103e5854 | ||
![]() |
50cbfcb64e | ||
![]() |
da6bbba151 | ||
![]() |
a02ad0b6e6 | ||
![]() |
25b882a748 | ||
![]() |
36e370adaf | ||
![]() |
d77e111804 | ||
![]() |
cc1758e788 | ||
![]() |
6bc9a80cb1 | ||
![]() |
0a36300885 | ||
![]() |
95a3b2b4c8 | ||
![]() |
259d98c140 | ||
![]() |
0a3b5d2fed | ||
![]() |
83c4731982 | ||
![]() |
32880fcbd6 | ||
![]() |
560333495f | ||
![]() |
f640f66e83 | ||
![]() |
30009cfe48 | ||
![]() |
6ee1b3f935 | ||
![]() |
890071c418 | ||
![]() |
6048d887f6 | ||
![]() |
a9feb22e6d | ||
![]() |
a0659f1ca6 | ||
![]() |
d9199c74c8 | ||
![]() |
de3f6cf944 | ||
![]() |
fb0e9d664d | ||
![]() |
722391fda3 | ||
![]() |
d7742b64bf |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -198,3 +198,6 @@ FakesAssemblies/
|
||||
*.DS_Store
|
||||
.idea/
|
||||
launchSettings.json
|
||||
|
||||
# JetBrains Rider
|
||||
/src/.run
|
||||
|
137
README.md
137
README.md
@@ -5,7 +5,8 @@
|
||||
[](https://dev.azure.com/jackett/jackett/_build/latest?definitionId=1&branchName=master)
|
||||
[](https://github.com/Jackett/Jackett/releases/latest)
|
||||
[](https://hub.docker.com/r/linuxserver/jackett/)
|
||||
[](https://discord.gg/J865QuA)
|
||||
|
||||
_Our [](https://discord.gg/J865QuA) server is no longer maintained. If you have a problem, request, or question then please open a new issue here._
|
||||
|
||||
This project is a new fork and is recruiting development help. If you are able to help out please [contact us](https://github.com/Jackett/Jackett/issues/8180).
|
||||
|
||||
@@ -19,12 +20,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
|
||||
#### Supported Systems
|
||||
* Windows 7 SP1 or greater
|
||||
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/master/release-notes/5.0/5.0-supported-os.md#linux)
|
||||
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md#linux)
|
||||
* macOS 10.13 or greater
|
||||
|
||||
<details> <summary> <b> Supported Public Trackers </b> </summary>
|
||||
|
||||
* 01torrent
|
||||
* ØMagnet
|
||||
* 1337x
|
||||
* 24rolika
|
||||
@@ -64,7 +64,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* EXT Torrents
|
||||
* ExtraTorrent.st
|
||||
* EZTV
|
||||
* Filebase
|
||||
* FileListing
|
||||
* FireBit
|
||||
* Frozen Layer
|
||||
@@ -86,6 +85,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Legit Torrents
|
||||
* LePorno.info
|
||||
* LimeTorrents
|
||||
* LimeTorrents clone
|
||||
* LinuxTracker
|
||||
* Mac Torrents Download
|
||||
* MegaPeer
|
||||
@@ -252,11 +252,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Aftershock
|
||||
* Aidoru!Online
|
||||
* Aither
|
||||
* Alleen Retail
|
||||
* AlphaRatio (AR)
|
||||
* AmigosShareClub
|
||||
* anasch.cc
|
||||
* AnimeBytes (AB)
|
||||
* AnimeTorrents (AnT)
|
||||
* AnimeTorrents (AnT) [![(invite needed)][inviteneeded]](#)
|
||||
* AnimeWorld [![(invite needed)][inviteneeded]](#)
|
||||
* Anthelion
|
||||
* Araba Fenice (Phoenix) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -266,18 +267,20 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* AudioNews (AN)
|
||||
* Aussierul.es [![(invite needed)][inviteneeded]](#)
|
||||
* AvistaZ (AsiaTorrents)
|
||||
* Back-ups
|
||||
* bB
|
||||
* Back-ups [![(invite needed)][inviteneeded]](#)
|
||||
* bB [![(invite needed)][inviteneeded]](#)
|
||||
* BakaBT
|
||||
* BeiTai
|
||||
* Best-Core
|
||||
* BeyondHD (BHD)
|
||||
* Bibliotik
|
||||
* Bit-Bázis
|
||||
* Bit-City Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* BIT-HDTV
|
||||
* BiT-TiTAN
|
||||
* Bitded
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen
|
||||
* BitHUmen [![(invite needed)][inviteneeded]](#)
|
||||
* BitSexy
|
||||
* Bitspyder
|
||||
* BitTorrentFiles
|
||||
@@ -292,25 +295,26 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BroadCity
|
||||
* BrokenStones [![(invite needed)][inviteneeded]](#)
|
||||
* BrSociety
|
||||
* BTNext (BTNT)
|
||||
* BTNext (BTNT) [![(invite needed)][inviteneeded]](#)
|
||||
* BTSCHOOL
|
||||
* BWTorrents
|
||||
* BYRBT
|
||||
* Carp-Hunter
|
||||
* Carpathians
|
||||
* CartoonChaos (CC)
|
||||
* CasaTorrent [![(invite needed)][inviteneeded]](#)
|
||||
* Cathode-Ray.Tube (CRT)
|
||||
* CCFBits
|
||||
* CCFBits [![(invite needed)][inviteneeded]](#)
|
||||
* CeskeForum
|
||||
* CGPeers
|
||||
* CHDBits
|
||||
* CGPeers [![(invite needed)][inviteneeded]](#)
|
||||
* CHDBits [![(invite needed)][inviteneeded]](#)
|
||||
* ChileBT
|
||||
* Cinecalidad
|
||||
* CinemaMovieS_ZT
|
||||
* CinemaZ (EuTorrents)
|
||||
* Cinemageddon
|
||||
* Cinematik
|
||||
* Classix
|
||||
* Cinemageddon [![(invite needed)][inviteneeded]](#)
|
||||
* Cinematik [![(invite needed)][inviteneeded]](#)
|
||||
* Classix [![(invite needed)][inviteneeded]](#)
|
||||
* Coastal-Crew
|
||||
* Concertos
|
||||
* CrazyHD
|
||||
@@ -323,9 +327,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Dark Tracker
|
||||
* DataScene (DS)
|
||||
* DataTalli
|
||||
* DesiReleasers
|
||||
* DesiTorrents
|
||||
* Diablo Torrent
|
||||
* Diablo Torrent [![(invite needed)][inviteneeded]](#)
|
||||
* DigitalCore
|
||||
* DiscFan
|
||||
* DivTeam
|
||||
@@ -341,8 +344,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ExtremeBits
|
||||
* ExtremeTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Falkon Vision Team
|
||||
* FANO.IN
|
||||
* Fantastic Heaven
|
||||
* FANO.IN [![(invite needed)][inviteneeded]](#)
|
||||
* Fantastic Heaven [![(invite needed)][inviteneeded]](#)
|
||||
* Fantastiko [![(invite needed)][inviteneeded]](#)
|
||||
* Femdomcult
|
||||
* FileList (FL)
|
||||
@@ -358,7 +361,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Generation-Free [![(invite needed)][inviteneeded]](#)
|
||||
* GFXPeers
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT)
|
||||
* GimmePeers (formerly ILT) [![(invite needed)][inviteneeded]](#)
|
||||
* GiroTorrent
|
||||
* GreekDiamond
|
||||
* Greek Team
|
||||
@@ -366,10 +369,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Haitang
|
||||
* HappyFappy
|
||||
* HD Dolby
|
||||
* HD-Bits.com
|
||||
* HD-Bits.com [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Forever (HDF)
|
||||
* HD-Olimpo
|
||||
* HD-Only (HDO)
|
||||
* HD-Only (HDO) [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Space (HDS)
|
||||
* HD-Spain [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Torrents (HDT)
|
||||
@@ -377,54 +380,57 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HDAI
|
||||
* HDArea (HDA)
|
||||
* HDAtmos
|
||||
* HDBits
|
||||
* HDC (HDCiTY)
|
||||
* HDBits [![(invite needed)][inviteneeded]](#)
|
||||
* HDC (HDCiTY) [![(invite needed)][inviteneeded]](#)
|
||||
* HDCenter [![(invite needed)][inviteneeded]](#)
|
||||
* HDChina (HDWing)
|
||||
* HDCity
|
||||
* HDHome (HDBigger)
|
||||
* HDChina (HDWing) [![(invite needed)][inviteneeded]](#)
|
||||
* HDCity [![(invite needed)][inviteneeded]](#)
|
||||
* HDHome (HDBigger) [![(invite needed)][inviteneeded]](#)
|
||||
* HDME
|
||||
* HDRoute [![(invite needed)][inviteneeded]](#)
|
||||
* HDSky
|
||||
* HDSky [![(invite needed)][inviteneeded]](#)
|
||||
* HDTime
|
||||
* HDTorrents.it
|
||||
* HDTorrents.it [![(invite needed)][inviteneeded]](#)
|
||||
* HDTurk
|
||||
* HDU
|
||||
* HDZone
|
||||
* Hebits
|
||||
* HellasTZ
|
||||
* HQSource (HQS)
|
||||
* Il Corsaro Verde
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* IPTorrents (IPT)
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* ImmortalSeed (iS) [![(invite needed)][inviteneeded]](#)
|
||||
* Immortuos [![(invite needed)][inviteneeded]](#)
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
* JPopsuki
|
||||
* JPopsuki [![(invite needed)][inviteneeded]](#)
|
||||
* JPTV
|
||||
* Karagarga
|
||||
* Keep Friends
|
||||
* Keep Friends [![(invite needed)][inviteneeded]](#)
|
||||
* LastFiles
|
||||
* Lat-Team [![(invite needed)][inviteneeded]](#)
|
||||
* Le Saloon
|
||||
* LearnBits
|
||||
* LearnFlakes
|
||||
* LearnBits [![(invite needed)][inviteneeded]](#)
|
||||
* LearnFlakes [![(invite needed)][inviteneeded]](#)
|
||||
* leech24
|
||||
* LegacyHD (HD4Free)
|
||||
* LemonHD
|
||||
* Libble
|
||||
* Libble [![(invite needed)][inviteneeded]](#)
|
||||
* LibraNet (LN)
|
||||
* LinkoManija
|
||||
* LosslessClub
|
||||
* M-Team TP (MTTP)
|
||||
* LinkoManija [![(invite needed)][inviteneeded]](#)
|
||||
* LosslessClub [![(invite needed)][inviteneeded]](#)
|
||||
* M-Team TP (MTTP) [![(invite needed)][inviteneeded]](#)
|
||||
* MaDs Revolution [![(invite needed)][inviteneeded]](#)
|
||||
* magic-heaven
|
||||
* Magico (Trellas) [![(invite needed)][inviteneeded]](#)
|
||||
* Majomparádé (TurkDepo)
|
||||
* MegamixTracker
|
||||
* MeseVilág (Fairytale World)
|
||||
* MicroBit (µBit)
|
||||
* Milkie
|
||||
* MIRcrew
|
||||
* MMA-Torrents
|
||||
* MMA-Torrents [![(invite needed)][inviteneeded]](#)
|
||||
* MNV (Max-New-Vision)
|
||||
* Mononoké-BT [![(invite needed)][inviteneeded]](#)
|
||||
* MoreThanTV (MTV)
|
||||
@@ -439,15 +445,15 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* NetCosmo
|
||||
* NetLab
|
||||
* NorBits
|
||||
* Oasis
|
||||
* oMg[WtF]trackr
|
||||
* OpenCD
|
||||
* OpenCD [![(invite needed)][inviteneeded]](#)
|
||||
* Oppaitime [![(invite needed)][inviteneeded]](#)
|
||||
* Orpheus
|
||||
* OshenPT
|
||||
* Ourbits (HDPter)
|
||||
* Ourbits (HDPter) [![(invite needed)][inviteneeded]](#)
|
||||
* P2PBG
|
||||
* P2PElite
|
||||
* Partis [![(invite needed)][inviteneeded]](#)
|
||||
* PassThePopcorn (PTP)
|
||||
* PeerJunkies
|
||||
* Peers.FM
|
||||
@@ -465,13 +471,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ProAudioTorrents (PAT)
|
||||
* PTerClub
|
||||
* PTFiles (PTF)
|
||||
* PThome
|
||||
* PThome [![(invite needed)][inviteneeded]](#)
|
||||
* PTMSG
|
||||
* PTSBAO
|
||||
* PTtime
|
||||
* Punk's Horror Tracker
|
||||
* PuntoTorrent
|
||||
* PuroVicio
|
||||
* PuTao
|
||||
* Puur-Hollands
|
||||
* PWTorrents (PWT)
|
||||
* R3V WTF! [![(invite needed)][inviteneeded]](#)
|
||||
@@ -479,14 +486,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* RacingForMe (RFM)
|
||||
* RedBits
|
||||
* Red Star Torrent (RST) [![(invite needed)][inviteneeded]](#)
|
||||
* Redacted (PassTheHeadphones)
|
||||
* Redacted (PassTheHeadphones) [![(invite needed)][inviteneeded]](#)
|
||||
* Renegade
|
||||
* Resurrect The Net
|
||||
* RetroFlix
|
||||
* RevolutionTT
|
||||
* Romanian Metal Torrents (RMT) [![(invite needed)][inviteneeded]](#)
|
||||
* RPTorrents
|
||||
* SceneHD
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* ScenePalace (SP)
|
||||
* SceneRush
|
||||
* SceneTime
|
||||
@@ -495,7 +502,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Secret Cinema
|
||||
* SeedFile (SF)
|
||||
* Shareisland
|
||||
* Shazbat
|
||||
* Shazbat [![(invite needed)][inviteneeded]](#)
|
||||
* SiamBIT
|
||||
* SkipTheCommercials
|
||||
* slosoul
|
||||
@@ -503,12 +510,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* SoulVoice
|
||||
* SpeedApp (SceneFZ, XtreMeZone / MYXZ, ICE Torrent)
|
||||
* SpeedCD
|
||||
* Speedmaster HD
|
||||
* SpeedTorrent Reloaded
|
||||
* Speedmaster HD [![(invite needed)][inviteneeded]](#)
|
||||
* SpeedTorrent Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* Spirit of Revolution [![(invite needed)][inviteneeded]](#)
|
||||
* SportHD [![(invite needed)][inviteneeded]](#)
|
||||
* SportsCult
|
||||
* SpringSunday
|
||||
* SpringSunday [![(invite needed)][inviteneeded]](#)
|
||||
* SugoiMusic
|
||||
* Superbits (SBS)
|
||||
* Swarmazon
|
||||
@@ -519,7 +526,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TEKNO3D [![(invite needed)][inviteneeded]](#)
|
||||
* TellyTorrent
|
||||
* teracod (Movie Zone)
|
||||
* The Falling Angels (TFA)
|
||||
* The-Devils-Lounge
|
||||
* The Falling Angels (TFA) [![(invite needed)][inviteneeded]](#)
|
||||
* The Geeks
|
||||
* The Horror Charnel (THC)
|
||||
* The New Retro
|
||||
@@ -534,7 +542,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TheScenePlace (TSP)
|
||||
* TJUPT
|
||||
* TLFBits [![(invite needed)][inviteneeded]](#)
|
||||
* ToTheGlory (TTG)
|
||||
* ToTheGlory (TTG) [![(invite needed)][inviteneeded]](#)
|
||||
* Torrent Network (TN)
|
||||
* Torrent Sector Crew (TSC)
|
||||
* Torrent Surf
|
||||
@@ -548,7 +556,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TorrentDB
|
||||
* Torrentech (TTH)
|
||||
* TorrentHeaven [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentHR
|
||||
* TorrentHR [![(invite needed)][inviteneeded]](#)
|
||||
* Torrenting (TT) [![(invite needed)][inviteneeded]](#)
|
||||
* TotallyKids (TK)
|
||||
* Torrentland
|
||||
@@ -558,7 +566,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TorrentSeeds (TS)
|
||||
* Trackeros
|
||||
* TranceTraffic [![(invite needed)][inviteneeded]](#)
|
||||
* Trezzor
|
||||
* Trezzor [![(invite needed)][inviteneeded]](#)
|
||||
* TurkSeed
|
||||
* TurkTorrent (TT)
|
||||
* TV Chaos UK (TVCUK)
|
||||
@@ -571,8 +579,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* UnlimitZ
|
||||
* Vizuk
|
||||
* WDT (Wrestling Desires Torrents / Ultimate Wrestling Torrents)
|
||||
* White Angel
|
||||
* wOOt [![(invite needed)][inviteneeded]](#)
|
||||
* World-In-HD
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* x-ite.me (XM)
|
||||
* xBytesV2
|
||||
* XSpeeds (XS)
|
||||
@@ -634,7 +643,7 @@ We recommend you install Jackett as a Windows service using the supplied install
|
||||
|
||||
To get started with using the installer for Jackett, follow the steps below:
|
||||
|
||||
1. Check if you need any .NET prerequisites installed, see https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=net50#dependencies
|
||||
1. Check if you need any .NET prerequisites installed, see https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60#dependencies
|
||||
2. Download the latest version of the Windows installer, "Jackett.Installer.Windows.exe" from the [releases](https://github.com/Jackett/Jackett/releases/latest) page.
|
||||
3. When prompted if you would like this app to make changes to your computer, select "yes".
|
||||
4. If you would like to install Jackett as a Windows Service, make sure the "Install as Windows Service" checkbox is filled.
|
||||
@@ -704,7 +713,7 @@ On an Ubuntu 16 system: [chrisjohnson00.jackett](https://galaxy.ansible.com/chri
|
||||
macOS 10.13 or greater
|
||||
|
||||
### Install as service
|
||||
1. Download and extract the latest `Jackett.Binaries.macOS.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
|
||||
1. Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Binaries.macOSARM64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
|
||||
2. Open the extracted folder and double-click on `install_service_macos`.
|
||||
3. If the installation was a success, you can close the Terminal window.
|
||||
|
||||
@@ -712,7 +721,7 @@ The service will start on each logon. You can always stop it by running `launchc
|
||||
Logs are stored as usual under `~/.config/Jackett/log.txt`.
|
||||
|
||||
### Run without installing as a service
|
||||
Download and extract the latest `Jackett.Binaries.macOS.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`.
|
||||
Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Binaries.macOSARM64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases) and run Jackett with the command `./jackett`.
|
||||
|
||||
|
||||
## Installation using Docker
|
||||
@@ -796,8 +805,6 @@ To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/a
|
||||
|
||||
- `-p, --Port` Web server port
|
||||
|
||||
- `-m, --MigrateSettings` Migrate settings manually (Must be an admin on Windows)
|
||||
|
||||
- `-n, --IgnoreSslErrors` [true/false] Ignores invalid SSL certificates
|
||||
|
||||
- `-d, --DataFolder` Specify the location of the data folder (Must be an admin on Windows)
|
||||
@@ -840,21 +847,21 @@ git clone https://github.com/Jackett/Jackett.git
|
||||
cd Jackett/src
|
||||
|
||||
# dotnet core version
|
||||
dotnet publish Jackett.Server -f net5.0 --self-contained -r osx-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/net5.0/osx-x64/jackett # run jackett
|
||||
dotnet publish Jackett.Server -f net6.0 --self-contained -r osx-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/net6.0/osx-x64/jackett # run jackett
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
|
||||
```bash
|
||||
sudo apt install nuget msbuild dotnet-sdk-5.0 # install build tools (Debian/ubuntu)
|
||||
sudo apt install nuget msbuild dotnet-sdk-6.0 # install build tools (Debian/ubuntu)
|
||||
git clone https://github.com/Jackett/Jackett.git
|
||||
cd Jackett/src
|
||||
|
||||
# dotnet core version
|
||||
dotnet publish Jackett.Server -f net5.0 --self-contained -r linux-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/net5.0/linux-x64/jackett # run jackett
|
||||
dotnet publish Jackett.Server -f net6.0 --self-contained -r linux-x64 -c Debug # takes care of everything
|
||||
./Jackett.Server/bin/Debug/net6.0/linux-x64/jackett # run jackett
|
||||
```
|
||||
|
||||
## Screenshots
|
||||
|
@@ -2,12 +2,12 @@
|
||||
name: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
variables:
|
||||
majorVersion: 0
|
||||
minorVersion: 19
|
||||
minorVersion: 20
|
||||
patchVersion: $[counter(variables['minorVersion'], 1)] # this will reset when we bump minor
|
||||
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
buildConfiguration: Release
|
||||
netCoreFramework: net5.0
|
||||
netCoreSdkVersion: 5.0.x
|
||||
netCoreFramework: net6.0
|
||||
netCoreSdkVersion: 6.0.x
|
||||
# system.debug: true
|
||||
|
||||
trigger:
|
||||
@@ -50,6 +50,13 @@ stages:
|
||||
runtime: osx-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
macOSARM64:
|
||||
buildDescription: macOS ARM64
|
||||
imageName: macOS-10.15
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.macOSARM64.tar.gz
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
@@ -91,7 +98,7 @@ stages:
|
||||
projects: 'src/Jackett.Server/Jackett.Server.csproj'
|
||||
publishWebProjects: false
|
||||
zipAfterPublish: false
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build Jackett Updater
|
||||
@@ -100,7 +107,7 @@ stages:
|
||||
projects: 'src/Jackett.Updater/Jackett.Updater.csproj'
|
||||
publishWebProjects: false
|
||||
zipAfterPublish: false
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build Jackett Tray (Windows only)
|
||||
@@ -110,7 +117,7 @@ stages:
|
||||
projects: 'src/Jackett.Tray/Jackett.Tray.csproj'
|
||||
publishWebProjects: false
|
||||
zipAfterPublish: false
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build Jackett Service (Windows only)
|
||||
@@ -120,7 +127,7 @@ stages:
|
||||
projects: 'src/Jackett.Service/Jackett.Service.csproj'
|
||||
publishWebProjects: false
|
||||
zipAfterPublish: false
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy Jackett Server
|
||||
@@ -353,11 +360,6 @@ stages:
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
LinuxARM:
|
||||
buildDescription: Linux ARM
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-arm
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
@@ -380,20 +382,13 @@ stages:
|
||||
projects: '**/*.Test*/*.csproj'
|
||||
includeNuGetOrg: true
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build Test Project
|
||||
inputs:
|
||||
command: build
|
||||
projects: '**/*.Test*/*.csproj'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Unit Tests (Mono, Linux and macOS)
|
||||
condition: and(succeeded(), not(startsWith(variables['runtime'], 'win')))
|
||||
inputs:
|
||||
command: test
|
||||
projects: '**/*.Test*/*.csproj'
|
||||
arguments: '--configuration $(buildConfiguration) --framework $(framework) --runtime $(runtime)'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)'
|
||||
testRunTitle: 'Unit - $(buildDescription) - $(Build.BuildId)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
@@ -427,13 +422,13 @@ stages:
|
||||
codeCoverageTool: Cobertura
|
||||
summaryFileLocation: $(Build.SourcesDirectory)/coverlet/reports/Cobertura.xml
|
||||
|
||||
- stage: Integration
|
||||
- stage: IntegrationTestJackett
|
||||
displayName: Integration Tests
|
||||
dependsOn:
|
||||
- BuildJackett
|
||||
- CodeStyle
|
||||
jobs:
|
||||
- job: Selenium
|
||||
- job: IntegrationTest
|
||||
workspace:
|
||||
clean: all
|
||||
strategy:
|
||||
@@ -442,18 +437,26 @@ stages:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2019
|
||||
artifactName: Jackett.Binaries.Windows.zip
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
buildDescription: macOS
|
||||
imageName: macOS-10.15
|
||||
artifactName: Jackett.Binaries.macOS.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
@@ -495,18 +498,38 @@ stages:
|
||||
version: $(netCoreSdkVersion)
|
||||
installationPath: $(Agent.ToolsDirectory)/dotnet
|
||||
|
||||
# this task is a workaround to fix a bug in Azure (not required under normal circumstances)
|
||||
# https://developercommunity.visualstudio.com/content/problem/983843/dotnet-build-task-does-not-use-nugetorg-for-one-pr.html
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Run Integration Tests
|
||||
displayName: Restore IntegrationTest Project
|
||||
inputs:
|
||||
command: restore
|
||||
projects: '**/*IntegrationTest*/*.csproj'
|
||||
includeNuGetOrg: true
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Integration Tests (Mono, Linux and macOS)
|
||||
condition: and(succeeded(), not(startsWith(variables['runtime'], 'win')))
|
||||
inputs:
|
||||
command: test
|
||||
projects: '**/*IntegrationTest*/*.csproj'
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)'
|
||||
testRunTitle: 'Integration - $(buildDescription) - $(Build.BuildId)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Integration Tests (Windows only)
|
||||
condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
|
||||
inputs:
|
||||
command: test
|
||||
projects: '**/*IntegrationTest*/*.csproj'
|
||||
arguments: '--configuration $(buildConfiguration) --framework $(framework)'
|
||||
testRunTitle: 'Integration - $(buildDescription) - $(Build.BuildId)'
|
||||
|
||||
- stage: PublishGithub
|
||||
displayName: Publish to Github
|
||||
dependsOn:
|
||||
- UnitTestJackett
|
||||
- Integration
|
||||
- IntegrationTestJackett
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
|
||||
jobs:
|
||||
- job: Publish
|
||||
@@ -555,6 +578,6 @@ stages:
|
||||
$successCount = (Select-String "Uploaded file successfully:" -InputObject $logInspect -AllMatches).Matches.Count
|
||||
$failureCount = (Select-String "Duplicate asset found:" -InputObject $logInspect -AllMatches).Matches.Count
|
||||
Write-Output "Success count is: $successCount and failure count is: $failureCount"
|
||||
if (($successCount -ne 7) -or ($failureCount -ne 0)) { Write-Host "##vso[task.complete result=Failed;]DONE" }
|
||||
if (($successCount -ne 8) -or ($failureCount -ne 0)) { Write-Host "##vso[task.complete result=Failed;]DONE" }
|
||||
}
|
||||
}
|
||||
|
@@ -1,110 +0,0 @@
|
||||
---
|
||||
id: 01torrent
|
||||
name: 01Torrent
|
||||
description: "01Torrent is a Public tracker"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://www4.01torrent.net/
|
||||
- https://01torrent.unblockit.bz/
|
||||
legacylinks:
|
||||
- https://01torrent.unblockit.ws/
|
||||
- https://01torrent.unblockit.kim/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
"anime": TV/Anime
|
||||
"application": PC
|
||||
"book": Books
|
||||
"game": PC/Games
|
||||
"movie": Movies
|
||||
"music": Audio
|
||||
"tvshow": TV
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
# https://www3.01torrent.net/movie/erasing-his-dark-past-2020-720p-webrip-800mb-x264-galaxyrg/163219/
|
||||
# <script type="text/javascript">
|
||||
# $(document).ready(function(){
|
||||
# $("#forall").on('click','#clicktype',function(){
|
||||
# $("#showlinks").html("");
|
||||
# var datg=$(this).attr("name");
|
||||
# var dataString="id=163219&name="+datg;
|
||||
# $('#load').show(200);
|
||||
# setTimeout(function(){
|
||||
# $.ajax({type:"POST",
|
||||
# url:"/showme.php",
|
||||
# data:dataString,
|
||||
# cache:false,
|
||||
# success:function(html){
|
||||
# $("#showlinks").html(html)}
|
||||
# });
|
||||
# Ladda.stopAll();
|
||||
# $("#load").hide(200)}
|
||||
# ,3200)
|
||||
# })
|
||||
# });
|
||||
# </script>
|
||||
before:
|
||||
path: showme.php
|
||||
method: post
|
||||
inputs:
|
||||
id: "{{ re_replace .DownloadUri.AbsoluteUri \"^.*/(\\d+)/$\" \"$1\" }}"
|
||||
name: torrent
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
usebeforeresponse: true
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www4.01torrent.net/search/
|
||||
- path: search/
|
||||
method: post
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span.icomoon
|
||||
attribute: class
|
||||
filters:
|
||||
- name: split
|
||||
args: [" ", 1]
|
||||
- name: replace
|
||||
args: ["icomoon-", ""]
|
||||
title:
|
||||
selector: a.screenshot
|
||||
details:
|
||||
selector: a.screenshot
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.screenshot
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: span.label-default
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -64,8 +64,6 @@ login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="account-logout.php"]
|
||||
|
@@ -61,24 +61,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
|
186
src/Jackett.Common/Definitions/alleenretail.yml
Normal file
186
src/Jackett.Common/Definitions/alleenretail.yml
Normal file
@@ -0,0 +1,186 @@
|
||||
---
|
||||
id: alleenretail
|
||||
name: Alleen Retail
|
||||
description: "Alleen Retail is a DUTCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: nl-NL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.alleenretail.org/ # does not support https ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: Movies/DVD, desc: "Films DVD"}
|
||||
- {id: 17, cat: Movies, desc: "Films Promo"}
|
||||
- {id: 3, cat: Audio/Video, desc: "Muziek Video"}
|
||||
- {id: 4, cat: Audio/Video, desc: "Cabaret"}
|
||||
- {id: 18, cat: Movies, desc: "Films Kids"}
|
||||
- {id: 6, cat: TV, desc: "TV Series"}
|
||||
- {id: 19, cat: Other, desc: "Overigen"}
|
||||
- {id: 20, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 9, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 10, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Films AVI/DivX"}
|
||||
- {id: 22, cat: Movies, desc: "Films Classics"}
|
||||
- {id: 8, cat: Audio, desc: "Muziek"}
|
||||
- {id: 23, cat: PC/Mac, desc: "Software Mac"}
|
||||
- {id: 1, cat: Books/Comics, desc: "Stripboeken"}
|
||||
- {id: 13, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 14, cat: PC/Mobile-Other, desc: "Navigatie"}
|
||||
- {id: 7, cat: PC/0day, desc: "Software PC"}
|
||||
- {id: 12, cat: PC/Mobile-iOS, desc: "iOS"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Films HD"}
|
||||
- {id: 5, cat: Audio/Audiobook, desc: "Luisterboeken"}
|
||||
- {id: 15, cat: XXX, desc: "18+"}
|
||||
- {id: 24, cat: Movies/UHD, desc: "Films Blu-ray/3D/4K"}
|
||||
- {id: 16, cat: Books/EBook, desc: "Ebooks"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
# - name: thankyou
|
||||
# type: text
|
||||
# label: Thank You Comment
|
||||
# - name: info
|
||||
# type: info
|
||||
# label: Thank you comment
|
||||
# default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.main:contains("Aanmelden mislukt")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
# download:
|
||||
# before:
|
||||
# # /comment.php?action=add&tid=166386
|
||||
# path: comment.php
|
||||
# method: post
|
||||
# inputs:
|
||||
# action: add
|
||||
# tid: "{{ .DownloadUri.Query.id }}"
|
||||
# text: "{{ .Config.thankyou }}"
|
||||
# submit: Opslaan
|
||||
# selectors:
|
||||
# - selector: a[href^="download.php?id="]
|
||||
# attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)seizoen\\s*(\\d{1,2})\\s*(tot|t\/m)\\s*(\\d{1,2})", "S$1-$3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*)(\\d{1,2})", "E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)compleet", "Complete"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?) in"
|
||||
files:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "in (\\d+) bestan"
|
||||
grabs:
|
||||
selector: table tr:nth-child(2) td:nth-child(1)
|
||||
date:
|
||||
selector: table tr:nth-child(2) td:nth-child(3)
|
||||
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: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2 January 2006 15:04:05 -07:00"
|
||||
seeders_optional:
|
||||
optional: true
|
||||
selector: table tr:nth-child(3) td:nth-child(6) font b
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
optional: true
|
||||
selector: table tr:nth-child(3) td:nth-child(6) font b:nth-child(2)
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
# between 1.00 and 1.50 is required, and above 1.50 prohibited
|
||||
text: 1.25
|
||||
# engine n/a
|
@@ -63,24 +63,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
|
197
src/Jackett.Common/Definitions/bestcore.yml
Normal file
197
src/Jackett.Common/Definitions/bestcore.yml
Normal file
@@ -0,0 +1,197 @@
|
||||
---
|
||||
id: bestcore
|
||||
name: Best-Core
|
||||
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://best-core.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 81, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 83, cat: Movies/UHD, desc: "4K/UHD"}
|
||||
- {id: 80, cat: Movies/Other, desc: "Best-Core"}
|
||||
- {id: 51, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 88, cat: Audio/Audiobook, desc: "E-book/Hangoskönyv"}
|
||||
- {id: 77, cat: Movies/HD, desc: "Film/BDRip/Eng"}
|
||||
- {id: 86, cat: Movies/HD, desc: "Film/BDRip/Ger"}
|
||||
- {id: 76, cat: Movies/HD, desc: "Film/BDRip/Hun"}
|
||||
- {id: 75, cat: Movies/BluRay, desc: "Film/Blu-ray/Eng"}
|
||||
- {id: 74, cat: Movies/BluRay, desc: "Film/Blu-ray/Hun"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 85, cat: Movies/DVD, desc: "Film/DVD9"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 34, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 90, cat: Movies/SD, desc: "Film/XviD/Pack"}
|
||||
- {id: 26, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 52, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 89, cat: Movies/SD, desc: "Kamerás/Eng"}
|
||||
- {id: 82, cat: Movies/SD, desc: "Kamerás/Hun"}
|
||||
- {id: 38, cat: Other, desc: "Képek"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Konzol/PS"}
|
||||
- {id: 45, cat: Console/PSP, desc: "Konzol/PSP"}
|
||||
- {id: 44, cat: Console/XBox, desc: "Konzol/Xbox"}
|
||||
- {id: 73, cat: TV/Anime, desc: "Mese/Eng"}
|
||||
- {id: 70, cat: TV/Anime, desc: "Mese/Hun"}
|
||||
- {id: 37, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 22, cat: PC/0day, desc: "Program/Rip"}
|
||||
- {id: 54, cat: TV/SD, desc: "Sorozat/DVD/Eng"}
|
||||
- {id: 55, cat: TV/SD, desc: "Sorozat/DVD/Hun"}
|
||||
- {id: 58, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
|
||||
- {id: 62, cat: Audio/Video, desc: "Videoklip"}
|
||||
- {id: 64, cat: XXX/DVD, desc: "XXX/DVD"}
|
||||
- {id: 48, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
||||
- {id: 9, cat: XXX/XviD, desc: "XXX/Xvid"}
|
||||
- {id: 40, cat: Audio/MP3, desc: "Zene/Eng"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "Zene/Hun"}
|
||||
- {id: 87, cat: Audio/Lossless, desc: "Zene/Lossless"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search FreeLeech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_login
|
||||
type: info
|
||||
label: About login error
|
||||
default: If you get a <b>Login Failed, got redirected.</b> error during your config <i>save</i> then most likely you have used an incorrect username or password.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?c="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 active, 1 all, 2 deadonly, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.torrent_h
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
# can be abbreviated
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
# usually full length
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
- name: replace
|
||||
args: ["https://i.kek.sh/null", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})"
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: x \d(\d+) x$
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(7) b
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# custom v3.0
|
@@ -135,7 +135,8 @@ search:
|
||||
# searchIn: 0 all, 1 active, 2 dead, 3 highlights, 4 own uploads, 5 uploads bots, 6 onlyupload, 7 multiplier, 8 %download, 9 freeleech
|
||||
searchIn: "{{ if .Config.freeleech }}9{{ else }}0{{ end }}"
|
||||
# 1 25, 2 50, 3 75, 4 100
|
||||
limit: 2
|
||||
# api only responds with results if limit=1 is used !?! (as at 22-Nov-2021)
|
||||
limit: 1
|
||||
downloadLink: 1
|
||||
# 1 = Sat, 28 Nov 2020 23:29:38 +0100 (DEFAULT VALUE) , 2 = 1606606178 (UNIX TIMESTAMP) , 3 = 28.11.2020 23:29.38 (German Timestamp) , 4 = 2020-11-28 23:29:38 (Default Datetime)
|
||||
timeFormat: 2
|
||||
|
165
src/Jackett.Common/Definitions/bitbazis.yml
Normal file
165
src/Jackett.Common/Definitions/bitbazis.yml
Normal file
@@ -0,0 +1,165 @@
|
||||
---
|
||||
id: bitbazis
|
||||
name: Bit-Bázis
|
||||
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
# encoding: ISO-8859-2
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitbazis.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 34, cat: Movies/HD, desc: "Film/x264/Hun"}
|
||||
- {id: 83, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 64, cat: Movies, desc: "Film/Pack"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 17, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
|
||||
- {id: 19, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Film/x264/Eng"}
|
||||
- {id: 82, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 85, cat: Movies/SD, desc: "Film/Cam/XviD/Hun"}
|
||||
- {id: 86, cat: Movies/SD, desc: "Film/Cam/XviD/Eng"}
|
||||
- {id: 22, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Mese/XviD"}
|
||||
- {id: 58, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 68, cat: TV/Anime, desc: "Mese/DVD"}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 71, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 84, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 31, cat: PC/Games, desc: "Játék/PC"}
|
||||
- {id: 81, cat: PC/0day, desc: "Program/PC"}
|
||||
- {id: 14, cat: PC, desc: "Program/Egyéb"}
|
||||
- {id: 49, cat: PC/0day, desc: "Program/Rip"}
|
||||
- {id: 54, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Android"}
|
||||
- {id: 33, cat: XXX/SD, desc: "Film/SD/XXX"}
|
||||
- {id: 89, cat: XXX/x264, desc: "Film/HD/XXX"}
|
||||
- {id: 66, cat: XXX/ImageSet, desc: "Képek/XXX"}
|
||||
- {id: 27, cat: Books/EBook, desc: "Könyv/Hun"}
|
||||
- {id: 50, cat: Books/EBook, desc: "Könyv/Eng"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 24, cat: Audio/Video, desc: "Videóklipp"}
|
||||
- {id: 65, cat: Other, desc: "Egyéb"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table[width="920"]:contains("Hiba")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?k="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching or appear to have freeleech
|
||||
|
||||
rows:
|
||||
selector: table[width="900px"]:last-child tbody tr:has(a[href^="userdetails.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
size:
|
||||
selector: td:last-child
|
||||
date:
|
||||
# 2021-11-09 16:51:24
|
||||
selector: td:nth-last-child(2)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
files:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "D:(\\d+)x"
|
||||
seeders:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "S:(\\d+)"
|
||||
leechers:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "L:(\\d+)"
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
@@ -53,24 +53,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
|
@@ -54,24 +54,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
@@ -133,7 +121,9 @@ search:
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 5.3.0
|
||||
|
@@ -178,7 +178,9 @@ search:
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# UNIT3D 5.3.0
|
||||
|
@@ -6,7 +6,9 @@ language: pt-PT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://tracker.btnext.com/ # site forces http, https is not supported
|
||||
- https://tracker.btnext.com/ # site forces https
|
||||
legacylinks:
|
||||
- http://tracker.btnext.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
182
src/Jackett.Common/Definitions/byrbt.yml
Normal file
182
src/Jackett.Common/Definitions/byrbt.yml
Normal file
@@ -0,0 +1,182 @@
|
||||
---
|
||||
id: byrbt
|
||||
name: BYRBT
|
||||
description: "BYRBT is a CHINESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://byr.pt/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 408, cat: Movies, desc: "电影Movies"}
|
||||
- {id: 401, cat: TV, desc: "剧集TV Series"}
|
||||
- {id: 404, cat: TV/Anime, desc: "动漫Animations"}
|
||||
- {id: 402, cat: Audio, desc: "音乐Music"}
|
||||
- {id: 405, cat: Other, desc: "综艺Arts"}
|
||||
- {id: 403, cat: Console, desc: "游戏Games"}
|
||||
- {id: 406, cat: PC, desc: "软件Software"}
|
||||
- {id: 407, cat: TV/Documentary, desc: "资料Documentaries"}
|
||||
- {id: 409, cat: TV/Sport, desc: "体育Sports"}
|
||||
- {id: 410, cat: Other/Misc, desc: "纪录Records"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
- selector: td.embedded:has(h2:contains("failed!"))
|
||||
- selector: td.embedded:has(h2:contains("Failed"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?key="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact, 3 NOT
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-last-of-type(6) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-last-of-type(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-last-of-type(4)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-last-of-type(3)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-last-of-type(2)
|
||||
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
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# NexusPHP v1.5 beta 5 20120707
|
@@ -62,7 +62,7 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
cinfo: "2550|1350|24|-60"
|
||||
cinfo: "2550|1350|1.25|24|-60"
|
||||
iplocked: 0
|
||||
keeploggedin: 1
|
||||
error:
|
||||
|
@@ -16,8 +16,9 @@ caps:
|
||||
- {id: 8, cat: Movies/HD, desc: "Filmy HD"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Filmy SD"}
|
||||
- {id: 12, cat: Movies/Other, desc: "Filmy Inne"}
|
||||
- {id: 32, cat: Movies/UHD, desc: "Filmy UHD"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 32, cat: Movies/UHD, desc: "Filmy UHD 4K"}
|
||||
- {id: 33, cat: TV/UHD, desc: "TV UHD"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Bajki/Anime"}
|
||||
- {id: 10, cat: TV/Documentary, desc: "TV Dokumentalne"}
|
||||
- {id: 20, cat: TV, desc: "TV Paczki"}
|
||||
- {id: 22, cat: TV/Sport, desc: "TV Sport"}
|
||||
|
@@ -11,7 +11,7 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movie
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie - Xvid/x264"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie - SD"}
|
||||
- {id: 155, cat: Movies/DVD, desc: "Movie - DVD"}
|
||||
- {id: 130, cat: Movies/SD, desc: "Movie - SD-Pack"}
|
||||
# Movie-HD
|
||||
@@ -131,9 +131,9 @@ search:
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie-HD\")):has(div.kat_cat_pic_name_b:contains(\"HD-Pack\"))": 162
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie-HD\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 32
|
||||
# Movie
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Xvid/x264\"))": 28
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": 155
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD-Pack\"))": 130
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 28
|
||||
# Serien
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Xvid/x264\"))": 60
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"720p/1080p\"))": 157
|
||||
|
@@ -14,6 +14,9 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
|
@@ -21,12 +21,14 @@ caps:
|
||||
- {id: 5, cat: PC/0day, desc: "Application"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 8, cat: Books/EBook, desc: "E-Book"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -60,24 +62,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
@@ -94,6 +84,7 @@ search:
|
||||
"Application": 5
|
||||
"XXX": 6
|
||||
"Mobile": 7
|
||||
"E-Book": 8
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
@@ -141,6 +132,6 @@ search:
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 5.3.0
|
||||
|
@@ -20,12 +20,14 @@ caps:
|
||||
- {id: 5, cat: PC/0day, desc: "Application"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
- {id: 7, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 8, cat: Books/EBook, desc: "E-Book"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -124,15 +126,16 @@ search:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/400x600", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
date:
|
||||
selector: td:has(a.view-torrent) spam:last-child span:last-child
|
||||
remove: a
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
@@ -172,23 +175,23 @@ search:
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
# i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
# i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
# i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
# i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-trophy data-toggle"]: 0 # Global Freeleech
|
||||
# i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
# i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
i[class*="fa-angle-double-up"]: 2 # Single Torrent Double Upload
|
||||
# i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
# i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# UNIT3D 5.3.0
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# UNIT3D 5.3.0 (custom)
|
||||
|
@@ -1,186 +0,0 @@
|
||||
---
|
||||
id: desireleasers
|
||||
name: DesiReleasers
|
||||
description: "DesiReleasers is an INDIAN Private Torrent Tracker for INDIAN MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://desireleasers.be/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "Movies, TV, Music, MV, Game, Blockbuster"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div#ERROR_COPY
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/filter
|
||||
inputs:
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
description: ""
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
mal: ""
|
||||
igdb: ""
|
||||
start_year: ""
|
||||
end_year: ""
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
page: 0
|
||||
view: list
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a[href*="/download/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: span[class="name"]
|
||||
details:
|
||||
selector: a[href*="/torrents/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
# magnet:
|
||||
# selector: a[href^="magnet:?dn="]
|
||||
# attribute: href
|
||||
poster:
|
||||
selector: img.tps
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://images.weserv.nl/?url=" # for display on dashboard
|
||||
- name: append
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
# UNIT3D 5.1.0 (Customised)
|
@@ -54,24 +54,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: [^$, "%"]
|
||||
@@ -135,6 +123,6 @@ search:
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 day (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 5.3.0 (custom)
|
||||
|
@@ -182,6 +182,6 @@ search:
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 day (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D 5.3.0 (custom)
|
||||
|
@@ -18,11 +18,13 @@ caps:
|
||||
- {id: 60, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 71, cat: Other, desc: "Fonts"}
|
||||
- {id: 62, cat: Other, desc: "Graphic"}
|
||||
- {id: 63, cat: TV/HD, desc: "HD"}
|
||||
- {id: 72, cat: Books, desc: "IT Books"}
|
||||
- {id: 57, cat: Books/Mags, desc: "Magazine"}
|
||||
- {id: 58, cat: TV, desc: "Medicine"}
|
||||
- {id: 70, cat: Books/EBook, desc: "Occult"}
|
||||
- {id: 74, cat: Audio, desc: "Podcasts"}
|
||||
- {id: 69, cat: Other, desc: "PS Resources"}
|
||||
- {id: 76, cat: Books, desc: "Self-Help"}
|
||||
- {id: 56, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 59, cat: TV, desc: "Video"}
|
||||
- {id: 61, cat: TV, desc: "Video tutorials"}
|
||||
|
@@ -39,6 +39,8 @@ caps:
|
||||
- {id: 38, cat: TV/Documentary, desc: "Doku - HD"}
|
||||
- {id: 37, cat: TV/Documentary, desc: "Doku - SD"}
|
||||
- {id: 144, cat: TV/Documentary, desc: "Doku - Pack SD/HD"}
|
||||
# Empfohlene
|
||||
- {id: 150, cat: Other, desc: "Empfohlene - Torrents"}
|
||||
# Games
|
||||
- {id: 16, cat: PC/Games, desc: "Games - PC"}
|
||||
- {id: 14, cat: Console/Other, desc: "Games - Wimmelbild"}
|
||||
@@ -150,6 +152,8 @@ search:
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 144
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 38
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 37
|
||||
# Empfohlene
|
||||
":has(div.kat_cat_pic_name:contains(\"Empfohlene\")):has(div.kat_cat_pic_name_b:contains(\"Torrents\"))": 150
|
||||
# Games
|
||||
":has(div.kat_cat_pic_name:contains(\"Games\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": 16
|
||||
":has(div.kat_cat_pic_name:contains(\"Games\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": 14
|
||||
|
@@ -36,6 +36,8 @@ caps:
|
||||
- {id: 64, cat: Books/EBook, desc: "Literatuur"}
|
||||
- {id: 65, cat: Books/EBook, desc: "Non-Fiction"}
|
||||
- {id: 66, cat: Books/EBook, desc: "Bladmuziek"}
|
||||
- {id: 67, cat: Books/EBook, desc: "young Adult"}
|
||||
- {id: 68, cat: Books/EBook, desc: "feelgood romans"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -6,7 +6,7 @@ language: es-ES
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://elitetorrent.com/
|
||||
- https://elitetorrent.app/
|
||||
- https://elitetorrent.nocensor.biz/
|
||||
legacylinks:
|
||||
- https://www.elitetorrent.biz/
|
||||
@@ -24,9 +24,9 @@ legacylinks:
|
||||
- https://www.elitetorrent.to/
|
||||
- https://www.elitetorrent.se/
|
||||
- https://www.elitetorrent.com/
|
||||
- https://elitetorrent.app/
|
||||
- https://elitetorrent.si/
|
||||
- https://elitetorrent.nocensor.work/
|
||||
- https://elitetorrent.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
@@ -10,33 +10,32 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies/DVD, desc: "Film DVD"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "DVD Promo/R5"}
|
||||
- {id: 118, cat: Movies/DVD, desc: "Kids DVD"}
|
||||
- {id: 113, cat: XXX, desc: "DVD XXX"}
|
||||
- {id: 108, cat: XXX, desc: "Xvid XXX"}
|
||||
- {id: 129, cat: Movies/HD, desc: "HD DVD"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Film DVD rip"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "Film DVD Promo"}
|
||||
- {id: 118, cat: Movies/DVD, desc: "Film DVD Kids"}
|
||||
- {id: 113, cat: Movies, desc: "Films Independent"}
|
||||
- {id: 129, cat: Movies/HD, desc: "Films HD DVD"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "Films 4K"}
|
||||
- {id: 143, cat: Movies/HD, desc: "DivX 720P"}
|
||||
- {id: 143, cat: Movies/HD, desc: "Films DivX 720P"}
|
||||
- {id: 114, cat: Audio/MP3, desc: "Muziek MP3"}
|
||||
- {id: 140, cat: Books, desc: "E-Book"}
|
||||
- {id: 140, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 105, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 115, cat: PC, desc: "PC apps"}
|
||||
- {id: 120, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 106, cat: Other, desc: "Overig"}
|
||||
- {id: 131, cat: Console/NDS, desc: "Nintendo Ds"}
|
||||
- {id: 132, cat: TV/HD, desc: "HD Serie"}
|
||||
- {id: 131, cat: Books/Comics, desc: "Stripboeken"}
|
||||
- {id: 132, cat: TV/HD, desc: "TV HD Serie"}
|
||||
- {id: 116, cat: PC/Mac, desc: "Mac Software"}
|
||||
- {id: 125, cat: Movies, desc: "DiVX Rip"}
|
||||
- {id: 123, cat: Movies/SD, desc: "DiVX Cam"}
|
||||
- {id: 125, cat: Movies/SD, desc: "Xvid Rip"}
|
||||
- {id: 123, cat: Movies/HD, desc: "MKV/X265"}
|
||||
- {id: 108, cat: XXX, desc: "18+"}
|
||||
- {id: 142, cat: XXX, desc: "HD XXX"}
|
||||
- {id: 142, cat: XXX/x264, desc: "18+ HD"}
|
||||
- {id: 139, cat: TV, desc: "TV Series"}
|
||||
- {id: 128, cat: Audio/Video, desc: "muziek DVD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
@@ -79,7 +78,7 @@ download:
|
||||
text: "{{ .Config.thankyou }}"
|
||||
submit: Opslaan
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
- selector: a[href^="downloadv1.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
|
@@ -1,205 +0,0 @@
|
||||
---
|
||||
id: filebase
|
||||
name: Filebase
|
||||
description: "Filebase is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.filebase.ws/ # https is not supported ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: cartoons, cat: Movies, desc: "Мультики (cartoons)"}
|
||||
- {id: tv, cat: TV, desc: "ТВ Передача (tv)"}
|
||||
- {id: sport, cat: Movies, desc: "Спорт (sport)"}
|
||||
- {id: action, cat: Movies, desc: "Боевик (action)"}
|
||||
- {id: comedy, cat: Movies, desc: "Комедия (comedy)"}
|
||||
- {id: thriller, cat: Movies, desc: "Триллер (thriller)"}
|
||||
- {id: classic, cat: Movies, desc: "Классика (classic)"}
|
||||
- {id: history, cat: Movies, desc: "Исторический (history)"}
|
||||
- {id: mystic, cat: Movies, desc: "Мистика (mystic)"}
|
||||
- {id: sci-fi, cat: Movies, desc: "Фантастика (sci-fi)"}
|
||||
- {id: horror, cat: Movies, desc: "Ужасы (horror)"}
|
||||
- {id: drama, cat: Movies, desc: "Драма (drama)"}
|
||||
- {id: adventure, cat: Movies, desc: "Приключения (adventure)"}
|
||||
- {id: detective, cat: Movies, desc: "Детектив (detective)"}
|
||||
- {id: concert, cat: Movies, desc: "Концерт (concert)"}
|
||||
- {id: anime, cat: TV/Anime, desc: "Аниме (anime)"}
|
||||
- {id: epic, cat: Movies, desc: "Мелодрама (epic)"}
|
||||
- {id: documental, cat: TV/Documentary, desc: "Док. Фильм (documental)"}
|
||||
- {id: serials, cat: TV, desc: "Сериал (serials)"}
|
||||
- {id: fantasy, cat: Movies, desc: "Фентези (fantasy)"}
|
||||
- {id: war, cat: Movies, desc: "Военный (war)"}
|
||||
- {id: family, cat: Movies, desc: "Семейный (family)"}
|
||||
- {id: tales, cat: Movies, desc: "Сказка (tales)"}
|
||||
- {id: catastroph, cat: Movies, desc: "Катастрофа (catastroph)"}
|
||||
- {id: games, cat: Console, desc: "Игры (games)"}
|
||||
- {id: software, cat: PC, desc: "Программы (software)"}
|
||||
- {id: videoclips, cat: Audio/Video, desc: "Видеоклип (videoclips)"}
|
||||
- {id: wallpapers, cat: Other, desc: "Картинки (wallpapers)"}
|
||||
- {id: eng-music, cat: Audio, desc: "Eng Музыка (eng-music)"}
|
||||
- {id: rus-music, cat: Audio, desc: "Rus Музыка (rus-music)"}
|
||||
- {id: books, cat: Books, desc: "Книги (books)"}
|
||||
- {id: phone, cat: PC/Mobile-Other, desc: "Телефон (phone)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: striprussian
|
||||
type: checkbox
|
||||
label: Strip Russian Letters
|
||||
default: false
|
||||
- name: cat
|
||||
type: select
|
||||
label: Category
|
||||
default: 0
|
||||
options:
|
||||
0: all
|
||||
cartoons: "Мультики (cartoons)"
|
||||
tv: "ТВ Передача (tv)"
|
||||
sport: "Спорт (sport)"
|
||||
action: "Боевик (action)"
|
||||
comedy: "Комедия (comedy)"
|
||||
thriller: "Триллер (thriller)"
|
||||
classic: "Классика (classic)"
|
||||
history: "Исторический (history)"
|
||||
mystic: "Мистика (mystic)"
|
||||
sci-fi: "Фантастика (sci-fi)"
|
||||
horror: "Ужасы (horror)"
|
||||
drama: "Драма (drama)"
|
||||
adventure: "Приключения (adventure)"
|
||||
detective: "Детектив (detective)"
|
||||
concert: "Концерт (concert)"
|
||||
anime: "Аниме (anime)"
|
||||
epic: "Мелодрама (epic)"
|
||||
documental: "Док. Фильм (documental)"
|
||||
serials: "Сериал (serials)"
|
||||
fantasy: "Фентези (fantasy)"
|
||||
war: "Военный (war)"
|
||||
family: "Семейный (family)"
|
||||
tales: "Сказка (tales)"
|
||||
catastroph: "Катастрофа (catastroph)"
|
||||
games: "Игры (games)"
|
||||
software: "Программы (software)"
|
||||
videoclips: "Видеоклип (videoclips)"
|
||||
wallpapers: "Картинки (wallpapers)"
|
||||
eng-music: "Eng Музыка (eng-music)"
|
||||
rus-music: "Rus Музыка (rus-music)"
|
||||
books: "Книги (books)"
|
||||
phone: "Телефон (phone)"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: dateD
|
||||
options:
|
||||
dateD: created desc
|
||||
dateA: created asc
|
||||
seedD: seeders desc
|
||||
seedA: seeders asc
|
||||
sizeD: size desc
|
||||
sizeA: size asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://www.filebase.ws/torrents/search/?s=dateD&t=all&c=serials&search=mandalorian
|
||||
- path: torrents/search/
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # S01 to 1
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace # S01E01 to 1 1
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
|
||||
inputs:
|
||||
# all, liveonly, deadonly
|
||||
t: all
|
||||
c: "{{ .Config.cat }}"
|
||||
s: "{{ .Config.sort }}"
|
||||
search: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrents_list > tbody > tr[data-fid]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1) > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
torrent_id:
|
||||
selector: td:nth-child(2) > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 3]
|
||||
title:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: replace
|
||||
args: [" [/|:|\\||\\.] ", " "]
|
||||
- name: replace
|
||||
args: ["Кураж-Бамбей", "kurazh"]
|
||||
- name: replace
|
||||
args: ["Кубик в Кубе", "Kubik"]
|
||||
- name: replace
|
||||
args: ["Кравец", "Kravec"]
|
||||
- name: re_replace
|
||||
args: ["\\((\\d+)\\s+[Сс]езон:\\s+(?:(\\d+-*\\d*)\\s+[Сс]ери[ия]\\s+.*\\d+)\\)(.*)\\s\\[([12][0-9]{3})\\]\\s(.*)", "$3 - S$1E$2 - rus $5"]
|
||||
- name: re_replace
|
||||
args: ["\\((\\d+)\\s+[Сс]езон:\\s+(\\d+)\\s+[Сс]ери[ия]\\)(.*)\\s\\[([12][0-9]{3})\\]\\s(.*)", "S$1E$2 - rus $3"]
|
||||
- name: re_replace
|
||||
args: ["\\((?:(\\d+-*\\d*)\\s+[Сс]ери[ия]\\s+.*\\d+)\\)(.*)\\s\\[([12][0-9]{3})\\]\\s(.*)", "$2 - S1E$1 - rus $4"]
|
||||
- name: re_replace
|
||||
args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["\\((\\d+[p|i])\\)", "$1"]
|
||||
- name: replace
|
||||
args: ["-Rip", "Rip"]
|
||||
- name: replace
|
||||
args: ["WEB-DL", "WEBDL"]
|
||||
- name: replace
|
||||
args: ["WEBDLRip", "WEBDL"]
|
||||
- name: replace
|
||||
args: ["HDTVRip", "HDTV"]
|
||||
details:
|
||||
selector: td:nth-child(2) > a
|
||||
attribute: href
|
||||
download:
|
||||
text: "{{ .Config.sitelink }}download.php?id={{ .Result.torrent_id }}"
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "02/01/06 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -135,9 +135,16 @@ search:
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
# turn href="download.php/0738d444362fa610a08fb87b5c1bec798ca1731adbf3175b/GUARATORO.torrent
|
||||
# into href="/download.php?id=0738d444362fa610a08fb87b5c1bec798ca1731adbf3175b&n=GUARATORO.torrent&p=dodownload
|
||||
text: "download.php?id={{ .Result.id }}&n={{ .Result.title }}.torrent&p=dodownload"
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
|
@@ -46,10 +46,11 @@ caps:
|
||||
- {id: 34, cat: TV/Anime, desc: "Anime Altri Cartoni"}
|
||||
- {id: 62, cat: TV/Anime, desc: "Anime Natale Bimbi Girotor"}
|
||||
# TELEVISIONE
|
||||
- {id: 36, cat: TV, desc: "TV Serie TV"}
|
||||
- {id: 77, cat: TV, desc: "TV Reality"}
|
||||
- {id: 37, cat: TV, desc: "TV Film TV"}
|
||||
- {id: 36, cat: TV, desc: "TV Serie"}
|
||||
- {id: 99, cat: TV/HD, desc: "TV Serie Hevc"}
|
||||
- {id: 37, cat: TV, desc: "TV Film"}
|
||||
- {id: 59, cat: TV/Sport, desc: "TV Sport"}
|
||||
- {id: 77, cat: TV, desc: "TV Reality"}
|
||||
- {id: 38, cat: TV, desc: "TV Concerti-Spettacoli"}
|
||||
- {id: 39, cat: TV, desc: "TV Teatro-Cabaret"}
|
||||
- {id: 40, cat: TV/Documentary, desc: "Tv Documentario"}
|
||||
@@ -62,20 +63,20 @@ caps:
|
||||
- {id: 58, cat: Audio, desc: "Musica Discografie"}
|
||||
- {id: 97, cat: Audio/Lossless, desc: "Musica Flac"}
|
||||
# SALA GIOCHI
|
||||
- {id: 47, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 48, cat: Console/PS3, desc: "PC Giochi PS2-PS3"}
|
||||
- {id: 49, cat: Console/Wii, desc: "PC Giochi Nintendo Wii"}
|
||||
- {id: 50, cat: Console/XBox, desc: "PC Giochi Xbox"}
|
||||
- {id: 51, cat: Console/PSP, desc: "PC Giochi PSP"}
|
||||
- {id: 52, cat: Console/3DS, desc: "PC Giochi DS-DS3"}
|
||||
- {id: 47, cat: PC/Games, desc: "Giochi PC"}
|
||||
- {id: 48, cat: Console/PS3, desc: "Giochi PS2-PS3"}
|
||||
- {id: 49, cat: Console/Wii, desc: "Giochi Nintendo Wii"}
|
||||
- {id: 50, cat: Console/XBox, desc: "Giochi Xbox"}
|
||||
- {id: 51, cat: Console/PSP, desc: "Giochi PSP"}
|
||||
- {id: 52, cat: Console/3DS, desc: "Giochi Nintendo DS-DS3"}
|
||||
# SOFTWARE
|
||||
- {id: 54, cat: PC, desc: "PC Programmi Windows"}
|
||||
- {id: 55, cat: PC/Mac, desc: "PC Mac"}
|
||||
- {id: 69, cat: PC, desc: "PC Portable"}
|
||||
- {id: 56, cat: PC, desc: "PC Linux"}
|
||||
- {id: 54, cat: PC, desc: "Programmi Windows"}
|
||||
- {id: 55, cat: PC/Mac, desc: "Programmi Mac"}
|
||||
- {id: 69, cat: PC, desc: "Programmi Portable"}
|
||||
- {id: 56, cat: PC, desc: "Programmi Linux"}
|
||||
# CELLULARI-PALMARI
|
||||
- {id: 68, cat: PC/Mobile-iOS, desc: "IPhone-IPad"}
|
||||
- {id: 71, cat: PC/Mobile-Android, desc: "Android APP"}
|
||||
- {id: 71, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 74, cat: Other, desc: "Varie"}
|
||||
- {id: 75, cat: Other, desc: "Immagini Wallpaper"}
|
||||
|
||||
|
@@ -7,7 +7,6 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.gtdb.to/
|
||||
- https://glodls.to/
|
||||
- https://glotorrents.unblockit.bz/
|
||||
- https://glotorrents.nocensor.biz/
|
||||
@@ -46,6 +45,7 @@ legacylinks:
|
||||
- https://glotorrents.unblockit.ws/
|
||||
- https://glotorrents.nocensor.work/
|
||||
- https://glotorrents.unblockit.kim/
|
||||
- https://www.gtdb.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -38,6 +38,8 @@ caps:
|
||||
- {id: 94, cat: Movies, desc: "h 265"}
|
||||
- {id: 81, cat: Movies, desc: "ORIGINAL JAZYK"}
|
||||
- {id: 95, cat: Movies/Other, desc: "FILM RETRO"}
|
||||
#
|
||||
- {id: 115, cat: Movies/Other, desc: "RLS-HD"}
|
||||
# HUDBA
|
||||
- {id: 57, cat: Audio/Lossless, desc: "Hudba flac"}
|
||||
- {id: 58, cat: Audio/MP3, desc: "Hudba mp3"}
|
||||
|
279
src/Jackett.Common/Definitions/ilcorsaroverde.yml
Normal file
279
src/Jackett.Common/Definitions/ilcorsaroverde.yml
Normal file
@@ -0,0 +1,279 @@
|
||||
---
|
||||
id: ilcorsaroverde
|
||||
name: Il Corsaro Verde
|
||||
description: "Il Corsaro Verde (iCV-CreW) is a ratioless ITALIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: it-IT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.icv-crew.com/
|
||||
|
||||
caps:
|
||||
# commented out categories are discussion-only forums
|
||||
categorymappings:
|
||||
# CIURMA
|
||||
# - {id: "150", cat: Other, desc: "Regole per Postare"}
|
||||
- {id: "140", cat: Other/Misc, desc: "Bozze - Sezione fruibile a tutti i nuovi Releaser", default: true}
|
||||
# INFORMAZIONI E REGOLE DEL FORUM
|
||||
# - {id: "108", cat: Other, desc: "Manifesto Generale"}
|
||||
# - {id: "30", cat: Other, desc: "Disclaimer"}
|
||||
# - {id: "76", cat: Other, desc: "Statuto"}
|
||||
# - {id: "31", cat: Other, desc: "Comunicazioni dello STAFF"}
|
||||
# - {id: "32", cat: Other, desc: "Guide sull'uso del Forum"}
|
||||
# - {id: "124", cat: Other, desc: "iCV Community"}
|
||||
# PROGETTI
|
||||
# - {id: "172", cat: Audio, desc: "Progetto - Discografie"}
|
||||
# - {id: "109", cat: Movies, desc: "Progetto - Filmografie"}
|
||||
# - {id: "110", cat: Books, desc: "Progetto - Biblico"}
|
||||
# - {id: "137", cat: Other, desc: "Progetto - Releaser/Crew"}
|
||||
# - {id: "126", cat: Movies, desc: "Progetto - Cine Vintage "}
|
||||
# MUSICA
|
||||
- {id: "19", cat: Audio, desc: "Musica Audio - Tutti i formati", default: true}
|
||||
- {id: "20", cat: Audio/Video, desc: "Musica Video - Standard Definition - High Definition", default: true}
|
||||
# - {id: "135", cat: Audio, desc: "Richieste Titoli Musica"}
|
||||
# VIDEO
|
||||
- {id: "6", cat: Movies/SD, desc: "Video - Screener", default: true}
|
||||
- {id: "7", cat: Movies/SD, desc: "Video - Standard Definition", default: true}
|
||||
- {id: "9", cat: Movies/HD, desc: "Video - High Definition H.264", default: true}
|
||||
- {id: "74", cat: Movies/HD, desc: "Video - High Definition HEVC/H.265", default: true}
|
||||
- {id: "11", cat: Movies/BluRay, desc: "Video - Blu-ray Full", default: true}
|
||||
- {id: "8", cat: Movies/DVD, desc: "Video - DVD", default: true}
|
||||
- {id: "95", cat: Movies, desc: "Video - Dispositivi Mobili (Portable)", default: true}
|
||||
- {id: "79", cat: Movies, desc: "Video - TVRip - Standard Definition - High Definition", default: true}
|
||||
- {id: "14", cat: TV/Other, desc: "Video - Documentari - Sportivi - Spettacoli - Lirica - Standard Definition - High Definition", default: true}
|
||||
# - {id: "134", cat: Movies, desc: "Richieste Titoli Video"}
|
||||
# SERIE TV
|
||||
- {id: "12", cat: TV/SD, desc: "Serie TV - Standard Definition", default: true}
|
||||
- {id: "102", cat: TV/HD, desc: "Serie TV - High definition H.264", default: true}
|
||||
- {id: "161", cat: TV/HD, desc: "Serie TV - High definition HEVC/H.265", default: true}
|
||||
# - {id: "103", cat: TV, desc: "L'angolo di Giuseppe-iCV & littlelinx"}
|
||||
# - {id: "160", cat: TV, desc: "L'angolo di Pir8"}
|
||||
# - {id: "169", cat: TV, desc: "L'angolo di TV-P2P"}
|
||||
# - {id: "133", cat: TV, desc: "Richieste Titoli Serie TV"}
|
||||
# CARTONI ANIMATI - ANIME
|
||||
- {id: "17", cat: Movies/SD, desc: "Cartoni Animati - Standard Definition - High Definition", default: true}
|
||||
- {id: "18", cat: TV/HD, desc: "Cartoni Animati - Serie TV Standard Definition - High Definition", default: true}
|
||||
- {id: "15", cat: TV/Anime, desc: "Anime - Standard Definition - High Definition", default: true}
|
||||
- {id: "16", cat: TV/Anime, desc: "Anime - Serie TV Standard Definition - High Definition", default: true}
|
||||
- {id: "89", cat: Movies/HD, desc: "Cartoni Animati - Anime - Serie Tv e Non - High Definition - HEVC/H.265", default: true}
|
||||
# - {id: "132", cat: TV/Anime, desc: "Richieste Titoli Cartoni Animati - Anime"}
|
||||
# EBOOK - FUMETTI - RIVISTE - QUOTIDIANI
|
||||
- {id: "25", cat: Books/EBook, desc: "Ebook", default: true}
|
||||
- {id: "26", cat: Audio/Audiobook, desc: "Ebook Audio", default: true}
|
||||
- {id: "170", cat: Books/Comics, desc: "Fumetti", default: true}
|
||||
- {id: "28", cat: Books/Mags, desc: "Riviste - Quotidiani", default: true}
|
||||
- {id: "47", cat: Other, desc: "Wallpapers - Poster - Calendari", default: true}
|
||||
# - {id: "131", cat: Movies, desc: "Richieste Titoli Ebook - Fumetti - Riviste"}
|
||||
# SOFTWARE
|
||||
- {id: "21", cat: PC/0day, desc: "Windows Software", default: true}
|
||||
# - {id: "22", cat: PC, desc: "Windows Guide e altre in generale"}
|
||||
# - {id: "92", cat: PC, desc: "Windows Supporto "}
|
||||
- {id: "138", cat: PC/Mac, desc: "macOS Software", default: true}
|
||||
# - {id: "162", cat: PC/Mac, desc: "macOS Guide"}
|
||||
# - {id: "163", cat: PC/Mac, desc: "macOS Supporto"}
|
||||
# - {id: "164", cat: PC/Mac, desc: "Hackintosh Guide"}
|
||||
# - {id: "165", cat: PC/Mac, desc: "Hackintosh Supporto"}
|
||||
- {id: "23", cat: PC, desc: "Linux Software", default: true}
|
||||
# - {id: "168", cat: PC, desc: "Linux Guide"}
|
||||
# - {id: "93", cat: PC, desc: "Linux Supporto"}
|
||||
- {id: "24", cat: PC, desc: "Guide & Tutorial Video", default: true}
|
||||
# - {id: "129", cat: PC, desc: "Richieste Titoli Software"}
|
||||
# GAMES
|
||||
- {id: "36", cat: PC/Games, desc: "Games - Pc Windows", default: true}
|
||||
- {id: "158", cat: PC/Mac, desc: "Games - macOS", default: true}
|
||||
- {id: "37", cat: Console/XBox 360, desc: "Games - Console Microsoft Xbox 360", default: true}
|
||||
- {id: "38", cat: Console/PS3, desc: "Games - Console Sony PS3", default: true}
|
||||
- {id: "152", cat: Console/PS4, desc: "Games - Console Sony PS4", default: true}
|
||||
# - {id: "99", cat: PC/Games, desc: "Games - Supporto"}
|
||||
# - {id: "123", cat: PC/Games, desc: "Games - Guide"}
|
||||
# - {id: "130", cat: PC/Games, desc: "Richieste Titoli Games"}
|
||||
# ANDROID
|
||||
- {id: "58", cat: PC/Mobile-Android, desc: "Android Apps", default: true}
|
||||
# - {id: "144", cat: PC/Mobile-Android, desc: "Android Guide"}
|
||||
# - {id: "128", cat: PC/Mobile-Android, desc: "Richieste Titoli Android"}
|
||||
# TEAM GRAFICO
|
||||
# - {id: "88", cat: Other, desc: "Vetrina Grafica"}
|
||||
# - {id: "100", cat: Other, desc: "Tutorial Photoshop CC"}
|
||||
# TAVERNA DEI CORSARI
|
||||
# - {id: "39", cat: Other, desc: "Presentati alla Community"}
|
||||
# - {id: "112", cat: Other, desc: "Assistenza Forum"}
|
||||
# - {id: "33", cat: Other, desc: "Chiacchiere in generale"}
|
||||
# - {id: "83", cat: Other, desc: "Commenti Titoli "}
|
||||
# - {id: "136", cat: Other, desc: "Sondaggi"}
|
||||
# - {id: "145", cat: Other, desc: "il CorSaRo VeRde App"}
|
||||
# ARCHIVIO FORUM
|
||||
- {id: "171", cat: PC/0day, desc: "Windows Software obsoleto", default: true}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: compatItal
|
||||
type: checkbox
|
||||
label: Improve Sonarr compatibility with the tracker's Italian season naming scheme by renaming Sxx to Stagione xx in searches. Can cause results already using Sxx to not be found.
|
||||
default: false
|
||||
- name: info30s
|
||||
type: info
|
||||
label: 30s Delay for Searches
|
||||
default: The site forces a 30s delay between searches, so you may get zero results if you perform searches too close together.
|
||||
|
||||
login:
|
||||
method: form
|
||||
path: forum/index.php
|
||||
form: form#frmLogin
|
||||
inputs:
|
||||
user: "{{ .Config.username }}"
|
||||
passwrd: "{{ .Config.password }}"
|
||||
cookieneverexp: on
|
||||
error:
|
||||
- selector: p[class="error"]
|
||||
test:
|
||||
path: forum/index.php
|
||||
selector: li#button_logout
|
||||
|
||||
download:
|
||||
before:
|
||||
pathselector:
|
||||
selector: ul.quickbuttons a
|
||||
attribute: href
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: forum/index.php?action=search2
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}brd[]={{.}}&{{end}}"
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
searchtype: 1
|
||||
userspec: "*"
|
||||
sort: id_msg|desc
|
||||
show_complete: 1
|
||||
subject_only: 1
|
||||
minage: 0
|
||||
maxage: 9999
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", " +$1"] # prepend + to each word, all keywords must be 2 characters or more
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\bS(\\d+)(E\\d+)?\\b)", "{{ if .Config.compatItal }}Stagione +$2 $3{{ else }}S$2$3{{ end }}"] # Replace SXXEYY with Stagione XX EYY
|
||||
|
||||
rows:
|
||||
selector: div.search_results_posts
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="index.php?board="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: board
|
||||
- name: split
|
||||
args: [".", 0]
|
||||
title:
|
||||
selector: a[href*="index.php?topic="]
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: re_replace # Stagione XX a YY --> SXX-YY
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\s?[ae-]\\s?(\\d{2,})\\b", "S$1-$2"]
|
||||
- name: re_replace # Stagione XX --> SXX
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b", "S$1"]
|
||||
- name: re_replace # Stagione X a YY --> S0X-YY
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\s?[ae-]\\s?(\\d{2,})\\b", "S0$1-$2"]
|
||||
- name: re_replace # Stagione X a Y --> S0X-0Y
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\s?[ae-]\\s?(\\d{1})\\b", "S0$1-$02"]
|
||||
- name: re_replace # Stagione X --> S0X
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b", "S0$1"]
|
||||
- name: re_replace # remove various
|
||||
args: ["(?i)(Serie completa|Completat?a?|in pausa)", ""]
|
||||
# cleanup for Sonarr
|
||||
- name: re_replace # EP 3 4 to E3-4
|
||||
args: ["(?i)\\sEP.?\\s(\\d{1,2})[\\s-](E?\\s?\\d{1,2})\\s", " E$1-$2 "]
|
||||
- name: re_replace
|
||||
args: ["(?i)HDTVRIP", "HDTV"]
|
||||
details:
|
||||
selector: a[href*="index.php?topic="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="index.php?topic="]
|
||||
attribute: href
|
||||
date_today:
|
||||
# Today at 18:31:59
|
||||
# Oggi alle 18:31:59
|
||||
selector: span.smalltext em:contains("Today"), span.smalltext em:contains("Oggi")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Today at", "Today"]
|
||||
- name: replace
|
||||
args: ["Oggi alle", "Today"]
|
||||
date_year:
|
||||
# 11 January 2021, 10:59:53
|
||||
# 11 Gennaio 2021, 10:59:53
|
||||
selector: span.smalltext em:not(:contains("Today")):not(:contains("Oggi"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Gennaio", "January"]
|
||||
- name: replace
|
||||
args: ["Febbraio", "February"]
|
||||
- name: replace
|
||||
args: ["Marzo", "March"]
|
||||
- name: replace
|
||||
args: ["Aprile", "April"]
|
||||
- name: replace
|
||||
args: ["Maggio", "May"]
|
||||
- name: replace
|
||||
args: ["Giugno", "June"]
|
||||
- name: replace
|
||||
args: ["Luglio", "July"]
|
||||
- name: replace
|
||||
args: ["Agosto", "August"]
|
||||
- name: replace
|
||||
args: ["Settembre", "September"]
|
||||
- name: replace
|
||||
args: ["Ottobre", "October"]
|
||||
- name: replace
|
||||
args: ["Novembre", "November"]
|
||||
- name: replace
|
||||
args: ["Dicembre", "December"]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02 January 2006, 15:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_today .Result.date_year }}{{ or .Result.date_today .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
text: 512 MB
|
||||
poster:
|
||||
selector: img.bbc_img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://www.icv-crew.com/forum/proxy.php?request=", ""]
|
||||
- name: urldecode
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# SMF 2.0.15
|
161
src/Jackett.Common/Definitions/leech24.yml
Normal file
161
src/Jackett.Common/Definitions/leech24.yml
Normal file
@@ -0,0 +1,161 @@
|
||||
---
|
||||
id: leech24
|
||||
name: leech24
|
||||
description: "leech24 is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://leech24.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 28, cat: TV/Anime, desc: "Anime: All"}
|
||||
- {id: 18, cat: PC/0day, desc: "Apps: PC"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Apps: Mac"}
|
||||
- {id: 20, cat: PC, desc: "Apps: Linux"}
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Apps: Other"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "Documentaries: All"}
|
||||
- {id: 10, cat: PC/Games, desc: "Games: PC"}
|
||||
- {id: 11, cat: Console/PSP, desc: "Games: PS2"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Games: PS3"}
|
||||
- {id: 12, cat: Console/PSP, desc: "Games: PSP"}
|
||||
- {id: 13, cat: Console/XBox, desc: "Games: Xbox"}
|
||||
- {id: 14, cat: Console/XBox 360, desc: "Games: Xbox360"}
|
||||
- {id: 15, cat: Console/PSP, desc: "Games: PS1"}
|
||||
- {id: 16, cat: Console/Other, desc: "Games: Dreamcast"}
|
||||
- {id: 44, cat: Console/Wii, desc: "Games: Wii"}
|
||||
- {id: 45, cat: Console/NDS, desc: "Games: DS"}
|
||||
- {id: 46, cat: Console/Other, desc: "Games: GameCube"}
|
||||
- {id: 17, cat: Console/Other, desc: "Games: Other"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "Movies: DVD"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Movies: Divx/Xvid"}
|
||||
- {id: 3, cat: Movies/UHD, desc: "Movies: 4K"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies: HD"}
|
||||
- {id: 4, cat: Movies/Other, desc: "Movies: Other"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music: MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music: Lossless"}
|
||||
- {id: 24, cat: Audio/Video, desc: "Music: DVD"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music: Video"}
|
||||
- {id: 26, cat: Audio/Other, desc: "Music: Radio"}
|
||||
- {id: 27, cat: Audio/Other, desc: "Music: Other"}
|
||||
- {id: 33, cat: PC, desc: "Other: Emulation"}
|
||||
- {id: 34, cat: PC/Mobile-Other, desc: "Other: PPC/PDA"}
|
||||
- {id: 35, cat: Audio, desc: "Other: Sounds"}
|
||||
- {id: 36, cat: Books/EBook, desc: "Other: E-Books"}
|
||||
- {id: 37, cat: Other, desc: "Other: Images"}
|
||||
- {id: 38, cat: PC/Mobile-Other, desc: "Other: Mobile Phone"}
|
||||
- {id: 39, cat: Other, desc: "Other: Extra Pars/Fills"}
|
||||
- {id: 40, cat: Other, desc: "Other: Other"}
|
||||
- {id: 5, cat: TV/SD, desc: "TV: DVD"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV: HD"}
|
||||
- {id: 6, cat: TV/SD, desc: "TV: Divx/Xvid"}
|
||||
- {id: 7, cat: TV/Other, desc: "TV: pack"}
|
||||
- {id: 47, cat: XXX, desc: "xxx: xxx"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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 with 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 (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://leech24.net/torrents-search.php?c3=1&c1=1&c2=1&c42=1&c4=1&c7=1&search=&cat=0&incldead=1&freeleech=0&lang=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 english, etc
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
# The search page states that: You can search using phrases contained within , you can include words with + you can exclude words with -
|
||||
# but adding + to words causes 0 results, so we will add an andmatch since the default seems to be a keywords OR search.
|
||||
# keywordsfilters:
|
||||
# - name: re_replace
|
||||
# args: ["(\\w+)", " +$1"] # prepend + to each word
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row:has(a[href^="download.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/free.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# TorrentTrader v2-svn
|
@@ -6,6 +6,7 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
# changes to this indexer should also be made to limetorrentsclone
|
||||
links:
|
||||
- https://www.limetorrents.pro/
|
||||
- https://limetorrents.unblockit.bz/
|
||||
|
125
src/Jackett.Common/Definitions/limetorrentsclone.yml
Normal file
125
src/Jackett.Common/Definitions/limetorrentsclone.yml
Normal file
@@ -0,0 +1,125 @@
|
||||
---
|
||||
id: limetorrentsclone
|
||||
name: LimeTorrents clone
|
||||
description: "LimeTorrents clone is a Public LimeTorrents clone for TV / MOVIES / GENERAL"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
# changes to this indexer should also be made to limetorrents
|
||||
links:
|
||||
- https://www.limetorrents.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "TV shows", cat: TV, desc: "TV shows"}
|
||||
- {id: Movies, cat: Movies, desc: Movies}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
- {id: Games, cat: Console, desc: Games}
|
||||
- {id: Applications, cat: PC/0day, desc: Applications}
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "magnet:"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "http://itorrents.org/"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: As the .torrent download links on this site are known to fail from time to time, you can optionally set as a fallback an automatic alternate link.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About LimeTorrents Categories
|
||||
default: LimeTorrents only returns category <b>Other</b> in its <i>Keywordless</i> search results page.</br>To pass your apps' indexer TEST you will need to include the 8000(Other) category.
|
||||
|
||||
download:
|
||||
# the .torrent url is on the on the details page
|
||||
selectors:
|
||||
- selector: a.csprite_dltorrent[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: a.csprite_dltorrent[href^="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search/all/{{ .Keywords }}/{{ .Config.sort }}/1/{{ else }}/latest100{{ end }}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["S[0-9]{2}([^E]|$)", ""] # remove season tag without episode
|
||||
|
||||
rows:
|
||||
selector: .table2 > tbody > tr[bgcolor]
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
category|noappend:
|
||||
optional: true
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["-", 1]
|
||||
- name: replace
|
||||
args: [" in ", ""]
|
||||
- name: replace
|
||||
args: [".", ""]
|
||||
title:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/(.+?)-torrent-\\d+\\.html"
|
||||
- name: re_replace
|
||||
args: ["-", " "]
|
||||
details:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["-", 0]
|
||||
- name: replace
|
||||
args: ["Last Month", "1 month ago"]
|
||||
- name: replace
|
||||
args: ["+", " ago"]
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: .tdseed
|
||||
leechers:
|
||||
selector: .tdleech
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
188
src/Jackett.Common/Definitions/megamixtracker.yml
Normal file
188
src/Jackett.Common/Definitions/megamixtracker.yml
Normal file
@@ -0,0 +1,188 @@
|
||||
---
|
||||
id: megamixtracker
|
||||
name: MegamixTracker
|
||||
description: "MegamixTracker is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://megamixtracker.hu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 26, cat: TV/Anime, desc: "Anime/Hu"}
|
||||
- {id: 27, cat: TV/Anime, desc: "Anime/Eng"}
|
||||
- {id: 9, cat: Books/EBook, desc: "eBook/Hu"}
|
||||
- {id: 16, cat: Books/EBook, desc: "eBook/Eng"}
|
||||
- {id: 38, cat: Movies/BluRay, desc: "Film/BR-BDRIP/Hu"}
|
||||
- {id: 39, cat: Movies/BluRay, desc: "Film/BR-BDRIP/Eng"}
|
||||
- {id: 4, cat: Movies/SD, desc: "Film/CAM"}
|
||||
- {id: 32, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
|
||||
- {id: 31, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Film/DVDR/Hu"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Film/DVDR/Eng"}
|
||||
- {id: 3, cat: Movies/HD, desc: "Film/HD/Hu"}
|
||||
- {id: 2, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 1, cat: Movies/SD, desc: "Film/XviD/Hu"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Film/XviD/En"}
|
||||
- {id: 13, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 17, cat: PC/Games, desc: "Játék/PC"}
|
||||
- {id: 18, cat: PC/Mobile-Other, desc: "Mobiltelefon"}
|
||||
- {id: 7, cat: PC/0day, desc: "Program/RIP"}
|
||||
- {id: 24, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 34, cat: TV/HD, desc: "Sorozat/HD/Hun"}
|
||||
- {id: 33, cat: TV/HD, desc: "Sorozat/HD/Eng"}
|
||||
- {id: 12, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
|
||||
- {id: 28, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
|
||||
- {id: 14, cat: Other, desc: "Vegyes"}
|
||||
- {id: 30, cat: XXX/DVD, desc: "XXX/DVD"}
|
||||
- {id: 29, cat: XXX/x264, desc: "XXX/HD"}
|
||||
- {id: 20, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
- {id: 15, cat: XXX/XviD, desc: "XXX/Xvid"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Zene/Klipp"}
|
||||
- {id: 35, cat: Audio/MP3, desc: "Zene/Mp3/Hun"}
|
||||
- {id: 8, cat: Audio/MP3, desc: "Zene/Mp3/Külföldi"}
|
||||
- {id: 40, cat: Audio/Other, desc: "Zene/Podcast"}
|
||||
- {id: 83, cat: Movies/HD, desc: "Unknown"} # category has no name and is not listed
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
biztonsagos: yes
|
||||
selectorinputs:
|
||||
csrf:
|
||||
selector: input[name="csrf"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.div_tartalom:contains("Sikertelen bejelentkezés")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse2.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 deadonly
|
||||
miben: 1
|
||||
# nincs_megadva, elfogadva, hibas, nincs
|
||||
moderalas: nincs_megadva
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching
|
||||
|
||||
rows:
|
||||
selector: "tr.tbody{{ if .Config.freeleech }}:has(img[src=\"kepek/ikon_free.png\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse2.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="klappe("]
|
||||
id:
|
||||
selector: a[href*="klappe("]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
details:
|
||||
text: "details.php?id={{ .Result.id }}"
|
||||
poster:
|
||||
selector: img[border][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
description:
|
||||
selector: i
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
# 2021-11-10 09:31:58 (17 órája és 44 perce)
|
||||
selector: span.feltoltve-ezelott
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})"
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:last-child
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="kepek/ikon_free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"font[onMouseover]:contains(\"2x\")": 2
|
||||
"font[onMouseover]:contains(\"4x\")": 4
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# TBDEV custom v2.0
|
@@ -92,7 +92,7 @@ download:
|
||||
before:
|
||||
# thankyou link: ./viewtopic.php?f=52&p=65417&thanks=65417&to_id=54&from_id=3950
|
||||
pathselector:
|
||||
selector: a[id^="lnk_thanks_post"]
|
||||
selector: ul.post-buttons li:nth-last-child(1) a
|
||||
attribute: href
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
|
@@ -46,6 +46,7 @@ caps:
|
||||
- {id: 8809, cat: Movies, desc: "2014"}
|
||||
- {id: 9938, cat: Movies, desc: "Turkish Dramas"}
|
||||
- {id: 10293, cat: Movies, desc: "2021"}
|
||||
- {id: 8569, cat: Movies, desc: "2021"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -1,292 +0,0 @@
|
||||
---
|
||||
id: oasis
|
||||
name: Oasis
|
||||
description: "Oasis is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://oasis-fun.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: Movies, desc: "Animations - 4K"}
|
||||
- {id: 3, cat: Movies, desc: "Animations - 4K Light"}
|
||||
- {id: 4, cat: Movies, desc: "Animations - BDRIP"}
|
||||
- {id: 6, cat: Movies, desc: "Animations - BluRay-R"}
|
||||
- {id: 5, cat: Movies, desc: "Animations - BRRIP"}
|
||||
- {id: 8, cat: Movies, desc: "Animations - DVD-R"}
|
||||
- {id: 9, cat: Movies, desc: "Animations - DVDRIP"}
|
||||
- {id: 11, cat: Movies, desc: "Animations - HD 1080P"}
|
||||
- {id: 12, cat: Movies, desc: "Animations - HD 720p"}
|
||||
- {id: 13, cat: Movies, desc: "Animations - HDRIP"}
|
||||
- {id: 165, cat: Movies, desc: "Animations - JAP"}
|
||||
- {id: 14, cat: Movies, desc: "Animations - REMUX"}
|
||||
- {id: 15, cat: Movies, desc: "Animations - TVRIP"}
|
||||
- {id: 17, cat: Movies, desc: "Animations - WEB-DL"}
|
||||
- {id: 16, cat: Movies, desc: "Animations - WEBRIP"}
|
||||
- {id: 167, cat: Audio/Audiobook, desc: "Ebook - AUDIO"}
|
||||
- {id: 73, cat: Books/EBook, desc: "Ebook - BD"}
|
||||
- {id: 74, cat: Books/EBook, desc: "Ebook - ENFANTS"}
|
||||
- {id: 168, cat: Books/Mags, desc: "Ebook - MAGAZINE"}
|
||||
- {id: 75, cat: Books/Comics, desc: "Ebook - MANGAS"}
|
||||
- {id: 76, cat: Books, desc: "Ebook - ROMANS"}
|
||||
- {id: 20, cat: Movies, desc: "Film - DOC.DECOUVERTES"}
|
||||
- {id: 25, cat: Movies/3D, desc: "Film - 3D"}
|
||||
- {id: 26, cat: Movies/UHD, desc: "Film - 4K"}
|
||||
- {id: 27, cat: Movies/UHD, desc: "Film - 4K Light"}
|
||||
- {id: 169, cat: Movies, desc: "Film - AV1"}
|
||||
- {id: 28, cat: Movies/BluRay, desc: "Film - BDRIP"}
|
||||
- {id: 30, cat: Movies/BluRay, desc: "Film - BluRay-R"}
|
||||
- {id: 29, cat: Movies/BluRay, desc: "Film - BRRIP"}
|
||||
- {id: 31, cat: Movies, desc: "Film - Coffret"}
|
||||
- {id: 18, cat: Movies, desc: "Film - DOC.ANIMAUX"}
|
||||
- {id: 19, cat: Movies, desc: "Film - DOC.ANTIQUE"}
|
||||
- {id: 21, cat: Movies, desc: "Film - DOC.DIVERS"}
|
||||
- {id: 22, cat: Movies, desc: "Film - DOC.HISTOIRE"}
|
||||
- {id: 198, cat: Movies, desc: "Film - DOC.SPECTACLE"}
|
||||
- {id: 23, cat: Movies, desc: "Film - DOC.SPORT"}
|
||||
- {id: 24, cat: Movies, desc: "Film - DOC.UNIVERS"}
|
||||
- {id: 32, cat: Movies/DVD, desc: "Film - DVD-R"}
|
||||
- {id: 33, cat: Movies/DVD, desc: "Film - DVDRIP"}
|
||||
- {id: 164, cat: Movies, desc: "Film - EMISSION.TV"}
|
||||
- {id: 35, cat: Movies/HD, desc: "Film - HD 1080P"}
|
||||
- {id: 36, cat: Movies/HD, desc: "Film - HD 720p"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Film - HDRIP"}
|
||||
- {id: 171, cat: Movies/HD, desc: "Film - HDTV 1080P"}
|
||||
- {id: 170, cat: Movies/HD, desc: "Film - HDTV 720P"}
|
||||
- {id: 172, cat: Movies/HD, desc: "Film - M-HD"}
|
||||
- {id: 38, cat: Movies, desc: "Film - REMUX"}
|
||||
- {id: 39, cat: Movies, desc: "Film - TVRIP"}
|
||||
- {id: 41, cat: Movies/WEB-DL, desc: "Film - WEB-DL"}
|
||||
- {id: 200, cat: Movies/WEB-DL, desc: "Film - Webrip"}
|
||||
- {id: 59, cat: Console/3DS, desc: "Jeux - 3DS-DS"}
|
||||
- {id: 60, cat: PC/Mobile-Android, desc: "Jeux - ANDROID"}
|
||||
- {id: 61, cat: PC/Mobile-iOS, desc: "Jeux - IOS-X"}
|
||||
- {id: 62, cat: PC/Games, desc: "Jeux - PC"}
|
||||
- {id: 63, cat: Console/PS4, desc: "Jeux - PS3-4"}
|
||||
- {id: 64, cat: Console/PSP, desc: "Jeux - PSP-X"}
|
||||
- {id: 66, cat: Console/Wii, desc: "Jeux - WII"}
|
||||
- {id: 65, cat: Console/WiiU, desc: "Jeux - WII-U"}
|
||||
- {id: 67, cat: Console/XBox, desc: "Jeux - XBOX"}
|
||||
- {id: 68, cat: PC/Mobile-Android, desc: "Logiciel - ANDROID"}
|
||||
- {id: 69, cat: PC/Mobile-iOS, desc: "Logiciel - APPLE"}
|
||||
- {id: 70, cat: PC/Mobile-iOS, desc: "Logiciel - IPHONE"}
|
||||
- {id: 71, cat: PC, desc: "Logiciel - LINUX"}
|
||||
- {id: 72, cat: PC/0day, desc: "Logiciel - WINDOWS"}
|
||||
- {id: 173, cat: TV/UHD, desc: "Serie - 4K"}
|
||||
- {id: 174, cat: TV/UHD, desc: "Serie - 4k-lLIGHT"}
|
||||
- {id: 85, cat: TV, desc: "Serie - Coffret"}
|
||||
- {id: 7, cat: TV, desc: "Serie - Coffret-Anime"}
|
||||
- {id: 194, cat: TV/Documentary, desc: "Serie - DOCU.DIVERS"}
|
||||
- {id: 195, cat: TV/Documentary, desc: "Serie - DOCU.EMISTV"}
|
||||
- {id: 86, cat: TV/SD, desc: "Serie - DVD-R"}
|
||||
- {id: 87, cat: TV/SD, desc: "Serie - DVDRIP"}
|
||||
- {id: 197, cat: TV, desc: "Serie - EPISODE"}
|
||||
- {id: 88, cat: TV/HD, desc: "Serie - HD 1080P"}
|
||||
- {id: 89, cat: TV/HD, desc: "Serie - HD 720p"}
|
||||
- {id: 90, cat: TV/HD, desc: "Serie - HDRIP"}
|
||||
- {id: 176, cat: TV/HD, desc: "Serie - HDTV 1080"}
|
||||
- {id: 175, cat: TV/HD, desc: "Serie - HDTV 720"}
|
||||
- {id: 182, cat: TV/Anime, desc: "Serie - JAP-ANIM"}
|
||||
- {id: 177, cat: TV/HD, desc: "Serie - M-HD"}
|
||||
- {id: 91, cat: TV, desc: "Serie - REMUX"}
|
||||
- {id: 166, cat: TV, desc: "Serie - SERIE Docu"}
|
||||
- {id: 92, cat: TV, desc: "Serie - TVRIP"}
|
||||
- {id: 199, cat: TV/WEB-DL, desc: "Serie - WebDL"}
|
||||
- {id: 179, cat: TV/WEB-DL, desc: "Serie - WEB-DL 1080"}
|
||||
- {id: 178, cat: TV/WEB-DL, desc: "Serie - WEB-DL 720"}
|
||||
- {id: 93, cat: TV/WEB-DL, desc: "Serie - WEBRIP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-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 with 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 (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
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
|
||||
- name: torrentlanguage
|
||||
type: select
|
||||
label: Torrent Language
|
||||
default: 0
|
||||
options:
|
||||
0: "Toutes Les Langues"
|
||||
1: Allemand
|
||||
2: Anglais(UK)
|
||||
3: Anglais(US)
|
||||
4: Arabe
|
||||
5: Bengali
|
||||
6: Cantonais
|
||||
7: Coréen
|
||||
8: Danois
|
||||
9: Espagnol
|
||||
10: Flamand
|
||||
11: Français
|
||||
12: Hébreu
|
||||
13: Hindi
|
||||
14: Italien
|
||||
15: Japonais
|
||||
16: Mandarin
|
||||
25: Muet
|
||||
17: Multi
|
||||
26: Musical
|
||||
18: Perse
|
||||
19: Portuguais
|
||||
20: Québécois
|
||||
21: Russe
|
||||
22: Suédois
|
||||
23: Ukrainien
|
||||
24: "VOSTFR"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: TTV3/Bienvenue
|
||||
selector: a[href$="/TTV3/Deconnexion"]
|
||||
|
||||
download:
|
||||
before:
|
||||
# https://galeriens.com/TTV3/Torrents/11222/Remercier
|
||||
# note http GET does not seem to work as the html suggests, so using same as LeChaudron which is also a TT3.00FRENCH engine.
|
||||
path: "/TTV3/Torrents/{{ re_replace .DownloadUri.PathAndQuery \"^(.+?)(\\d+)$\" \"$2\" }}/Remercier"
|
||||
method: post
|
||||
inputs:
|
||||
torrent: "{{ re_replace .DownloadUri.PathAndQuery \"^(.+?)(\\d+)$\" \"$2\" }}"
|
||||
selectors:
|
||||
- selector: a[href*="/Telechargement/"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://oasis-fun.club/TTV3/Torrents/Recherche?recherche=&type=tout&endroit=nomtorrent&langue=0&tl=peuimporte
|
||||
# categories for searching are unsupported
|
||||
- path: TTV3/Torrents/Recherche
|
||||
inputs:
|
||||
recherche: "{{ .Keywords }}"
|
||||
# searchtype: un (one word), tout (all words), exacte (exact expression)
|
||||
type: tout
|
||||
# searchin: nomtorrent (name), desctorrent (descr)
|
||||
endroit: nomtorrent
|
||||
# language: 11 french, 17 multi
|
||||
langue: "{{ .Config.torrentlanguage }}"
|
||||
# freeleech: oui (yes), non (no), peuimporte (ignore)
|
||||
tl: "{{ if .Config.freeleech }}oui{{ else }}peuimporte{{ end }}"
|
||||
# does not support imdbid search and does not return imdb link in results.
|
||||
|
||||
rows:
|
||||
selector: table.sortable tbody tr
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/SousCategories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)$
|
||||
title_phase1:
|
||||
selector: a[onmouseover]
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\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: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[onmouseover]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[onmouseover]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src= (.*?)><"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
selector: td:nth-child(2) a font[color="#F2F2F2"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["il y a ", ""]
|
||||
- name: replace
|
||||
args: [" Jours", " days"]
|
||||
- name: replace
|
||||
args: [" Jour", " day"]
|
||||
- name: replace
|
||||
args: [" heures", " hours"]
|
||||
- name: replace
|
||||
args: [" heure", " hour"]
|
||||
- name: replace
|
||||
args: [" Semaines", " weeks"]
|
||||
- name: replace
|
||||
args: [" Semaine", " week"]
|
||||
- name: replace
|
||||
args: [" mois", " month"]
|
||||
- name: replace
|
||||
args: [" ans", " years"]
|
||||
- name: replace
|
||||
args: [" an", " year"]
|
||||
- name: append
|
||||
args: " ago"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/images/Torrents/TLibre.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# TT3.00 FRENCH
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.oxtorrent.pl/
|
||||
- https://www.oxtorrent.vc/
|
||||
- https://oxtorrent.unblockit.bz/
|
||||
- https://oxtorrent.nocensor.biz/
|
||||
legacylinks:
|
||||
@@ -44,6 +44,7 @@ legacylinks:
|
||||
- https://oxtorrent.nocensor.work/
|
||||
- https://oxtorrent.unblockit.kim/
|
||||
- https://www.oxtorrent.sh/
|
||||
- https://www.oxtorrent.pl/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -86,8 +87,10 @@ settings:
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
- selector: script:contains("magnet:?")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\s'(magnet:\\?.+?)';"
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -11,40 +11,40 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
# movies
|
||||
- {id: 1, cat: Movies/SD, desc: "Movies-XviD"}
|
||||
- {id: 55, cat: Movies/3D, desc: "Movies-3D"}
|
||||
- {id: 16, cat: Movies/HD, desc: "Movies-x264"}
|
||||
- {id: 11, cat: Movies/DVD, desc: "Movies-DVD"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Movies-MPEG2"}
|
||||
- {id: 18, cat: Movies/BluRay, desc: "Movies-BR/HD-DVD"}
|
||||
- {id: 7, cat: TV/Documentary, desc: "Movies-Documentaries"}
|
||||
- {id: 35, cat: Movies, desc: "Movies-GSM"}
|
||||
- {id: 34, cat: Movies, desc: "Movies-BG"}
|
||||
- {id: 24, cat: TV/SD, desc: "TV-BG"}
|
||||
- {id: 14, cat: TV, desc: "TV-Shows"}
|
||||
- {id: 15, cat: TV, desc: "TV-Boxset"}
|
||||
- {id: 38, cat: TV/Anime, desc: "TV-Cartoons"}
|
||||
- {id: 1, cat: Movies/SD, desc: "Movies XviD"}
|
||||
- {id: 55, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 16, cat: Movies/HD, desc: "Movies x264"}
|
||||
- {id: 11, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Movies MPEG2"}
|
||||
- {id: 18, cat: Movies/BluRay, desc: "Movies BR/HD DVD"}
|
||||
- {id: 7, cat: TV/Documentary, desc: "Movies Documentaries"}
|
||||
- {id: 35, cat: Movies, desc: "Movies GSM"}
|
||||
- {id: 34, cat: Movies, desc: "Movies BG"}
|
||||
- {id: 24, cat: TV/SD, desc: "TV BG"}
|
||||
- {id: 14, cat: TV, desc: "TV Shows"}
|
||||
- {id: 15, cat: TV, desc: "TV Boxset"}
|
||||
- {id: 38, cat: TV/Anime, desc: "TV Cartoons"}
|
||||
# music
|
||||
- {id: 2, cat: Audio/MP3, desc: "Music-Song"}
|
||||
- {id: 28, cat: Audio, desc: "Music-Album"}
|
||||
- {id: 29, cat: Audio, desc: "Music-Discography"}
|
||||
- {id: 3, cat: Audio/Video, desc: "Music-DVD"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Music-Video"}
|
||||
- {id: 2, cat: Audio/MP3, desc: "Music Song"}
|
||||
- {id: 28, cat: Audio, desc: "Music Album"}
|
||||
- {id: 29, cat: Audio, desc: "Music Discography"}
|
||||
- {id: 3, cat: Audio/Video, desc: "Music DVD"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Music Video"}
|
||||
# games
|
||||
- {id: 8, cat: PC/Games, desc: "Games-PC ISO"}
|
||||
- {id: 9, cat: PC/Games, desc: "Games-PC Rips"}
|
||||
- {id: 33, cat: Console/Wii, desc: "Games-Wii"}
|
||||
- {id: 12, cat: Console/PS3, desc: "Games-PS2"}
|
||||
- {id: 23, cat: Console/PS3, desc: "Games-PS3"}
|
||||
- {id: 20, cat: Console/PSP, desc: "Games-PSP"}
|
||||
- {id: 21, cat: Console/XBox, desc: "Games-XboX"}
|
||||
- {id: 22, cat: Console/XBox 360, desc: "Games-X360"}
|
||||
- {id: 8, cat: PC/Games, desc: "Games PC ISO"}
|
||||
- {id: 9, cat: PC/Games, desc: "Games PC Rips"}
|
||||
- {id: 33, cat: Console/Wii, desc: "Games Wii"}
|
||||
- {id: 12, cat: Console/PS3, desc: "Games PS2"}
|
||||
- {id: 23, cat: Console/PS3, desc: "Games PS3"}
|
||||
- {id: 20, cat: Console/PSP, desc: "Games PSP"}
|
||||
- {id: 21, cat: Console/XBox, desc: "Games XboX"}
|
||||
- {id: 22, cat: Console/XBox 360, desc: "Games X360"}
|
||||
# appz
|
||||
- {id: 26, cat: PC/ISO, desc: "Appz PC-ISO"}
|
||||
- {id: 26, cat: PC/ISO, desc: "Appz PC ISO"}
|
||||
- {id: 31, cat: PC/0day, desc: "Appz Ripped"}
|
||||
- {id: 30, cat: PC, desc: "Appz-Linux"}
|
||||
- {id: 30, cat: PC, desc: "Appz Linux"}
|
||||
- {id: 49, cat: PC/Mac, desc: "Appz MacOS"}
|
||||
- {id: 27, cat: PC, desc: "Appz-GSM"}
|
||||
- {id: 27, cat: PC, desc: "Appz GSM"}
|
||||
# sports
|
||||
- {id: 5, cat: TV/Sport, desc: "Sport F1"}
|
||||
- {id: 51, cat: TV/Sport, desc: "Sport"}
|
||||
@@ -53,8 +53,8 @@ caps:
|
||||
- {id: 4, cat: Other, desc: "Other"}
|
||||
- {id: 37, cat: Other/Misc, desc: "Pictures"}
|
||||
- {id: 39, cat: Other, desc: "e-Learning"}
|
||||
- {id: 52, cat: PC/Mobile-Other, desc: "Mobile-GSM"}
|
||||
- {id: 40, cat: PC/Mobile-iOS, desc: "Mobile-iPhone"}
|
||||
- {id: 52, cat: PC/Mobile-Other, desc: "Mobile GSM"}
|
||||
- {id: 40, cat: PC/Mobile-iOS, desc: "Mobile iPhone"}
|
||||
# 3x
|
||||
- {id: 13, cat: XXX, desc: "XXX"}
|
||||
- {id: 54, cat: XXX/x264, desc: "XXX HD"}
|
||||
@@ -126,25 +126,30 @@ search:
|
||||
selector: table.lista tr td table.lista tr:has(a[href^="index.php?page=torrent-details"])
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td a[onclick]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["View details: ", ""]
|
||||
- name: replace
|
||||
args: ["Преглед на детайли: ", ""]
|
||||
- name: replace
|
||||
args: ["Преглед на детайли: ", ""]
|
||||
details:
|
||||
selector: td a[href*="id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href*="category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title_default:
|
||||
# often abbreviated
|
||||
selector: td:nth-child(2) a
|
||||
title_optional:
|
||||
# usually full length
|
||||
selector: td a[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["View details: ", ""]
|
||||
- name: replace
|
||||
args: ["Преглед на детайли: ", ""]
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: td a[href*="id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href*="id="]
|
||||
attribute: href
|
||||
@@ -154,9 +159,9 @@ search:
|
||||
- name: prepend
|
||||
args: "download.php?id="
|
||||
- name: append
|
||||
args: "&f={{.Result.title}}.torrent"
|
||||
args: "&f={{ .Result.title }}.torrent"
|
||||
poster:
|
||||
selector: td img[src="/torrentimg/pic.png"]
|
||||
selector: td a:has(img[src^="/torrentimg/pic"])
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -165,18 +170,18 @@ search:
|
||||
date_day:
|
||||
# Yesterday
|
||||
# Вчера
|
||||
selector: td:nth-child(6):not(:contains("/"))
|
||||
selector: td:nth-last-child(5):not(:contains("/"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["сейчас", "now"]
|
||||
- name: replace
|
||||
args: ["сегодня", "Today"]
|
||||
- name: replace
|
||||
args: ["вчера", "Yesterday"]
|
||||
- name: re_replace
|
||||
args: ["(?i)сейчас|Сега", "now"]
|
||||
- name: re_replace
|
||||
args: ["(?i)сегодня|Днес", "Today"]
|
||||
- name: re_replace
|
||||
args: ["(?i)вчера|Вчера", "Yesterday"]
|
||||
date_year:
|
||||
# 14/03/2019
|
||||
selector: td:nth-child(6):contains("/")
|
||||
selector: td:nth-last-child(5):contains("/")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -186,13 +191,13 @@ search:
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -16,6 +16,7 @@ caps:
|
||||
- {id: 4, cat: PC/Games, desc: "Jogos"}
|
||||
- {id: 5, cat: PC/0day, desc: "Aplicativos"}
|
||||
- {id: 7, cat: Other, desc: "Cursos"}
|
||||
- {id: 8, cat: Movies/3D, desc: "3D"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -47,6 +47,7 @@ caps:
|
||||
- {id: 58, cat: Audio/Video, desc: "Gaming Videos"}
|
||||
- {id: 52, cat: Audio, desc: "OST"}
|
||||
- {id: 55, cat: Other, desc: "Time for a Break"}
|
||||
- {id: 81, cat: Audio/Video, desc: "Videos"}
|
||||
# Various
|
||||
- {id: 59, cat: Other, desc: "Mods"}
|
||||
- {id: 54, cat: Other, desc: "Updates/Fixes"}
|
||||
|
@@ -141,9 +141,12 @@ search:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
# staff have extra columns at the start and end of a row, so we have to float the next lot of selectors off an anchor
|
||||
anchor1:
|
||||
selector: td:has(a[href^="comment.php?"])
|
||||
optional: true
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td > span[title]
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td > span[title]"
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -153,7 +156,7 @@ search:
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td:not(:has(span[title]))
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td:not(:has(span[title]))"
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -163,13 +166,13 @@ search:
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td ~ td
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td"
|
||||
seeders:
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td ~ td ~ td
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td"
|
||||
leechers:
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td ~ td ~ td ~ td
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td ~ td"
|
||||
grabs:
|
||||
selector: td:has(a[href^="comment.php?"]) ~ td ~ td ~ td ~ td ~ td
|
||||
selector: "td:has(a[{{ if .Result.anchor1 }}href^=\"comment.php\"{{ else }}href$=\"startcomments\"{{ end }}]) ~ td ~ td ~ td ~ td ~ td"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
|
198
src/Jackett.Common/Definitions/putao.yml
Normal file
198
src/Jackett.Common/Definitions/putao.yml
Normal file
@@ -0,0 +1,198 @@
|
||||
---
|
||||
id: putao
|
||||
name: PuTao
|
||||
description: "葡萄 (PuTao) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.sjtu.edu.cn/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies CHN 华语电影"}
|
||||
- {id: 402, cat: Movies, desc: "Movies Eng 欧美电影"}
|
||||
- {id: 403, cat: Movies, desc: "Movies Asian 亚洲电影"}
|
||||
- {id: 406, cat: TV/Documentary, desc: "Documentary 纪录片"}
|
||||
- {id: 407, cat: TV, desc: "TV Series HKTW 港台电视剧"}
|
||||
- {id: 408, cat: TV, desc: "TV Series Asian 亚洲电视剧"}
|
||||
- {id: 409, cat: TV, desc: "TV Series CHN 大陆电视剧"}
|
||||
- {id: 410, cat: TV, desc: "TV Series Eng 欧美电视剧"}
|
||||
- {id: 411, cat: TV, desc: "TV CHN 大陆综艺节目"}
|
||||
- {id: 412, cat: TV, desc: "TV HKTW 港台综艺节目"}
|
||||
- {id: 413, cat: TV, desc: "TV Eng 欧美综艺节目"}
|
||||
- {id: 414, cat: TV, desc: "TV JPKR 日韩综艺节目"}
|
||||
- {id: 420, cat: Audio, desc: "Music CHN 华语音乐"}
|
||||
- {id: 421, cat: Audio, desc: "Music JPKR 日韩音乐"}
|
||||
- {id: 422, cat: Audio, desc: "Music Eng 欧美音乐"}
|
||||
- {id: 423, cat: Audio, desc: "Music OST 原声音乐"}
|
||||
- {id: 425, cat: Audio, desc: "Music Classic 古典音乐"}
|
||||
- {id: 426, cat: Audio/MP3, desc: "Music mp3合辑"}
|
||||
- {id: 427, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 429, cat: Console, desc: "Games 游戏"}
|
||||
- {id: 431, cat: TV/Anime, desc: "Anime 动漫"}
|
||||
- {id: 432, cat: TV/Sport, desc: "Sport 体育"}
|
||||
- {id: 434, cat: PC, desc: "Software 软件"}
|
||||
- {id: 435, cat: Other, desc: "Study 学习"}
|
||||
- {id: 440, cat: PC/Mac, desc: "Software Mac"}
|
||||
- {id: 451, cat: Other, desc: "Campus 校园原创"}
|
||||
- {id: 450, cat: Other/Misc, desc: "Misc 其他"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: info_captcha
|
||||
type: info
|
||||
label: About the Captcha
|
||||
default: If the Captcha image is missing then set the <b>checkcode</b> to <b>XxXx</b>
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>每页种子数:每页显示</b><i>(Torrents per page:)</i> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src^="getcheckcode.php?"]
|
||||
input: checkcode
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 incldead, 1 onlyactive, 2 onlydead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 30%, 7 70%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 all, 1 popular, 2 classic, 3 recommended, 4 normal, 5 seeds
|
||||
picktype: 0
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdbid
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
# time elapsed (default)
|
||||
# 19时<br/>3分 (19 hours 3 minutes)
|
||||
# 2天<br/>21时 (2 days 21 hours)
|
||||
selector: td:nth-child(4):not(:contains("-"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["年", "years"]
|
||||
- name: replace
|
||||
args: ["月", "months"]
|
||||
- name: replace
|
||||
args: ["天", "days"]
|
||||
- name: replace
|
||||
args: ["时", " hours"]
|
||||
- name: replace
|
||||
args: ["分", "minutes"]
|
||||
- name: append
|
||||
args: " ago"
|
||||
- name: timeago
|
||||
date:
|
||||
# time added
|
||||
selector: td:nth-child(4):contains("-")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.free_bg: 0
|
||||
# tr.2up: 0
|
||||
# tr.free2up: 0
|
||||
tr.halfdown_bg: 0.5
|
||||
tr.d30down_bg: 0.3
|
||||
tr.d70down_bg: 0.7
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
# tr.2up: 0
|
||||
# tr.free2up: 0
|
||||
"*": 1
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
minimumratio:
|
||||
text: 0.7
|
||||
# NexusPHP v1.0 Beta 2
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: reelflix-api
|
||||
name: ReelFlix (API)
|
||||
description: "ReelFlix (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
name: ReelFLiX (API)
|
||||
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -14,10 +14,6 @@ caps:
|
||||
# dont forget to update the case block in the search fields category
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 4, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 5, cat: TV, desc: "TV Pack"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -58,24 +54,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
@@ -86,10 +70,6 @@ search:
|
||||
selector: category
|
||||
case:
|
||||
Movie: 1
|
||||
TV: 2
|
||||
Music: 3
|
||||
E-Book: 4
|
||||
TV Pack: 5
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: reelflix
|
||||
name: ReelFlix
|
||||
description: "ReelFlix (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
name: ReelFLiX
|
||||
description: "ReelFLiX (HD4Free,LegacyHD) is a Private Torrent Tracker for HD MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -13,10 +13,6 @@ legacylinks:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 4, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 5, cat: TV, desc: "TV Pack"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -8,7 +8,7 @@ encoding: ISO-8859-2
|
||||
links:
|
||||
- http://renegade-tracker.com/
|
||||
legacylinks:
|
||||
- https://renegade-tracker.com/ # site forcing http
|
||||
- https://renegade-tracker.com/ # ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
@@ -107,6 +107,9 @@ search:
|
||||
poster:
|
||||
selector: div#bro_browse_poster_1 a img
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: div#bro_browse_details
|
||||
filters:
|
||||
|
@@ -95,7 +95,7 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: p a:nth-child(3), p:has(a:nth-child(3):empty) a:nth-child(2)
|
||||
selector: p a:last-child
|
||||
case:
|
||||
a[href$="/amateur/"]: 1
|
||||
a[href$="/pornstars/"]: 22
|
||||
|
@@ -62,24 +62,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
|
@@ -12,10 +12,12 @@ caps:
|
||||
# dont forget to update the case block in the search fields category
|
||||
categorymappings:
|
||||
- {id: 15, cat: TV, desc: "TV Show"}
|
||||
- {id: 16, cat: Movies, desc: "TV Movie"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -49,24 +51,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
@@ -77,6 +67,7 @@ search:
|
||||
selector: category
|
||||
case:
|
||||
"TV Show": 15
|
||||
"TV Movie": 16
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
|
@@ -11,10 +11,12 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: TV, desc: "TV Show"}
|
||||
- {id: 16, cat: Movies, desc: "TV Movie"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
|
@@ -42,6 +42,7 @@ caps:
|
||||
- {id: 55, cat: XXX, desc: "Porn - Movie"}
|
||||
- {id: 54, cat: XXX/ImageSet, desc: "Porn - Picture"}
|
||||
- {id: 68, cat: XXX/Other, desc: "Porn - Other"}
|
||||
- {id: 69, cat: XXX/ImageSet, desc: "All - All"}
|
||||
- {id: 6, cat: TV, desc: "TV - Divx/Xvid"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV - HD"}
|
||||
- {id: 59, cat: TV/HD, desc: "TV - Full HD"}
|
||||
|
@@ -8,6 +8,8 @@ encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://slosoul.net/
|
||||
legacylinks:
|
||||
- http://slosoul.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -149,6 +151,7 @@ search:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/external.gif"]: 0
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
img[src$="/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
|
@@ -62,24 +62,12 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
- path: /api/torrents/filter
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
attribute: attributes
|
||||
|
||||
inputs:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}{{ if .Config.freeleech }}free=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
count:
|
||||
|
187
src/Jackett.Common/Definitions/the-devils-lounge.yml
Normal file
187
src/Jackett.Common/Definitions/the-devils-lounge.yml
Normal file
@@ -0,0 +1,187 @@
|
||||
---
|
||||
id: the-devils-lounge
|
||||
name: The-Devils-Lounge
|
||||
description: "The-Devils-Lounge is a Private torrent site for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://the-devils-lounge.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 39, cat: Audio/Audiobook, desc: "Abook: Abook"}
|
||||
- {id: 1, cat: PC/0day, desc: "Application: 0-Day"}
|
||||
- {id: 2, cat: PC, desc: "Application: Pc"}
|
||||
- {id: 3, cat: PC/Mac, desc: "Application: Mac"}
|
||||
- {id: 38, cat: Books/EBook, desc: "Ebooks: Ebook"}
|
||||
- {id: 32, cat: TV/Anime, desc: "Episodes: Anime"}
|
||||
- {id: 33, cat: TV, desc: "Episodes: Classic"}
|
||||
- {id: 34, cat: TV/Foreign, desc: "Episodes: Foreign"}
|
||||
- {id: 35, cat: TV/HD, desc: "Episodes: TvHD"}
|
||||
- {id: 36, cat: TV/SD, desc: "Episodes: TvSD"}
|
||||
- {id: 37, cat: TV/Sport, desc: "Episodes: TVsports"}
|
||||
- {id: 22, cat: PC/Games, desc: "Games: Pc"}
|
||||
- {id: 23, cat: Console/PS4, desc: "Games: Ps4"}
|
||||
- {id: 24, cat: Console/PS3, desc: "Games: Ps3"}
|
||||
- {id: 25, cat: Console/PSP, desc: "Games: Ps1"}
|
||||
- {id: 26, cat: Console/PSP, desc: "Games: Ps2"}
|
||||
- {id: 27, cat: Console/PSP, desc: "Games: PsP"}
|
||||
- {id: 28, cat: Console/XBox, desc: "Games: xbox"}
|
||||
- {id: 29, cat: Console/Wii, desc: "Games: Wii"}
|
||||
- {id: 30, cat: Console/NDS, desc: "Games: Nintendo"}
|
||||
- {id: 31, cat: Console/Other, desc: "Games: Dreamcast"}
|
||||
- {id: 4, cat: Movies/HD, desc: "Movies: 1080P"}
|
||||
- {id: 5, cat: TV/Anime, desc: "Movies: Anime"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Movies: DvdR"}
|
||||
- {id: 7, cat: Movies/SD, desc: "Movies: Camer"}
|
||||
- {id: 8, cat: Movies/3D, desc: "Movies: 3D"}
|
||||
- {id: 9, cat: Movies/WEB-DL, desc: "Movies: WEBRip"}
|
||||
- {id: 10, cat: XXX, desc: "Movies: XxX"}
|
||||
- {id: 11, cat: Movies/UHD, desc: "Movies: Real-4K"}
|
||||
- {id: 12, cat: Movies, desc: "Movies: Classic"}
|
||||
- {id: 13, cat: Movies/Foreign, desc: "Movies: Foreign"}
|
||||
- {id: 14, cat: Movies, desc: "Movies: Remux"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Movies: HD"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies: SD"}
|
||||
- {id: 17, cat: Movies, desc: "Movies: Packs"}
|
||||
- {id: 18, cat: Movies, desc: "Movies: Animation"}
|
||||
- {id: 19, cat: Audio, desc: "Music: Audio"}
|
||||
- {id: 20, cat: Audio, desc: "Music: Packs"}
|
||||
- {id: 21, cat: Audio/Video, desc: "Music: Video"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: /
|
||||
error:
|
||||
- selector: div.myFrame:contains("Access Denied")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrent: "{{ .DownloadUri.Query.id }}"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# https://the-devils-lounge.xyz/torrents-search.php?search=&cat=0&incldead=0&freeleech=2&inclexternal=0&lang=0
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 both, 1 local, 2 external
|
||||
inclexternal: 0
|
||||
# 0 all, 1 English, 2 etc...
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid searching or display imdbid links.
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", " +$1"] # prepend + to each word
|
||||
|
||||
rows:
|
||||
selector: tr.t-row
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: td a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: td a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7) font:first-of-type
|
||||
filters:
|
||||
- name: replace
|
||||
args: [",", ""]
|
||||
leechers:
|
||||
selector: td:nth-child(7) font:last-of-type
|
||||
filters:
|
||||
- name: replace
|
||||
args: [",", ""]
|
||||
description:
|
||||
selector: td:last-of-type:contains("E")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["E", "External"]
|
||||
- name: replace
|
||||
args: ["L", "Local"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/images/free.gif"]: 0
|
||||
"td:last-of-type:contains(\"E\")": 0 # all external torrents are free
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
# FMEDition 3 (TorrentTrader)
|
@@ -30,6 +30,7 @@ caps:
|
||||
- {id: 258, cat: Movies/UHD, desc: "Movie UHD"}
|
||||
- {id: 262, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 301, cat: Movies/BluRay, desc: "Movie Bluray"}
|
||||
- {id: 312, cat: Movies, desc: "Movie Kids"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Movie HD"}
|
||||
# Music
|
||||
@@ -51,8 +52,15 @@ caps:
|
||||
- {id: 287, cat: TV/Anime, desc: "Tv Serien Anime SD"}
|
||||
- {id: 286, cat: TV/Anime, desc: "Tv Serien Anime HD"}
|
||||
# Sport
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport SD "}
|
||||
- {id: 282, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport Formel 1"}
|
||||
- {id: 282, cat: TV/Sport, desc: "Sport Sonstiges"}
|
||||
- {id: 313, cat: TV/Sport, desc: "Sport Wrestling"}
|
||||
# Internat.
|
||||
- {id: 307, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 308, cat: Movies/HD, desc: "Filme HD"}
|
||||
- {id: 309, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 310, cat: TV/HD, desc: "Serien HD"}
|
||||
- {id: 311, cat: TV/HD, desc: "Sonstiges"}
|
||||
# Sonstiges
|
||||
- {id: 216, cat: Books/EBook, desc: "Sonstiges Pdf"}
|
||||
- {id: 202, cat: Books/Mags, desc: "Sonstiges Magazine"}
|
||||
@@ -149,61 +157,69 @@ search:
|
||||
selector: div.kat_cat_pic
|
||||
case:
|
||||
# Movies
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "277"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": "300"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": "258"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": "262"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Bluray\"))": "301"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "28"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "32"
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 277
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"3D\"))": 300
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 258
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"DVD\"))": 262
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Bluray\"))": 301
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"Kids\"))": 312
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 28
|
||||
":has(div.kat_cat_pic_name:contains(\"Movie\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 32
|
||||
# Tv Serien
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime HD\"))": "286"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime SD\"))": "287"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "226"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "209"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": "305"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "273"
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime HD\"))": 286
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Anime SD\"))": 287
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 226
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 209
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"UHD\"))": 305
|
||||
":has(div.kat_cat_pic_name:contains(\"Serien\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 273
|
||||
# Music
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Album\"))": "48"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Discographie\"))": "288"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"FLAC\"))": "201"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"MP3\"))": "121"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Mixe\"))": "124"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Video\"))": "55"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Sampler\"))": "53"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "52"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Charts\"))": "49"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Soundtrack\"))": "303"
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Album\"))": 48
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Discographie\"))": 288
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"FLAC\"))": 201
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"MP3\"))": 121
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Mixe\"))": 124
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Video\"))": 55
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Sampler\"))": 53
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 52
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Charts\"))": 49
|
||||
":has(div.kat_cat_pic_name:contains(\"Music\")):has(div.kat_cat_pic_name_b:contains(\"Soundtrack\"))": 303
|
||||
# Doku
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "177"
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "178"
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 177
|
||||
":has(div.kat_cat_pic_name:contains(\"Doku\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 178
|
||||
# Games
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiege\"))": "263"
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PDA\"))": "264"
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PlayStation\"))": "265"
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": "299"
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": "17"
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiege\"))": 263
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PDA\"))": 264
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PlayStation\"))": 265
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"Wimmelbild\"))": 299
|
||||
":has(div.kat_cat_pic_name:contains(\"Game\")):has(div.kat_cat_pic_name_b:contains(\"PC\"))": 17
|
||||
# App
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Win\"))": "12"
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Mac\"))": "10"
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Android\"))": "127"
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Win\"))": 12
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Mac\"))": 10
|
||||
":has(div.kat_cat_pic_name:contains(\"App\")):has(div.kat_cat_pic_name_b:contains(\"Android\"))": 127
|
||||
# Sport
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "62"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "282"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Formel\"))": 62
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 282
|
||||
":has(div.kat_cat_pic_name:contains(\"Sport\")):has(div.kat_cat_pic_name_b:contains(\"Wrestling\"))": 313
|
||||
# Internat
|
||||
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Filme SD\"))": 307
|
||||
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Filme HD\"))": 308
|
||||
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Serien SD\"))": 309
|
||||
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Serien HD\"))": 310
|
||||
":has(div.kat_cat_pic_name:contains(\"Internat\")):has(div.kat_cat_pic_name_b:contains(\"Sonstiges\"))": 311
|
||||
# Sonstiges
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Pdf\"))": "216"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Magazine\"))": "202"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"EPaper\"))": "217"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Hörspiel\"))": "269"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Comic\"))": "304"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"A-Book\"))": "63"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"E-Book\"))": "96"
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Pdf\"))": 216
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Magazine\"))": 202
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"EPaper\"))": 217
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Hörspiel\"))": 269
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"Comic\"))": 304
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"A-Book\"))": 63
|
||||
":has(div.kat_cat_pic_name:contains(\"Sonstiges\")):has(div.kat_cat_pic_name_b:contains(\"E-Book\"))": 96
|
||||
# XXX
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": "73"
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": "75"
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": "76"
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": "147"
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Diverses\"))": "302"
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"HD\"))": 73
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Pack\"))": 75
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"SD\"))": 76
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Clips\"))": 147
|
||||
":has(div.kat_cat_pic_name:contains(\"XXX\")):has(div.kat_cat_pic_name_b:contains(\"Diverses\"))": 302
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
|
@@ -57,14 +57,14 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://torrentmax1.net/bbs/search.php?srows=100&gr_id=&sfl=wr_subject&stx=2021&sop=and
|
||||
- path: bbs/search.php
|
||||
# https://torrentmax2.net/search?srows=10&gr_id=&sfl=wr_subject%7C%7Cwr_content&stx=2021&sop=and
|
||||
- path: search
|
||||
inputs:
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
srows: 100
|
||||
gr_id: ""
|
||||
# wr_subject||wr_content, wr_subject, wr_content, mb_id, wr_name
|
||||
sfl: wr_subject
|
||||
stx: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
# or, and
|
||||
sop: and
|
||||
|
||||
|
@@ -211,9 +211,10 @@ download:
|
||||
|
||||
search:
|
||||
# https://torrentparadise.org/search.php?f=monday+night
|
||||
# https://torrentparadise.org/recent
|
||||
# https://torrentparadise.org/recent # returns 404 as at 8 Nov 2021 #6385
|
||||
# https://torrentparadise.cc/top100
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search.php?f={{ .Keywords }}{{ else }}recent{{ end }}"
|
||||
- path: "{{ if .Keywords }}search.php?f={{ .Keywords }}{{ else }}top100{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-bordered > tbody > tr.table-default
|
||||
|
@@ -7,31 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq114.com/
|
||||
- https://torrentqq119.com/
|
||||
legacylinks:
|
||||
- https://torrentqq76.com/
|
||||
- https://torrentqq77.com/
|
||||
- https://torrentqq78.com/
|
||||
- https://torrentqq79.com/
|
||||
- https://torrentqq80.com/
|
||||
- https://torrentqq81.com/
|
||||
- https://torrentqq82.com/
|
||||
- https://torrentqq83.com/
|
||||
- https://torrentqq84.com/
|
||||
- https://torrentqq85.com/
|
||||
- https://torrentqq86.com/
|
||||
- https://torrentqq87.com/
|
||||
- https://torrentqq88.com/
|
||||
- https://torrentqq89.com/
|
||||
- https://torrentqq90.com/
|
||||
- https://torrentqq91.com/
|
||||
- https://torrentqq92.com/
|
||||
- https://torrentqq93.com/
|
||||
- https://torrentqq95.com/
|
||||
- https://torrentqq96.com/
|
||||
- https://torrentqq97.com/
|
||||
- https://torrentqq98.com/
|
||||
- https://torrentqq99.com/
|
||||
- https://torrentqq100.com/
|
||||
- https://torrentqq101.com/
|
||||
- https://torrentqq102.com/
|
||||
@@ -46,6 +23,10 @@ legacylinks:
|
||||
- https://torrentqq111.com/
|
||||
- https://torrentqq112.com/
|
||||
- https://torrentqq113.com/
|
||||
- https://torrentqq114.com/
|
||||
- https://torrentqq115.com/
|
||||
- https://torrentqq117.com/
|
||||
- https://torrentqq118.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir40.com/
|
||||
- https://torrentsir43.com/
|
||||
legacylinks:
|
||||
- https://torrentsir31.com/
|
||||
- https://torrentsir33.com/
|
||||
@@ -17,6 +17,9 @@ legacylinks:
|
||||
- https://torrentsir37.com/
|
||||
- https://torrentsir38.com/
|
||||
- https://torrentsir39.com/
|
||||
- https://torrentsir40.com/
|
||||
- https://torrentsir41.com/
|
||||
- https://torrentsir42.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -8,7 +8,7 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://torrents-local.xyz/
|
||||
certificates:
|
||||
- 97aed6b77a962dd1a3f6ed3eb03801a74138f71c # expired 12th Aug 2021
|
||||
- dbcb5a8bcf03c2c159a0fe1bbf91c5e56be64b3d # expired 12th Nov 2021
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,32 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentview44.com/
|
||||
- https://torrentview46.com/
|
||||
legacylinks:
|
||||
- https://torrentview.net/
|
||||
- https://torrentview3.net/
|
||||
- https://torrentview4.net/
|
||||
- https://torrentview5.net/
|
||||
- https://torrentview6.net/
|
||||
- https://torrentview7.net/
|
||||
- https://torrentview8.net/
|
||||
- https://torrentview9.net/
|
||||
- https://torrentview10.net/
|
||||
- https://torrentview11.net/
|
||||
- https://torrentview12.net/
|
||||
- https://torrentview13.net/
|
||||
- https://torrentview14.net/
|
||||
- https://torrentview15.net/
|
||||
- https://torrentview16.net/
|
||||
- https://torrentview17.net/
|
||||
- https://torrentview18.net/
|
||||
- https://torrentview19.net/
|
||||
- https://torrentview20.net/
|
||||
- https://torrentview21.net/
|
||||
- https://torrentview22.net/
|
||||
- https://torrentview23.net/
|
||||
- https://torrentview24.com/
|
||||
- https://torrentview25.com/
|
||||
- https://torrentview26.com/
|
||||
- https://torrentview27.com/
|
||||
- https://torrentview28.com/
|
||||
@@ -50,6 +27,8 @@ legacylinks:
|
||||
- https://torrentview40.com/
|
||||
- https://torrentview41.com/
|
||||
- https://torrentview42.com/
|
||||
- https://torrentview44.com/
|
||||
- https://torrentview45.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentwiz33.com/
|
||||
- https://torrentwiz34.com/
|
||||
legacylinks:
|
||||
- https://torrentwiz22.me/
|
||||
- https://torrentwiz23.me/
|
||||
@@ -20,6 +20,7 @@ legacylinks:
|
||||
- https://torrentwiz30.com/
|
||||
- https://torrentwiz31.com/
|
||||
- https://torrentwiz32.com/
|
||||
- https://torrentwiz33.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -5,7 +5,11 @@ description: "Torrentz2eu is a Public torrent meta-search engine"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentz2.club/
|
||||
- https://torrentz2eu.me/ # often rotates between *.me and *.org
|
||||
- https://torrentzeu.org/
|
||||
- https://torrentz2.unblockninja.com/
|
||||
|
||||
caps:
|
||||
@@ -21,10 +25,10 @@ caps:
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: A note about Torrentz2eu
|
||||
default: Torrentz2eu does not display categories in its search results page. This definition is probably only suitable for Jackett Dashboard Manual searches.
|
||||
label: About Torrentz2eu Categories
|
||||
default: Torrentz2eu does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -406,6 +406,8 @@ caps:
|
||||
- {id: 436, cat: PC/0day, desc: "ОС от Microsoft"}
|
||||
- {id: 993, cat: PC/0day, desc: " |- Активаторы продуктов Microsoft"}
|
||||
- {id: 1104, cat: PC/0day, desc: " |- Патчи, дополнения для ОС от Microsoft"}
|
||||
- {id: 1145, cat: PC/0day, desc: " |- Windows 11 [оригинальные версии]"}
|
||||
- {id: 1147, cat: PC/0day, desc: " |- Windows 11 [сборки]"}
|
||||
- {id: 1030, cat: PC/0day, desc: " |- Windows 10 [оригинальные версии]"}
|
||||
- {id: 1031, cat: PC/0day, desc: " |- Windows 10 [сборки]"}
|
||||
- {id: 968, cat: PC/0day, desc: " |- Windows 8 и 8.1 [оригинальные версии]"}
|
||||
|
@@ -406,6 +406,8 @@ caps:
|
||||
- {id: 436, cat: PC/0day, desc: "ОС от Microsoft"}
|
||||
- {id: 993, cat: PC/0day, desc: " |- Активаторы продуктов Microsoft"}
|
||||
- {id: 1104, cat: PC/0day, desc: " |- Патчи, дополнения для ОС от Microsoft"}
|
||||
- {id: 1145, cat: PC/0day, desc: " |- Windows 11 [оригинальные версии]"}
|
||||
- {id: 1147, cat: PC/0day, desc: " |- Windows 11 [сборки]"}
|
||||
- {id: 1030, cat: PC/0day, desc: " |- Windows 10 [оригинальные версии]"}
|
||||
- {id: 1031, cat: PC/0day, desc: " |- Windows 10 [сборки]"}
|
||||
- {id: 968, cat: PC/0day, desc: " |- Windows 8 и 8.1 [оригинальные версии]"}
|
||||
|
178
src/Jackett.Common/Definitions/whiteangel.yml
Normal file
178
src/Jackett.Common/Definitions/whiteangel.yml
Normal file
@@ -0,0 +1,178 @@
|
||||
---
|
||||
id: whiteangel
|
||||
name: White Angel
|
||||
description: "White Angel is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://white-angel.hu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 39, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 53, cat: XXX, desc: "Film (XXX)"}
|
||||
- {id: 72, cat: TV/Anime, desc: "Film (Animáció)"}
|
||||
- {id: 44, cat: Movies/SD, desc: "Film (Cam Hun)"}
|
||||
- {id: 40, cat: Movies/DVD, desc: "Film (DVD Eng)"}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Film (DVD Hun)"}
|
||||
- {id: 57, cat: Movies/HD, desc: "Film (HD Eng)"}
|
||||
- {id: 38, cat: Movies/HD, desc: "Film (HD Hun)"}
|
||||
- {id: 42, cat: Movies/SD, desc: "Film (Xvid Eng)"}
|
||||
- {id: 73, cat: Movies/SD, desc: "Film (Xvid Eng-Hun)"}
|
||||
- {id: 43, cat: Movies/SD, desc: "Film (Xvid Hun)"}
|
||||
- {id: 69, cat: XXX/x264, desc: "Film (XXX HD)"}
|
||||
- {id: 63, cat: Movies/SD, desc: "Film (Cam Eng)"}
|
||||
- {id: 71, cat: Audio/Audiobook, desc: "Hangos könyv"}
|
||||
- {id: 45, cat: PC/Games, desc: "Játék ISO"}
|
||||
- {id: 46, cat: Console/PS3, desc: "Játék Ps2"}
|
||||
- {id: 66, cat: PC/Games, desc: "Játék Rip"}
|
||||
- {id: 47, cat: Console/XBox, desc: "Játék Xbox"}
|
||||
- {id: 70, cat: XXX/Other, desc: "Játék XXX"}
|
||||
- {id: 48, cat: Other, desc: "Képek"}
|
||||
- {id: 65, cat: TV/Anime, desc: "Mese Eng"}
|
||||
- {id: 49, cat: TV/Anime, desc: "Mese Hun"}
|
||||
- {id: 50, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 52, cat: TV, desc: "Sorozat (Hun Xvid)"}
|
||||
- {id: 59, cat: TV, desc: "Sorozat (Xvid Eng)"}
|
||||
- {id: 68, cat: PC/ISO, desc: "Win/Program/ISO"}
|
||||
- {id: 51, cat: PC/0day, desc: "Win/Program/Rip"}
|
||||
- {id: 54, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
- {id: 55, cat: Audio, desc: "Zene/Eng"}
|
||||
- {id: 56, cat: Audio, desc: "Zene/Hun"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search FreeLeech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:contains("bejelentkezés nem sikerült")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?k="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 active, 1 all, 2 deadonly, 3 freeleech, 4 x2, 5 myuploads, 6 requests, 7 seedbox
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[cellpadding="5"] tbody tr:has(a[href^="download.php?torrent="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
# can be abbreviated
|
||||
selector: a[href^="javascript:torrent"] b
|
||||
title_optional:
|
||||
# usually full length
|
||||
selector: a[href^="javascript:torrent"]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
id:
|
||||
selector: a[href^="javascript:torrent"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
details:
|
||||
text: "details.php?id={{ .Result.id }}"
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
- name: prepend
|
||||
args: "https:"
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:last-child
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/ingyen.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"font:contains(\"[x2]\")": 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# engine n/a
|
@@ -29,6 +29,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
protected virtual string PosterUrl => SiteLink;
|
||||
protected virtual string AuthorizationFormat => "{0}";
|
||||
protected virtual int ApiKeyLength => 41;
|
||||
protected virtual string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "usetoken=0");
|
||||
|
||||
protected bool useTokens;
|
||||
protected string cookie = "";
|
||||
@@ -395,10 +396,11 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
var html = Encoding.GetString(content);
|
||||
if (html.Contains("You do not have any freeleech tokens left.")
|
||||
|| html.Contains("You do not have enough freeleech tokens")
|
||||
|| html.Contains("This torrent is too large."))
|
||||
|| html.Contains("This torrent is too large.")
|
||||
|| html.Contains("You cannot use tokens here"))
|
||||
{
|
||||
// download again with usetoken=0
|
||||
var requestLinkNew = requestLink.Replace("usetoken=1", "usetoken=0");
|
||||
var requestLinkNew = FlipOptionalTokenString(requestLink);
|
||||
content = await base.Download(new Uri(requestLinkNew), RequestType.GET, headers: headers);
|
||||
}
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
@@ -443,8 +442,8 @@ namespace Jackett.Common.Indexers
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Number of retries can be overridden for unstable indexers by overriding this property. Note that retry attempts include an
|
||||
/// exponentially increasing delay.
|
||||
///
|
||||
/// exponentially increasing delay.
|
||||
///
|
||||
/// Alternatively, <see cref="EnableConfigurableRetryAttempts()" /> can be called in the constructor to add user configurable options.
|
||||
/// </remarks>
|
||||
protected virtual int NumberOfRetryAttempts
|
||||
@@ -706,7 +705,7 @@ namespace Jackett.Common.Indexers
|
||||
Cookies = redirRequestCookies,
|
||||
Encoding = Encoding
|
||||
});
|
||||
Mapper.Map(redirectedResponse, incomingResponse);
|
||||
MapperUtil.Mapper.Map(redirectedResponse, incomingResponse);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -90,20 +90,13 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
{ BHDParams.action, "search" },
|
||||
{ BHDParams.rsskey, configData.RSSKey.Value },
|
||||
{ BHDParams.search, query.SanitizedSearchTerm },
|
||||
{ BHDParams.search, query.GetQueryString() },
|
||||
};
|
||||
|
||||
if (query.IsTVSearch)
|
||||
{
|
||||
postData.Add(BHDParams.categories, "TV");
|
||||
|
||||
if (query.Season != 0)
|
||||
postData[BHDParams.search] = $"{query.SanitizedSearchTerm} {query.GetEpisodeSearchString()}";
|
||||
}
|
||||
else if (query.IsMovieSearch)
|
||||
{
|
||||
postData.Add(BHDParams.categories, "Movies");
|
||||
}
|
||||
|
||||
var imdbId = ParseUtil.GetImdbID(query.ImdbID);
|
||||
if (imdbId != null)
|
||||
|
@@ -22,7 +22,8 @@ namespace Jackett.Common.Indexers
|
||||
logger: l,
|
||||
p: ps,
|
||||
cs: cs,
|
||||
supportsFreeleechTokens: true)
|
||||
supportsFreeleechTokens: true,
|
||||
has2Fa: true)
|
||||
{
|
||||
Language = "en-US";
|
||||
Type = "private";
|
||||
|
@@ -31,7 +31,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://www.cinecalidad.eu/",
|
||||
"https://cinecalidad.unbl0ck.xyz/",
|
||||
"https://cinecalidad.u4m.club/",
|
||||
"https://cinecalidad.mrunblock.icu/"
|
||||
"https://cinecalidad.mrunblock.icu/",
|
||||
"https://www.cine-calidad.com/"
|
||||
};
|
||||
|
||||
public Cinecalidad(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
@@ -39,7 +40,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "cinecalidad",
|
||||
name: "Cinecalidad",
|
||||
description: "Películas Full HD en Latino y Inglés Dual.",
|
||||
link: "https://www.cine-calidad.com/",
|
||||
link: "https://cinecalidad.website/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
MovieSearchParams = new List<MovieSearchParam> { MovieSearchParam.Q }
|
||||
|
@@ -53,6 +53,7 @@ namespace Jackett.Common.Indexers
|
||||
"https://www.divxtotal.one/",
|
||||
"https://www.divxtotal.ch/",
|
||||
"https://www.divxtotal.nz/",
|
||||
"https://www.divxtotal.li/",
|
||||
"https://www.divxtotal.se/"
|
||||
};
|
||||
|
||||
@@ -61,7 +62,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "divxtotal",
|
||||
name: "DivxTotal",
|
||||
description: "DivxTotal is a SPANISH site for Movies, TV series and Software",
|
||||
link: "https://www.divxtotal.li/",
|
||||
link: "https://www.divxtotal.nu/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
|
@@ -99,7 +99,6 @@ namespace Jackett.Common.Indexers
|
||||
private readonly string[] _voUrls = { "serie-vo", "serievo" };
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://atomixhq.com/",
|
||||
"https://atomixhq.one/",
|
||||
"https://pctmix1.unblockit.bz/"
|
||||
};
|
||||
@@ -124,7 +123,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://pctmix1.com/",
|
||||
"https://pctreload1.com/",
|
||||
"https://maxitorrent.com",
|
||||
"https://pctmix1.unblockit.kim/"
|
||||
"https://pctmix1.unblockit.kim/",
|
||||
"https://atomixhq.com/"
|
||||
};
|
||||
|
||||
public NewPCT(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
@@ -132,7 +132,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "newpct",
|
||||
name: "NewPCT",
|
||||
description: "NewPCT - Descargar peliculas, series y estrenos torrent gratis",
|
||||
link: "https://atomixhq.com/",
|
||||
link: "https://atomixhq.one/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
|
@@ -1,5 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
@@ -12,9 +14,10 @@ namespace Jackett.Common.Indexers
|
||||
public class Orpheus : GazelleTracker
|
||||
{
|
||||
// API Reference: https://github.com/OPSnet/Gazelle/wiki/JSON-API-Documentation
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id=";
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
||||
protected override string AuthorizationFormat => "token {0}";
|
||||
protected override int ApiKeyLength => 118;
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "");
|
||||
public Orpheus(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(id: "orpheus",
|
||||
|
259
src/Jackett.Common/Indexers/Partis.cs
Normal file
259
src/Jackett.Common/Indexers/Partis.cs
Normal file
@@ -0,0 +1,259 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class Partis : BaseWebIndexer
|
||||
{
|
||||
private string LoginUrl => SiteLink + "user/login/";
|
||||
private string SearchUrl => SiteLink + "torrent/search/";
|
||||
|
||||
private new ConfigurationDataBasicLogin configData
|
||||
{
|
||||
get => (ConfigurationDataBasicLogin)base.configData;
|
||||
set => base.configData = value;
|
||||
}
|
||||
|
||||
public Partis(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(id: "partis",
|
||||
name: "Partis",
|
||||
description: "Partis is a SLOVENIAN Private Torrent Tracker",
|
||||
link: "https://www.partis.si/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
},
|
||||
MovieSearchParams = new List<MovieSearchParam>
|
||||
{
|
||||
MovieSearchParam.Q
|
||||
},
|
||||
MusicSearchParams = new List<MusicSearchParam>
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q
|
||||
}
|
||||
},
|
||||
configService: configService,
|
||||
client: wc,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "sl-SL";
|
||||
Type = "private";
|
||||
|
||||
// Movies
|
||||
AddCategoryMapping(40, TorznabCatType.MoviesBluRay, "Blu-Ray 1080p/i");
|
||||
AddCategoryMapping(42, TorznabCatType.MoviesBluRay, "Blu-Ray 720p/i");
|
||||
AddCategoryMapping(43, TorznabCatType.MoviesBluRay, "Blu-Ray B-Disc");
|
||||
AddCategoryMapping(41, TorznabCatType.MoviesBluRay, "Blu-Ray 3D");
|
||||
AddCategoryMapping(44, TorznabCatType.MoviesBluRay, "Blu-Ray Remux");
|
||||
AddCategoryMapping(45, TorznabCatType.MoviesBluRay, "Blu-Ray Remux/Disc");
|
||||
AddCategoryMapping(32, TorznabCatType.MoviesUHD, "UHD 4K Disc");
|
||||
AddCategoryMapping(55, TorznabCatType.MoviesUHD, "UHD 4K Remux");
|
||||
AddCategoryMapping(20, TorznabCatType.MoviesHD, "HD");
|
||||
AddCategoryMapping(4, TorznabCatType.MoviesSD, "DVD-R");
|
||||
AddCategoryMapping(7, TorznabCatType.MoviesSD, "XviD");
|
||||
AddCategoryMapping(30, TorznabCatType.MoviesSD, "Risanke");
|
||||
AddCategoryMapping(54, TorznabCatType.MoviesSD, "WEBRip");
|
||||
AddCategoryMapping(59, TorznabCatType.MoviesWEBDL, "WEB-DL");
|
||||
|
||||
// TV
|
||||
AddCategoryMapping(53, TorznabCatType.TVWEBDL, "TV WEB-DL");
|
||||
AddCategoryMapping(60, TorznabCatType.TVSD, "TV-XviD");
|
||||
AddCategoryMapping(38, TorznabCatType.TVSD, "SD-TV");
|
||||
AddCategoryMapping(51, TorznabCatType.TVHD, "TV 1080p/i");
|
||||
AddCategoryMapping(52, TorznabCatType.TVHD, "TV 720p/i");
|
||||
AddCategoryMapping(5, TorznabCatType.TVSport, "Sport");
|
||||
AddCategoryMapping(2, TorznabCatType.TVAnime, "Anime");
|
||||
AddCategoryMapping(24, TorznabCatType.TVDocumentary, "Dokumentarci");
|
||||
|
||||
// Games
|
||||
AddCategoryMapping(10, TorznabCatType.PCGames, "PC igre/ISO");
|
||||
AddCategoryMapping(11, TorznabCatType.PCGames, "PC igre/Rips/Repack");
|
||||
AddCategoryMapping(64, TorznabCatType.PCGames, "PC igre/Update & Patch");
|
||||
AddCategoryMapping(13, TorznabCatType.ConsolePSP, "PSP");
|
||||
AddCategoryMapping(12, TorznabCatType.ConsoleOther, "PS2");
|
||||
AddCategoryMapping(28, TorznabCatType.ConsolePS3, "PS3");
|
||||
AddCategoryMapping(63, TorznabCatType.ConsolePS4, "PS4");
|
||||
AddCategoryMapping(27, TorznabCatType.ConsoleWii, "Wii");
|
||||
AddCategoryMapping(14, TorznabCatType.ConsoleXBox, "XboX");
|
||||
AddCategoryMapping(49, TorznabCatType.PCGames, "Mac Igre");
|
||||
AddCategoryMapping(48, TorznabCatType.PCGames, "Linux Igre");
|
||||
|
||||
// Music
|
||||
AddCategoryMapping(46, TorznabCatType.AudioLossless, "Glasba/Flac");
|
||||
AddCategoryMapping(8, TorznabCatType.AudioOther, "Glasba/Ostalo");
|
||||
AddCategoryMapping(47, TorznabCatType.AudioMP3, "Glasba/Mp3");
|
||||
AddCategoryMapping(8, TorznabCatType.AudioVideo, "Music DVD");
|
||||
AddCategoryMapping(8, TorznabCatType.AudioVideo, "Videospoti");
|
||||
|
||||
// Programs
|
||||
AddCategoryMapping(15, TorznabCatType.PC, "PC programi/drugo");
|
||||
AddCategoryMapping(15, TorznabCatType.PCMac, "Mac Programi");
|
||||
AddCategoryMapping(16, TorznabCatType.PCISO, "PC programi/ISO");
|
||||
|
||||
// Other
|
||||
AddCategoryMapping(21, TorznabCatType.AudioAudiobook, "AudioBook");
|
||||
AddCategoryMapping(3, TorznabCatType.BooksEBook, "eKnjige");
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
|
||||
var pairs = new Dictionary<string, string>
|
||||
{
|
||||
{ "user", configData.Username.Value },
|
||||
{ "pass", configData.Password.Value }
|
||||
};
|
||||
|
||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, string.Empty, false, null, null, true);
|
||||
await ConfigureIfOK(result.Cookies, result.ContentString != null && result.Cookies.Contains("udata"), () =>
|
||||
{
|
||||
var errorMessage = "Login failed. Invalid username or password.";
|
||||
throw new ExceptionWithConfigData(errorMessage, configData);
|
||||
});
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>(); //List of releases initialization
|
||||
var searchString = query.GetQueryString(); //get search string from query
|
||||
|
||||
WebResult results = null;
|
||||
var queryCollection = new NameValueCollection();
|
||||
var catList = MapTorznabCapsToTrackers(query); // map categories from query to indexer specific
|
||||
var categ = string.Join(",", catList);
|
||||
|
||||
//create GET request - search URI
|
||||
queryCollection.Add("q", searchString);
|
||||
queryCollection.Add("cat", categ.TrimStart(','));
|
||||
|
||||
//c oncatenate base search url with query
|
||||
var searchUrl = $"{SearchUrl}?{queryCollection.GetQueryString()}";
|
||||
|
||||
// log search URL
|
||||
logger.Info(string.Format("Searh URL Partis_: {0}", searchUrl));
|
||||
|
||||
// add necessary headers
|
||||
var header = new Dictionary<string, string>
|
||||
{
|
||||
{ "X-requested-with", "XMLHttpRequest" }
|
||||
};
|
||||
|
||||
// get results and follow redirect
|
||||
results = await RequestWithCookiesAsync(searchUrl, referer: SearchUrl, headers: header);
|
||||
|
||||
// parse results
|
||||
try
|
||||
{
|
||||
// successful search returns javascript code containing 'data' variable with actual torrent descriptions.
|
||||
// find this variable and extract its value
|
||||
var resultDataJson = Regex.Match(results.ContentString, @"data( |=)*(?<json>\{.*\})").Groups["json"];
|
||||
|
||||
var resultsData = JsonConvert.DeserializeObject<dynamic>(resultDataJson.Value);
|
||||
|
||||
foreach (var torrent in resultsData.sets.torrent_list.data)
|
||||
{
|
||||
var release = ParseRelease(torrent);
|
||||
if (release != null)
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnParseError(results.ContentString, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
private ReleaseInfo ParseRelease(dynamic torrent)
|
||||
{
|
||||
/* Single torrent is represented with array:
|
||||
[
|
||||
600934, -- id
|
||||
4571, -- ?
|
||||
1636450141, -- added timestamp
|
||||
"No.Time.To.Die.2021.ENGSubs.REPACK.HDRip.", -- title (max 41 chars)
|
||||
677, -- leechers
|
||||
30, -- seeders
|
||||
"NI ČAS ZA SMRT/ NOVI JAMES BOND | Akcijski | HDRip...", -- description
|
||||
7, -- category
|
||||
54.9014462385559, -- health? scaled 0-100
|
||||
"1.7 GB", -- size
|
||||
"/img/ics/xvid.gif", -- icon
|
||||
"/torrent/image/600/600934/coverflow/james-bond.jpg" -- thumbnail
|
||||
]
|
||||
*/
|
||||
try
|
||||
{
|
||||
// initialize ReleaseInfo
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
MinimumRatio = 1,
|
||||
MinimumSeedTime = 0
|
||||
};
|
||||
|
||||
// Get Category
|
||||
release.Category = MapTrackerCatToNewznab(torrent[7].ToString());
|
||||
|
||||
// Title, description and details link
|
||||
release.Title = torrent[3].ToString();
|
||||
release.Description = torrent[6].ToString();
|
||||
release.Details = new Uri($"{SiteLink}index.html#torrent/{torrent[0]}");
|
||||
release.Guid = release.Details;
|
||||
|
||||
// Date of torrent creation
|
||||
release.PublishDate = DateTimeUtil.UnixTimestampToDateTime((long)torrent[2]);
|
||||
|
||||
// Download link
|
||||
release.Link = new Uri($"{SiteLink}torrent/download/{torrent[0]}");
|
||||
|
||||
// Various data - size, seeders, leechers, download count
|
||||
release.Size = ReleaseInfo.GetBytes(torrent[9].ToString());
|
||||
release.Seeders = ParseUtil.CoerceInt(torrent[4].ToString());
|
||||
release.Peers = ParseUtil.CoerceInt(torrent[5].ToString()) + release.Seeders;
|
||||
|
||||
// Poster
|
||||
release.Poster = new Uri($"{SiteLink}{torrent[11]}");
|
||||
|
||||
// // Set download/upload factor
|
||||
release.DownloadVolumeFactor = 1; //No way to determine if torrent is freeleech from single request.
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
return release;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(string.Format("{0}: Error while parsing torrent '{1}':\n\n{2}", Id, torrent, ex));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -51,10 +51,6 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
MusicSearchParam.Q
|
||||
},
|
||||
BookSearchParams = new List<BookSearchParam>
|
||||
{
|
||||
BookSearchParam.Q
|
||||
},
|
||||
TvSearchImdbAvailable = true
|
||||
},
|
||||
configService: configService,
|
||||
@@ -92,7 +88,6 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(28, TorznabCatType.PCGames, "Games/PC RIP");
|
||||
AddCategoryMapping(32, TorznabCatType.ConsoleXBox360, "Games/XBOX-360");
|
||||
AddCategoryMapping(33, TorznabCatType.PCISO, "Software/PC ISO");
|
||||
AddCategoryMapping(35, TorznabCatType.BooksEBook, "e-Books");
|
||||
AddCategoryMapping(40, TorznabCatType.ConsolePS3, "Games/PS3");
|
||||
AddCategoryMapping(41, TorznabCatType.TVHD, "TV HD Episodes");
|
||||
AddCategoryMapping(42, TorznabCatType.MoviesBluRay, "Movies/Full BD");
|
||||
|
@@ -75,7 +75,7 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(24, TorznabCatType.MoviesSD, "Movies GER/SD");
|
||||
AddCategoryMapping(18, TorznabCatType.MoviesHD, "Movies GER/720p");
|
||||
AddCategoryMapping(17, TorznabCatType.MoviesHD, "Movies GER/1080p");
|
||||
AddCategoryMapping(20, TorznabCatType.MoviesHD, "Movies GER/2160p");
|
||||
AddCategoryMapping(20, TorznabCatType.MoviesUHD, "Movies GER/2160p");
|
||||
AddCategoryMapping(45, TorznabCatType.MoviesOther, "Movies GER/Remux");
|
||||
AddCategoryMapping(19, TorznabCatType.MoviesBluRay, "Movies GER/BluRay");
|
||||
AddCategoryMapping(34, TorznabCatType.TVAnime, "Movies GER/Anime");
|
||||
@@ -84,7 +84,7 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping(22, TorznabCatType.MoviesSD, "Movies ENG/SD");
|
||||
AddCategoryMapping(35, TorznabCatType.MoviesHD, "Movies ENG/720p");
|
||||
AddCategoryMapping(43, TorznabCatType.MoviesHD, "Movies ENG/1080p");
|
||||
AddCategoryMapping(37, TorznabCatType.MoviesHD, "Movies ENG/2160p");
|
||||
AddCategoryMapping(48, TorznabCatType.MoviesUHD, "Movies ENG/2160p");
|
||||
AddCategoryMapping(46, TorznabCatType.MoviesOther, "Movies ENG/Remux");
|
||||
AddCategoryMapping(38, TorznabCatType.MoviesBluRay, "Movies ENG/BluRay");
|
||||
AddCategoryMapping(39, TorznabCatType.TVAnime, "Movies ENG/Anime");
|
||||
@@ -190,7 +190,7 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
|
||||
var searchUrl = "browse";
|
||||
var searchUrl = APIUrl + "browse";
|
||||
var searchString = query.GetQueryString();
|
||||
var queryCollection = new NameValueCollection
|
||||
{
|
||||
@@ -204,15 +204,19 @@ namespace Jackett.Common.Indexers
|
||||
queryCollection.Add("search", searchString);
|
||||
|
||||
var cats = MapTorznabCapsToTrackers(query);
|
||||
if (cats.Count > 0)
|
||||
queryCollection.Add("cats", string.Join(",", cats));
|
||||
if (cats.Count == 0)
|
||||
cats = GetAllTrackerCategories();
|
||||
queryCollection.Add("cats", string.Join(",", cats));
|
||||
|
||||
searchUrl += "?" + queryCollection.GetQueryString();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(passkey))
|
||||
await ApplyConfiguration(null);
|
||||
|
||||
var result = await SendAPIRequest(searchUrl, null);
|
||||
var results = await RequestWithCookiesAndRetryAsync(searchUrl, referer: SiteLink, headers: APIHeaders);
|
||||
if (!results.ContentString.StartsWith("{")) // not JSON => error
|
||||
throw new ExceptionWithConfigData(results.ContentString, configData);
|
||||
var result = JsonConvert.DeserializeObject<dynamic>(results.ContentString);
|
||||
try
|
||||
{
|
||||
if (result["error"] != null)
|
||||
|
@@ -10,24 +10,24 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AngleSharp" Version="0.14.0" />
|
||||
<PackageReference Include="Autofac" Version="5.2.0" />
|
||||
<PackageReference Include="AutoMapper" Version="8.1.1" />
|
||||
<PackageReference Include="BencodeNET" Version="3.1.4" />
|
||||
<PackageReference Include="FlareSolverrSharp" Version="2.0.0" />
|
||||
<PackageReference Include="AngleSharp" Version="0.16.1" />
|
||||
<PackageReference Include="Autofac" Version="6.3.0" />
|
||||
<PackageReference Include="AutoMapper" Version="10.1.1" />
|
||||
<PackageReference Include="BencodeNET" Version="4.0.0" />
|
||||
<PackageReference Include="FlareSolverrSharp" Version="2.1.0" />
|
||||
<PackageReference Include="CommandLineParser" Version="2.8.0" />
|
||||
<PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="MimeMapping" Version="1.0.1.30" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="NLog" Version="4.7.5" />
|
||||
<PackageReference Include="polly" Version="7.2.1" />
|
||||
<PackageReference Include="SharpZipLib" Version="1.2.0" />
|
||||
<PackageReference Include="MimeMapping" Version="1.0.1.37" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="NLog" Version="4.7.12" />
|
||||
<PackageReference Include="polly" Version="7.2.2" />
|
||||
<PackageReference Include="SharpZipLib" Version="1.3.3" />
|
||||
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
|
||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="5.0.0" />
|
||||
<PackageReference Include="YamlDotNet" Version="8.1.2" />
|
||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />
|
||||
<PackageReference Include="YamlDotNet" Version="11.2.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -38,9 +38,6 @@ namespace Jackett.Common.Models.Config
|
||||
[Option('p', "Port", HelpText = "Web server port")]
|
||||
public int Port { get; set; }
|
||||
|
||||
[Option('m', "MigrateSettings", HelpText = "Migrate settings manually (Must be admin on Windows)")]
|
||||
public bool MigrateSettings { get; set; }
|
||||
|
||||
[Option('n', "IgnoreSslErrors", HelpText = "[true/false] Ignores invalid SSL certificates")]
|
||||
public bool? IgnoreSslErrors { get; set; }
|
||||
|
||||
|
@@ -3,11 +3,11 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using AutoMapper;
|
||||
using Jackett.Common.Indexers;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.Config;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Services
|
||||
@@ -129,7 +129,7 @@ namespace Jackett.Common.Services
|
||||
{
|
||||
foreach (var release in query.Results)
|
||||
{
|
||||
var item = Mapper.Map<TrackerCacheResult>(release);
|
||||
var item = MapperUtil.Mapper.Map<TrackerCacheResult>(release);
|
||||
item.FirstSeen = query.Created;
|
||||
item.Tracker = trackerCache.TrackerName;
|
||||
item.TrackerId = trackerCache.TrackerId;
|
||||
|
@@ -69,7 +69,7 @@ namespace Jackett.Common.Services
|
||||
{
|
||||
try
|
||||
{
|
||||
processService.StartProcessAndLog(EnvironmentUtil.JackettExecutablePath(), "--MigrateSettings", true);
|
||||
processService.StartProcessAndLog(EnvironmentUtil.JackettExecutablePath(), "", true);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@@ -2,7 +2,7 @@ using System.Net.Http;
|
||||
|
||||
namespace Jackett.Common.Services.Interfaces
|
||||
{
|
||||
public interface ISecuityService
|
||||
public interface ISecurityService
|
||||
{
|
||||
bool CheckAuthorised(HttpRequestMessage request);
|
||||
string HashPassword(string input);
|
@@ -155,8 +155,9 @@ namespace Jackett.Common.Services
|
||||
}
|
||||
|
||||
private string GetUpdaterPath(string tempDirectory) =>
|
||||
variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreLinuxAmdx64 ||
|
||||
variant == Variants.JackettVariant.CoreLinuxArm32 || variant == Variants.JackettVariant.CoreLinuxArm64
|
||||
variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64 ||
|
||||
variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32 ||
|
||||
variant == Variants.JackettVariant.CoreLinuxArm64
|
||||
? Path.Combine(tempDirectory, "Jackett", "JackettUpdater")
|
||||
: Path.Combine(tempDirectory, "Jackett", "JackettUpdater.exe");
|
||||
|
||||
@@ -252,15 +253,15 @@ namespace Jackett.Common.Services
|
||||
Stream inStream = File.OpenRead(gzPath);
|
||||
Stream gzipStream = new GZipInputStream(inStream);
|
||||
|
||||
var tarArchive = TarArchive.CreateInputTarArchive(gzipStream);
|
||||
var tarArchive = TarArchive.CreateInputTarArchive(gzipStream, null);
|
||||
tarArchive.ExtractContents(tempDir);
|
||||
tarArchive.Close();
|
||||
gzipStream.Close();
|
||||
inStream.Close();
|
||||
|
||||
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreLinuxAmdx64
|
||||
|| variant == Variants.JackettVariant.CoreLinuxArm32 || variant == Variants.JackettVariant.CoreLinuxArm64
|
||||
|| variant == Variants.JackettVariant.Mono)
|
||||
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64
|
||||
|| variant == Variants.JackettVariant.CoreLinuxAmdx64 || variant == Variants.JackettVariant.CoreLinuxArm32
|
||||
|| variant == Variants.JackettVariant.CoreLinuxArm64 || variant == Variants.JackettVariant.Mono)
|
||||
{
|
||||
//Calling the file permission service to limit usage to netcoreapp. The Mono.Posix.NETStandard library causes issues outside of .NET Core
|
||||
//https://github.com/xamarin/XamarinComponents/issues/282
|
||||
@@ -273,7 +274,7 @@ namespace Jackett.Common.Services
|
||||
var jackettUpdaterPath = tempDir + "/Jackett/JackettUpdater";
|
||||
filePermissionService.MakeFileExecutable(jackettUpdaterPath);
|
||||
|
||||
if (variant == Variants.JackettVariant.CoreMacOs)
|
||||
if (variant == Variants.JackettVariant.CoreMacOs || variant == Variants.JackettVariant.CoreMacOsArm64)
|
||||
{
|
||||
filePermissionService.MakeFileExecutable(tempDir + "/Jackett/install_service_macos");
|
||||
filePermissionService.MakeFileExecutable(tempDir + "/Jackett/uninstall_jackett_macos");
|
||||
|
26
src/Jackett.Common/Utils/MapperUtil.cs
Normal file
26
src/Jackett.Common/Utils/MapperUtil.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System.Linq;
|
||||
using AutoMapper;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
|
||||
namespace Jackett.Common.Utils
|
||||
{
|
||||
public static class MapperUtil
|
||||
{
|
||||
public static Mapper Mapper = new Mapper(
|
||||
new MapperConfiguration(
|
||||
cfg =>
|
||||
{
|
||||
cfg.CreateMap<WebResult, WebResult>();
|
||||
|
||||
cfg.CreateMap<ReleaseInfo, ReleaseInfo>();
|
||||
|
||||
cfg.CreateMap<ReleaseInfo, TrackerCacheResult>().AfterMap((r, t) =>
|
||||
{
|
||||
t.CategoryDesc = r.Category != null
|
||||
? string.Join(", ", r.Category.Select(x => TorznabCatType.GetCatDesc(x)).Where(x => !string.IsNullOrEmpty(x)))
|
||||
: "";
|
||||
});
|
||||
}));
|
||||
}
|
||||
}
|
@@ -12,6 +12,7 @@ namespace Jackett.Common.Utils
|
||||
Mono,
|
||||
CoreWindows,
|
||||
CoreMacOs,
|
||||
CoreMacOsArm64,
|
||||
CoreLinuxAmdx64,
|
||||
CoreLinuxArm32,
|
||||
CoreLinuxArm64
|
||||
@@ -22,44 +23,25 @@ namespace Jackett.Common.Utils
|
||||
if (DotNetCoreUtil.IsRunningOnDotNetCore)
|
||||
{
|
||||
//Dot Net Core
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
return JackettVariant.CoreWindows;
|
||||
}
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && RuntimeInformation.ProcessArchitecture == Architecture.X64)
|
||||
return JackettVariant.CoreMacOs;
|
||||
}
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||
return JackettVariant.CoreMacOsArm64;
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.X64)
|
||||
{
|
||||
return JackettVariant.CoreLinuxAmdx64;
|
||||
}
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm)
|
||||
{
|
||||
return JackettVariant.CoreLinuxArm32;
|
||||
}
|
||||
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
|
||||
{
|
||||
return JackettVariant.CoreLinuxArm64;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Full framework
|
||||
|
||||
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
|
||||
{
|
||||
return JackettVariant.FullFrameworkWindows;
|
||||
}
|
||||
else
|
||||
{
|
||||
return JackettVariant.Mono;
|
||||
}
|
||||
return JackettVariant.Mono;
|
||||
}
|
||||
|
||||
return JackettVariant.NotFound;
|
||||
@@ -70,51 +52,31 @@ namespace Jackett.Common.Utils
|
||||
switch (variant)
|
||||
{
|
||||
case JackettVariant.FullFrameworkWindows:
|
||||
{
|
||||
return "Jackett.Binaries.Windows.zip";
|
||||
}
|
||||
return "Jackett.Binaries.Windows.zip";
|
||||
case JackettVariant.Mono:
|
||||
{
|
||||
return "Jackett.Binaries.Mono.tar.gz";
|
||||
}
|
||||
return "Jackett.Binaries.Mono.tar.gz";
|
||||
case JackettVariant.CoreWindows:
|
||||
{
|
||||
return "Jackett.Binaries.Windows.zip";
|
||||
}
|
||||
return "Jackett.Binaries.Windows.zip";
|
||||
case JackettVariant.CoreMacOs:
|
||||
{
|
||||
return "Jackett.Binaries.macOS.tar.gz";
|
||||
}
|
||||
return "Jackett.Binaries.macOS.tar.gz";
|
||||
case JackettVariant.CoreMacOsArm64:
|
||||
return "Jackett.Binaries.macOSARM64.tar.gz";
|
||||
case JackettVariant.CoreLinuxAmdx64:
|
||||
{
|
||||
return "Jackett.Binaries.LinuxAMDx64.tar.gz";
|
||||
}
|
||||
return "Jackett.Binaries.LinuxAMDx64.tar.gz";
|
||||
case JackettVariant.CoreLinuxArm32:
|
||||
{
|
||||
return "Jackett.Binaries.LinuxARM32.tar.gz";
|
||||
}
|
||||
return "Jackett.Binaries.LinuxARM32.tar.gz";
|
||||
case JackettVariant.CoreLinuxArm64:
|
||||
{
|
||||
return "Jackett.Binaries.LinuxARM64.tar.gz";
|
||||
}
|
||||
return "Jackett.Binaries.LinuxARM64.tar.gz";
|
||||
default:
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsNonWindowsDotNetCoreVariant(JackettVariant variant)
|
||||
{
|
||||
if (variant == JackettVariant.CoreMacOs || variant == JackettVariant.CoreLinuxAmdx64
|
||||
|| variant == JackettVariant.CoreLinuxArm32 || variant == JackettVariant.CoreLinuxArm64)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return (variant == JackettVariant.CoreMacOs || variant == JackettVariant.CoreMacOsArm64
|
||||
|| variant == JackettVariant.CoreLinuxAmdx64 || variant == JackettVariant.CoreLinuxArm32
|
||||
|| variant == JackettVariant.CoreLinuxArm64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFrameworks>net6.0;net461</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<NoWarn />
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
@@ -9,11 +9,11 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.7" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.7" />
|
||||
<PackageReference Include="Selenium.Chrome.WebDriver" Version="85.0.0" />
|
||||
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
|
||||
<PackageReference Include="Selenium.WebDriver" Version="4.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@@ -279,7 +279,7 @@ namespace Jackett.Server.Controllers
|
||||
|
||||
return searchResults.Select(result =>
|
||||
{
|
||||
var item = AutoMapper.Mapper.Map<TrackerCacheResult>(result);
|
||||
var item = MapperUtil.Mapper.Map<TrackerCacheResult>(result);
|
||||
item.Tracker = indexer.DisplayName;
|
||||
item.TrackerId = indexer.Id;
|
||||
item.Peers = item.Peers - item.Seeders; // Use peers as leechers
|
||||
@@ -411,7 +411,7 @@ namespace Jackett.Server.Controllers
|
||||
Link = new Uri(CurrentIndexer.SiteLink)
|
||||
});
|
||||
|
||||
var proxiedReleases = result.Releases.Select(r => AutoMapper.Mapper.Map<ReleaseInfo>(r)).Select(r =>
|
||||
var proxiedReleases = result.Releases.Select(r => MapperUtil.Mapper.Map<ReleaseInfo>(r)).Select(r =>
|
||||
{
|
||||
r.Link = serverService.ConvertToProxyLink(r.Link, serverUrl, r.Origin.Id, "dl", r.Title);
|
||||
return r;
|
||||
@@ -496,7 +496,7 @@ namespace Jackett.Server.Controllers
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
var potatoReleases = result.Releases.Where(r => r.Link != null || r.MagnetUri != null).Select(r =>
|
||||
{
|
||||
var release = AutoMapper.Mapper.Map<ReleaseInfo>(r);
|
||||
var release = MapperUtil.Mapper.Map<ReleaseInfo>(r);
|
||||
release.Link = serverService.ConvertToProxyLink(release.Link, serverUrl, CurrentIndexer.Id, "dl", release.Title);
|
||||
// IMPORTANT: We can't use Uri.ToString(), because it generates URLs without URL encode (links with unicode
|
||||
// characters are broken). We must use Uri.AbsoluteUri instead that handles encoding correctly
|
||||
|
@@ -21,14 +21,14 @@ namespace Jackett.Server.Controllers
|
||||
private readonly IServerService serverService;
|
||||
private readonly IProcessService processService;
|
||||
private readonly IIndexerManagerService indexerService;
|
||||
private readonly ISecuityService securityService;
|
||||
private readonly ISecurityService securityService;
|
||||
private readonly ICacheService cacheService;
|
||||
private readonly IUpdateService updater;
|
||||
private readonly ILogCacheService logCache;
|
||||
private readonly Logger logger;
|
||||
|
||||
public ServerConfigurationController(IConfigurationService c, IServerService s, IProcessService p,
|
||||
IIndexerManagerService i, ISecuityService ss, ICacheService cs, IUpdateService u, ILogCacheService lc,
|
||||
IIndexerManagerService i, ISecurityService ss, ICacheService cs, IUpdateService u, ILogCacheService lc,
|
||||
Logger l, ServerConfig sc)
|
||||
{
|
||||
configService = c;
|
||||
|
@@ -19,10 +19,10 @@ namespace Jackett.Server.Controllers
|
||||
{
|
||||
private readonly IConfigurationService config;
|
||||
private readonly ServerConfig serverConfig;
|
||||
private readonly ISecuityService securityService;
|
||||
private readonly ISecurityService securityService;
|
||||
private readonly Logger logger;
|
||||
|
||||
public WebUIController(IConfigurationService config, ISecuityService ss, ServerConfig s, Logger l)
|
||||
public WebUIController(IConfigurationService config, ISecurityService ss, ServerConfig s, Logger l)
|
||||
{
|
||||
this.config = config;
|
||||
serverConfig = s;
|
||||
|
@@ -1,11 +1,6 @@
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Autofac;
|
||||
using AutoMapper;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.Config;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using NLog;
|
||||
#if !NET461
|
||||
@@ -17,7 +12,6 @@ namespace Jackett.Server
|
||||
public static class Helper
|
||||
{
|
||||
public static IContainer ApplicationContainer { get; set; }
|
||||
private static bool _automapperInitialised = false;
|
||||
|
||||
#if NET461
|
||||
public static IApplicationLifetime applicationLifetime;
|
||||
@@ -27,14 +21,6 @@ namespace Jackett.Server
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
if (_automapperInitialised == false)
|
||||
{
|
||||
//Automapper only likes being initialized once per app domain.
|
||||
//Since we can restart Jackett from the command line it's possible that we'll build the container more than once. (tests do this too)
|
||||
InitAutomapper();
|
||||
_automapperInitialised = true;
|
||||
}
|
||||
|
||||
//Load the indexers
|
||||
ServerService.Initalize();
|
||||
|
||||
@@ -67,31 +53,6 @@ namespace Jackett.Server
|
||||
|
||||
public static Logger Logger => ApplicationContainer.Resolve<Logger>();
|
||||
|
||||
private static void InitAutomapper()
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
// TODO: fix deprecation warning (remove #pragma to see the build warning)
|
||||
Mapper.Initialize(cfg =>
|
||||
{
|
||||
cfg.CreateMap<WebResult, WebResult>();
|
||||
|
||||
cfg.CreateMap<ReleaseInfo, ReleaseInfo>();
|
||||
|
||||
cfg.CreateMap<ReleaseInfo, TrackerCacheResult>().AfterMap((r, t) =>
|
||||
{
|
||||
if (r.Category != null)
|
||||
{
|
||||
t.CategoryDesc = string.Join(", ", r.Category.Select(x => TorznabCatType.GetCatDesc(x)).Where(x => !string.IsNullOrEmpty(x)));
|
||||
}
|
||||
else
|
||||
{
|
||||
t.CategoryDesc = "";
|
||||
}
|
||||
});
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
|
||||
public static void SetupLogging(ContainerBuilder builder) =>
|
||||
builder?.RegisterInstance(LogManager.GetCurrentClassLogger()).SingleInstance();
|
||||
|
||||
|
@@ -1,19 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net5.0;net461</TargetFrameworks>
|
||||
<TargetFrameworks>net6.0;net461</TargetFrameworks>
|
||||
<ApplicationIcon>jackett.ico</ApplicationIcon>
|
||||
<OutputType>Exe</OutputType>
|
||||
<NoWarn></NoWarn>
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net5.0|AnyCPU'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net5.0|AnyCPU'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|AnyCPU'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
</PropertyGroup>
|
||||
@@ -31,12 +31,12 @@
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
|
||||
<!-- Conditionally obtain references for the .NET 5.0 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net5.0' ">
|
||||
<!-- Conditionally obtain references for the .NET 6.0 target -->
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
|
||||
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="5.0.0" />
|
||||
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
|
||||
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Conditionally obtain references for the .NET461 target -->
|
||||
@@ -53,14 +53,14 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Autofac" Version="5.2.0" />
|
||||
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
|
||||
<PackageReference Include="AutoMapper" Version="8.1.1" />
|
||||
<PackageReference Include="Autofac" Version="6.3.0" />
|
||||
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.2.0" />
|
||||
<PackageReference Include="AutoMapper" Version="10.1.1" />
|
||||
<PackageReference Include="CommandLineParser" Version="2.8.0" />
|
||||
<PackageReference Include="NLog" Version="4.7.5" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
|
||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="5.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="5.0.0" />
|
||||
<PackageReference Include="NLog" Version="4.7.12" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
|
||||
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -7,12 +7,12 @@ using Jackett.Common.Services.Interfaces;
|
||||
|
||||
namespace Jackett.Server.Services
|
||||
{
|
||||
internal class SecuityService : ISecuityService
|
||||
internal class SecurityService : ISecurityService
|
||||
{
|
||||
private const string COOKIENAME = "JACKETT";
|
||||
private readonly ServerConfig _serverConfig;
|
||||
|
||||
public SecuityService(ServerConfig sc) => _serverConfig = sc;
|
||||
public SecurityService(ServerConfig sc) => _serverConfig = sc;
|
||||
|
||||
public string HashPassword(string input)
|
||||
{
|
||||
@@ -25,10 +25,12 @@ namespace Jackett.Server.Services
|
||||
byte[] hashValue;
|
||||
var message = UE.GetBytes(input);
|
||||
|
||||
#pragma warning disable SYSLIB0021
|
||||
var hashString = new SHA512Managed();
|
||||
var hex = "";
|
||||
#pragma warning restore SYSLIB0021
|
||||
|
||||
hashValue = hashString.ComputeHash(message);
|
||||
var hex = "";
|
||||
foreach (var x in hashValue)
|
||||
{
|
||||
hex += string.Format("{0:x2}", x);
|
@@ -107,7 +107,8 @@ namespace Jackett.Server.Services
|
||||
{
|
||||
var dockerMsg = "No";
|
||||
const string cgroupFile = "/proc/1/cgroup";
|
||||
if (File.Exists(cgroupFile) && File.ReadAllText(cgroupFile).Contains("/docker/"))
|
||||
if ((File.Exists(cgroupFile) && File.ReadAllText(cgroupFile).Contains("/docker/"))
|
||||
|| File.Exists("/.dockerenv"))
|
||||
{
|
||||
// this file is created in the Docker image build
|
||||
// https://github.com/linuxserver/docker-jackett/pull/105
|
||||
|
@@ -85,7 +85,7 @@ namespace Jackett.Server
|
||||
|
||||
builder.Populate(services);
|
||||
builder.RegisterModule(new JackettModule(runtimeSettings));
|
||||
builder.RegisterType<SecuityService>().As<ISecuityService>().SingleInstance();
|
||||
builder.RegisterType<SecurityService>().As<ISecurityService>().SingleInstance();
|
||||
builder.RegisterType<ServerService>().As<IServerService>().SingleInstance();
|
||||
builder.RegisterType<ProtectionService>().As<IProtectionService>().SingleInstance();
|
||||
builder.RegisterType<CacheService>().As<ICacheService>().SingleInstance();
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user