Compare commits

...

122 Commits

Author SHA1 Message Date
ilike2burnthing
f2c9c616f0 bitbazis: update row selector 2021-12-05 06:32:47 +00:00
ilike2burnthing
51ce6a23b7 torrentqq: change domain *119.com 2021-12-05 05:28:20 +00:00
ilike2burnthing
441c1c6305 skipthecommercials: update category description (#12641) 2021-12-05 04:14:21 +00:00
Webster
a469179f7e beyondhdapi: use smarter search string. resolves #12631 (#12640) 2021-12-04 21:13:01 +00:00
bakerboy448
da5c93930e ilcorsaroverde: fix season search for sonarr (#12613)
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
2021-12-04 21:07:38 +00:00
ilike2burnthing
5431d72db5 oxtorrent: update magnet selector. resolves #12638 2021-12-04 18:25:21 +00:00
ilike2burnthing
aecc9f75d5 filebase: removed, down for 30 days. resolves #6669 (#12625) 2021-12-01 20:37:06 +00:00
ilike2burnthing
ce795166a6 01torrent: removed, down for 30 days. resolves #8600 (#12624) 2021-12-01 20:32:28 +00:00
Garfield69
e8d6fd58bb extremetorrents: fix download. resolves #12617
refresh cats
update tv-search
2021-12-01 20:28:26 +13:00
ilike2burnthing
b51a7ebc72 desireleasers: removed, down for 30 days. resolves #10566 (#12615) 2021-11-29 23:41:24 +00:00
Garfield69
ae6294efcd add alleenrretail a Dutch private site. resolves #12557 2021-11-29 20:36:04 +13:00
Garfield69
19948b34ed slosoul: add external detection
and replace http with https
2021-11-29 17:35:19 +13:00
Garfield69
2f26e55721 Revert "slosoul: upgrade for TSUE 2.2 #12435"
This reverts commit ce75ba4a92.
2021-11-29 17:19:58 +13:00
Garfield69
812f35fb65 Revert "slosoul: lint #12435"
This reverts commit bdaa180eb8.
2021-11-29 17:19:51 +13:00
Garfield69
5c1515f433 Revert "slosoul: resolves #12435"
This reverts commit e6533be431.
2021-11-29 17:19:24 +13:00
Garfield69
a7f19b2336 movietorrent: add new cat 2021-11-29 09:16:16 +13:00
Garfield69
2f0db09826 Update README.md 2021-11-28 12:46:11 +13:00
ilike2burnthing
99d2e3931f megamixtracker: add unknown category 2021-11-27 22:26:55 +00:00
ilike2burnthing
e56c4ab103 docspedia: update cats 2021-11-27 22:12:16 +00:00
Garfield69
7c36fdbf8f torrentz2eu: new domain torrentz2.club 2021-11-27 20:40:22 +13:00
Garfield69
79553c08f6 assorted: bump domains 2021-11-27 20:39:51 +13:00
Garfield69
3c27ed82cf glodls: www.* not found. 2021-11-27 20:30:51 +13:00
ilike2burnthing
ccfe3c41c4 oasis: removed, dead pt2 2021-11-26 08:04:09 +00:00
ilike2burnthing
747920f501 oasis: removed, dead. resolves #11483 (#12606) 2021-11-26 07:38:18 +00:00
Garfield69
e2dd35a2c4 ebookparadijs: add new cat 2021-11-25 18:09:30 +13:00
Garfield69
d15560099b ebookparadijs: new cat 2021-11-24 19:17:28 +13:00
Garfield69
b664abdab6 dragonworldreloaded: new cat 2021-11-24 19:17:05 +13:00
Garfield69
856e6d0954 torrentparadise: switch to top100/24h instead of recent. resolves #6385 2021-11-24 16:26:23 +13:00
garfield69
b72d4f3ab2 Torrentnetwork: switch to http.GET for api query (#12599) resolves #12590
default to all cats when none specified in request
and update some categories, add UHD and replace one incorrect catid
switch to using http.GET instead of http.POST for query
2021-11-24 07:14:10 +13:00
ilike2burnthing
04ddc20d2a bit-titan: limit=1 pt2 2021-11-22 02:01:20 +00:00
ilike2burnthing
33523003d2 remove codeql 2021-11-22 01:56:11 +00:00
Garfield69
7133c99dde skipthecommercials: add new cat 2021-11-22 09:45:51 +13:00
Garfield69
c7a5041294 torrent-explosiv: add new cat
also refresh sport cat descriptions and detection
2021-11-22 09:37:06 +13:00
Garfield69
f355ef26b6 bit-titan: limit=1 2021-11-22 09:11:38 +13:00
Garfield69
ee59fc0c5c girotorrents: add new cat
also refresh some cat descriptions
2021-11-22 08:25:27 +13:00
ilike2burnthing
1df4ec64f5 revert c6fc22dde3 2021-11-21 11:34:04 +00:00
ilike2burnthing
c6fc22dde3 codeql update
basically just a test
2021-11-21 11:29:36 +00:00
ilike2burnthing
f7f35c6458 add CodeQL action - security vulnerabilities check 2021-11-21 11:12:51 +00:00
Garfield69
e6533be431 slosoul: resolves #12435
the rest of the outstanding details will just have to be dealt with if and when they become relevant.
2021-11-21 19:07:51 +13:00
ilike2burnthing
b6b37e2378 coastalcrew: update category description 2021-11-20 05:36:43 +00:00
Garfield69
2ec26ac987 torrentqq: bump domain
and drop some old leagacylinks
2021-11-20 08:43:54 +13:00
Garfield69
e305d5828d remove nforce resolves #12523 2021-11-19 20:02:14 +13:00
Garfield69
7e00f22bf9 torrentz2eu: followredirect 2021-11-19 17:47:24 +13:00
Garfield69
1541d112e0 bit-titan: stop yml delete from #10281 fixes #12329 2021-11-19 06:06:39 +13:00
Garfield69
d0e3b30a27 datascene: MST 3 days 2021-11-18 20:24:30 +13:00
Garfield69
209b9392de sktorrent-org: new cat 2021-11-18 20:13:39 +13:00
Garfield69
215dc12f4d torrentmax: new search path 2021-11-18 20:02:02 +13:00
Garfield69
e124029bda torrentz2eu: back to *.me WTF?!? 2021-11-18 19:41:34 +13:00
Garfield69
5cddc0576a oxtorrent: new domain *.vc 2021-11-18 19:38:41 +13:00
Garfield69
ad06a669a6 underverse: add new cat 2021-11-18 19:30:00 +13:00
Garfield69
bced4b14f9 gaytorrentsru: update download
some users are restricted in the number of downloads they are allowed  per day.
when a dl for a torrent is tried the first time, an intermediate page is presented with the available dl slots and a query to continue.
subsequent DL for the same torrent does not get the intermediate page.
This patch bypasses the query, but if users exceed their daily slots the download will fail, as it should.
2021-11-18 17:52:48 +13:00
Diego Heras
30b30e8861 tests: Add basic test for Cardigann HTML (#12581) 2021-11-17 23:04:58 +01:00
ilike2burnthing
cf1db13b8d datascene: update dlvf and ulvf cases 2021-11-17 20:59:01 +00:00
Garfield69
a0a922a390 Update azure-pipelines.yml 2021-11-18 08:40:50 +13:00
Diego Heras
987c68260b core: Build macOS ARM64 binaries. Resolves #12372 (#12569) 2021-11-18 08:22:18 +13:00
Diego Heras
607c3f6b0b ci/cd: Fix warnings in Azure Pipelines (#12579) 2021-11-17 19:45:06 +01:00
ilike2burnthing
b71d856695 remove unused migratesettings flag. resolves #12491 (#12500) 2021-11-17 18:16:49 +00:00
ilike2burnthing
dd9a4b075c datascene: update size, seeders, leechers, grabs & date selectors 2021-11-17 08:20:54 +00:00
ilike2burnthing
b7faddf39f renegade: add imdbid selector 2021-11-17 07:02:16 +00:00
ilike2burnthing
9bd5622921 cinemamovies: cat desc fix
5b6a855ed5 (commitcomment-60403420)
2021-11-17 05:43:12 +00:00
ilike2burnthing
5b6a855ed5 cinemamovies: update categories 2021-11-17 05:16:33 +00:00
ilike2burnthing
6ba887ef57 torrentsir: change domain *42.com 2021-11-17 05:10:32 +00:00
Diego Heras
03c9e3036c core: Update .Net 6.0 (#12562) 2021-11-17 18:06:27 +13:00
ilike2burnthing
f08db1adc2 assorted: unit3d api update (#12576) 2021-11-17 18:01:44 +13:00
bakerboy448
1f591f3c44 blutopia-api: Fix bad Input Names (#12574) 2021-11-17 17:30:50 +13:00
mjazbc
b7bfa2baad partis: Fix login check (#12573) resolves #12558 2021-11-17 15:47:48 +13:00
Diego Heras
2b1f138d6f Update AutoMapper dependency (#12568) 2021-11-16 19:17:10 +01:00
Garfield69
cc749530de Update README.md 2021-11-17 06:32:42 +13:00
Diego Heras
64a78c4965 Fix Docker detection (#12565) 2021-11-16 17:42:38 +01:00
Diego Heras
39403eb39c Update NUnit dependencies and remove ARM Unit Tests (#12564)
* Update NUnit dependencies

* remove unit test arm
2021-11-16 15:32:00 +01:00
Diego Heras
b492c24647 Fix typo in SecurityService (#12563) 2021-11-16 14:06:07 +01:00
Diego Heras
dd76673e12 Exclude JetBrains Rider configuration (#12561) 2021-11-16 13:32:00 +01:00
Garfield69
e289b81875 add leech24 a private site. resolves #12553 2021-11-16 20:03:35 +13:00
Garfield69
a25a8746d8 aidoruonline: drop duplicate test 2021-11-16 18:56:10 +13:00
Garfield69
9768f5881d torrentz2eu: back to *.org 2021-11-16 17:28:24 +13:00
Garfield69
bdbd406236 divxtotal: new domain *.nu 2021-11-16 17:18:00 +13:00
Garfield69
bdaa180eb8 slosoul: lint #12435
trailing spaces on a comment line ... seriously! F'ing lint, who wrote these rules !?!
2021-11-16 17:01:29 +13:00
Garfield69
ce75ba4a92 slosoul: upgrade for TSUE 2.2 #12435 2021-11-16 16:55:52 +13:00
Garfield69
9ba0e271fa Update README.md 2021-11-16 09:59:36 +13:00
mjazbc
b830cb135b [New Tracker] Fix Partis indexer to work with new website (#12554) resolves #1596 2021-11-16 09:55:03 +13:00
Garfield69
55a6166922 add the-devils-lounge a private site. resolves #12552 2021-11-16 09:01:10 +13:00
Garfield69
6c5c96e356 add putao a Chinese private site. resolves #12312 2021-11-15 19:41:50 +13:00
Garfield69
e07a231cb3 brsociety: new MR and MST 2021-11-15 14:27:39 +13:00
ilike2burnthing
1a9a78aeda renegade: switch to http, https connection refused 2021-11-15 00:50:03 +00:00
Garfield69
db5ee7d012 sexxi: prevent dropouts 2021-11-14 20:48:35 +13:00
Garfield69
6a6b943d83 torrentz2eu: new domain *.me 2021-11-14 19:37:45 +13:00
Garfield69
ff21baf468 pterclub: anchor can vary
the anchor is different depending on whether or not the are any comments, with 0 comments using a different link than that used for comments > 0
2021-11-14 17:56:51 +13:00
Garfield69
da7f0f1f1c underverse: add new cat 2021-11-14 17:01:22 +13:00
Garfield69
3261a3910c pixelcove: add new cat 2021-11-14 16:40:36 +13:00
Garfield69
632fea3bce torrent-explosiv: add new cats 2021-11-14 16:32:39 +13:00
Garfield69
861b710346 Merge branch 'master' of https://github.com/Jackett/Jackett 2021-11-14 13:51:54 +13:00
Garfield69
f018470d69 rarbg: drop cat 35 ebook #12550
as the rarbg torrent search page no longer list this.
also drop book-search as there are not books anylonger to find.
2021-11-14 13:51:50 +13:00
ilike2burnthing
be33903ca8 brokenstones: add 2FA option. resolves #12547 (#12549) 2021-11-13 23:23:58 +00:00
Garfield69
4c3a041f1d add byrbt a Chinese private site. resolves #12540 2021-11-14 10:21:29 +13:00
ilike2burnthing
08103e5854 assorted: bump domains (#12546) 2021-11-13 05:32:53 +00:00
ilike2burnthing
50cbfcb64e cinecalidad: change sitelink cinecalidad.website 2021-11-13 05:29:34 +00:00
ilike2burnthing
da6bbba151 newpct: change domain *.one 2021-11-13 05:27:41 +00:00
Garfield69
a02ad0b6e6 data-scene: add book-search #12545 2021-11-13 18:02:16 +13:00
ilike2burnthing
25b882a748 piratadigital: add new 3D category 2021-11-13 04:31:14 +00:00
ilike2burnthing
36e370adaf docspedia: add new categories 2021-11-13 04:29:26 +00:00
ilike2burnthing
d77e111804 datascene: add new ebook category (#12545) 2021-11-13 04:24:47 +00:00
ilike2burnthing
cc1758e788 torrentslocal: update invalid cert thumbprint 2021-11-13 03:50:07 +00:00
ilike2burnthing
6bc9a80cb1 hdcztorrent: add new category 2021-11-13 03:47:31 +00:00
ilike2burnthing
0a36300885 ilcorsaroverde: add new indexer. resolves #3189 (#12544)
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
2021-11-13 00:34:41 +00:00
ilike2burnthing
95a3b2b4c8 Update concen.yml 2021-11-12 23:31:54 +00:00
ilike2burnthing
259d98c140 mircrew: fix thank you selector for subsequent downloads 2021-11-12 22:48:34 +00:00
Garfield69
0a3b5d2fed cathoderaytube: update login resolves #12539 2021-11-13 06:56:39 +13:00
Loki
83c4731982 desitorrents: Minimumseedtime is now 7 days (#12542) 2021-11-13 06:28:15 +13:00
Garfield69
32880fcbd6 renegade: back to https 2021-11-11 21:03:00 +13:00
Garfield69
560333495f add megamixtracker a Hungarian private site. resolves #12524 2021-11-11 16:40:10 +13:00
Garfield69
f640f66e83 add nforce a private Hungarian site. resolves #12523 2021-11-11 06:51:27 +13:00
ilike2burnthing
30009cfe48 btnext: change to https. resolves #12535 2021-11-10 15:03:06 +00:00
Garfield69
6ee1b3f935 add bit-bázis a private Hungarian site. resolves #12522 2021-11-10 17:33:47 +13:00
ilike2burnthing
890071c418 limetorrentsclone: add new indexer. resolves #12532 (#12533) 2021-11-09 23:39:32 +00:00
Garfield69
6048d887f6 add white angel a private site. resolves #12521 2021-11-10 09:11:58 +13:00
seeyabye
a9feb22e6d orpheus: fixed downloading issue with token. resolves #12525 (#12530) 2021-11-09 16:07:34 +00:00
Garfield69
a0659f1ca6 add best-core a private site. resolves #12520 2021-11-09 20:50:15 +13:00
ilike2burnthing
d9199c74c8 readme: update Discord info. #12528 2021-11-08 22:52:25 +00:00
Garfield69
de3f6cf944 p2pbg: oops #12519 2021-11-09 08:25:11 +13:00
ilike2burnthing
fb0e9d664d elitetorrent-biz: update domain *.app 2021-11-08 19:16:13 +00:00
Garfield69
722391fda3 p2pbg: lint #12519 2021-11-09 07:34:43 +13:00
Garfield69
d7742b64bf p2pbg: dateparse #12519
refresh cat descriptions
count columns from bottom up because some rows don't have facebook/youtube
titles can be abbreviated, try alternate
2021-11-09 07:28:00 +13:00
111 changed files with 4053 additions and 1504 deletions

3
.gitignore vendored
View File

@@ -198,3 +198,6 @@ FakesAssemblies/
*.DS_Store
.idea/
launchSettings.json
# JetBrains Rider
/src/.run

137
README.md
View File

@@ -5,7 +5,8 @@
[![Build Status](https://dev.azure.com/Jackett/Jackett/_apis/build/status/Jackett.Jackett?branchName=master)](https://dev.azure.com/jackett/jackett/_build/latest?definitionId=1&branchName=master)
[![GitHub Releases](https://img.shields.io/github/downloads/Jackett/Jackett/total.svg?maxAge=60&style=flat-square)](https://github.com/Jackett/Jackett/releases/latest)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/jackett.svg?maxAge=60&style=flat-square)](https://hub.docker.com/r/linuxserver/jackett/)
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=flat-square)](https://discord.gg/J865QuA)
_Our [![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=flat-square)](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

View File

@@ -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" }
}
}

View File

@@ -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

View File

@@ -64,8 +64,6 @@ login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
test:
path: /
selector: a[href="account-logout.php"]

View File

@@ -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:

View 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

View File

@@ -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:

View 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

View File

@@ -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

View 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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View 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

View File

@@ -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:

View File

@@ -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"}

View File

@@ -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

View File

@@ -14,6 +14,9 @@ caps:
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
book-search: [q]
settings:
- name: sort

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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"}

View File

@@ -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

View File

@@ -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]

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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"}

View File

@@ -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:

View File

@@ -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"}

View 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

View 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

View File

@@ -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/

View 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

View 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&nbsp;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

View File

@@ -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="]

View File

@@ -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]

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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]

View File

@@ -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"}

View File

@@ -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

View 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

View File

@@ -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:

View File

@@ -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]

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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"}

View File

@@ -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

View File

@@ -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:

View 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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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:

View File

@@ -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 [оригинальные версии]"}

View File

@@ -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 [оригинальные версии]"}

View 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

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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)

View File

@@ -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";

View File

@@ -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 }

View File

@@ -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>

View File

@@ -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>

View File

@@ -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",

View 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;
}
}
}
}

View File

@@ -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");

View File

@@ -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)

View File

@@ -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>

View File

@@ -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; }

View File

@@ -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;

View File

@@ -69,7 +69,7 @@ namespace Jackett.Common.Services
{
try
{
processService.StartProcessAndLog(EnvironmentUtil.JackettExecutablePath(), "--MigrateSettings", true);
processService.StartProcessAndLog(EnvironmentUtil.JackettExecutablePath(), "", true);
}
catch
{

View File

@@ -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);

View File

@@ -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");

View 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)))
: "";
});
}));
}
}

View File

@@ -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);
}
}
}

View File

@@ -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>

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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>

View File

@@ -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);

View File

@@ -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

View File

@@ -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