Compare commits

...

130 Commits

Author SHA1 Message Date
ilike2burnthing
e090a0ade6 lechaudron: removed, down for 30 days. resolves #5559 (#11887) 2021-06-08 03:26:54 +01:00
ilike2burnthing
d952679313 assorted: update unblockit proxy domain to *.li (#11886) 2021-06-08 02:31:44 +01:00
Garfield69
3c920f528e carphunter: updates for cats and results. resolves #9494 2021-06-07 18:30:24 +12:00
Garfield69
91bfb1adaa lostfilm: more alternate sites #11879 2021-06-07 15:49:01 +12:00
Garfield69
c1322b07ca lostfilm: ignore certificate resolves #11879 2021-06-07 10:46:15 +12:00
Garfield69
8152587147 torrentseeds: handle no results for single torrent. resolves #11878 2021-06-07 06:49:22 +12:00
seeyabye
c5283113c5 orpheus: fixed api toggle (#11875) 2021-06-06 13:18:37 +12:00
Garfield69
1b2e772413 orpheus: oops has2fa true #5912 2021-06-06 12:40:32 +12:00
seeyabye
8d6c2d50c0 orpheus: added api token support (#11868) 2021-06-06 12:31:25 +12:00
ilike2burnthing
2a38d5f640 orpheus: add passkey to config. resolves #11728 (#11815) 2021-06-06 12:02:03 +12:00
ilike2burnthing
c29c63af18 hdhouse: update categories & category ids 2021-06-05 23:13:47 +01:00
ilike2burnthing
bd464beb7d fouducinema: update categories 2021-06-05 21:47:29 +01:00
ilike2burnthing
26100576ff underversel: add new category 2021-06-05 20:58:59 +01:00
ilike2burnthing
54bb45567e underverse: add new category. resolves #11872 2021-06-05 20:58:55 +01:00
ilike2burnthing
66001256f3 bwtorrents: update categories 2021-06-05 19:59:04 +01:00
Diego Heras
670cbfdf68 core: fix rss version 2.0 in rss and torznab responses (#11871) 2021-06-05 20:53:06 +02:00
ilike2burnthing
8f649dc9d2 thesceneplace: update categories 2021-06-05 19:43:12 +01:00
Javier Jiménez
f322c0ed94 newpct: adapt torrent download url for maxitorrent domain only (#11863)
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
2021-06-05 11:01:54 +01:00
Garfield69
a537018fcc mejortorrent: domain *.com -> *.net 2021-06-05 11:05:02 +12:00
Garfield69
ce258f712c torrentqq: domain *89* -> *90* 2021-06-05 10:54:07 +12:00
Garfield69
2903a292b4 byrutor: new domain byrutor.* -> byrut.* 2021-06-04 16:01:28 +12:00
Garfield69
596b46e61b torrent9clone: *.ninja -> *.pw 2021-06-04 15:41:53 +12:00
Garfield69
f47c216348 r4e: add new cat 2021-06-04 10:55:33 +12:00
Garfield69
f47f8a3407 rainbowtracker: seeders can be X. replace with 0 2021-06-04 10:42:16 +12:00
Garfield69
90c775f496 ilcorsaronero: add season,ep to tv-search #11471 2021-06-04 07:32:30 +12:00
Garfield69
3aee17d668 ilcorsaronero: drop no longer required keywordfilters #11471 2021-06-03 20:00:21 +12:00
ilike2burnthing
bb5ba9436d thefallingangels: anime movies use movies category 2021-06-01 23:54:07 +01:00
ilike2burnthing
73afb5cb95 jptv: anime movies use movies category 2021-06-01 23:54:04 +01:00
ilike2burnthing
be38259e9b crazyspirits: anime movies use movies category 2021-06-01 23:54:00 +01:00
ilike2burnthing
cd2c7a49b4 acgsou: anime movies use movies category 2021-06-01 23:53:56 +01:00
Pfuenzle
87dacdeae0 animeworld: update to new source (#11852)
Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
2021-06-01 23:53:45 +01:00
Garfield69
1f1f42cf59 rarbg: drop 3x category as the API does not support it. #11848
searching with all cats (including cat4) for a keyword that happens to match any 3x titles causes the API to return NOT-FOUND !!
2021-06-01 20:09:32 +12:00
Garfield69
3ad2dd8b47 extratorrents.it correct keywordless path 2021-06-01 19:07:20 +12:00
Garfield69
e86eda9ea3 partis: removed resolves #1596 2021-06-01 18:43:12 +12:00
Garfield69
e8f05ccf4a blutopia: upgrade for unit3d 5.3.0 2021-06-01 00:34:59 +12:00
Garfield69
816ba17902 shareisland: upgrade for unit3d 5.3.0 resolves #11847 2021-06-01 00:08:39 +12:00
Garfield69
e1c007b9cf tellytorrent: fix keyword search
fix 44b43e458e
2021-06-01 00:07:33 +12:00
Garfield69
ea917e3cef hdolimpo: E-AC-3 -> EAC3 #11844 2021-05-31 22:17:13 +12:00
Garfield69
5ca84bd064 ilcorsaroblu: *.online -> *.org resolves #11840 2021-05-31 08:04:07 +12:00
Diego Heras
c9f74ad4f9 trackeros: improve episode parsing and add poster. resolves #11720 (#11839) 2021-05-30 17:41:14 +02:00
Diego Heras
93ad748719 iptorrents: update categories. resolves #11751 (#11836) 2021-05-30 16:16:56 +02:00
JigSaw
7d0267fe61 xthor: fixed enhanced anime search string for api (#11834) 2021-05-30 13:08:43 +02:00
Garfield69
b626e6dbaa lemondhd: engine customised 2021-05-30 16:55:15 +12:00
ilike2burnthing
91c70c88ec lemonhd: update search and sort. resolves #11829 2021-05-30 05:42:39 +01:00
Garfield69
2ee6104c46 racingforme: handle size 1.000.96MB -> 1000.96MB 2021-05-30 15:38:17 +12:00
Garfield69
e7dcdf4001 crazyspirits: add new cats 2021-05-30 15:30:18 +12:00
Garfield69
1a40830123 crazyhd: refresh cats 2021-05-30 12:51:05 +12:00
Garfield69
577b8361e5 generationfree: refresh cats 2021-05-30 12:29:09 +12:00
Garfield69
4694f9fed7 netcosmo: add new cat 2021-05-30 12:19:37 +12:00
Garfield69
abbfeea7f0 pixelcove: add new cat 2021-05-30 12:13:43 +12:00
Garfield69
eba319c4d8 pwtorrents: add new cats 2021-05-30 12:00:30 +12:00
Garfield69
ee06a72ef2 rofd: add new cat 2021-05-30 11:52:53 +12:00
Garfield69
27e902025d turktorrent: add new cats 2021-05-30 11:48:38 +12:00
Garfield69
dbbfde938b lemonhd: row table removed. #11829 2021-05-30 07:47:51 +12:00
ilike2burnthing
da9a221c3d btdigg: add second onion link. resolves #11813 2021-05-29 10:09:53 +01:00
Garfield69
e15ce4de4a aither: 5.2.0 2021-05-29 18:34:50 +12:00
Garfield69
02ac98beaa tellytorrent: 5.2.0 (customised)
update engine eyecatcher to highlight this is not 5.2.0 standard
2021-05-29 18:24:06 +12:00
ilike2burnthing
de3c93d429 portugas: update title and details selector
also imdb and tmdb IDs are not available in results
2021-05-29 07:03:51 +01:00
ilike2burnthing
f74f1ab816 tellytorrents: remove redundant regexp 2021-05-29 06:50:52 +01:00
ilike2burnthing
44b43e458e tellytorrent: site update 2021-05-29 06:27:52 +01:00
ilike2burnthing
bae83f34f0 thesceneplace: ignore recommended results 2021-05-29 04:52:35 +01:00
Garfield69
1b3821c40a anime-free: category and size can be missing. 2021-05-29 15:52:00 +12:00
Garfield69
22d0bfa0b0 torrentqq: new domain *88.com -> *89.com 2021-05-29 15:29:46 +12:00
Garfield69
67da517e13 zetorrents: new domain www.* -> wvw.* 2021-05-29 15:29:16 +12:00
Garfield69
290456ea03 btetree: new layout. 2021-05-29 15:11:43 +12:00
Garfield69
9a974ccd5a torrent-turk: add EXXEN tv cat.
exxen is a Turkish digital platform
2021-05-29 04:43:24 +12:00
Garfield69
253164c7b9 bithumen, carpathians: set dlvf=0 resolves #11818 2021-05-28 07:36:57 +12:00
Garfield69
114e4d86a2 newpct: drop maxitorrent resolves #11817
their download link is no longer compatible with the other sites for this indexer.
2021-05-27 22:02:24 +12:00
ilike2burnthing
0549daaa36 btdigg: change keywordless search to current year 2021-05-26 23:50:03 +01:00
Dmitry Chepurovskiy
0c2c2c1ef8 Rewrite shizaproject indexer to use graphql api without graphql client (#11715) 2021-05-27 00:05:46 +02:00
mazmar
1079b99e8f hdcztorrent: prevent duplicates on the dark theme (#11800) 2021-05-26 08:45:00 +12:00
ilike2burnthing
ed9c2e60bc torrentproject: removed, down for 30 days. resolves #10239 (#11804) 2021-05-25 18:44:49 +01:00
ilike2burnthing
6c741acd45 galeriens: removed, down for 30 days. resolves #7887 (#11803) 2021-05-25 18:44:26 +01:00
ilike2burnthing
aee777ad40 erzsebet: removed, down for 30 days. resolves #7252 (#11802) 2021-05-25 18:44:09 +01:00
kaso17
2a3ec65668 TorrenTech: fix certificate
fix #11160
2021-05-25 18:18:37 +02:00
kaso17
be117c1819 WebClient.GetResultAsync(): allow request.PostData to be null 2021-05-25 10:18:06 +02:00
Garfield69
7d9eea0355 hdcztorrent: oops fix typo 2021-05-24 16:45:37 +12:00
mazmar
37cd1126b6 Add HD-CzTorrent a semi-private Czech site. (#11774) 2021-05-24 16:15:09 +12:00
6cUbi57z
177d6b3bdd erai-raws: add details link (#11793) resolves #11750 2021-05-24 15:15:22 +12:00
Garfield69
0d04461ec2 bit-titan: fix login resolves #11787
also bump results to 100
and add posters
and correct ULVF detection.
2021-05-23 21:51:17 +12:00
Benigno Diez Gutiérrez
ecac923daa Added new link to NewPCT indexer (#11786) 2021-05-23 03:21:00 +01:00
ilike2burnthing
ff78a5da8a torrentqq: new domain *88.com 2021-05-22 23:47:08 +01:00
ilike2burnthing
f47f1a7ed5 oxtorrent: change domain *.ph 2021-05-22 23:46:31 +01:00
Garfield69
d2dffba25c ygg*: update legacylinks 2021-05-22 22:02:13 +12:00
Garfield69
8591196344 cartoonchaos: handle season packs. resolves #11775 2021-05-22 13:50:48 +12:00
mazmar
8e6d556cae sktorrent: Login Check (#11768)
added user cp selector, index.php is public hence not checking login correctly
2021-05-20 20:48:02 +12:00
Garfield69
f5ae9c0384 xspeeds: handle dates on requested torrents. #11767 2021-05-20 13:50:29 +12:00
ilike2burnthing
8d550c4c3e anidex: fix categories. resolves #9727
Will prevent searching every single category when TV or TV/Anime is selected, and therefore returning no results (plus, now the categories are correct).
2021-05-17 21:53:13 +01:00
ilike2burnthing
2a39390e85 hqsource: fix date selector and filters 2021-05-17 20:47:16 +01:00
ilike2burnthing
bb144ac281 broadcity: remove extra 'filters:' 2021-05-17 20:17:30 +01:00
ilike2burnthing
f1942036e1 bitturk: add new categories 2021-05-17 18:00:13 +01:00
ilike2burnthing
d980cec45d divteam: add new category 2021-05-17 17:50:17 +01:00
ilike2burnthing
55aa5d4c23 fouducinema: update categories 2021-05-17 17:06:46 +01:00
ilike2burnthing
cb9ce8f9d8 torrentqq: new domain *87.com 2021-05-17 16:25:20 +01:00
Wayne Dupree
7304ec222b Add the ability to select multiple public indexers at one time. (#11721) 2021-05-17 13:13:35 +12:00
Garfield69
d499e2ad78 torrentmax: add new cat. resolves #11752 2021-05-17 07:43:20 +12:00
Diego Heras
aca4a16bae ci/cd: fix whitespaces (#11749) 2021-05-16 20:13:54 +02:00
Garfield69
519d1ea929 correct filter description typo 2021-05-16 18:45:40 +12:00
Garfield69
1671d872ac attempt to fix filter description 2021-05-16 18:41:31 +12:00
Alessio Gogna
6dab689533 [feature] Indexer Test status filter (#11705) Partial solution for #3292 2021-05-16 09:52:12 +12:00
Garfield69
51f7d6c306 hebits: rewrite for new engine resolves #11729
new categories
using filelist instead of searchstr so we can support english torrent filename matching
2021-05-15 19:43:15 +12:00
Garfield69
bbf9d86b21 danishbytes: new cat selector resolves #11730
also update no-poster detection
2021-05-15 11:40:24 +12:00
Idan Bush
50a0bb5270 [Fuzer] Add new category for TV UHD (#11732) resolves #11731
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
2021-05-14 21:08:51 +01:00
Garfield69
ee8e105b94 fix #11717 2021-05-14 10:24:23 +12:00
Alessio Gogna
2b1db11b83 [feature] Configured Indexers filter UI (#11717) 2021-05-13 22:41:11 +01:00
ilike2burnthing
65c022dcd0 rarbg: user configurable api url. resolves #11723 (#11725)
* rarbg: user configurable api url

* Update RarBG.cs

* change position

* tidy up
2021-05-14 09:08:19 +12:00
ilike2burnthing
8427feaa2d torrentgalaxy: update row selector 2021-05-12 07:33:27 +01:00
Ignacio Laborde
1ca5e23dd2 NewPCT: Show the year between parentheses on the title (#11713) Resolves #11113 2021-05-12 11:47:54 +12:00
Garfield69
5f5c3b18dd sharefiles: correct MR #11704 2021-05-12 07:32:08 +12:00
Garfield69
70c802e46a add sharefiles a Romanian private site. resolves #11704 2021-05-11 16:09:43 +12:00
ilike2burnthing
b20981b552 Revert "torrentday: remove tday.love, doesn't resolve"
back up
2021-05-10 10:41:33 +01:00
ilike2burnthing
d35c2a0150 epizod: removed, down for 30 days. resolves #8200 (#11701) 2021-05-10 10:12:19 +01:00
Garfield69
01ff410e62 dark-shadow: fix 8a51a26 2021-05-10 16:47:23 +12:00
Garfield69
25942ab7f5 crazyspirits: new layout 2021-05-10 16:30:55 +12:00
Garfield69
f8ff98ed4c torrentslocal: certificate expired 2021-05-10 15:28:19 +12:00
Garfield69
4761718ce3 byrutor: drop grabs 2021-05-10 15:10:11 +12:00
Garfield69
b80d7c97e6 torrentwhiz: new domain *25.me 2021-05-10 15:03:32 +12:00
Garfield69
f0eb037dc7 torrentview: new domain *.34.com 2021-05-10 15:01:00 +12:00
Garfield69
f86acd2721 hdhouse: drop *.su domain 2021-05-10 14:57:42 +12:00
Garfield69
56a7e432d4 lesaloon: new login form. #11698 2021-05-10 13:14:34 +12:00
Garfield69
fbad508789 Merge branch 'master' of https://github.com/Jackett/Jackett 2021-05-09 12:19:09 +12:00
Garfield69
e1511de04b turktorrent: site has enabled hcaptcha. switch to cookie method. 2021-05-09 12:19:06 +12:00
Alessio Gogna
0a5582a323 [enhancement] Filter Indexers documentation (#11697) 2021-05-09 09:22:21 +12:00
Alessio Gogna
66bec102db [Feature] Filter Meta Indexer by tag and by language (#11662). resolves #8884 resolves #7170 resolves #4787 resolves #2185
* bump to 0.18.*

Also partially addresses https://github.com/Jackett/Jackett/issues/661 (if user adds `enabled` and `disabled` tags).

Co-authored-by: garfield69 <garfieldsixtynine@gmail.com>
Co-authored-by: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
2021-05-08 21:24:18 +01:00
JigSaw
b07543bff6 xthor: misc enhancements (#11695)
* xthor: added categories dropping options (enabled, only for TMDB queries, disabled) - For TMDB queries by default
* xthor: removed search parameter when no search term submitted.
2021-05-08 21:52:52 +02:00
Garfield69
83c7028a95 cinematik: fix login. resolves #11470 2021-05-09 07:49:26 +12:00
Garfield69
1a89baa9a1 torrentqq: new domain 2021-05-08 21:17:10 +12:00
Garfield69
75e2f22eb7 vsttorrents: new domain 2021-05-08 21:15:37 +12:00
Garfield69
67ab3b8a10 erairaws: add nocensor.space alternate site link 2021-05-08 19:38:50 +12:00
Garfield69
2e7813ecfa mejortorrent: add nocensor.space alternate site link 2021-05-08 19:34:38 +12:00
203 changed files with 3146 additions and 2607 deletions

View File

@@ -53,7 +53,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* dmhy
* E-Hentai
* emtrek
* Epizod
* Erai-Raws
* ETTV
* EXT Torrents
@@ -149,7 +148,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TorrentMafya
* TorrentMax (토렌트맥스)
* TorrentParadise
* TorrentProject
* TorrentProject2
* TorrentQQ (토렌트큐큐)
* Torrents.csv
@@ -186,11 +184,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* DimeADozen (EzTorrent)
* DXP (Deaf Experts)
* EniaHD
* Erzsebet
* Erzsebet.pl
* ExKinoRay
* Genesis-Movement
* HamsterStudio
* HD-CzTorrent
* HunTorrent
* IV-Torrents
* KinoNaVse100
@@ -247,7 +245,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* anasch.cc
* AnimeBytes (AB)
* AnimeTorrents (AnT)
* AnimeWorld (AST4u) [![(invite needed)][inviteneeded]](#)
* AnimeWorld [![(invite needed)][inviteneeded]](#)
* Anthelion
* Araba Fenice (Phoenix) [![(invite needed)][inviteneeded]](#)
* ArabP2P
@@ -341,7 +339,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* FunkyTorrents (FT) [![(invite needed)][inviteneeded]](#)
* Fuzer (FZ)
* GFXPeers
* Galeriens (LaPauseTorrents)
* Gay-Torrents.net
* Gay-Torrents.org [![(invite needed)][inviteneeded]](#)
* GAYtorrent.ru
@@ -395,7 +392,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* LastFiles
* LatinoP2P
* Le Saloon
* LeChaudron
* LemonHD
* LearnFlakes
* LegacyHD (HD4Free)
@@ -432,7 +428,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* Ourbits (HDPter)
* P2PBG
* P2PElite
* Partis [![(invite needed)][inviteneeded]](#)
* PassThePopcorn (PTP)
* Peers.FM
* Pirata Digital
@@ -476,6 +471,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* SDBits [![(invite needed)][inviteneeded]](#)
* Secret Cinema
* SeedFile (SF)
* ShareFiles
* Shareisland
* Shazbat
* SiamBIT
@@ -584,6 +580,28 @@ Using the all indexer has no advantages (besides reduced management overhead), o
To get all Jackett indexers including their capabilities you can use `t=indexers` on the all indexer. To get only configured/unconfigured indexers you can also add `configured=true/false` as a query parameter.
### Filter indexers
Another special "filter" indexer is available at `/api/v2.0/indexers/<filter>/results/torznab`
It will query the configured indexers that match the `<filter>` expression criterias and return the combined results as "all".
Supported filters
Filter | Condition
-|-
`type:<type>` | where the indexer type is equal to `<type>`
`tag:<tag>` | where the indexer tags contains `<tag>`
`lang:<tag>` | where the indexer language start with `<lang>`
`test:{passed\|failed}` | where the last indexer test performed `passed` or `failed`
Supported operators
Operator | Condition
-|-
`!<expr>` | where not `<expr>`
`<expr1>+<expr2>[+<expr3>...]` | where `<expr1>` and `<expr2>` [and `<expr3>`...]
`<expr1>,<expr2>[,<expr3>...]` | where `<expr1>` or `<expr2>` [or `<expr3>`...]
Example:
The "filter" indexer at `/api/v2.0/indexers/tag:group1,!type:private+lang:en/results/torznab` will query all the configured indexers tagged with `group1` or all the indexers not private and with `en` language (`en-en`,`en-us`,...)
## Installation on Windows
We recommend you install Jackett as a Windows service using the supplied installer. You may also download the zipped version if you would like to configure everything manually.

View File

@@ -2,7 +2,7 @@
name: $(majorVersion).$(minorVersion).$(patchVersion)
variables:
majorVersion: 0
minorVersion: 17
minorVersion: 18
patchVersion: $[counter(variables['minorVersion'], 1)] # this will reset when we bump minor
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
buildConfiguration: Release
@@ -300,23 +300,9 @@ stages:
workingDirectory: $(Build.SourcesDirectory)
targetType: inline
failOnStderr: true
script: |
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/DateTimeRoutines
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Common
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.IntegrationTests
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Server
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Service
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Test
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Tray
dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src/Jackett.Updater
dotnet-format --check --verbosity diagnostic --folder ./src/DateTimeRoutines
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Common
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.IntegrationTests
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Server
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Service
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Test
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Tray
dotnet-format --check --verbosity diagnostic --folder ./src/Jackett.Updater
# execute this command to format all files:
# dotnet-format --fix-whitespace --verbosity diagnostic --folder ./src
script: dotnet-format --check --verbosity diagnostic --folder ./src
- job: Linting_YAML
displayName: Linting YAML

File diff suppressed because one or more lines are too long

View File

@@ -76,6 +76,10 @@ body {
max-width: 255px;
}
.setup-item-inputtags {
max-width: 255px;
}
[data-type=hiddendata]{
display: none;
}
@@ -328,3 +332,21 @@ input#searchquery {
#proxy-warning {
color: red;
}
.label-tag {
text-transform: lowercase;
background-color: #777;
}
.tagify {
height: auto;
}
.tagify .tagify__input {
min-width: 0;
text-transform: lowercase;
}
.tagify .tagify__tag-text {
text-transform: lowercase;
}

View File

@@ -3,6 +3,9 @@ var basePath = '';
var indexers = [];
var configuredIndexers = [];
var unconfiguredIndexers = [];
var configuredTags = [];
var availableFilters = [];
var currentFilter = null;
$.fn.inView = function () {
if (!this.length) return false;
@@ -46,27 +49,45 @@ $(document).ready(function () {
var pathPrefix = window.location.pathname.substr(0, index);
api.root = pathPrefix + api.root;
const hashArgs = getHashArgs();
if ("indexers" in hashArgs)
currentFilter = hashArgs.filter
bindUIButtons();
loadJackettSettings();
});
function openSearchIfNecessary() {
const hashArgs = location.hash.substring(1).split('&').reduce((prev, item) =>
Object.assign({
[item.split('=')[0]]: (item.split('=').length < 2 ?
undefined :
decodeURIComponent(item.split('=')[1].replace(/\+/g, '%20')))
}, prev), {});
const hashArgs = getHashArgs();
if ("search" in hashArgs) {
showSearch(hashArgs.tracker, hashArgs.search, hashArgs.category);
showSearch(hashArgs.filter, hashArgs.tracker, hashArgs.search, hashArgs.category);
}
}
function getHashArgs() {
return location.hash.substring(1).split('&').reduce((prev, item) => Object.assign({
[item.split('=')[0]]: (item.split('=').length < 2 ?
undefined :
decodeURIComponent(item.split('=')[1].replace(/\+/g, '%20')))
}, prev), {});
}
function insertWordWrap(str) {
// insert optional word wrap after punctuation to avoid overflows on long scene titles
return str.replace(/([\.\-_\/\\])/g, "$1\u200B");
}
function type_filter(indexer) {
return indexer.type == this.value;
}
function tag_filter(indexer) {
return indexer.tags.map(t => t.toLowerCase()).indexOf(this.value.toLowerCase()) > -1;
}
function state_filter(indexer) {
return indexer.state == this.value;
}
function getJackettConfig(callback) {
api.getServerConfig(callback).fail(function () {
doNotify("Error loading Jackett settings, request to Jackett server failed, is server running ?", "danger", "glyphicon glyphicon-alert");
@@ -131,11 +152,14 @@ function loadJackettSettings() {
}
function reloadIndexers() {
$('#filters').hide();
$('#indexers').hide();
api.getAllIndexers(function (data) {
indexers = data;
configuredIndexers = [];
unconfiguredIndexers = [];
configuredTags = [];
availableFilters = [];
for (var i = 0; i < data.length; i++) {
var item = data[i];
item.rss_host = resolveUrl(basePath + "/api/v2.0/indexers/" + item.id + "/results/torznab/api?apikey=" + api.key + "&t=search&cat=&q=");
@@ -169,7 +193,13 @@ function reloadIndexers() {
else
unconfiguredIndexers.push(item);
}
displayConfiguredIndexersList(configuredIndexers);
configuredTags = configuredIndexers.map(i => i.tags).reduce((a, g) => a.concat(g), []).filter((v, i, a) => a.indexOf(v) === i);
configureFilters(configuredIndexers);
displayFilteredIndexersList(configuredIndexers, currentFilter);
$('#indexers div.dataTables_filter input').focusWithoutScrolling();
openSearchIfNecessary();
}).fail(function () {
@@ -177,6 +207,53 @@ function reloadIndexers() {
});
}
function configureFilters(indexers) {
function add(f) {
if (availableFilters.find(x => x.id == f.id))
return;
if (!indexers.every(f.apply, f) && indexers.some(f.apply, f))
availableFilters.push(f);
}
availableFilters.push({id: "test:passed", apply: state_filter, value: "success" });
availableFilters.push({id: "test:failed", apply: state_filter, value: "error" });
["public", "private", "semi-private"]
.map(t => { return { id: "type:" + t, apply: type_filter, value: t } })
.forEach(add);
configuredTags.sort()
.map(t => { return { id: "tag:" + t.toLowerCase(), apply: tag_filter, value: t }})
.forEach(add);
}
function displayFilteredIndexersList(indexers, filter) {
var active = availableFilters.find(x => x.id == filter);
if (availableFilters.length > 0) {
var filtersTemplate = Handlebars.compile($("#jackett-filters").html());
var filters = $(filtersTemplate({
filters: availableFilters,
active: active ? active.id : null
}));
$("li a", filters).on('click', function(){
displayFilteredIndexersList(configuredIndexers, $(this).data("id"));
});
$('#filters').empty();
$('#filters').append(filters);
$('#filters').fadeIn();
}
if (active) {
indexers = indexers.filter(active.apply, active);
currentFilter = active.id;
}
else {
currentFilter = null;
}
displayConfiguredIndexersList(indexers)
}
function displayConfiguredIndexersList(indexers) {
var indexersTemplate = Handlebars.compile($("#configured-indexer-table").html());
var indexersTable = $(indexersTemplate({
@@ -239,36 +316,7 @@ function displayUnconfiguredIndexersList() {
$(btn).click(function () {
$('#select-indexer-modal').modal('hide').on('hidden.bs.modal', function (e) {
var indexerId = $(btn).attr("data-id");
api.getIndexerConfig(indexerId, function (data) {
if (data.result !== undefined && data.result == "error") {
doNotify("Error: " + data.error, "danger", "glyphicon glyphicon-alert");
return;
}
api.updateIndexerConfig(indexerId, data, function (data) {
if (data == undefined) {
reloadIndexers();
doNotify("Successfully configured " + name, "success", "glyphicon glyphicon-ok");
} else if (data.result == "error") {
if (data.config) {
populateConfigItems(configForm, data.config);
}
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
}
}).fail(function (data) {
if (data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
var githubrepo = "Jackett/Jackett";
var githubtext = "this indexer";
if (data.responseJSON.error.includes("check FlareSolverr logs") || data.responseJSON.error.includes("cookies provided by FlareSolverr are not valid")) {
githubrepo = "FlareSolverr/FlareSolverr";
githubtext = "FlareSolverr";
}
doNotify("An error occurred while configuring this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/" + githubrepo + "/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for " + githubtext + ".</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occurred while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
});
});
addIndexer(indexerId, true);
});
});
});
@@ -311,6 +359,9 @@ function displayUnconfiguredIndexersList() {
}
});
},
"drawCallback": function (settings) {
addCheckOnCellClick();
},
"stateSave": true,
"stateDuration": 0,
"fnStateSaveParams": function (oSettings, sValue) {
@@ -323,47 +374,58 @@ function displayUnconfiguredIndexersList() {
[10, 20, 50, 100, 250, 500, -1],
[10, 20, 50, 100, 250, 500, "All"]
],
"select": {
style: 'os',
selector: 'td:first-child'
},
"order": [
[0, "asc"]
[1, "asc"]
],
"columnDefs": [{
"name": "name",
"name": "select",
"targets": 0,
"visible": true,
"searchable": true,
"orderable": true
"searchable": false,
"orderable": false
},
{
"name": "description",
"name": "name",
"targets": 1,
"visible": true,
"searchable": true,
"orderable": true
},
{
"name": "type",
"name": "description",
"targets": 2,
"visible": true,
"searchable": true,
"orderable": true
},
{
"name": "type_string",
"name": "type",
"targets": 3,
"visible": false,
"visible": true,
"searchable": true,
"orderable": true,
"orderable": true
},
{
"name": "type_string",
"targets": 4,
"visible": false,
"searchable": false,
"orderable": false,
},
{
"name": "language",
"targets": 4,
"targets": 5,
"visible": true,
"searchable": true,
"orderable": true
},
{
"name": "buttons",
"targets": 5,
"targets": 6,
"visible": true,
"searchable": false,
"orderable": false
@@ -384,9 +446,64 @@ function displayUnconfiguredIndexersList() {
$("#modals").append(UnconfiguredIndexersDialog);
$('#add-selected-indexers').click(function () {
var selectedIndexers = $('#unconfigured-indexer-datatable').DataTable().$('input[type="checkbox"]');
var hasSelectedIndexers = selectedIndexers.is(':checked');
if (hasSelectedIndexers) {
doNotify("Adding selected Indexers, please wait...", "info", "glyphicon glyphicon-transfer", false);
$('#select-indexer-modal button').attr('disabled', true);
addIndexers(selectedIndexers,
addSelectedIndexersSuccess,
addSelectedIndexersError);
} else {
doNotify("Error: You must select more than one indexer", "danger", "glyphicon glyphicon-alert");
}
});
UnconfiguredIndexersDialog.modal("show");
}
function addSelectedIndexersSuccess() {
$.notifyClose();
$('#select-indexer-modal').modal('hide');
doNotify("Selected indexers successfully added.", "success", "glyphicon glyphicon-ok");
$('#select-indexer-modal button').attr('disabled', false);
}
function addSelectedIndexersError(e, xhr, options, err) {
doNotify("Configuration failed", "danger", "glyphicon glyphicon-alert");
}
function addCheckOnCellClick() {
$('td.checkboxColumn')
.off('click')
.on('click', (function (event) {
if (!$(event.target).is('input')) {
$('input:checkbox', this).prop('checked', function (i, value) {
return !value;
});
}
}));
}
function addIndexers(selectedIndexerList, successCallback, errorCallback) {
$(document).ajaxStop(function () {
if (successCallback == addSelectedIndexersSuccess) {
$(document).ajaxStop().unbind(); // Keep future AJAX events from effecting this
successCallback();
}
}).ajaxError(function (e, xhr, options, err) {
errorCallback(e, xhr, options, err);
});
selectedIndexerList.each(function () {
if (this.checked) {
addIndexer($(this).data('id'), false);
}
})
}
function createDropDownHtml(column, exactMatch) {
var select = $('<select><option value="">Show all</option></select>')
.appendTo($(column.footer()).empty())
@@ -409,6 +526,42 @@ function createDropDownHtml(column, exactMatch) {
return select;
}
function addIndexer(indexerId, displayNotification) {
api.getIndexerConfig(indexerId, function (data) {
if (data.result !== undefined && data.result == "error") {
doNotify("Error: " + data.error, "danger", "glyphicon glyphicon-alert");
return;
}
api.updateIndexerConfig(indexerId, data, function (data) {
if (data == undefined) {
reloadIndexers();
if (displayNotification) {
doNotify("Successfully configured " + indexerId, "success", "glyphicon glyphicon-ok");
}
} else if (data.result == "error") {
if (data.config) {
populateConfigItems(configForm, data.config);
}
doNotify("Configuration failed: " + data.error, "danger", "glyphicon glyphicon-alert");
}
}).fail(function (data) {
if (data.responseJSON.error !== undefined) {
var indexEnd = 2048 - "https://github.com/Jackett/Jackett/issues/new?title=[".length - indexerId.length - "] ".length - " (Config)".length; // keep url <= 2k #5104
var githubrepo = "Jackett/Jackett";
var githubtext = "this indexer";
if (data.responseJSON.error.includes("check FlareSolverr logs") || data.responseJSON.error.includes("cookies provided by FlareSolverr are not valid")) {
githubrepo = "FlareSolverr/FlareSolverr";
githubtext = "FlareSolverr";
}
doNotify("An error occurred while configuring this indexer<br /><b>" + data.responseJSON.error.substring(0, indexEnd) + "</b><br /><i><a href=\"https://github.com/" + githubrepo + "/issues/new?title=[" + indexerId + "] " + data.responseJSON.error.substring(0, indexEnd) + " (Config)\" target=\"_blank\">Click here to open an issue on GitHub for " + githubtext + ".</a><i>", "danger", "glyphicon glyphicon-alert", false);
} else {
doNotify("An error occurred while configuring this indexer, is Jackett server running ?", "danger", "glyphicon glyphicon-alert");
}
});
});
}
function copyToClipboard(text) {
// create hidden text element, if it doesn't already exist
var targetId = "_hiddenCopyText_";
@@ -483,18 +636,21 @@ function prepareSearchButtons(element) {
var $btn = $(btn);
var id = $btn.data("id");
$btn.click(function () {
window.location.hash = "search&tracker=" + id;
showSearch(id);
window.location.hash = "search&tracker=" + id + (currentFilter ? "&filter=" + currentFilter : "");
showSearch(currentFilter, id);
});
});
}
function prepareSetupButtons(element) {
element.find('.indexer-setup').each(function (i, btn) {
var indexer = configuredIndexers[i];
$(btn).click(function () {
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
});
var $btn = $(btn);
var id = $btn.data("id");
var indexer = configuredIndexers.find(i => i.id === id);
if (indexer)
$btn.click(function () {
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
});
});
}
@@ -533,6 +689,10 @@ function updateTestState(id, state, message, parent) {
}).rows().invalidate('dom');
if (state != "inprogres")
dt.draw();
var indexer = configuredIndexers.find(x => x.id == id);
if (indexer)
indexer.state = state;
}
function testIndexer(id, notifyResult) {
@@ -610,11 +770,32 @@ function populateConfigItems(configForm, config) {
var item = config[i];
var setupValueTemplate = Handlebars.compile($("#setup-item-" + item.type).html());
item.value_element = setupValueTemplate(item);
var template = setupItemTemplate(item);
var template = $(setupItemTemplate(item));
$formItemContainer.append(template);
setupConfigItem(template, item);
}
}
function setupConfigItem(configItem, item) {
switch (item.type) {
case "inputtags": {
configItem.find("input").tagify({
dropdown: {
enabled: 0,
position: "text"
},
separator: item.separator || ",",
whitelist: item.whitelist || [],
blacklist: item.blacklist || [],
pattern: item.pattern || null,
delimiters: item.delimiters || item.separator || ",",
originalInputValueFormat: function (values) { return values.map(item => item.value.toLowerCase()).join(this.separator); }
});
}
break;
}
}
function newConfigModal(title, config, caps, link, alternativesitelinks, description) {
var configTemplate = Handlebars.compile($("#jackett-config-setup-modal").html());
var configForm = $(configTemplate({
@@ -638,6 +819,8 @@ function newConfigModal(title, config, caps, link, alternativesitelinks, descrip
});
}
$("div[data-id='tags'] input", configForm).data("tagify").settings.whitelist = configuredTags;
return configForm;
}
@@ -668,9 +851,13 @@ function getConfigModalJson(configForm) {
$el.find(".setup-item-inputcheckbox input:checked").each(function () {
itemEntry.values.push($(this).val());
});
break;
case "inputselect":
itemEntry.value = $el.find(".setup-item-inputselect select").val();
break;
case "inputtags":
itemEntry.value = $el.find(".setup-item-inputtags input").val();
break;
}
configJson.push(itemEntry)
});
@@ -802,14 +989,15 @@ function updateReleasesRow(row) {
}
}
function showSearch(selectedIndexer, query, category) {
function showSearch(selectedFilter, selectedIndexer, query, category) {
var selectedIndexers = [];
if (selectedIndexer)
selectedIndexers = selectedIndexer.split(",");
selectedIndexers = selectedIndexer.split(",");
$('#select-indexer-modal').remove();
var releaseTemplate = Handlebars.compile($("#jackett-search").html());
var releaseDialog = $(releaseTemplate({
indexers: configuredIndexers
filters: availableFilters,
active: selectedFilter
}));
$("#modals").append(releaseDialog);
@@ -820,9 +1008,32 @@ function showSearch(selectedIndexer, query, category) {
releaseDialog.on('hidden.bs.modal', function (e) {
$('#indexers div.dataTables_filter input').focusWithoutScrolling();
window.location.hash = '';
window.location.hash = currentFilter ? "indexers&filter=" + currentFilter : '';
});
var setTrackers = function (filterId, trackers) {
var select = $('#searchTracker');
var selected = select.val();
var filter = availableFilters.find(f => f.id == filterId);
if (filter)
trackers = trackers.filter(filter.apply,filter);
var options = trackers.map(t => {
return {
label: t.name,
value: t.id
}
});
select.multiselect('dataprovider', options);
select.val(selected).multiselect("refresh");
};
$('#searchFilter').change(jQuery.proxy(function () {
var filterId = $('#searchFilter').val();
setTrackers(filterId, this.items);
}, {
items: configuredIndexers
}));
var setCategories = function (trackers, items) {
var cats = {};
for (var i = 0; i < items.length; i++) {
@@ -869,6 +1080,7 @@ function showSearch(selectedIndexer, query, category) {
return;
}
var searchString = releaseDialog.find('#searchquery').val();
var filterId = releaseDialog.find('#searchFilter').val();
var queryObj = {
Query: searchString,
Category: releaseDialog.find('#searchCategory').val(),
@@ -878,14 +1090,15 @@ function showSearch(selectedIndexer, query, category) {
window.location.hash = Object.entries({
search: encodeURIComponent(queryObj.Query).replace(/%20/g, '+'),
tracker: queryObj.Tracker.join(","),
category: queryObj.Category.join(",")
}).map(([k, v], i) => k + '=' + v).join('&');
category: queryObj.Category.join(","),
filter: filterId ? encodeURIComponent(filterId) : ""
}).filter(([k, v]) => v).map(([k, v], i) => k + '=' + v).join('&');
$('#jackett-search-perform').html($('#spinner').html());
$('#searchResults div.dataTables_filter input').val("");
clearSearchResultTable($('#searchResults'));
var trackerId = "all";
var trackerId = filterId || "all";
api.resultsForIndexer(trackerId, queryObj, function (data) {
for (var i = 0; i < data.Results.length; i++) {
var item = data.Results[i];
@@ -906,16 +1119,14 @@ function showSearch(selectedIndexer, query, category) {
var searchTracker = releaseDialog.find("#searchTracker");
var searchCategory = releaseDialog.find('#searchCategory');
searchCategory.multiselect({
var searchFilter = releaseDialog.find('#searchFilter');
searchFilter.multiselect({
maxHeight: 400,
enableFiltering: true,
includeSelectAllOption: true,
enableCaseInsensitiveFiltering: true,
nonSelectedText: 'Any'
nonSelectedText: 'All'
});
if (selectedIndexers)
searchTracker.val(selectedIndexers);
searchTracker.trigger("change");
updateSearchResultTable($('#searchResults'), []);
clearSearchResultTable($('#searchResults'));
@@ -928,6 +1139,29 @@ function showSearch(selectedIndexer, query, category) {
nonSelectedText: 'All'
});
searchCategory.multiselect({
maxHeight: 400,
enableFiltering: true,
includeSelectAllOption: true,
enableCaseInsensitiveFiltering: true,
nonSelectedText: 'Any'
});
if (availableFilters.length > 0) {
if (selectedFilter) {
searchFilter.val(selectedFilter);
searchFilter.multiselect("refresh");
}
searchFilter.trigger("change");
}
else
setTrackers(selectedFilter, configuredIndexers);
if (selectedIndexers) {
searchTracker.val(selectedIndexers);
searchTracker.multiselect("refresh");
}
searchTracker.trigger("change");
if (category !== undefined) {
searchCategory.val(category.split(","));
@@ -1116,6 +1350,7 @@ function bindUIButtons() {
$('#jackett-add-indexer').click(function () {
$("#modals").empty();
displayUnconfiguredIndexersList();
addCheckOnCellClick();
$('#unconfigured-indexer-datatable tfoot tr').insertAfter($('#unconfigured-indexer-datatable thead tr'));
$('#unconfigured-indexer-datatable').DataTable().search('').columns().search('').draw();
});
@@ -1231,8 +1466,8 @@ function bindUIButtons() {
});
$("#jackett-show-search").click(function () {
showSearch(null);
window.location.hash = "search";
showSearch(currentFilter);
window.location.hash = "search" + (currentFilter ? "&filter=" + currentFilter : "");
});
$("#view-jackett-logs").click(function () {
@@ -1348,4 +1583,4 @@ function proxyWarning(input) {
} else {
$('#proxy-warning').hide();
}
}
}

View File

@@ -330,3 +330,21 @@ input#searchquery {
#proxy-warning {
color: red;
}
.label-tag {
text-transform: lowercase;
background-color: #777;
}
.tagify {
height: auto;
}
.tagify .tagify__input {
min-width: 0;
text-transform: lowercase;
}
.tagify .tagify__tag-text {
text-transform: lowercase;
}

View File

@@ -22,11 +22,14 @@
<script type="text/javascript" src="../bootstrap/bootstrap.min.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/bootstrap-notify.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/bootstrap-multiselect.js?changed=2017083001"></script>
<script type="text/javascript" src="../libs/tagify.min.js?changed=11662"></script>
<script type="text/javascript" src="../libs/jQuery.tagify.min.js?changed=11662"></script>
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20201208" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20201208" media="only screen and (max-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../css/tagify.css?changed=11662">
<link rel="stylesheet" type="text/css" href="../custom.css?changed=11662" media="only screen and (min-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=11662" media="only screen and (max-device-width: 480px)">
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
@@ -51,6 +54,8 @@
</div>
<div class="pull-right">
<div id="filters" class="btn-group btn-group-sm">
</div>
<button id="jackett-add-indexer" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add indexer
</button>
@@ -65,7 +70,7 @@
</button>
</div>
<h3>Configured Indexers</h3>
<div id="indexers"> </div>
<div id="indexers"></div>
<hr />
<div class="input-area">
@@ -213,7 +218,7 @@
<div id="modals"></div>
<script id="setup-item" type="text/x-handlebars-template">
<div class="setup-item form-group" data-id="{{id}}" data-value="{{value}}" data-type="{{type}}">
<div class="setup-item form-filter" data-id="{{id}}" data-value="{{value}}" data-type="{{type}}">
<div class="setup-item-label">{{name}}</div>
<div class="setup-item-value">{{{value_element}}}</div>
</div>
@@ -289,10 +294,14 @@
Click on an URL to copy it to the Site Link field.
</div>
</script>
<script id="setup-item-inputtags" type="text/x-handlebars-template">
<div class="setup-item-inputtags">
<input class="form-control input-sm" type="text" value="{{{value}}}" {{#if pattern}} pattern="{{pattern}}"{{/if}}/>
</div>
</script>
<script id="configured-indexer-table" type="text/x-handlebars-template">
<div class="configured-indexer-div">
<div class="tab-content configured-indexer-div">
<table id="configured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive">
<thead>
<tr>
@@ -303,7 +312,7 @@
<tbody>
{{#each indexers}}
<tr class="configured-indexer-row">
<td><a target="_blank" href="{{site_link}}" title="{{description}}">{{name}}</a> <span title="{{type}}" class="label label-{{type_label}}" style="text-transform: capitalize;">{{type}}</span></td>
<td><a target="_blank" href="{{site_link}}" title="{{description}}">{{name}}</a> <span title="{{type}}" class="label label-{{type_label}}" style="text-transform: capitalize;">{{type}}</span>{{#each tags}} <span title="{{this}}" class="label label-tag">{{this}}</span>{{/each}}</td>
<td class="fit">
<div class="indexer-buttons">
<a href="{{rss_host}}" title="{{rss_host}}" role="button" class="indexer-button-copy btn btn-xs btn-info">Copy RSS Feed</i></a>
@@ -342,10 +351,11 @@
<table id="unconfigured-indexer-datatable" class="indexer-table dataTable compact cell-border hover stripe table table-responsive">
<thead>
<tr>
<th></th>
<th>Indexer</th>
<th>Categories</th>
<th>Type</th>
<th>Type string</th>
<th data-type="hiddendata">Type string</th>
<th>Language</th>
<th></th>
</tr>
@@ -353,10 +363,15 @@
<tbody>
{{#each indexers}}
<tr class="unconfigured-indexer-row">
<td class="checkboxColumn">
{{#if_eq type "public"}}
<input type="checkbox" id="select{{id}}" data-id="{{id}}" />
{{/if_eq}}
</td>
<td><a target="_blank" href="{{site_link}}" title="{{description}}">{{name}}</a></td>
<td>{{mains_cats}}</td>
<td class="fit"><span title="{{type}}" class="label label-{{type_label}}" style="text-transform: capitalize;">{{type}}</span></td>
<td>{{type}}</td>
<td data-type="hiddendata">{{type}}</td>
<td class="fit">{{language}}</td>
<td class="fit">
<div class="indexer-buttons">
@@ -375,10 +390,11 @@
</tbody>
<tfoot>
<tr>
<th></th>
<th>Indexer</th>
<th>Categories</th>
<th>Type</th>
<th>Type string</th>
<th data-type="hiddendata">Type string</th>
<th>Language</th>
<th></th>
</tr>
@@ -492,12 +508,17 @@
<p>You can search all configured indexers from this screen.</p>
<label for="text">Query</label>
<input class="form-control" type="text" name="query" id="searchquery" />
<label for="tracker">Tracker</label>
<select name="tracker" id="searchTracker" multiple="multiple">
{{#each indexers}}
<option value="{{id}}" selected>{{name}}</option>
{{/each}}
{{#if filters}}
<label for="filter">Filter</label>
<select name="filter" id="searchFilter">
<option value="all">all</option>
{{#each filters}}
<option value="{{id}}">{{id}}</option>
{{/each}}
</select>
{{/if}}
<label for="tracker">Tracker</label>
<select name="tracker" id="searchTracker" multiple="multiple"></select>
<label for="category">Category</label>
<select name="category" id="searchCategory" multiple="multiple"></select>
<button id="jackett-search-perform" class="btn btn-success btn-sm"><span class="fa fa-search"></span></button>
@@ -604,7 +625,9 @@
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" id="add-selected-indexers" class="btn btn-default">Add Selected</button>
<button type="button" id="close-selected-indexers" class="btn btn-default"
data-dismiss="modal">Close</button>
</div>
</div>
</div>
@@ -689,6 +712,17 @@
</div>
</script>
<script id="jackett-filters" type="text/x-handlebars-template">
<button id="jackett-filters-dropdown" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Filter <span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="jackett-filters-dropdown">
<li class="{{#if_eq active null}}active{{/if_eq}}"><a href="#">All</a></li>
{{#each filters}}
<li class="{{#if_eq ../active id}}active{{/if_eq}}"><a href="#indexers&filter={{id}}" data-id="{{id}}">{{id}}</a></li>
{{/each}}
</ul>
</script>
<script id="spinner" type="text/x-handlebars-template">
<span class="spinner glyphicon glyphicon-refresh"></span>
</script>
@@ -698,6 +732,6 @@
</script>
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
<script type="text/javascript" src="../custom.js?changed=20210424"></script>
<script type="text/javascript" src="../custom.js?changed=PR11721"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -25,7 +25,7 @@ namespace Jackett.Common.Converters
return long.TryParse((string)reader.Value, out var foo)
? foo
: (long?) null;
: (long?)null;
}
public override bool CanConvert(Type objectType) => objectType == typeof(string);

View File

@@ -14,7 +14,7 @@ links:
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.se/
- https://1337x.unblockit.onl/
- https://1337x.unblockit.li/
- https://1337x.nocensor.space/
legacylinks:
- https://1337x.unblocked.earth/
@@ -44,6 +44,7 @@ legacylinks:
- https://1337x.unblockit.buzz/
- https://1337x.unblocked.monster/
- https://1337x.unblockit.club/
- https://1337x.unblockit.onl/
caps:
categorymappings:

View File

@@ -24,7 +24,7 @@ caps:
- {id: 2, cat: TV/Anime, desc: "动画分类 (Anime)"}
- {id: 7, cat: TV/Anime, desc: "新番连载 (Anime New Fan Series)"}
- {id: 8, cat: TV/Anime, desc: "完整动画 (Anime Collection)"}
- {id: 9, cat: TV/Anime, desc: "剧场版 (Anime Movie)"}
- {id: 9, cat: Movies/Other, desc: "剧场版 (Anime Movie)"}
- {id: 10, cat: TV/Anime, desc: "DVDRIP (Anime DVDRIP)"}
- {id: 11, cat: TV/Anime, desc: "BDRIP (Anime BDRIP)"}
- {id: 5, cat: TV/Anime, desc: "RAW/ISO"}

View File

@@ -199,4 +199,4 @@ search:
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# UNIT3D 5.1.0
# UNIT3D 5.2.0

View File

@@ -86,6 +86,9 @@ search:
fields:
category:
text: 54
category|noappend:
optional: true
selector: a[href*="category="]
attribute: href
case:
@@ -130,6 +133,9 @@ search:
leechers:
text: 1
size:
text: "0 B"
size:
optional: true
selector: b.file_size
downloadvolumefactor:
text: 0

View File

@@ -1,47 +1,32 @@
---
id: animeworld
name: AnimeWorld
description: "AnimeWorld (AST4u) is a GERMAN Private site for TV / MOVIES / ANIME / HENTAI"
description: "AnimeWorld (AW) is a GERMAN Private site for ANIME / MANGA / HENTAI"
language: de-de
type: private
encoding: iso-8859-1
encoding: UTF-8
links:
- https://animeworld.cx/
legacylinks:
- https://www.ast4u.me/
caps:
categorymappings:
- {id: 35, cat: TV/Anime, desc: "Anime Movie"}
- {id: 36, cat: TV/Anime, desc: "Anime Serie"}
- {id: 37, cat: Audio/Foreign, desc: "Anime Musik"}
- {id: 41, cat: Books, desc: "Anime Pic & Manga"}
- {id: 42, cat: XXX, desc: "Hentai Movie & OVA"}
- {id: 43, cat: XXX, desc: "Hentai Serie"}
- {id: 44, cat: PC, desc: "Hentai Game"}
- {id: 45, cat: Movies, desc: "Cartoon Movie"}
- {id: 46, cat: TV, desc: "Cartoon Serie"}
- {id: 47, cat: TV, desc: "TV-Serie"}
- {id: 49, cat: TV/Documentary, desc: "Sonstiges Doku"}
- {id: 50, cat: Audio, desc: "Sonstiges Soundtrack"}
- {id: 52, cat: Movies/HD, desc: "Movie HD"}
- {id: 53, cat: Other, desc: "Sonstiges"}
- {id: 55, cat: Movies/Foreign, desc: "Movie Asia & MartialArts"}
- {id: 56, cat: TV/Anime, desc: "Anime OVA"}
- {id: 58, cat: Movies, desc: "Movie"}
- {id: 59, cat: Audio/Audiobook, desc: "Sonstiges Hoerspiele"}
- {id: 62, cat: Console, desc: "Sonstiges Game"}
- {id: 65, cat: Movies/BluRay, desc: "Movie BluRay"}
- {id: 66, cat: TV, desc: "TV-Serie BluRay"}
- {id: 67, cat: TV/HD, desc: "TV-Serie HD"}
- {id: 68, cat: TV/Anime, desc: "Anime Movie HD & BD"}
- {id: 69, cat: TV/Anime, desc: "Anime OVA HD & BD"}
- {id: 70, cat: TV/Anime, desc: "Anime Serie HD & BD"}
- {id: 1, cat: Movies/Other, desc: "Anime Movie"}
- {id: 2, cat: TV/Anime, desc: "Anime Serie"}
- {id: 3, cat: Audio, desc: "Anime Musik/OST"}
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
- {id: 5, cat: XXX, desc: "Hentai"}
- {id: 6, cat: PC, desc: "Spiele Linux"}
- {id: 7, cat: Other, desc: "Sonstiges"}
- {id: 8, cat: Movies, desc: "Filme"}
- {id: 9, cat: TV, desc: "Serien"}
- {id: 10, cat: PC/Games, desc: "Spiele"}
- {id: 11, cat: Audio, desc: "Musik"}
- {id: 12, cat: Books, desc: "Mangas"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
tv-search: [q, season, ep, imdbid, tvdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
@@ -52,83 +37,155 @@ settings:
- name: password
type: password
label: Password
- name: info
type: info
label: Results Per Page
default: For best results, change the <b>Torrentliste</b> setting to <i>Platzsparendes Layout mit PopUp für zusätzliche Informationen</i> in your profile.
- 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: takelogin.php
method: post
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: "/index.php"
test:
path: browse.php
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: browse.php
- path: torrents
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
incldead: 0
orderby: added
sort: desc
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
uploader: ""
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
selector: table > tbody > tr
fields: # note: two alternative layouts available
title:
selector: a[href^="details.php"]
title:
optional: true
selector: a[href^="details.php"][title]
attribute: title
fields:
category:
selector: a[href^="browse.php?cat="]
selector: a[href*="/categories/"]
attribute: href
filters:
- name: querystring
args: cat
details:
selector: a[href^="details.php"]
attribute: href
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href^=" /gettorrent/"]
selector: a[href*="/download/"]
attribute: href
files:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]
grabs:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1), a[href*="&tosnatchers=1"]
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
size:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1), td:nth-child(7):has(br)
filters:
- name: replace
args: [".", ""]
- name: replace
args: [",", "."]
selector: td:nth-last-child(5)
seeders:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(1), a[href*="&toseeders=1"]
selector: td:nth-last-child(4)
leechers:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(3), a[href*="&todlers=1"]
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(5), td:nth-child(5):has(br)
selector: td:nth-last-child(1)
filters:
- name: replace
args: [" ", ""]
- name: append
args: " +2:00" # EET
- name: replace
args: ["\xA0", ""]
- name: dateparse
args: "02.01.200615:04:05 -07:00"
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
img[src="/pic/free.gif"]: 0
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:
text: 1
# engine tbd
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
minimumseedtime:
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -9,7 +9,7 @@ links:
- http://audiobookbay.nl/ # site forces http, does not support https
- http://audiobookbay.net/
- http://audiobookbayabb.com/
- https://audiobookbay.unblockit.onl/
- https://audiobookbay.unblockit.li/
legacylinks:
- https://audiobookbay.la/
- https://audiobookbay.unblockit.lat/
@@ -19,6 +19,7 @@ legacylinks:
- https://audiobookbay.unblockit.link/
- https://audiobookbay.unblockit.buzz/
- https://audiobookbay.unblockit.club/
- https://audiobookbay.unblockit.onl/
caps:
categorymappings:

View File

@@ -124,11 +124,11 @@ settings:
login:
path: login.php
method: form
form: form[action="takelogin.php"]
form: form[action$="login.php"]
cookies: ["JAVA=OK"] # avoid jscheck redirect
captcha:
type: image
selector: img[src^="cap/captcha_math.php"]
selector: img[src*="captcha_math.php"]
input: stringCaptcha
inputs:
username: "{{ .Config.username }}"
@@ -150,7 +150,7 @@ search:
allCats: ""
search: "{{ .Keywords }}"
# 1 25, 2 50, 3 75, 4 100
limit: 1
limit: 4
# searchin: 0 all, 1 active, 2 dead, 3 highlights, 4 bookmarks, 5 uploads, 10 bots, 11 onlyupload, 12 multiplier, 13 %download, 14 freeleech
# note: freeleech on this site means download and upload is not counted, whereas OU means download is free and upload is counted
# 14 yields no freeleech, but 11 returns results
@@ -184,6 +184,9 @@ search:
args: (\d+)
- name: prepend
args: "download.php?torrent="
poster:
selector: div[data-image]
attribute: data-image
seeders:
selector: td.peers:has(i[title="Seeders"])
leechers:
@@ -227,9 +230,9 @@ search:
"*": 1
uploadvolumefactor:
case:
"span:contains(\"2x\")": 2
"span:contains(\"5x\")": 5
"span:contains(\"10x\")": 10
"span:contains(\"x2\")": 2
"span:contains(\"x5\")": 5
"span:contains(\"x10\")": 10
"span:contains(\"FL\")": 0 # freeleech neither dl or ul is counted
"*": 1
minimumseedtime:

View File

@@ -123,13 +123,7 @@ search:
size:
selector: td:nth-child(6) > u
downloadvolumefactor:
text: 1
downloadvolumefactor:
optional: true
selector: td:nth-child(6) > nobr > font:contains(" × ")
filters:
- name: replace
args: ["×", ""]
text: 0
uploadvolumefactor:
text: 1
uploadvolumefactor:

View File

@@ -21,6 +21,8 @@ caps:
- {id: 67, cat: XXX, desc: "XxX"}
- {id: 68, cat: Movies, desc: "Dual (TR-~)"}
- {id: 71, cat: Movies, desc: "NFLIX"}
- {id: 78, cat: TV, desc: "EXXEN"}
- {id: 79, cat: TV, desc: "BLUTV"}
- {id: 58, cat: Movies, desc: "Film"}
- {id: 72, cat: Movies, desc: "Belgesel"}
- {id: 60, cat: Movies/3D, desc: "3D"}

View File

@@ -10,7 +10,7 @@ links:
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Movies/Other, desc: "FANRES"}
- {id: 5, cat: Movies/Other, desc: "Trailer"}
@@ -68,28 +68,24 @@ login:
search:
paths:
# https://blutopia.xyz/torrents/filter?
# search=&description=&keywords=&uploader=&imdb=&tvdb=&view=list&tmdb=&mal=&igdb=
# &start_year=&end_year=&categories%5B%5D=3&sorting=seeders&direction=asc&page=0&qty=25
- path: torrents/filter
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
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
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
@@ -103,40 +99,29 @@ search:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a[href*="/torrents/"]
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a[href*="/torrents/"]
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&w=180&h=270"] # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/52x80&w=180&h=270", ""]
args: ["https://via.placeholder.com/90x135", ""]
size:
selector: td:nth-last-child(4)
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(3)
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(2)
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(1)
filters:
- name: regexp
args: (\d+)
imdb:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
selector: td:nth-last-child(2)
date:
selector: time
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
@@ -190,7 +175,10 @@ search:
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.2.1b
# UNIT3D 5.3.0b

View File

@@ -102,7 +102,6 @@ search:
filters:
- name: regexp
args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
filters:
- name: append
args: " +03:00" # TRT
- name: dateparse

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
# update poster placeholder link too
- https://btdb.eu/
- https://btdb.unblockit.onl/
- https://btdb.unblockit.li/
legacylinks:
- https://btdb.to/
- https://btdb.unblocked.app/
@@ -36,6 +36,7 @@ legacylinks:
- https://btdb.unblockit.link/
- https://btdb.unblockit.buzz/
- https://btdb.unblockit.club/
- https://btdb.unblockit.onl/
caps:
categories:

View File

@@ -7,6 +7,9 @@ type: public
encoding: UTF-8
links:
- https://btdig.com/
- https://btdiggwzoyrwwbiv.onion.ly/
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.onion.ly/
legacylinks:
- http://btdiggwzoyrwwbiv.onion.ly/
caps:
@@ -40,7 +43,7 @@ search:
paths:
- path: search
inputs:
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}test{{ end }}"
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
# 0 relevance 2 age 3 size 4 files
order: "{{ .Config.sort }}"

View File

@@ -56,21 +56,21 @@ search:
files:
selector: td:nth-child(4)
date:
selector: td:nth-child(6)
selector: td:nth-child(5)
filters:
- name: dateparse
args: "01/02 15:04"
size:
selector: td:nth-child(7)
selector: td:nth-child(6)
grabs:
selector: td:nth-child(8)
selector: td:nth-child(7)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-child(9)
selector: td:nth-child(8)
leechers:
selector: td:nth-child(10)
selector: td:nth-child(9)
downloadvolumefactor:
text: 0
uploadvolumefactor:

View File

@@ -67,10 +67,11 @@ caps:
- {id: 153, cat: TV, desc: "TV-Star Plus"}
- {id: 154, cat: TV, desc: "TV-Zee TV"}
- {id: 186, cat: TV, desc: "TV-Dangal Tv"}
- {id: 218, cat: TV, desc: "TV-Ishara TV"}
- {id: 155, cat: TV/Sport, desc: "TV-Sports"}
- {id: 156, cat: TV/Documentary, desc: "TV-Documentaries"}
- {id: 198, cat: Movies, desc: "TV-MTV"}
- {id: 218, cat: TV, desc: "TV-Ishara TV"}
- {id: 219, cat: TV, desc: "TV-Bengali Tv"}
- {id: 158, cat: TV, desc: "TV-Other Tv Shows"}
- {id: 157, cat: TV, desc: "TV-Hollywood Tv Shows"}
- {id: 195, cat: TV, desc: "TV-Tv Packs"}

View File

@@ -6,6 +6,8 @@ language: ru-ru
type: public
encoding: UTF-8
links:
- https://byrut.org/
legacylinks:
- https://byrutor.org/
caps:
@@ -317,8 +319,6 @@ search:
text: 1
leechers:
text: 1
grabs:
selector: li:has(img[alt="Скачиваний"])
size:
selector: div.shor_subtitles span:nth-child(2)
filters:

View File

@@ -150,7 +150,7 @@ search:
args: ["hete", "week"]
- name: timeago
downloadvolumefactor:
text: 1
text: 0
uploadvolumefactor:
case:
img[src="pic/double.png"]: 2

View File

@@ -16,10 +16,6 @@ caps:
- {id: 2, cat: Movies/SD, desc: "Film/Cam/Hun"}
- {id: 8, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 7, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 10, cat: Movies/DVD, desc: "Film/DVD5/Eng"}
- {id: 9, cat: Movies/DVD, desc: "Film/DVD5/Hun"}
- {id: 12, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
- {id: 11, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
- {id: 16, cat: Movies/HD, desc: "Film/HD1080P/Eng"}
- {id: 15, cat: Movies/HD, desc: "Film/HD1080P/Hun"}
- {id: 14, cat: Movies/HD, desc: "Film/HD720P/Eng"}
@@ -105,14 +101,14 @@ search:
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 both, 2 onlydead, 3 onlyfree, 4 x2 torrents, 6 mytorrents
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
# 0 both, 1 onlyactive, 2 onlydead, 3 onlyfree, 4 x2 torrents, 5 mytorrents, 6 waiting for seeds
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not support imdbid searches
rows:
selector: table[width="800"] > tbody > tr:has(a[href^="details.php?id="])
selector: table[width="920px"] > tbody > tr:has(a[href^="details.php?id="])
fields:
category:

View File

@@ -82,6 +82,12 @@ search:
paths:
# http://www.cartoonchaos.org/index.php?page=torrents&search=transformers&category=30;21;20;26;15;16;17&options=0&active=0
- path: index.php
keywordsfilters:
# if searching for season packs switch S01 to season 1 #11775
- name: re_replace
args: ["(?i)(S0)(\\d{1,2})$", "season $2"]
- name: re_replace
args: ["(?i)(S)(\\d{1,3})$", "season $2"]
inputs:
page: torrents
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
@@ -105,6 +111,10 @@ search:
args: category
title:
selector: td a[href^="index.php?page=torrent-details"]
filters:
# #11775
- name: re_replace
args: ["(?i)(season )", "S"]
details:
selector: td a[href^="index.php?page=torrent-details"]
attribute: href

View File

@@ -1,39 +1,13 @@
---
# Update by LA5T based on the orignial 'cinematik.yml'
# 29.07.2018 22:53 UTC+2
#
id: cinematik
name: Cinematik
description: "Tracker for non-hollywood movies."
description: "A tracker for full BD and DVD discs of non-mainstream movies, niche cinema and arthouse."
language: en-us
type: private
encoding: UTF-8
links:
- https://www.cinematik.net/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: Status
default: 1
options:
0: Active
1: "Active and Inactive"
2: Inactive
- name: srchdtls
type: checkbox
label: "Detailed search"
- name: info_results
type: info
label: "Search results"
default: "You can increase the number of search results in your profile.<br />Default is 15."
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Comedy"}
@@ -59,9 +33,34 @@ caps:
search: [q]
movie-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: incldead
type: select
label: Status
default: 1
options:
0: Active
1: "Active and Inactive"
2: Inactive
- name: srchdtls
type: checkbox
label: "Detailed search"
- name: info_results
type: info
label: "Search results"
default: "You can increase the number of search results in your profile.<br>Default is 15."
login:
path: takelogin.php
method: post
method: form
path: login.php
submitpath: takelogin.php
form: form[action="takelogin.php"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
@@ -75,34 +74,36 @@ search:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Query.Keywords }}"
search: "{{ .Keywords }}"
incldead: "{{ .Config.incldead }}"
srchdtls: "{{ if .Config.srchdtls }}1{{ else }}0{{ end }}"
rows:
selector: table[border="1"] tr:not(:first-child)
fields:
category:
text: 1
title:
selector: td:nth-child(2) a
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
filters:
- name: replace
args: ["details.php?id=", "download.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
files:
selector: td:nth-child(5)
size:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
filters:
- name: regexp
args: ([\d,]+)
files:
selector: td:nth-child(5)
size:
selector: td:nth-child(7)
seeders:
selector: td:nth-child(9)
leechers:
@@ -111,11 +112,12 @@ search:
selector: td:nth-child(11) div.addedtor
downloadvolumefactor:
case:
"img[title=\"Golden Torrent: No Download Stats are Recorded\"]": 0
"img[title=\"Silver Torrent: Download Stats are 25% Recorded\"]": 0.25
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 0
img[title^="Golden Torrent"]: 0
img[title^="Silver Torrent"]: 0.25
img[title^="Platinum Torrent"]: 0
"*": 1
uploadvolumefactor:
case:
"img[title=\"Platinum Torrent: No Download Stats are Recorded, Upload Stats are Doubled!\"]": 2
img[title^="Platinum Torrent"]: 2
"*": 1
# Engine n/a

View File

@@ -13,6 +13,10 @@ legacylinks:
caps:
categorymappings:
# Movies
- {id: 62, cat: Movies/3D, desc: "Movies 3D"}
- {id: 96, cat: Movies/UHD, desc: "Movies 4k Hindi"}
- {id: 94, cat: Movies/UHD, desc: "Movies 4k"}
- {id: 64, cat: Movies, desc: "Movies Animated"}
- {id: 16, cat: Movies/BluRay, desc: "Movies English Bluray"}
- {id: 11, cat: Movies/DVD, desc: "Movies English DVD-RIP"}
- {id: 14, cat: Movies, desc: "Movies English CAM"}
@@ -25,12 +29,9 @@ caps:
- {id: 65, cat: Movies/WEB-DL, desc: "Movies Hindi Webrip/HDrip"}
- {id: 24, cat: Movies, desc: "Movies UNRATED"}
- {id: 53, cat: Movies/Foreign, desc: "Movies Other Foreign"}
- {id: 64, cat: Movies, desc: "Movies Animated"}
- {id: 45, cat: Movies, desc: "Movies Trailers"}
- {id: 93, cat: Movies, desc: "Movies Dual Movies"}
- {id: 59, cat: Movies, desc: "Movies Pack"}
- {id: 94, cat: Movies/UHD, desc: "Movies 4k"}
- {id: 62, cat: Movies/3D, desc: "Movies 3D"}
# TV
- {id: 34, cat: TV, desc: "TV English Series"}
- {id: 57, cat: TV, desc: "TV Bangla series"}
@@ -46,7 +47,7 @@ caps:
- {id: 61, cat: PC/Games, desc: "Games trailer"}
- {id: 90, cat: Console/PS4, desc: "Games Ps4"}
- {id: 86, cat: Console/PS3, desc: "Games xbox / ps3"}
- {id: 92, cat: PC/Games, desc: "Games nrated"}
- {id: 92, cat: PC/Games, desc: "Games unrated"}
# Software
- {id: 7, cat: PC/0day, desc: "Software Windows"}
- {id: 20, cat: PC/Mobile-Android, desc: "Software Android Apps"}

View File

@@ -33,6 +33,7 @@ caps:
- {id: 65, cat: Movies, desc: "Films FSCR"}
- {id: 66, cat: Movies, desc: "Films CamTS"}
- {id: 67, cat: Movies, desc: "Films Pack Films"}
- {id: 129, cat: Movies, desc: "Films QC~Film"}
- {id: 68, cat: Movies, desc: "Films VostFR"}
- {id: 69, cat: Movies, desc: "Films VO"}
- {id: 70, cat: Movies/WEB-DL, desc: "Films WebRip 1080p"}
@@ -40,7 +41,7 @@ caps:
- {id: 73, cat: Movies/WEB-DL, desc: "Films Webrip"}
- {id: 72, cat: Movies/WEB-DL, desc: "Films WEB DL"}
- {id: 99, cat: Movies, desc: "Films Remux"}
- {id: 98, cat: TV/Anime, desc: "Films Film Animées"}
- {id: 98, cat: Movies/Other, desc: "Films Film Animées"}
- {id: 122, cat: Movies/WEB-DL, desc: "Films Web-DL 1080P"}
- {id: 123, cat: Movies/WEB-DL, desc: "Films WEB-DL 720p"}
- {id: 126, cat: Movies, desc: "Films HDTV"}
@@ -71,6 +72,7 @@ caps:
- {id: 107, cat: Audio/MP3, desc: "Musiques MP3"}
- {id: 108, cat: Audio/Lossless, desc: "Musiques FLAC"}
- {id: 109, cat: Audio, desc: "Musiques WMA"}
- {id: 132, cat: Audio, desc: "Musiques QC~Musique"}
# Séries
- {id: 76, cat: TV/HD, desc: "Series Blu-Ray"}
- {id: 77, cat: TV/HD, desc: "Series HDTV"}
@@ -88,10 +90,13 @@ caps:
- {id: 97, cat: TV/Anime, desc: "Series Animée"}
- {id: 88, cat: TV, desc: "Series Pack HD"}
- {id: 128, cat: TV, desc: "Series Pack SD"}
- {id: 130, cat: TV, desc: "SeriesQC~Serie"}
# Spéctacle
- {id: 131, cat: TV, desc: "SeriesQC~Spectacle"}
- {id: 91, cat: TV/Other, desc: "Spectacle 720p"}
- {id: 90, cat: TV/Other, desc: "Spectacle 1080p"}
# Télévision
- {id: 133, cat: TV, desc: "TV QC~Tv"}
- {id: 74, cat: TV/HD, desc: "TV TVHD"}
- {id: 75, cat: TV, desc: "TV TVRip"}
- {id: 92, cat: TV/Other, desc: "TV Spectacles"}
@@ -242,11 +247,23 @@ search:
- name: regexp
args: "src=(.*?)><"
grabs:
selector: td:nth-last-child(4)
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "Completé : </b>(\\d+)<"
seeders:
selector: td:nth-last-child(3)
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "=green>(\\d+)<"
leechers:
selector: td:nth-last-child(2)
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: "=red>(\\d+)<"
size:
selector: a[onmouseover][href^="torrents-details.php?id="]
attribute: onmouseover

View File

@@ -12,9 +12,9 @@ caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 5, cat: PC/0day, desc: "Appz"}
- {id: 4, cat: PC/Games, desc: "Games"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: PC/Games, desc: "Games"}
- {id: 5, cat: PC/0day, desc: "Appz"}
- {id: 8, cat: Books, desc: "Bookz"}
modes:
@@ -98,11 +98,15 @@ search:
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
selector: i.torrent-icon
attribute: class
case:
i.fa-film: 1
i.fa-tv-retro: 2
i.fa-music: 3
i.fa-gamepad: 4
i.fa-compact-disc: 5
i.fa-book-open: 8
title:
selector: a.view-torrent
download:
@@ -122,7 +126,7 @@ search:
- name: replace
args: ["&w=52&h=80", "&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", ""]
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/52x80&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:
@@ -200,4 +204,4 @@ search:
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# UNIT3D 5.1.0 DB-edition
# UNIT3D 5.1.0 DBy-edition 0.75

View File

@@ -136,9 +136,9 @@ search:
- path: selection.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}}"
search: "{{ .Keywords }}"
# 0 name, 1 descr, 2 both
blah: "0"
blah: 0
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"

View File

@@ -10,7 +10,7 @@ links:
- https://www.demonoid.is/
- https://www.dnoid.to/
- https://www.dnoid.pw/
- https://demonoid.unblockit.onl/
- https://demonoid.unblockit.li/
- https://demonoid.torrentbay.to/
- https://demonoid.nocensor.space/
legacylinks:
@@ -33,6 +33,7 @@ legacylinks:
- https://demonoid.unblockit.link/
- https://demonoid.unblockit.buzz/
- https://demonoid.unblockit.club/
- https://demonoid.unblockit.onl/
caps:
categorymappings:

View File

@@ -24,6 +24,7 @@ caps:
- {id: 89, cat: Movies/HD, desc: "BDRemux"}
- {id: 88, cat: Movies/BluRay, desc: "Full HD"}
- {id: 90, cat: Movies/BluRay, desc: "UHD Full"}
- {id: 92, cat: Movies/UHD, desc: "Web-DL UHD"}
- {id: 23, cat: TV/Sport, desc: "Deportes"}
- {id: 20, cat: TV/HD, desc: "Series"}
- {id: 31, cat: TV/HD, desc: "Series VOSE"}

View File

@@ -1,168 +0,0 @@
---
id: epizod
name: Epizod
description: "Epizod is a FRENCH Public tracker for MOVIES / TV"
language: fr-fr
type: public
encoding: UTF-8
links:
- https://wwv.epizod.tv/
legacylinks:
- https://www.epizod.tv/
caps:
categorymappings:
- {id: series, cat: TV, desc: SÉRIES}
- {id: films, cat: Movies, desc: FILMS}
- {id: musique, cat: Audio, desc: MUSIQUE}
- {id: albums, cat: Audio, desc: ALBUMS}
- {id: ebook, cat: Books, desc: EBOOK}
- {id: jeux, cat: Console, desc: GAMES}
- {id: other, cat: Other, desc: OTHER}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- 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: flaresolverr
type: info
label: FlareSolverr
default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
download:
selector: a[href^="magnet:?xt="]
attribute: href
search:
paths:
# https://www.epizod.tv/?s=
- path: /
inputs:
s: "{{ .Keywords }}"
headers:
# Windows User-Agent is required, Linux is blocked
User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"]
rows:
selector: li[class^="ilovewp-post"]:not(:has(a[title="DMCA"]))
fields:
category1:
selector: a[href*="/category/"]
attribute: href
optional: true
filters:
- name: split
args: ["/", 4]
category2:
selector: li[class^="ilovewp-post"]
attribute: class
optional: true
filters:
- name: regexp
args: "category-(.+?) "
category3:
selector: img[src*="img"]
attribute: src
optional: true
filters:
- name: regexp
args: "img/(.+?)_"
- name: replace
args: ["ebooks", "ebook"]
category:
text: "{{ if or .Result.category1 .Result.category2 .Result.category3 }}{{ or .Result.category1 .Result.category2 .Result.category3 }}{{ else }}other{{ end }}"
sizecat:
text: "{{ if or .Result.category1 .Result.category2 .Result.category3 }}{{ or .Result.category1 .Result.category2 .Result.category3 }}{{ else }}other{{ end }}"
site_date:
selector: time > a
filters:
# year can be at the end of the title, so we get it and name it site_date
- name: regexp
args: "(19|20\\d{2})$"
title_phase1:
selector: time > a
attribute: title
filters:
# now we put the date at the right place according scene naming rules using .Result.site_date
- name: re_replace
args: ["(?i)( FRENCH)", " {{ .Result.site_date }} FRENCH"]
- name: re_replace
args: ["(?i)( MULTI)", " {{ .Result.site_date }} MULTI"]
- name: re_replace
args: ["(?i)( TRUEFRENCH)", " {{ .Result.site_date }} TRUEFRENCH"]
- name: re_replace
args: ["(?i)( VOSTFR)", " {{ .Result.site_date }} VOSTFR"]
- name: re_replace
args: ["(?i)( SUBFRENCH)", " {{ .Result.site_date }} SUBFRENCH"]
# and we delete it at the end
- name: re_replace
args: ["(19|20\\d{2})$", ""]
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: h2.title-post > a
attribute: href
download:
selector: h2.title-post > a
attribute: href
poster:
selector: img[data-lazy-src]
attribute: data-lazy-src
date:
selector: time
attribute: datetime
filters:
- name: replace
args: ["T", " "]
- name: dateparse
args: "2006-01-02 15:04:05-07:00"
size:
text: "{{ if eq .Result.sizecat \"ebook\" }}1 MB{{ else }}{{ end }}{{ if or (eq .Result.sizecat \"albums\") (eq .Result.sizecat \"musique\") }}128 MB{{ else }}{{ end }}{{ if or (eq .Result.sizecat \"series\") (eq .Result.sizecat \"other\") }}512 MB{{ else }}{{ end }}{{ if eq .Result.sizecat \"jeux\" }}1 GB{{ else }}{{ end }}{{ if eq .Result.sizecat \"films\" }}2 GB{{ else }}{{ end }}"
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine wordpress

View File

@@ -1,205 +0,0 @@
---
id: erzsebet
name: Erzsebet
description: "Erzsebet is a RUSSIAN Semi-Private Torrent Tracker for 3X"
language: ru-ru
type: semi-private
encoding: UTF-8
links:
- https://erzsebet.org/
caps:
categorymappings:
- {id: 9, cat: XXX, desc: "Feature, Vignettes, Classic / Фильмы с сюжетом и Классичес..."}
- {id: 11, cat: XXX, desc: "Gonzo & All Sex / Гонзо-фильмы и Фильмы без сюжета"}
- {id: 13, cat: XXX, desc: "All Girl & Solo / Лесбо-фильмы"}
- {id: 12, cat: XXX, desc: "Ethnic-Themed / Этнические фильмы"}
- {id: 176, cat: XXX, desc: "Mobile, Pocket РС & Phone / Фильмы для моби..."}
- {id: 157, cat: XXX, desc: "Full Length Movies Packs / Паки фильмов"}
- {id: 16, cat: XXX, desc: "Feature, Vignettes, Classic (HD) / Фильмы с сюжет..."}
- {id: 18, cat: XXX, desc: "Gonzo & All Sex, All Girl & Solo, Ethnic-Themed..."}
- {id: 180, cat: XXX, desc: "Full Length Movies (DVD) / Фильмы (DVD)"}
- {id: 246, cat: XXX, desc: "Full Length Movies (Blu-Ray) / Фильмы (Blu-Ray)"}
- {id: 48, cat: XXX, desc: "Clips (various) / Порно Разное"}
- {id: 32, cat: XXX, desc: "SiteRip's & Movie Scenes / Сайтрипы и сцены ..."}
- {id: 45, cat: XXX, desc: "SiteRip's & Movie Scenes (HD) / Сайтрипы и сцены..."}
- {id: 177, cat: XXX, desc: "3D & Virtual Reality Videos (VR) / Видео в 3D и..."}
- {id: 43, cat: XXX, desc: "Actresses Clips Packs / Паки по актрисам"}
- {id: 39, cat: XXX, desc: "SiteRip's Packs / Паки сайтрипов"}
- {id: 52, cat: XXX, desc: "Russian Clips (various) / Порно Разное с русскими актрисам..."}
- {id: 53, cat: XXX, desc: "Russian SiteRip's & Movie Scenes / Сайтрип..."}
- {id: 54, cat: XXX, desc: "Russian SiteRip's & Movie Scenes (HD) / Сайтрипы..."}
- {id: 56, cat: XXX, desc: "Russian Full Length Movies / Русские полнометражные фильмы"}
- {id: 50, cat: XXX, desc: "Russian Clips Packs / Паки русского и по русским актрисам"}
- {id: 59, cat: XXX, desc: "Amateur Picture / Любительское фото"}
- {id: 58, cat: XXX, desc: "Amateur Video & WebCams / Любительское видео"}
- {id: 128, cat: XXX, desc: "Amateur Packs / Паки любительского"}
- {id: 129, cat: XXX, desc: "Bukkake, Glory Hole, Cumshot Compilation, BlowGangBang ..."}
- {id: 130, cat: XXX, desc: "Squirting & Lesbian Bukkake / Лесбо и соло сквиртинг"}
- {id: 120, cat: XXX, desc: "Fisting, Dildo & Toys / Фистинг, фаллоимита..."}
- {id: 131, cat: XXX, desc: "LegalPorno.com / Сайтрипы студии Legal Porno "}
- {id: 64, cat: XXX, desc: "BDSM / БДСМ"}
- {id: 65, cat: XXX, desc: "Fetish / Фетиш"}
- {id: 66, cat: XXX, desc: "Peeing / Мочеиспускание"}
- {id: 67, cat: XXX, desc: "Pregnant / Беременные"}
- {id: 68, cat: XXX, desc: "Femdom & Strapon / Женское доминирование и страпон"}
- {id: 71, cat: XXX, desc: "Kaviar Movies / Копрофилия"}
- {id: 81, cat: XXX, desc: "Picture Gallery / Порнофотографии"}
- {id: 80, cat: XXX, desc: "Misc & Special Interest Picture / Тематичес..."}
- {id: 79, cat: XXX, desc: "Magazines, Comix & Artwork / Журналы, ком..."}
- {id: 78, cat: XXX, desc: "Picture Packs / Паки фотографий"}
- {id: 178, cat: XXX, desc: "Erotic Video Library / Эротические студии (видео)"}
- {id: 85, cat: XXX, desc: "Adult Games / Порноигры"}
- {id: 83, cat: XXX, desc: "Hentai, Manga & Cartoons / Хентай, Манга и Мультфильм..."}
- {id: 252, cat: XXX, desc: "Chinese Porn / Китайское порно"}
- {id: 89, cat: XXX, desc: "Japanese Porn / Японское порно"}
- {id: 188, cat: XXX, desc: "Erotic Movies, Documentary & Reality / Эротически..."}
- {id: 219, cat: XXX, desc: "Cinema / Зарубежный Кинематограф"}
- {id: 218, cat: XXX, desc: "Cinema Series / Зарубежные сериалы"}
- {id: 217, cat: XXX, desc: "Cinema (Russian) / Кинематограф СССР, России и бы..."}
- {id: 216, cat: XXX, desc: "Russian Series / Русские сериалы"}
- {id: 215, cat: XXX, desc: "Cartoons & Anime / Мультфильмы и Аниме"}
- {id: 214, cat: XXX, desc: "Music (Audio) / Музыка (Аудио)"}
- {id: 213, cat: XXX, desc: "Music (Video) / Музыка (Видео)"}
- {id: 212, cat: XXX, desc: "Games / Игры"}
- {id: 211, cat: XXX, desc: "Soft / Софт"}
- {id: 251, cat: XXX, desc: "International Releases / Иностранные релизы"}
- {id: 210, cat: XXX, desc: "Various / Разное"}
- {id: 250, cat: XXX, desc: "Cinema (LGBT) / Кинематограф (ЛГБТ)"}
- {id: 205, cat: XXX, desc: "Shemale Transsexual / Транссексуалы"}
- {id: 204, cat: XXX, desc: "Bisexual / Бисексуалы"}
- {id: 206, cat: XXX, desc: "Gay Clips & Movie Scenes / Ролики, SiteRip'ы..."}
- {id: 208, cat: XXX, desc: "Full Length Gay Movies / Полнометражные гей-фильмы"}
- {id: 209, cat: XXX, desc: "Gay Magazines, Photo, Rest / Гей-журналы, фото, разное"}
- {id: 125, cat: XXX, desc: "Archive / Архив"}
modes:
search: [q]
tv-search: [q]
movie-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: 1
options:
1: created
10: seeders
7: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
login:
path: login.php
method: form
form: form[action="login.php"]
inputs:
login_username: "{{ .Config.username }}"
login_password: "{{ .Config.password }}"
autologin: 1
error:
- selector: table.error
test:
path: index.php
selector: a[href="./login.php?logout=1"]
search:
paths:
- path: tracker.php
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:
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
prev_allw: 1
prev_a: 0
prev_dla: 0
prev_dlc: 0
prev_dld: 0
prev_dlw: 0
prev_my: 0
prev_new: 0
prev_sd: 0
prev_da: 1
prev_dc: 0
prev_df: 1
prev_ds: 0
prev_tor_type: 0
o: "{{ .Config.sort }}"
s: "{{ .Config.type }}"
# show category
dc: 0
# show forum
df: 1
# show author
da: 1
# show speed
ds: 0
# -1=all time
tm: -1
# seed not seen -1=disregard
sns: -1
# group releases -1=not selected
srg: -1
# title search
nm: "{{ .Keywords }}"
# find a username
pn: ""
# search by partial word
allw: 0
rows:
selector: tr[id^="tor_"]:has(a[href^="./dl.php?id="])
fields:
category:
selector: a.gen
attribute: href
filters:
- name: querystring
args: f
title:
selector: a.tLink
details:
selector: a.tLink
attribute: href
download:
selector: a[href^="./dl.php?id="]
attribute: href
magnet:
optional: true
selector: a[href^="magnet:?xt="]
attribute: href
size:
selector: td:nth-child(6) > u
seeders:
selector: td.seedmed > b
leechers:
selector: td.leechmed > b
grabs:
selector: td:nth-child(9)
date:
# unix
selector: td:last-child > u
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# TorrentPier

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.ettvcentral.com/
- https://ettv.unblockninja.com/
- https://ettv.unblockit.onl/
- https://ettv.unblockit.li/
- https://ettv.nocensor.space/
legacylinks:
- https://www.ettv.tv/
@@ -41,6 +41,7 @@ legacylinks:
- https://ettv.unblockit.buzz/
- https://ettv.unblocked.monster/
- https://ettv.unblockit.club/
- https://ettv.unblockit.onl/
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
links:
- https://extratorrents.it/
- https://extratorrent.unblockit.onl/
- https://extratorrent.unblockit.li/
- https://extratorrent.nocensor.space/
legacylinks:
- https://extratorrent.ag/
@@ -18,6 +18,7 @@ legacylinks:
- https://extratorrent2.unblockninja.com/
- https://extratorrent.unblockit.buzz/
- https://extratorrent.unblockit.club/
- https://extratorrent.unblockit.onl/
caps:
categorymappings:
@@ -943,7 +944,7 @@ settings: []
search:
paths:
- path: "{{ if .Keywords }}search/?search={{ .Keywords }}{{ else }}/home{{ end }}"
- path: "{{ if .Keywords }}search/?search={{ .Keywords }}{{ else }}home{{ end }}"
rows:
selector: tr[class^="tl"]

View File

@@ -12,7 +12,7 @@ links:
- https://eztv.tf/
- https://eztv.yt/
- https://eztv.unblockninja.com/
- https://eztv.unblockit.onl/
- https://eztv.unblockit.li/
- https://eztv.nocensor.space/
legacylinks:
- https://eztv.ag/ # redirects to .re
@@ -44,6 +44,7 @@ legacylinks:
- https://eztv.unblockit.buzz/
- https://eztv.unblocked.monster/
- https://eztv.unblockit.club/
- https://eztv.unblockit.onl/
caps:
categories:

View File

@@ -11,16 +11,6 @@ links:
caps:
categorymappings:
# when refreshing categories dont forget to update the category case block
- {id: 94, cat: TV/Sport, desc: "sport catch"}
- {id: 93, cat: TV/Sport, desc: "sport catch"}
- {id: 96, cat: TV/Sport, desc: "sport sport"}
- {id: 97, cat: TV/Sport, desc: "sport divers"}
- {id: 81, cat: TV/Anime, desc: "Animation Séries"}
- {id: 79, cat: Movies/HD, desc: "Animation Film"}
- {id: 65, cat: TV/Documentary, desc: "Documentaires Divers"}
- {id: 66, cat: TV/Documentary, desc: "Documentaires audio"}
- {id: 74, cat: Books/EBook, desc: "Documentaires Ebook"}
- {id: 75, cat: Audio/Audiobook, desc: "Documentaires Ebook audio"}
- {id: 2, cat: Movies/DVD, desc: "Film DVDRip"}
- {id: 99, cat: Movies/HD, desc: "Film Hdrip"}
- {id: 98, cat: Movies/WEB-DL, desc: "Film Webrip"}
@@ -28,11 +18,10 @@ caps:
- {id: 87, cat: Movies/HD, desc: "Film REMUX"}
- {id: 70, cat: Movies/BluRay, desc: "Film BRRiP - BDRiP"}
- {id: 69, cat: Movies/DVD, desc: "Film DVD-r"}
- {id: 67, cat: Movies/Other, desc: "Film Vob"}
- {id: 67, cat: Movies/3D, desc: "Film 3D Bluray"}
- {id: 59, cat: Movies/Other, desc: "Film Divers"}
- {id: 19, cat: Movies/HD, desc: "Film 720P"}
- {id: 17, cat: Movies/Other, desc: "Film Iso"}
- {id: 16, cat: Movies/WEB-DL, desc: "Film Webrip - HDrip"}
- {id: 15, cat: Movies/BluRay, desc: "Film Bluray Full"}
- {id: 4, cat: Movies/HD, desc: "Film 1080P"}
- {id: 102, cat: Movies/UHD, desc: "Film HDR"}
@@ -51,19 +40,34 @@ caps:
- {id: 63, cat: TV/Other, desc: "Pack_Series Divers"}
- {id: 71, cat: TV/HD, desc: "Pack_Series BRRiP - BDRiP"}
- {id: 82, cat: TV/Anime, desc: "Pack_Series Animation"}
- {id: 10, cat: XXX, desc: "XxX 18 Film"}
- {id: 112, cat: TV/HD, desc: "Pack_Series HDTV"}
- {id: 105, cat: Books/Mags, desc: "Livres Magazine"}
- {id: 116, cat: Books, desc: "Livres Cuisine"}
- {id: 123, cat: Books, desc: "Livres Roman"}
- {id: 113, cat: Books/EBook, desc: "Livres Ebook"}
- {id: 106, cat: Books, desc: "Livres Presse"}
- {id: 108, cat: Books/Comics, desc: "Livres Manga"}
- {id: 110, cat: Audio/Audiobook, desc: "Livres Audio"}
- {id: 109, cat: Books/Comics, desc: "Livres Bd"}
- {id: 125, cat: XXX/Other, desc: "livres XXX"}
- {id: 65, cat: TV/Documentary, desc: "Documentaires Divers"}
- {id: 13, cat: PC/0day, desc: "Apps Win"}
- {id: 14, cat: PC/Mac, desc: "Apps Mac"}
- {id: 52, cat: PC/Mobile-iOS, desc: "Apps Iphone"}
- {id: 53, cat: PC/Mobile-Android, desc: "Apps android"}
- {id: 81, cat: TV/Anime, desc: "Animation Séries"}
- {id: 79, cat: Movies/HD, desc: "Animation Film"}
- {id: 5, cat: Audio/MP3, desc: "Music Mp3"}
- {id: 6, cat: Audio/Lossless, desc: "Music FLAC"}
- {id: 97, cat: TV/Sport, desc: "Sport Divers"}
- {id: 96, cat: TV/Sport, desc: "Sport Sport"}
- {id: 7, cat: PC/Games, desc: "Jeux Win"}
- {id: 8, cat: Console/PS3, desc: "Jeux PS3"}
- {id: 54, cat: PC/Games, desc: "Jeux Pc"}
- {id: 55, cat: Console/PS4, desc: "Jeux PS4"}
- {id: 56, cat: Console/XBox 360, desc: "Jeux XBOX 360"}
- {id: 57, cat: Console/Other, desc: "Jeux androïd"}
- {id: 10, cat: XXX, desc: "XxX 18 Film"}
modes:
search: [q]
@@ -161,16 +165,6 @@ search:
selector: div.kat_cat_pic
filters:
case:
":contains(\"sport\"):contains(\"catch\")": 94
":contains(\"sport\"):contains(\"catch\")": 93
":contains(\"sport\"):contains(\"sport\")": 96
":contains(\"sport\"):contains(\"divers\")": 97
":contains(\"Animation\"):contains(\"Séries\")": 81
":contains(\"Animation\"):contains(\"Film\")": 79
":contains(\"Documentaires\"):contains(\"Divers\")": 65
":contains(\"Documentaires\"):contains(\"audio\")": 66
":contains(\"Documentaires\"):contains(\"Ebook\")": 74
":contains(\"Documentaires\"):contains(\"Ebook audio\")": 75
":contains(\"Film\"):contains(\"DVDRip\")": 2
":contains(\"Film\"):contains(\"Hdrip\")": 99
":contains(\"Film\"):contains(\"Webrip\")": 98
@@ -178,12 +172,11 @@ search:
":contains(\"Film\"):contains(\"REMUX\")": 87
":contains(\"Film\"):contains(\"BRRiP - BDRiP\")": 70
":contains(\"Film\"):contains(\"DVD-r\")": 69
":contains(\"Film\"):contains(\"Vob\")": 67
":contains(\"Film\"):contains(\"3D\")": 67
":contains(\"Film\"):contains(\"Divers\")": 59
":contains(\"Film\"):contains(\"720P\")": 19
":contains(\"Film\"):contains(\"Iso\")": 17
":contains(\"Film\"):contains(\"Webrip\")": 16
":contains(\"Film\"):contains(\"Bluray\")": 15
":contains(\"Film\"):contains(\"Full\")": 15
":contains(\"Film\"):contains(\"1080P\")": 4
":contains(\"Film\"):contains(\"HDR\")": 102
":contains(\"Serie\"):contains(\"1080P\")": 46
@@ -201,19 +194,34 @@ search:
":contains(\"Pack_Series\"):contains(\"Divers\")": 63
":contains(\"Pack_Series\"):contains(\"BRRiP - BDRiP\")": 71
":contains(\"Pack_Series\"):contains(\"Animation\")": 82
":contains(\"XxX\"):contains(\"Film\")": 10
":contains(\"Pack_Series\"):contains(\"HDTV\")": 112
":contains(\"Livres\"):contains(\"Magazine\")": 105
":contains(\"Livres\"):contains(\"Cuisine\")": 116
":contains(\"Livres\"):contains(\"Roman\")": 123
":contains(\"Livres\"):contains(\"Ebook\")": 113
":contains(\"Livres\"):contains(\"Presse\")": 106
":contains(\"Livres\"):contains(\"Manga\")": 108
":contains(\"Livres\"):contains(\"Audio\")": 110
":contains(\"Livres\"):contains(\"Bd\")": 109
":contains(\"Livres\"):contains(\"XXX\")": 125
":contains(\"Documentaires\"):contains(\"Divers\")": 65
":contains(\"Apps\"):contains(\"Win\")": 13
":contains(\"Apps\"):contains(\"Mac\")": 14
":contains(\"Apps\"):contains(\"Iphone\")": 52
":contains(\"Apps\"):contains(\"android\")": 53
":contains(\"Animation\"):contains(\"Séries\")": 81
":contains(\"Animation\"):contains(\"Film\")": 79
":contains(\"Music\"):contains(\"Mp3\")": 5
":contains(\"Music\"):contains(\"FLAC\")": 6
":contains(\"Sport\"):contains(\"Divers\")": 97
":contains(\"Sport\"):contains(\"Sport\")": 96
":contains(\"Jeux\"):contains(\"Win\")": 7
":contains(\"Jeux\"):contains(\"PS3\")": 8
":contains(\"Jeux\"):contains(\"Pc\")": 54
":contains(\"Jeux\"):contains(\"PS4\")": 55
":contains(\"Jeux\"):contains(\"XBOX 360\")": 56
":contains(\"Jeux\"):contains(\"androïd\")": 57
":contains(\"XxX\"):contains(\"Film\")": 10
title_phase1:
selector: a[href^="details.php?id="]
title_multilang:

View File

@@ -1,367 +0,0 @@
---
id: galeriens
name: Galeriens
description: "Galeriens is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-fr
type: private
encoding: UTF-8
links:
- https://galeriens.com/
legacylinks:
- https://galeriens.eu/
caps:
categorymappings:
- {id: 4, cat: Movies/UHD, desc: "Animations - 4K Remux"}
- {id: 1, cat: Movies/3D, desc: "Animations - 3D"}
- {id: 3, cat: Movies/UHD, desc: "Animations - 4K Light"}
- {id: 2, cat: Movies/UHD, desc: "Animations - 4K UHD"}
- {id: 5, cat: Movies/UHD, desc: "Animations - 4K UHD Bluray"}
- {id: 6, cat: Movies/BluRay, desc: "Animations - BDRip-BRRIP"}
- {id: 7, cat: Movies/BluRay, desc: "Animations - BluRay-R"}
- {id: 8, cat: Movies, desc: "Animations - Coffret Films"}
- {id: 9, cat: Movies/DVD, desc: "Animations - DVD-R"}
- {id: 10, cat: Movies/DVD, desc: "Animations - DVDRip"}
- {id: 11, cat: Movies/HD, desc: "Animations - HD 1080P"}
- {id: 12, cat: Movies/HD, desc: "Animations - HD 720P"}
- {id: 13, cat: Movies/HD, desc: "Animations - HDRiP"}
- {id: 16, cat: Movies/HD, desc: "Animations - HDTV"}
- {id: 14, cat: Movies/HD, desc: "Animations - HDTV 1080p"}
- {id: 15, cat: Movies/HD, desc: "Animations - HDTV 720p"}
- {id: 17, cat: Movies, desc: "Animations - Jap-Animation"}
- {id: 18, cat: Movies/HD, desc: "Animations - M-HD 1080p"}
- {id: 19, cat: Movies/HD, desc: "Animations - M-HD 720p"}
- {id: 20, cat: Movies, desc: "Animations - Remux"}
- {id: 21, cat: Movies/WEB-DL, desc: "Animations - TVRip"}
- {id: 24, cat: Movies/WEB-DL, desc: "Animations - WEB-DL"}
- {id: 22, cat: Movies/WEB-DL, desc: "Animations - WEB-DL 1080p"}
- {id: 23, cat: Movies/WEB-DL, desc: "Animations - WEB-DL 720p"}
- {id: 25, cat: Movies/WEB-DL, desc: "Animations - WEBRip"}
- {id: 26, cat: Movies/HD, desc: "Animations - X265"}
- {id: 49, cat: TV/Documentary, desc: "Documentaires - Doc-Spectacle"}
- {id: 48, cat: TV/Documentary, desc: "Documentaires - Emission TV"}
- {id: 51, cat: TV/Documentary, desc: "Documentaires - Film"}
- {id: 50, cat: TV/Sport, desc: "Documentaires - Sport"}
- {id: 57, cat: Movies/3D, desc: "Films - 3D"}
- {id: 59, cat: Movies/UHD, desc: "Films - 4K Light"}
- {id: 60, cat: Movies/UHD, desc: "Films - 4K Remux"}
- {id: 61, cat: Movies/UHD, desc: "Films - 4K UHD"}
- {id: 58, cat: Movies/UHD, desc: "Films - 4K UHD Bluray"}
- {id: 62, cat: Movies/BluRay, desc: "Films - BDRip-BRRIP"}
- {id: 63, cat: Movies/BluRay, desc: "Films - BluRay-R"}
- {id: 64, cat: Movies, desc: "Films - Coffret Films"}
- {id: 65, cat: Movies/DVD, desc: "Films - DVD-R"}
- {id: 66, cat: Movies/DVD, desc: "Films - DVDRip"}
- {id: 67, cat: Movies/HD, desc: "Films - HD 1080P"}
- {id: 68, cat: Movies/HD, desc: "Films - HD 720P"}
- {id: 69, cat: Movies/HD, desc: "Films - HDRiP"}
- {id: 72, cat: Movies/HD, desc: "Films - HDTV"}
- {id: 70, cat: Movies/HD, desc: "Films - HDTV 1080p"}
- {id: 71, cat: Movies/HD, desc: "Films - HDTV 720p"}
- {id: 73, cat: Movies/HD, desc: "Films - M-HD 1080p"}
- {id: 74, cat: Movies/HD, desc: "Films - M-HD 720p"}
- {id: 75, cat: Movies, desc: "Films - Remux"}
- {id: 76, cat: Movies/WEB-DL, desc: "Films - TVRip"}
- {id: 77, cat: Movies/WEB-DL, desc: "Films - WEB-DL"}
- {id: 78, cat: Movies/WEB-DL, desc: "Films - WEB-DL 1080p"}
- {id: 79, cat: Movies/WEB-DL, desc: "Films - WEB-DL 720p"}
- {id: 80, cat: Movies/WEB-DL, desc: "Films - WEBRip"}
- {id: 81, cat: Movies/HD, desc: "Films - X265"}
- {id: 82, cat: Movies/3D, desc: "Films-VOSTFR - 3D"}
- {id: 84, cat: Movies/UHD, desc: "Films-VOSTFR - 4K Light"}
- {id: 85, cat: Movies/UHD, desc: "Films-VOSTFR - 4K Remux"}
- {id: 86, cat: Movies/UHD, desc: "Films-VOSTFR - 4K UHD"}
- {id: 83, cat: Movies/UHD, desc: "Films-VOSTFR - 4K UHD Bluray"}
- {id: 87, cat: Movies/BluRay, desc: "Films-VOSTFR - BDRip-BRRIP"}
- {id: 88, cat: Movies/BluRay, desc: "Films-VOSTFR - BluRay-R"}
- {id: 89, cat: Movies, desc: "Films-VOSTFR - Coffret Films"}
- {id: 90, cat: Movies/DVD, desc: "Films-VOSTFR - DVD-R"}
- {id: 91, cat: Movies/DVD, desc: "Films-VOSTFR - DVDRip"}
- {id: 92, cat: Movies/HD, desc: "Films-VOSTFR - HD 1080P"}
- {id: 93, cat: Movies/HD, desc: "Films-VOSTFR - HD 720P"}
- {id: 94, cat: Movies/HD, desc: "Films-VOSTFR - HDRiP"}
- {id: 97, cat: Movies/HD, desc: "Films-VOSTFR - HDTV"}
- {id: 95, cat: Movies/HD, desc: "Films-VOSTFR - HDTV 1080p"}
- {id: 96, cat: Movies/HD, desc: "Films-VOSTFR - HDTV 720p"}
- {id: 98, cat: Movies/HD, desc: "Films-VOSTFR - M-HD 1080p"}
- {id: 99, cat: Movies/HD, desc: "Films-VOSTFR - M-HD 720p"}
- {id: 100, cat: Movies, desc: "Films-VOSTFR - Remux"}
- {id: 101, cat: Movies/WEB-DL, desc: "Films-VOSTFR - TVRip"}
- {id: 102, cat: Movies/WEB-DL, desc: "Films-VOSTFR - WEB-DL"}
- {id: 103, cat: Movies/WEB-DL, desc: "Films-VOSTFR - WEB-DL 1080p"}
- {id: 104, cat: Movies/WEB-DL, desc: "Films-VOSTFR - WEB-DL 720p"}
- {id: 105, cat: Movies/WEB-DL, desc: "Films-VOSTFR - WEBRip"}
- {id: 106, cat: Movies/HD, desc: "Films-VOSTFR - X265"}
- {id: 107, cat: Console/3DS, desc: "Jeux - 3DS-DS"}
- {id: 108, cat: PC/Mobile-iOS, desc: "Jeux - IOS-OSX"}
- {id: 109, cat: PC/Games, desc: "Jeux - PC"}
- {id: 110, cat: Console/PS3, desc: "Jeux - PS3 - PS4"}
- {id: 111, cat: Console/PSP, desc: "Jeux - PSP-PSX"}
- {id: 112, cat: Console/Wii, desc: "Jeux - WII"}
- {id: 113, cat: Console/WiiU, desc: "Jeux - WII-U"}
- {id: 114, cat: Console/XBox, desc: "Jeux - XBOX"}
- {id: 52, cat: Books, desc: "Livres - BD"}
- {id: 56, cat: Audio/Audiobook, desc: "Livres - Livres Audio"}
- {id: 55, cat: Books/Comics, desc: "Livres - Mangas"}
- {id: 54, cat: Books/Mags, desc: "Livres - Press"}
- {id: 53, cat: Books/EBook, desc: "Livres - Romans"}
- {id: 115, cat: PC/Mobile-Android, desc: "Logiciels - ANDROID"}
- {id: 118, cat: PC/Mac, desc: "Logiciels - APPLE"}
- {id: 116, cat: PC/Mobile-iOS, desc: "Logiciels - IPHONE"}
- {id: 117, cat: PC, desc: "Logiciels - LINUX"}
- {id: 119, cat: PC/0day, desc: "Logiciels - WINDOWS"}
- {id: 120, cat: Audio/Lossless, desc: "Musiques - FLAC"}
- {id: 121, cat: Audio, desc: "Musiques - HQ"}
- {id: 122, cat: Audio/MP3, desc: "Musiques - MP3"}
- {id: 123, cat: Audio, desc: "Musiques - Spect/Concert"}
- {id: 27, cat: TV/HD, desc: "Series-Animee - BDRip-BRRIP"}
- {id: 28, cat: TV/HD, desc: "Series-Animee - BluRay-R"}
- {id: 29, cat: TV/SD, desc: "Series-Animee - DVD-R"}
- {id: 30, cat: TV/SD, desc: "Series-Animee - DVDRip"}
- {id: 32, cat: TV/HD, desc: "Series-Animee - HD 1080P"}
- {id: 31, cat: TV/HD, desc: "Series-Animee - HD 720P"}
- {id: 33, cat: TV/HD, desc: "Series-Animee - HDRiP"}
- {id: 34, cat: TV/HD, desc: "Series-Animee - HDTV"}
- {id: 35, cat: TV/HD, desc: "Series-Animee - HDTV 1080p"}
- {id: 36, cat: TV/HD, desc: "Series-Animee - HDTV 720p"}
- {id: 37, cat: TV/HD, desc: "Series-Animee - M-HD 1080p"}
- {id: 38, cat: TV/HD, desc: "Series-Animee - M-HD 720p"}
- {id: 47, cat: TV/Anime, desc: "Series-Animee - Pack Serie Animee"}
- {id: 39, cat: TV/Anime, desc: "Series-Animee - Remux"}
- {id: 46, cat: TV/Anime, desc: "Series-Animee - SERIE JAP-ANIM"}
- {id: 40, cat: TV/Anime, desc: "Series-Animee - TVRip"}
- {id: 41, cat: TV/Anime, desc: "Series-Animee - WEB-DL"}
- {id: 42, cat: TV/Anime, desc: "Series-Animee - WEB-DL 1080p"}
- {id: 43, cat: TV/Anime, desc: "Series-Animee - WEB-DL 720p"}
- {id: 44, cat: TV/Anime, desc: "Series-Animee - WEBRip"}
- {id: 45, cat: TV/HD, desc: "Series-Animee - X265"}
- {id: 124, cat: TV/HD, desc: "Series-FR - BDRip-BRRIP"}
- {id: 125, cat: TV/HD, desc: "Series-FR - BluRay-R"}
- {id: 126, cat: TV/SD, desc: "Series-FR - DVD-R"}
- {id: 127, cat: TV/SD, desc: "Series-FR - DVDRip"}
- {id: 128, cat: TV/HD, desc: "Series-FR - HD 1080P"}
- {id: 129, cat: TV/HD, desc: "Series-FR - HD 720P"}
- {id: 130, cat: TV/HD, desc: "Series-FR - HDRiP"}
- {id: 133, cat: TV/HD, desc: "Series-FR - HDTV"}
- {id: 131, cat: TV/HD, desc: "Series-FR - HDTV 1080p"}
- {id: 132, cat: TV/HD, desc: "Series-FR - HDTV 720p"}
- {id: 134, cat: TV/HD, desc: "Series-FR - M-HD 1080p"}
- {id: 135, cat: TV/HD, desc: "Series-FR - M-HD 720p"}
- {id: 136, cat: TV, desc: "Series-FR - Pack Serie"}
- {id: 137, cat: TV, desc: "Series-FR - Remux"}
- {id: 138, cat: TV/WEB-DL, desc: "Series-FR - TVRip"}
- {id: 141, cat: TV/WEB-DL, desc: "Series-FR - WEB-DL"}
- {id: 139, cat: TV/WEB-DL, desc: "Series-FR - WEB-DL 1080p"}
- {id: 140, cat: TV/WEB-DL, desc: "Series-FR - WEB-DL 720p"}
- {id: 142, cat: TV/WEB-DL, desc: "Series-FR - WEBRip"}
- {id: 143, cat: TV/HD, desc: "Series-FR - X265"}
- {id: 144, cat: TV/HD, desc: "Series-VOSTFR - BDRip-BRRIP"}
- {id: 145, cat: TV/HD, desc: "Series-VOSTFR - BluRay-R"}
- {id: 146, cat: TV/SD, desc: "Series-VOSTFR - DVD-R"}
- {id: 147, cat: TV/SD, desc: "Series-VOSTFR - DVDRip"}
- {id: 148, cat: TV/HD, desc: "Series-VOSTFR - HD 1080P"}
- {id: 149, cat: TV/HD, desc: "Series-VOSTFR - HD 720P"}
- {id: 150, cat: TV/HD, desc: "Series-VOSTFR - HDRiP"}
- {id: 153, cat: TV/HD, desc: "Series-VOSTFR - HDTV"}
- {id: 151, cat: TV/HD, desc: "Series-VOSTFR - HDTV 1080p"}
- {id: 152, cat: TV/HD, desc: "Series-VOSTFR - HDTV 720p"}
- {id: 154, cat: TV/HD, desc: "Series-VOSTFR - M-HD 1080p"}
- {id: 155, cat: TV/HD, desc: "Series-VOSTFR - M-HD 720p"}
- {id: 156, cat: TV, desc: "Series-VOSTFR - Pack Serie"}
- {id: 157, cat: TV, desc: "Series-VOSTFR - Remux"}
- {id: 158, cat: TV/WEB-DL, desc: "Series-VOSTFR - TVRip"}
- {id: 161, cat: TV/WEB-DL, desc: "Series-VOSTFR - WEB-DL"}
- {id: 159, cat: TV/WEB-DL, desc: "Series-VOSTFR - WEB-DL 1080p"}
- {id: 160, cat: TV/WEB-DL, desc: "Series-VOSTFR - WEB-DL 720p"}
- {id: 162, cat: TV/WEB-DL, desc: "Series-VOSTFR - WEBRip"}
- {id: 163, cat: TV/HD, desc: "Series-VOSTFR - X265"}
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
17: Multi
24: "Multi Truefrench"
18: Perse
19: Portuguais
20: Québécois
21: Russe
22: Suédois
23: Ukrainien
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\" }}"
selector: a[href*="/Telechargement/"]
attribute: href
search:
paths:
# https://galeriens.eu/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

@@ -36,16 +36,18 @@ caps:
- {id: 50, cat: Books/EBook, desc: "E-Books: Manuel Français"}
- {id: 66, cat: Movies, desc: "Films: VOSTFR"}
- {id: 65, cat: Movies, desc: "Films: VO"}
- {id: 55, cat: Movies/HD, desc: "Films: MHD x265"}
- {id: 54, cat: Movies/HD, desc: "Films: MHD HDlight"}
- {id: 55, cat: Movies/HD, desc: "Films: MHD x265"}
- {id: 69, cat: Movies/3D, desc: "Films: 3D"}
- {id: 110, cat: Movies/WEB-DL, desc: "Films: WEB"}
- {id: 2, cat: Movies/HD, desc: "Films: HD"}
- {id: 59, cat: Movies, desc: "Films: Spectacle"}
- {id: 110, cat: Movies/WEB-DL, desc: "Films: WEB"}
- {id: 154, cat: Movies/UHD, desc: "Films: AV1-2160p"}
- {id: 89, cat: Movies/SD, desc: "Films: SD"}
- {id: 153, cat: Movies/HD, desc: "Films: AV1-1080p"}
- {id: 59, cat: Movies, desc: "Films: Spectacle"}
- {id: 70, cat: Movies/HD, desc: "Films: X265"}
- {id: 92, cat: Movies/UHD, desc: "Films: 4K"}
- {id: 135, cat: Movies, desc: "Films: Noel"}
- {id: 155, cat: Movies/UHD, desc: "films: 4K X265"}
- {id: 87, cat: XXX, desc: "Films: XXX"}
- {id: 4, cat: Movies, desc: "Films: ISO"}
- {id: 151, cat: TV, desc: "Films: .Série animation"}
@@ -55,8 +57,8 @@ caps:
- {id: 97, cat: Audio, desc: "Musique: Podcast"}
- {id: 137, cat: Audio, desc: "Musique: Noel"}
- {id: 25, cat: Audio/MP3, desc: "Musique: Single MP3"}
- {id: 143, cat: Audio/MP3, desc: "Musique: Wav"}
- {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
- {id: 143, cat: Audio/MP3, desc: "Musique: Wav"}
- {id: 98, cat: Audio, desc: "Musique: karaoké"}
- {id: 58, cat: Audio, desc: "Musique: Concert"}
- {id: 24, cat: Audio/Lossless, desc: "Musique: Single Flac"}
@@ -64,8 +66,8 @@ caps:
- {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
- {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
- {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
- {id: 153, cat: TV, desc: "Serie TV: Saison VO"}
- {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
- {id: 63, cat: TV, desc: "Serie TV: Saison VO"}
- {id: 152, cat: TV, desc: "Serie TV: Episode VO"}
- {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
- {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
- {id: 12, cat: TV, desc: "Serie TV: Animation"}

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.gtdb.to/
- https://glodls.to/
- https://glotorrents.unblockit.onl/
- https://glotorrents.unblockit.li/
- https://glotorrents.nocensor.space/
legacylinks:
- https://glodls.rocks/
@@ -38,6 +38,7 @@ legacylinks:
- https://glotorrents.unblockit.buzz/
- https://glodls.unblocked.monster/
- https://glotorrents.unblockit.club/
- https://glotorrents.unblockit.onl/
caps:
categorymappings:

View File

@@ -0,0 +1,188 @@
---
id: hdcztorrent
name: HD-CzTorrent
description: "HD-CzTorrent is a CZECH semi private site for TV / MOVIES / GENERAL"
language: cs-cz
type: semi-private
encoding: UTF-8
links:
- http://www.hd-cztorrent.cz/
caps:
categorymappings:
# Film
- {id: 37, cat: Movies/DVD, desc: "DVD"}
- {id: 92, cat: TV, desc: "TV Serial ENG"}
- {id: 39, cat: Audio/Video, desc: "Hudba Video"}
- {id: 41, cat: Movies/SD, desc: "DivX / AVI"}
- {id: 90, cat: Movies/SD, desc: "DivX / AVI Titulky"}
- {id: 43, cat: Movies/Other, desc: "FILM dokument"}
- {id: 44, cat: Movies/Other, desc: "FILM sport"}
- {id: 45, cat: TV, desc: "SERIALY CZ"}
- {id: 47, cat: Movies, desc: "Animované"}
- {id: 91, cat: TV, desc: "Serial titulky"}
- {id: 50, cat: Movies/BluRay, desc: "FILMY Blu-ray"}
- {id: 109, cat: Movies/BluRay, desc: "BLURAY orig JAZYK"}
- {id: 52, cat: Movies/HD, desc: "HD 1080 "}
- {id: 53, cat: Movies/HD, desc: "HD 720"}
- {id: 55, cat: Movies/3D, desc: "3D Filmy"}
- {id: 110, cat: Movies/3D, desc: "3D ORIGINÁL"}
- {id: 111, cat: Movies, desc: "FILMY CZ TVORBA"}
- {id: 98, cat: Movies/UHD, desc: "ORIGINAL JAZYK 4K"}
- {id: 77, cat: Movies/UHD, desc: "ULTRA HD 4K"}
- {id: 89, cat: Movies/HD, desc: "HD720 titulky "}
- {id: 93, cat: Movies/HD, desc: "HD 1080 titulky"}
- {id: 107, cat: Movies, desc: "CAMERA RIP "}
- {id: 94, cat: Movies, desc: "h 265"}
- {id: 81, cat: Movies, desc: "ORIGINAL JAZYK"}
- {id: 95, cat: Movies/Other, desc: "FILM RETRO"}
# HUDBA
- {id: 57, cat: Audio/Lossless, desc: "Hudba flac"}
- {id: 58, cat: Audio/MP3, desc: "Hudba mp3"}
- {id: 96, cat: Audio/Other, desc: "RETRO HUDBA"}
# ostatni
- {id: 64, cat: Books, desc: "E-books, PDF fotky"}
- {id: 65, cat: Audio/Audiobook, desc: "Mluvene slovo"}
- {id: 113, cat: Books/Other, desc: "obrazky fotky"}
# PORNO
- {id: 11, cat: XXX, desc: "XXX 18+KLASIKA"}
- {id: 99, cat: XXX, desc: "XXX GAY"}
- {id: 100, cat: XXX, desc: "XXX ASIAN"}
- {id: 101, cat: XXX, desc: "XXX 3D"}
- {id: 106, cat: XXX/ImageSet, desc: "XXX-OBRÁZKY"}
- {id: 108, cat: XXX, desc: "PORNO BDSM"}
# HRY
- {id: 73, cat: PC/Games, desc: "Hry, Games"}
- {id: 97, cat: Console/PS4, desc: "HRY PS4"}
# APLIKACE
- {id: 60, cat: PC/Mobile-Other, desc: "Mobil PDA"}
- {id: 62, cat: PC, desc: "Aplikace All"}
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: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
- name: info
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.
login:
method: post
path: index.php?page=login
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: td.lista span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
# http://www.hd-cztorrent.cz/index.php?page=torrents&search=the+avengers&category=0&uploader=0&options=0&active=0&gold=0&order=3&by=2
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
uploader: 0
# 0 filename, 1 file & desc, 2 description
options: 0
# 0 all, 1 active only, 2 dead only
active: 0
# 0 all, 1 classic, 2 silver, 3 gold, 4 silver & gold
gold: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: td#mcol table.lista > tbody > tr:has(a[href*=bookmark])
fields:
category:
selector: a[href*="category="]
attribute: href
filters:
- name: querystring
args: category
title:
selector: td:nth-child(2) > a
details:
selector: a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
poster:
selector: a[href^="index.php?page=torrent-details"]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) "
date:
selector: td:nth-child(6)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "02/01/2006 -07:00"
size:
selector: td:nth-child(11)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[src$="freeleech.gif"]: 0
img[src$="gold.gif"]: 0
img[src$="silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[src$="2x.gif"]: 2
img[src$="3x.gif"]: 3
img[src$="4x.gif"]: 4
img[src$="5x.gif"]: 5
img[src$="6x.gif"]: 6
img[src$="7x.gif"]: 7
img[src$="8x.gif"]: 8
img[src$="9x.gif"]: 9
img[src$="10x.gif"]: 10
"*": 1
minimumratio:
text: 0.3
# xbtit dt fm v7.1 customized

View File

@@ -8,21 +8,22 @@ encoding: windows-1251
links:
- https://hdhouse.club/
- https://hdreactor.club/
- https://hdreactor.su/
legacylinks:
- https://hdreactor.guru/
- https://hdreactor.net/
- https://hdreactor.su/
caps:
categorymappings:
- {id: 1, cat: Movies/HD, desc: "Кино HD"}
- {id: 2, cat: Movies/UHD, desc: "Кино UHD"}
- {id: 3, cat: XXX, desc: "18+ HD"}
- {id: 4, cat: Audio/Lossless, desc: "Музыка A"}
- {id: 5, cat: PC/Games, desc: "Игры"}
- {id: 6, cat: TV/HD, desc: "Сериалы HD"}
- {id: 7, cat: TV/Anime, desc: "Мультфильмы"}
- {id: 9, cat: Audio/Video, desc: "Музыка V"}
- {id: 2001, cat: Movies/HD, desc: "Кино HD"}
- {id: 5006, cat: Movies/UHD, desc: "Кино UHD"}
- {id: 2007, cat: TV/Anime, desc: "Мультфильмы"}
- {id: 2006, cat: TV/HD, desc: "Сериалы HD"}
- {id: 2004, cat: Audio/Lossless, desc: "Музыка A"}
- {id: 5007, cat: Audio/Video, desc: "Музыка V"}
- {id: 2003, cat: XXX, desc: "18+ HD"}
- {id: 2005, cat: PC/Games, desc: "Игры"}
- {id: 5005, cat: TV/Sport, desc: "Спорт HD"} # not shown in list
modes:
search: [q]
@@ -83,14 +84,15 @@ search:
category:
selector: div.movie-item__meta > span > a
case:
a[href$="/1/"]: 1
a[href$="/3/"]: 3
a[href$="/4/"]: 4
a[href$="/4k_uhd/"]: 2
a[href$="/5/"]: 5
a[href$="/6/"]: 6
a[href$="/7/"]: 7
a[href$="/9/"]: 9
a[href$="/1/"]: 2001
a[href$="/4k_uhd/"]: 5006
a[href$="/7/"]: 2007
a[href$="/6/"]: 2006
a[href$="/4/"]: 2004
a[href$="/9/"]: 5007
a[href$="/3/"]: 2003
a[href$="/5/"]: 2005
a[href$="/sport-hd/"]: 5005 # not shown in list
title:
selector: span.movie-item__title
filters:

View File

@@ -113,6 +113,8 @@ search:
args: ["HDOlimpo", ""] # Delete HDOlimpo
- name: replace
args: ["HD-Olimpo", ""] # Delete HD-Olimpo
- name: replace
args: ["E-AC-3", "EAC3"]
- name: re_replace
args: ["[ -](?i)español[ -]", " SPANiSH "]
- name: re_replace

View File

@@ -114,12 +114,14 @@ search:
size:
selector: td:nth-child(5)
date:
selector: tr, br
selector: td:nth-child(2)
filters:
- name: regexp
args: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
- name: append
args: " +01:00" # CET
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
args: "2006-01-02 15:04:05 -07:00"
seeders:
selector: td:nth-child(7)
leechers:

View File

@@ -6,12 +6,12 @@ language: it-it
type: semi-private
encoding: UTF-8
links:
- https://ilcorsaroblu.online/
- https://ilcorsaroblu.org/
legacylinks:
- http://ilcorsaroblu.org/
- https://www.ilcorsaroblu.info/
- https://www.ilcorsaroblu.org/
- https://ilcorsaroblu.org/
- https://ilcorsaroblu.online/
caps:
categorymappings:

View File

@@ -47,7 +47,7 @@ caps:
modes:
search: [q]
tv-search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
@@ -62,12 +62,6 @@ search:
- path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=0{{ else }}/browse/0{{ end }}"
- path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=1{{ else }}/browse/1{{ end }}"
- path: "{{ if .Keywords }}advsearch.php?&category={{ range .Categories }}{{.}};{{end}}&search={{ .Keywords }}&order=data&by=DESC&page=2{{ else }}/browse/2{{ end }}"
keywordsfilters:
# remove searching by season and episode due to inconsistent naming #11471
- name: re_replace # remove S01
args: ["(?i)(\\s*s\\d+)", ""]
- name: re_replace # remove E01
args: ["(?i)(\\s*e\\d+)", ""]
rows:
selector: "tr.odd,tr.odd2"

View File

@@ -13,7 +13,7 @@ caps:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 6, cat: TV, desc: "ts Firehose (RAW TS)"}
- {id: 7, cat: TV/Anime, desc: "Anime Movies"}
- {id: 7, cat: Movies/Other, desc: "Anime Movies"}
- {id: 9, cat: TV/Anime, desc: "Anime Series"}
- {id: 8, cat: Audio, desc: "Music"}

View File

@@ -1,287 +0,0 @@
---
id: lechaudron
name: LeChaudron
description: "Le Chaudron is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-fr
type: private
encoding: UTF-8
links:
- https://lechaudron.nl/
caps:
categorymappings:
- {id: 1, cat: XXX, desc: "Adultes - BD Erotique"}
- {id: 4, cat: XXX, desc: "Adultes - Doujin (Manga X)"}
- {id: 2, cat: XXX, desc: "Adultes - eBook XXX"}
- {id: 3, cat: XXX, desc: "Adultes - Film XXX"}
- {id: 5, cat: XXX, desc: "Adultes - Hentai"}
- {id: 6, cat: TV/Anime, desc: "Animations - 3D"}
- {id: 7, cat: TV/Anime, desc: "Animations - 4K Light"}
- {id: 8, cat: TV/Anime, desc: "Animations - 4K UHD"}
- {id: 9, cat: TV/Anime, desc: "Animations - BDRIP-BRRIP"}
- {id: 10, cat: TV/Anime, desc: "Animations - BluRay-R"}
- {id: 11, cat: TV/Anime, desc: "Animations - DVD-R"}
- {id: 12, cat: TV/Anime, desc: "Animations - DVDRIP"}
- {id: 13, cat: TV/Anime, desc: "Animations - Film Jap-Anim"}
- {id: 14, cat: TV/Anime, desc: "Animations - HD 1080P"}
- {id: 15, cat: TV/Anime, desc: "Animations - HD 720p"}
- {id: 16, cat: TV/Anime, desc: "Animations - HDRIP"}
- {id: 17, cat: TV/Anime, desc: "Animations - HDTV"}
- {id: 18, cat: TV/Anime, desc: "Animations - HDTV 1080p"}
- {id: 19, cat: TV/Anime, desc: "Animations - HDTV 720p"}
- {id: 20, cat: TV/Anime, desc: "Animations - MHD 1080p"}
- {id: 21, cat: TV/Anime, desc: "Animations - MHD 720p"}
- {id: 22, cat: TV/Anime, desc: "Animations - REMUX"}
- {id: 23, cat: TV/Anime, desc: "Animations - Serie Animee"}
- {id: 24, cat: TV/Anime, desc: "Animations - Serie Jap-Anim"}
- {id: 25, cat: TV/Anime, desc: "Animations - TVRIP"}
- {id: 26, cat: TV/Anime, desc: "Animations - WEB-DL"}
- {id: 27, cat: TV/Anime, desc: "Animations - WEB-DL 1080p"}
- {id: 28, cat: TV/Anime, desc: "Animations - WEB-DL 720p"}
- {id: 29, cat: TV/Anime, desc: "Animations - WEBRIP"}
- {id: 31, cat: TV/Documentary, desc: "Documentaires - Emission TV"}
- {id: 32, cat: TV/Documentary, desc: "Documentaires - Film Documentaire"}
- {id: 33, cat: TV/Documentary, desc: "Documentaires - Spectacle"}
- {id: 34, cat: TV/Documentary, desc: "Documentaires - Sport"}
- {id: 41, cat: Movies/3D, desc: "Films - 3D"}
- {id: 42, cat: Movies/UHD, desc: "Films - 4K Light"}
- {id: 43, cat: Movies/UHD, desc: "Films - 4K UHD"}
- {id: 44, cat: Movies/BluRay, desc: "Films - BDRIP-BRRIP"}
- {id: 45, cat: Movies/BluRay, desc: "Films - BluRay-R"}
- {id: 46, cat: Movies, desc: "Films - Coffret"}
- {id: 47, cat: Movies/DVD, desc: "Films - DVD-R"}
- {id: 48, cat: Movies/DVD, desc: "Films - DVDRIP"}
- {id: 49, cat: Movies/HD, desc: "Films - HD 1080P"}
- {id: 50, cat: Movies/HD, desc: "Films - HD 720p"}
- {id: 51, cat: Movies/HD, desc: "Films - HDRIP"}
- {id: 52, cat: Movies/HD, desc: "Films - HDTV"}
- {id: 53, cat: Movies/HD, desc: "Films - HDTV 1080p"}
- {id: 54, cat: Movies/HD, desc: "Films - HDTV 720p"}
- {id: 55, cat: Movies/HD, desc: "Films - MHD 1080p"}
- {id: 56, cat: Movies/HD, desc: "Films - MHD 720p"}
- {id: 57, cat: Movies, desc: "Films - REMUX"}
- {id: 58, cat: Movies, desc: "Films - TVRIP"}
- {id: 59, cat: Movies/WEB-DL, desc: "Films - WEB-DL"}
- {id: 60, cat: Movies/WEB-DL, desc: "Films - WEB-DL 1080p"}
- {id: 61, cat: Movies/WEB-DL, desc: "Films - WEB-DL 720p"}
- {id: 62, cat: Movies/WEB-DL, desc: "Films - WEBRIP"}
- {id: 64, cat: Console/3DS, desc: "Jeux - 3DS-DS"}
- {id: 65, cat: PC/Mobile-iOS, desc: "Jeux - IOS-OSX"}
- {id: 66, cat: PC/Games, desc: "Jeux - PC"}
- {id: 67, cat: Console/PSP, desc: "Jeux - PS-PSP-X"}
- {id: 68, cat: Console/Wii, desc: "Jeux - Wii - Wii-U"}
- {id: 69, cat: Console/XBox, desc: "Jeux - XBOX"}
- {id: 35, cat: Audio/Audiobook, desc: "Livres - Audio-Book"}
- {id: 36, cat: Books, desc: "Livres - BD"}
- {id: 37, cat: Books/Mags, desc: "Livres - Magazine"}
- {id: 38, cat: Books/Comics, desc: "Livres - MANGAS"}
- {id: 39, cat: Books, desc: "Livres - Presse"}
- {id: 40, cat: Books/EBook, desc: "Livres - Roman"}
- {id: 70, cat: PC/Mobile-Android, desc: "Logiciels - ANDROID"}
- {id: 71, cat: PC/Mac, desc: "Logiciels - APPLE"}
- {id: 72, cat: PC/Mobile-iOS, desc: "Logiciels - IPHONE"}
- {id: 73, cat: PC, desc: "Logiciels - LINUX"}
- {id: 74, cat: PC/0day, desc: "Logiciels - WINDOWS"}
- {id: 75, cat: TV, desc: "Pack - 3D"}
- {id: 76, cat: TV/UHD, desc: "Pack - 4K Light"}
- {id: 77, cat: TV/UHD, desc: "Pack - 4KUHD"}
- {id: 78, cat: TV/HD, desc: "Pack - BDRIP-BRRIP"}
- {id: 79, cat: TV/HD, desc: "Pack - BluRay-R"}
- {id: 80, cat: TV/SD, desc: "Pack - DVD-R"}
- {id: 81, cat: TV/SD, desc: "Pack - DVDRIP"}
- {id: 82, cat: TV/HD, desc: "Pack - HD 1080P"}
- {id: 83, cat: TV/HD, desc: "Pack - HD 720p"}
- {id: 84, cat: TV/HD, desc: "Pack - HDRIP"}
- {id: 85, cat: TV/HD, desc: "Pack - HDTV"}
- {id: 86, cat: TV/HD, desc: "Pack - HDTV 1080p"}
- {id: 87, cat: TV/HD, desc: "Pack - HDTV 720p"}
- {id: 88, cat: TV/HD, desc: "Pack - MHD 1080p"}
- {id: 89, cat: TV/HD, desc: "Pack - MHD 720p"}
- {id: 90, cat: TV, desc: "Pack - REMUX"}
- {id: 91, cat: TV, desc: "Pack - TVRIP"}
- {id: 92, cat: TV/WEB-DL, desc: "Pack - WEB-DL"}
- {id: 93, cat: TV/WEB-DL, desc: "Pack - WEB-DL 1080p"}
- {id: 94, cat: TV/WEB-DL, desc: "Pack - WEB-DL 720p"}
- {id: 95, cat: TV/WEB-DL, desc: "Pack - WEBRIP"}
- {id: 97, cat: TV, desc: "Series - 3D"}
- {id: 98, cat: TV/UHD, desc: "Series - 4K Light"}
- {id: 99, cat: TV/UHD, desc: "Series - 4KUHD"}
- {id: 100, cat: TV/HD, desc: "Series - BDRIP-BRRIP"}
- {id: 101, cat: TV/HD, desc: "Series - BluRay-R"}
- {id: 102, cat: TV/SD, desc: "Series - DVD-R"}
- {id: 103, cat: TV/SD, desc: "Series - DVDRIP"}
- {id: 104, cat: TV/HD, desc: "Series - HD 1080P"}
- {id: 105, cat: TV/HD, desc: "Series - HD 720p"}
- {id: 106, cat: TV/HD, desc: "Series - HDRIP"}
- {id: 107, cat: TV/HD, desc: "Series - HDTV"}
- {id: 108, cat: TV/HD, desc: "Series - HDTV 1080p"}
- {id: 109, cat: TV/HD, desc: "Series - HDTV 720p"}
- {id: 110, cat: TV/HD, desc: "Series - MHD 1080p"}
- {id: 111, cat: TV/HD, desc: "Series - MHD 720p"}
- {id: 112, cat: TV, desc: "Series - REMUX"}
- {id: 113, cat: TV, desc: "Series - TVRIP"}
- {id: 114, cat: TV/WEB-DL, desc: "Series - WEB-DL"}
- {id: 115, cat: TV/WEB-DL, desc: "Series - WEB-DL 1080p"}
- {id: 116, cat: TV/WEB-DL, desc: "Series - WEB-DL 720p"}
- {id: 117, cat: TV/WEB-DL, desc: "Series - WEBRIP"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-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
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: TTV3/Bienvenue
selector: a[href$="/TTV3/Deconnexion"]
download:
before:
# <form method="post" action="https://lechaudron.nl/TTV3/Torrents/5610/remercier">
# <input type="hidden" name="torrent" value="5610">
path: "/TTV3/Torrents/{{ re_replace .DownloadUri.PathAndQuery \"^(.+?)(\\d+)$\" \"$2\" }}/remercier"
method: post
inputs:
torrent: "{{ re_replace .DownloadUri.PathAndQuery \"^(.+?)(\\d+)$\" \"$2\" }}"
selector: a[href*="/Telechargement/"]
attribute: href
search:
paths:
# https://lechaudron.nl/TTV3/Torrents/Recherche?search=&endroit=nomtorrent&langue=0&tl=oui
- path: TTV3/Torrents/Recherche
inputs:
search: "{{ .Keywords }}"
# nomtorrent, desctorrent
endroit: nomtorrent
# non, oui, peuimporte
tl: "{{ if .Config.freeleech }}oui{{ else }}peuimporte{{ end }}"
# 0 all, 2 English, etc
langue: 0
# does not support imdbid searches and does not return imdb link in results
rows:
selector: tr:has(a[onmouseover])
fields:
category:
selector: a[href*="/SousCategories/"]
attribute: href
filters:
- name: regexp
args: (\d+)$
title_phase1:
selector: a[href*="/SousCategories/"]
attribute: alt
filters:
- name: regexp
args: "^..(.+)"
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= (.*?)><"
date:
selector: a[onmouseover] font[color="#F2F2F2"]
filters:
- name: regexp
args: "Il y a (.*?)\\s-"
- name: replace
args: ["heures", "hours"]
- name: replace
args: ["heure", "hour"]
- name: replace
args: ["Jours", "days"]
- name: replace
args: ["Jour", "day"]
- name: replace
args: ["Semaines", "weeks"]
- name: replace
args: ["Semaine", "week"]
- name: replace
args: ["Mois", "months"]
- name: replace
args: ["Ans", "years"]
- name: replace
args: ["An", "year"]
- name: append
args: " ago"
size:
selector: td:nth-last-child(5)
grabs:
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/Torrents/freeleech.png"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.95
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# TT3.00 FRENCH

View File

@@ -42,12 +42,12 @@ settings:
- name: sort
type: select
label: Sort requested from site
default: 4
default: added
options:
4: created
7: seeders
5: size
1: title
added: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
@@ -72,19 +72,13 @@ search:
- path: torrents.php
inputs:
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
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
search_area: "{{ if .Query.IMDBID }}imdb{{ else }}name{{ end }}"
suggest: 0
column: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
selector: table.torrents > tbody > tr:has(a[href^="download.php?"])
fields:
category:
@@ -152,4 +146,4 @@ search:
description:
selector: td:nth-child(2)
remove: a, img
# NexusPHP Standard v1.5 Beta 4
# NexusPHP Standard v1.5 Beta 4 (customised)

View File

@@ -122,15 +122,11 @@ login:
method: form
form: form[action^="login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
rememberme: ""
captcha:
type: image
selector: img[src^="access_code/"]
input: private_key
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
loginButton: X
error:
- selector: tr td span[style="color:#FF0000;"]
- selector: "p[style=\"color: #B73C38\"]"
test:
path: index.php
selector: a[href="logout.php"]

View File

@@ -12,7 +12,7 @@ links:
- https://www.limetorrents.co/
- https://limetor.com/
- https://www.limetor.pro/
- https://limetorrents.unblockit.onl/
- https://limetorrents.unblockit.li/
- https://limetorrents.unblockninja.com/
- https://limetorrents.nocensor.space/
legacylinks:
@@ -42,6 +42,7 @@ legacylinks:
- https://limetorrents.unblockit.link/
- https://limetorrents.unblockit.buzz/
- https://limetorrents.unblockit.club/
- https://limetorrents.unblockit.onl/
caps:
categorymappings:

View File

@@ -15,6 +15,7 @@ caps:
- {id: 15, cat: Movies/HD, desc: "Rip H264"}
- {id: 16, cat: Movies/HD, desc: "Rip H265"}
- {id: 24, cat: Movies/UHD, desc: "Rip 4K"}
- {id: 40, cat: Movies/UHD, desc: "4K - 3840X2160"}
- {id: 21, cat: Movies/HD, desc: "Full HD"}
- {id: 31, cat: TV/HD, desc: "Serie TV 720P"}
- {id: 25, cat: Audio, desc: "Musica"}

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://www.oxtorrent.tv/
- https://www.oxtorrent.ph/
- https://www.oxtorrent.co/
- https://oxtorrent.nocensor.space/
legacylinks:
@@ -29,6 +29,7 @@ legacylinks:
- https://www.oxtorrent.ws/
- https://wvw.oxtorrent.ws/
- https://oxtorrent.unblocked.monster/
- https://www.oxtorrent.tv/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://pirateiro.com/
- https://pirateiro.eu/
- https://pirateiro.unblockit.onl/
- https://pirateiro.unblockit.li/
legacylinks:
- http://pirateiro.com/
- https://pirateiro.unblockit.pro/
@@ -26,6 +26,7 @@ legacylinks:
- https://pirateiro.unblockit.link/
- https://pirateiro.unblockit.buzz/
- https://pirateiro.unblockit.club/
- https://pirateiro.unblockit.onl/
caps:
categorymappings:

View File

@@ -54,6 +54,7 @@ caps:
- {id: 48, cat: Other, desc: "Retro"}
- {id: 72, cat: Other, desc: "Board Games"}
- {id: 75, cat: Other, desc: "Paper Crafting"}
- {id: 77, cat: Other, desc: "Arcade"}
modes:
search: [q]

View File

@@ -107,12 +107,12 @@ search:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
selector: a.text-bright
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
selector: a.text-bright
attribute: href
poster:
selector: div.torrent-poster img
@@ -133,12 +133,6 @@ search:
filters:
- name: regexp
args: (\d+)
imdb:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
date:
selector: time
filters:

View File

@@ -30,6 +30,8 @@ caps:
- {id: 18, cat: TV/Sport, desc: "WWE Network"}
- {id: 16, cat: TV/Sport, desc: "WWE PPV's"}
- {id: 17, cat: TV/Sport, desc: "WWE Weekly"}
- {id: 19, cat: TV/Sport, desc: "AEW Weekly"}
- {id: 20, cat: TV/Sport, desc: "AEW PPV's"}
modes:
search: [q]

View File

@@ -45,6 +45,7 @@ caps:
- {id: 78, cat: TV/Sport, desc: "Porsche Supercup"}
- {id: 79, cat: TV/Sport, desc: "TV Series"}
- {id: 80, cat: TV/Sport, desc: "Touring Cars"}
- {id: 81, cat: TV/Sport, desc: "Extreme E"}
modes:
search: [q]

View File

@@ -231,6 +231,9 @@ search:
attribute: href
size:
selector: div.data-size
filters:
- name: re_replace
args: ["(\\d)\\.(\\d{3}\\.\\d{2})", "$1$2"]
seeders:
selector: div.data-seeders
filters:

View File

@@ -183,6 +183,9 @@ search:
selector: td:nth-child(7)
seeders:
selector: td.seedmed > b, td.icemed > b
filters:
- name: replace
args: ["X", "0"]
leechers:
selector: td.leechmed > b
grabs:

View File

@@ -29,6 +29,7 @@ caps:
- {id: 30, cat: Audio/MP3, desc: "Musik mp3"}
- {id: 31, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 32, cat: Audio/Video, desc: "Musik Video"}
- {id: 45, cat: Audio, desc: "Musik Pack"}
- {id: 34, cat: PC/Games, desc: "Spiele Windows"}
- {id: 35, cat: Console, desc: "Spiele Konsole"}
- {id: 36, cat: Console, desc: "Spiele Wimmel"}

View File

@@ -0,0 +1,166 @@
---
id: sharefiles
name: ShareFiles
description: "ShareFiles is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ro-ro
type: private
encoding: UTF-8
links:
- https://sharefiles.ro/
caps:
categorymappings:
- {id: 53, cat: TV/Anime, desc: "Anime | Cartoon"}
- {id: 28, cat: PC/0day, desc: "Appz | Win"}
- {id: 58, cat: Books, desc: "Docs"}
- {id: 67, cat: Console, desc: "Games | Console"}
- {id: 151, cat: Console, desc: "Games | Pack"}
- {id: 3, cat: PC/Games, desc: "Games | PC Iso"}
- {id: 144, cat: Other, desc: "Images"}
- {id: 54, cat: PC, desc: "Linux"}
- {id: 100, cat: Other, desc: "MiSC"}
- {id: 70, cat: PC/Mobile-Other, desc: "Mobile"}
- {id: 137, cat: Movies/3D, desc: "Movies | 3D"}
- {id: 140, cat: Movies/UHD, desc: "Movies | 4K Blu-Ray"}
- {id: 139, cat: Movies/UHD, desc: "Movies | 4K"}
- {id: 143, cat: Movies/UHD, desc: "Movies | 4K-Ro"}
- {id: 103, cat: Movies/BluRay, desc: "Movies | Blu-Ray"}
- {id: 132, cat: Movies/BluRay, desc: "Movies | Blu-Ray-Ro"}
- {id: 71, cat: Movies/DVD, desc: "Movies | DVD"}
- {id: 72, cat: Movies/DVD, desc: "Movies | DVD-Ro"}
- {id: 74, cat: Movies/HD, desc: "Movies | HD"}
- {id: 108, cat: Movies/HD, desc: "Movies | HD-Ro"}
- {id: 148, cat: Movies, desc: "Movies | Pack"}
- {id: 149, cat: Movies, desc: "Movies | Pack-Ro"}
- {id: 153, cat: Movies, desc: "Movies | Ro"}
- {id: 76, cat: Movies/SD, desc: "Movies | SD"}
- {id: 2, cat: Movies/SD, desc: "Movies | SD-Ro"}
- {id: 77, cat: Audio/MP3, desc: "Music | Audio"}
- {id: 141, cat: Audio/Lossless, desc: "Music | FLAC"}
- {id: 78, cat: Audio/Video, desc: "Music | Video"}
- {id: 82, cat: TV/Sport, desc: "Sports"}
- {id: 83, cat: TV/HD, desc: "Tv | HD"}
- {id: 115, cat: TV/HD, desc: "Tv | HD-Ro"}
- {id: 145, cat: TV, desc: "Tv | Pack"}
- {id: 147, cat: TV, desc: "Tv | Pack-Ro"}
- {id: 154, cat: TV, desc: "Tv | Ro"}
- {id: 116, cat: TV/SD, desc: "Tv | SD"}
- {id: 150, cat: TV/SD, desc: "Tv | SD-Ro"}
- {id: 85, cat: XXX, desc: "XxX"}
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: Filter freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
unlock: 1 # login on any IP: 0=no, 1=yes
error:
- selector: td.embedded:has(h2:contains("failed"))
test:
path: browse.php
selector: a[href="logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ if .Categories}}{{ range .Categories }}c{{.}}=1&{{end}}{{ else }}cat=0{{ end }}"
search: "{{ .Keywords }}"
# 0 name, 1 descr, 2 genre
blah: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not support imdbid searching or return imdb in results.
rows:
selector: "table[width=\"852\"] > tbody > tr:has(a[href^=\"download.php?id=\"]){{ if .Config.freeleech }}:has(a#free-btn){{ else }}{{ end }}"
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[href^="details.php?id="]
attribute: onmouseover
filters:
- name: regexp
args: src=([^\s]+)
download:
selector: a[href^="download.php?id="]
attribute: href
date:
selector: td:nth-last-child(5)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "2006-01-0215:04:05 -07:00"
size:
selector: td:nth-last-child(4)
grabs:
selector: td:nth-last-child(3)
filters:
- name: regexp
args: (\d+)
seeders:
selector: td:nth-last-child(2)
leechers:
selector: td:nth-last-child(1)
downloadvolumefactor:
case:
"a#free-btn": 0
"*": 1
uploadvolumefactor:
case:
"a#double-btn": 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# engine n/a

View File

@@ -77,24 +77,24 @@ login:
search:
paths:
- path: torrents/filter
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
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
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: diacritics
@@ -151,28 +151,17 @@ search:
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&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", ""]
args: ["https://via.placeholder.com/90x135", ""]
size:
selector: td:nth-last-child(4)
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(3)
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(2)
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(1)
filters:
- name: regexp
args: (\d+)
imdb:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
selector: td:nth-last-child(2)
date:
selector: time
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
@@ -226,7 +215,10 @@ search:
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 6 days (as seconds = 6 x 24 x 60 x 60)
text: 518400
# UNIT3D 5.2.0
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -62,6 +62,7 @@ login:
- selector: font:contains("Incorrect")
test:
path: torrent/index.php
selector: a[href^="usercp.php"]
download:
selector: a[href^="download.php?id="]

View File

@@ -14,7 +14,7 @@ legacylinks:
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: Movies, desc: "Web Originals"}
@@ -76,24 +76,24 @@ login:
search:
paths:
- path: torrents/filter
- path: torrents
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
name: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
description: ""
mediainfo: ""
keywords: ""
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
tmdbId: "{{ .Query.TMDBID }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tvdbId: "{{ .Query.TVDBID }}"
malId: ""
startYear: ""
endYear: ""
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
page: 1
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
rows:
@@ -119,28 +119,17 @@ search:
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&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", ""]
args: ["https://via.placeholder.com/90x135", ""]
size:
selector: td:nth-last-child(4)
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(3)
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(2)
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(1)
filters:
- name: regexp
args: (\d+)
imdb:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"]
attribute: href
selector: td:nth-last-child(2)
date:
selector: time
selector: td:nth-last-child(1)
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
@@ -194,9 +183,10 @@ 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
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
# UNIT3D 5.2.0
# 7 day (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0

View File

@@ -57,8 +57,8 @@ caps:
- {id: 117, cat: Books/EBook, desc: "Books Romane"}
- {id: 156, cat: Books, desc: "Books Packs"}
- {id: 130, cat: Books, desc: "Books FSK 18"}
- {id: 159, cat: TV/Anime, desc: "Anime Movies HD"}
- {id: 160, cat: TV/Anime, desc: "Anime Movies SD"}
- {id: 159, cat: Movies/HD, desc: "Anime Movies HD"}
- {id: 160, cat: Movies/SD, desc: "Anime Movies SD"}
- {id: 128, cat: TV/Anime, desc: "Anime Serien"}
- {id: 131, cat: TV/Anime, desc: "Anime Hentai"}
- {id: 129, cat: TV/Anime, desc: "Anime Sonstiges"}

View File

@@ -17,21 +17,24 @@ caps:
- {id: 16, cat: TV/HD, desc: "TV x265"}
- {id: 17, cat: TV/SD, desc: "TV XVID"}
- {id: 18, cat: TV, desc: "TV PACKS"}
- {id: 25, cat: TV/Anime, desc: "TV KIDS"}
- {id: 25, cat: TV, desc: "TV KIDS"}
- {id: 38, cat: TV/SD, desc: "TV 480p"}
- {id: 20, cat: Movies/HD, desc: "Movies x264"}
- {id: 21, cat: Movies/HD, desc: "Movies x265"}
- {id: 22, cat: Movies/SD, desc: "Movies XVID"}
- {id: 23, cat: Movies, desc: "Movies PACKS"}
- {id: 24, cat: TV/Anime, desc: "Movies KIDS"}
- {id: 24, cat: Movies, desc: "Movies KIDS"}
- {id: 35, cat: Movies/UHD, desc: "Movies 4K/UHD"}
- {id: 36, cat: Movies/BluRay, desc: "Movies BluRay"}
- {id: 37, cat: Movies/SD, desc: "Movies 480p"}
- {id: 27, cat: Audio/MP3, desc: "Music MP3"}
- {id: 28, cat: Audio/Lossless, desc: "Music FLAC"}
- {id: 29, cat: Audio, desc: "Music PACKS"}
- {id: 34, cat: Audio, desc: "Music karaoke "}
- {id: 30, cat: Books/EBook, desc: "ebooks"}
- {id: 34, cat: Audio, desc: "Music Karaoke "}
- {id: 30, cat: Books/EBook, desc: "eBooks"}
- {id: 32, cat: PC/Games, desc: "Games PC"}
- {id: 33, cat: Console, desc: "Games ROMS"}
- {id: 39, cat: Other, desc: "Misc"}
modes:
search: [q]
@@ -100,7 +103,7 @@ search:
# does not support imdbid search and does not return imdb link in results
rows:
selector: "table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]){{ if .Config.freeleech }}:has(img[src=\"images/freeleech.gif\"]){{ else }}{{ end }}{{ if .Config.freeleech }}, table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]):has(img[src=\"images/gold.gif\"]){{ else }}{{ end }}"
selector: "table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]):not(:has(a[href^=\"index.php?page=userdetails&id=\"])){{ if .Config.freeleech }}:has(img[src=\"images/freeleech.gif\"]){{ else }}{{ end }}{{ if .Config.freeleech }}, table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]):not(:has(a[href^=\"index.php?page=userdetails&id=\"])):has(img[src=\"images/gold.gif\"]){{ else }}{{ end }}"
fields:
category:

View File

@@ -10,7 +10,7 @@ links:
- https://www.torlock.com/
- https://www.torlock2.com/
- https://www.torlock.icu/
- https://torlock.unblockit.onl/
- https://torlock.unblockit.li/
- https://torlock.nocensor.space/
legacylinks:
- https://torlock.com/
@@ -28,6 +28,7 @@ legacylinks:
- https://torlock.unblockit.link/
- https://torlock.unblockit.buzz/
- https://torlock.unblockit.club/
- https://torlock.unblockit.onl/
caps:
categorymappings:

View File

@@ -36,9 +36,10 @@ caps:
- {id: 191, cat: TV, desc: "TV/BluTv"}
- {id: 192, cat: TV, desc: "TV/BluTv Series"}
- {id: 193, cat: Movies, desc: "TV/BluTv Film"}
- {id: 199, cat: TV, desc: "TV/Netflix"}
- {id: 188, cat: TV, desc: "TV/Netflix"}
- {id: 189, cat: TV, desc: "TV/Netflix Series"}
- {id: 190, cat: Movies, desc: "TV/Netflix Film"}
- {id: 195, cat: TV, desc: "TV/Exxen"}
- {id: 171, cat: Audio, desc: "Music"}
- {id: 172, cat: Audio, desc: "Music/Turkish"}
- {id: 173, cat: Audio, desc: "Music/Foreign"}

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://www.torrent9.ninja/
- https://www.torrent9.pw/
- https://torrent9.nocensor.space/
legacylinks:
@@ -54,6 +54,7 @@ legacylinks:
- https://www.torrent9.srl/
- https://torrent9.unblocked.monster/
- https://www.torrent9.la/
- https://www.torrent9.ninja/
caps:
categorymappings:

View File

@@ -8,7 +8,7 @@ encoding: UTF-8
followredirect: true
links:
- https://www.torrentdownload.info/
- https://torrentdownload.unblockit.onl/
- https://torrentdownload.unblockit.li/
- https://torrentdownload.nocensor.space/
legacylinks:
- https://torrentdownload.unblockit.pro/
@@ -35,6 +35,7 @@ legacylinks:
- https://torrentdownload.unblockit.buzz/
- https://torrentdownload.unblocked.monster/
- https://torrentdownload.unblockit.club/
- https://torrentdownload.unblockit.onl/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.torrentdownloads.info/
- https://www.torrentdownloads.me/
- https://torrentdownloads.unblockit.onl/
- https://torrentdownloads.unblockit.li/
- https://torrentdownloads.nocensor.space/
legacylinks:
- https://torrentdownloads.unblockit.pro/
@@ -36,6 +36,7 @@ legacylinks:
- https://torrentdownloads.unblockit.buzz/
- https://torrentdownloads.unblocked.monster/
- https://torrentdownloads.unblockit.club/
- https://torrentdownloads.unblockit.onl/
caps:
categorymappings:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://www.torrentfunk.com/
- https://www.torrentfunk2.com/
- https://torrentfunk.unblockit.onl/
- https://torrentfunk.unblockit.li/
- https://torrentfunk.nocensor.space/
legacylinks:
- https://torrentfunk.unblockit.pro/
@@ -26,6 +26,7 @@ legacylinks:
- https://torrentfunk.unblockit.link/
- https://torrentfunk.unblockit.buzz/
- https://torrentfunk.unblockit.club/
- https://torrentfunk.unblockit.onl/
caps:
categorymappings:

View File

@@ -11,7 +11,7 @@ links:
- https://torrentgalaxy.mx/
- https://torrentgalaxy.su/
- https://torrentgalaxy.unblockninja.com/
- https://torrentgalaxy.unblockit.onl/
- https://torrentgalaxy.unblockit.li/
- https://torrentgalaxy.nocensor.space/
legacylinks:
- https://torrentgalaxy.org/ # redirects to *.to
@@ -41,6 +41,7 @@ legacylinks:
- https://torrentgalaxy.unblockit.buzz/
- https://tgx.unblocked.monster/
- https://torrentgalaxy.unblockit.club/
- https://torrentgalaxy.unblockit.onl/
caps:
categorymappings:
@@ -132,7 +133,7 @@ search:
order: "{{ .Config.type }}"
rows:
selector: div.tgxtable > div:has(div[class="tgxtablecell shrink"])
selector: div.tgxtable > div:has(div[class^="tgxtablecell shrink"])
fields:
category:

View File

@@ -27,6 +27,7 @@ caps:
- {id: "MUSIC", cat: Audio, desc: "한국음악 (Music)"}
- {id: "MUSIK", cat: Audio/Foreign, desc: "외국음악 (Music Foreign)"}
- {id: "notice", cat: Other, desc: "공지사항 (Notice)"}
- {id: "humor", cat: Other, desc: "유머 (Humor)"}
- {id: "MOBILE", cat: PC/Mobile-Other, desc: "모바일 (Mobile)"}
- {id: "UTIL", cat: PC, desc: "유틸 (Software)"}

View File

@@ -1,114 +0,0 @@
---
id: torrentproject
name: TorrentProject
description: "TorrentProject is a Public torrent meta-search engine"
language: en-us
type: public
encoding: UTF-8
links:
- https://torrentproject.to/
- https://torrentproject.torrentbay.to/
caps:
categorymappings:
- {id: adult, cat: XXX, desc: Adult}
- {id: anime, cat: TV/Anime, desc: Anime}
- {id: audio, cat: Audio, desc: Audio}
- {id: audioalbum, cat: Audio, desc: "Audio Album"}
- {id: audioalbumlossless, cat: Audio/Lossless, desc: "Audio Album Lossless"}
- {id: audioalbummp3, cat: Audio/MP3, desc: "Audio Album MP3"}
- {id: audiolossless, cat: Audio/Lossless, desc: "Audio Lossless"}
- {id: audiomp3, cat: Audio/MP3, desc: "Audio MP3"}
- {id: books, cat: Books, desc: Books}
- {id: docebook, cat: Books/EBook, desc: "Doc Ebook"}
- {id: games, cat: PC/Games, desc: Games}
- {id: gamesnintendo, cat: Console/NDS, desc: "Games Nintendo"}
- {id: gamespc, cat: PC/Games, desc: "Games PC"}
- {id: gamesxbox, cat: Console/XBox, desc: "Games Xbox"}
- {id: literature, cat: Books, desc: Literature}
- {id: misc, cat: Other/Misc, desc: Misc}
- {id: mobile, cat: PC/Mobile-Other, desc: Mobile}
- {id: other, cat: Other, desc: Other}
- {id: playstation, cat: Console/PSP, desc: "Games Playstation"}
- {id: software, cat: PC/0day, desc: Software}
- {id: tv, cat: TV, desc: TV}
- {id: video, cat: TV, desc: Video}
- {id: videomovie, cat: Movies, desc: "Video Movie"}
- {id: videomovieadult, cat: XXX, desc: "Video Movie Adult"}
- {id: videomoviedvdrip, cat: Movies/SD, desc: "Video Movie DVDRip"}
- {id: videomoviehdrip, cat: Movies, desc: "Video Movie HDRip"}
- {id: videoshow, cat: TV, desc: "Video Show"}
- {id: videoshowadult, cat: XXX, desc: "Video Show Adult"}
- {id: videoshowmovie, cat: TV, desc: "Video Show Movie"}
- {id: xxx, cat: XXX, desc: Adult}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site
default: latest
options:
latest: "created desc"
oldest: "created asc"
seeders: seeders
sizebg: "size desc"
sizesm: "size asc"
- name: flaresolverr
type: info
label: FlareSolverr
default: This site may use Cloudflare DDoS Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolver</a> to access it.
search:
paths:
- path: "?t={{ .Keywords }}&orderby={{ .Config.sort }}"
- path: "?t={{ .Keywords }}&orderby={{ .Config.sort }}&page=2"
rows:
selector: "#similarfiles div:has(a[href^=\"/\"]):not(:has(a[class^=\"notpicked\"]))"
fields:
category:
text: Other
category|noappend:
optional: true
selector: div > span:nth-child(1) > span:nth-child(2)
filters:
- name: re_replace
args: ["[^a-zA-Z0-9]+", ""]
- name: tolower
title:
selector: span > a
details:
selector: span > a
attribute: href
infohash:
selector: span > a
attribute: href
filters:
- name: split
args: ["/", 1]
date:
selector: div > span:nth-child(4)
filters:
- name: timeago
size:
selector: div > span:nth-child(5)
description:
optional: true
selector: div > span:nth-child(1) > span:nth-child(2)
seeders:
selector: div > span:nth-child(2)
leechers:
selector: div > span:nth-child(3)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentqq85.com/
- https://torrentqq90.com/
legacylinks:
- https://torrentqq76.com/
- https://torrentqq77.com/
@@ -18,6 +18,11 @@ legacylinks:
- https://torrentqq82.com/
- https://torrentqq83.com/
- https://torrentqq84.com/
- https://torrentqq85.com/
- https://torrentqq86.com/
- https://torrentqq87.com/
- https://torrentqq88.com/
- https://torrentqq89.com/
caps:
categorymappings:

View File

@@ -7,6 +7,8 @@ type: semi-private
encoding: UTF-8
links:
- https://torrents-local.xyz/
certificates:
- 85f31ff50a1ee0dbc738a12015efe9ef8708505b # expired 5th May 2021
caps:
categorymappings:

View File

@@ -7,7 +7,7 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentview33.com/
- https://torrentview34.com/
legacylinks:
- https://torrentview.net/
- https://torrentview3.net/
@@ -40,6 +40,7 @@ legacylinks:
- https://torrentview30.com/
- https://torrentview31.com/
- https://torrentview32.com/
- https://torrentview33.com/
caps:
categorymappings:

View File

@@ -7,10 +7,11 @@ type: public
encoding: UTF-8
followredirect: true
links:
- https://torrentwiz24.me/
- https://torrentwiz25.me/
legacylinks:
- https://torrentwiz22.me/
- https://torrentwiz23.me/
- https://torrentwiz24.me/
caps:
categorymappings:

View File

@@ -119,6 +119,36 @@ search:
args: ["(?i)(m720p|mhd720p)", "720p MicroHD"]
- name: re_replace
args: ["(?i)brrip", "BDRip"]
- name: re_replace # Temporada 1 to S01
args: ["(?i)\\btemporada *(\\d{1,2})\\b", "S$1"]
- name: re_replace # T1 to S01
args: ["\\bT(\\d{1,2})\\b", "S$1"]
- name: re_replace # S1 to S01 / E1 to E01
args: ["\\b([SE])(\\d)\\b", "${1}0$2"]
- name: re_replace # S01 E01 to S01E01 / T01E01 to S01E01
args: ["\\b[ST](\\d{1,2}) *E(\\d{1,2})\\b", "S$1E$2"]
- name: re_replace # S1 a S2 to S1-2
args: ["(S\\d{1,2})( a S*| A S*| a la S*| A LA S*)(\\d{1,2})", "$1-$3"]
- name: re_replace # S01E01 E02 E03 to S01E01-02-03 (2 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (3 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (4 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (5 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (6 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (7 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (8 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (9 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # continuation (10 episodes)
args: ["([E-]\\d{1,2})( E| a E*| A E*| al E*| AL E*)(\\d{1,2})", "$1-$3"]
- name: re_replace # 2x6 to S02E06
args: ["\\b(\\d{1,2})x(\\d{1,2})\\b", "S$1E$2"]
- name: append
args: " MULTi/SPANiSH" # Add language for Sonarr/Radarr
download:
@@ -127,6 +157,14 @@ search:
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: replace
args: ["&w=52&h=80", "&w=180&h=270"] # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/52x80&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:

View File

@@ -14,7 +14,9 @@ legacylinks:
caps:
categorymappings:
- {id: 36, cat: Movies, desc: "Film"}
- {id: 59, cat: Movies, desc: "Türk Filmi"}
- {id: 76, cat: Movies, desc: "Film Almanca [Tek Dil!]"}
- {id: 78, cat: Movies, desc: "Film İngilizce [NL Altyazı!]"}
- {id: 59, cat: Movies, desc: "Film Türk Filmi"}
- {id: 61, cat: Movies/3D, desc: "Film 3D"}
- {id: 18, cat: Movies, desc: "Anime - Çizgi"}
- {id: 20, cat: Movies, desc: "Film Boxset"}
@@ -44,6 +46,14 @@ caps:
- {id: 39, cat: TV, desc: "Netflix Film"}
- {id: 38, cat: TV, desc: "Netflix Dizi"}
- {id: 40, cat: TV, desc: "Netflix Belgesel"}
- {id: 83, cat: TV, desc: "Dijital Platform"}
- {id: 84, cat: TV, desc: "Dijital Platform BluTV"}
- {id: 85, cat: TV, desc: "Dijital Platform BEiN"}
- {id: 77, cat: TV, desc: "Dijital Platform EXXEN"}
- {id: 86, cat: TV, desc: "Dijital Platform AMAZON"}
- {id: 87, cat: TV, desc: "Dijital Platform GAIN"}
- {id: 88, cat: TV, desc: "Dijital Platform TV+"}
- {id: 89, cat: TV, desc: "Dijital Platform Diger"}
- {id: 31, cat: TV, desc: "Dizi"}
- {id: 32, cat: TV, desc: "Dizi Yerli"}
- {id: 33, cat: TV, desc: "Dizi Yabancı Orjinal Dil / Tr Dublaj "}
@@ -65,13 +75,14 @@ caps:
book-search: [q]
settings:
- name: username
- name: cookie
type: text
label: Username
- name: password
type: password
label: Password
- name: info
label: Cookie
- name: info_cookie
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: info_profile
type: info
label: Layout
default: "<ol><li>Only the English Classic profile is supported.<li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b><li>And set the <b>Language (Dil)</b> to <b>English</b><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</ol>"
@@ -96,24 +107,9 @@ settings:
asc: asc
login:
path: ?p=home&pid=1
method: form
form: form#loginbox_form
submitpath: ajax/login.php
method: cookie
inputs:
action: login
loginbox_membername: "{{ .Config.username }}"
loginbox_password: "{{ .Config.password }}"
loginbox_remember: 1
selectorinputs:
securitytoken:
selector: "script:contains(\"stKey: \")"
filters:
- name: regexp
args: "stKey: \"(.+?)\","
error:
- selector: div.error
- selector: :contains("-ERROR-")
cookie: "{{ .Config.cookie }}"
test:
path: ?p=home&pid=1
selector: div#member_info_bar

View File

@@ -126,6 +126,7 @@ caps:
- {id: 81, cat: TV/Documentary, desc: " |- ПостКВН"}
- {id: 79, cat: TV/Documentary, desc: " |- Comedy Club"}
- {id: 80, cat: TV/Documentary, desc: " |- Наша Russia, Наша Belarussia, Файна Юкрайна"}
- {id: 1143, cat: TV/Documentary, desc: " |- Хорошие шутки "}
- {id: 82, cat: TV/Documentary, desc: " |- Телепередачи и шоу"}
- {id: 83, cat: TV/Documentary, desc: " |- Другие развлекательные передачи"}
- {id: 635, cat: TV/Documentary, desc: "Обучающее видео"}

View File

@@ -126,6 +126,7 @@ caps:
- {id: 81, cat: TV/Documentary, desc: " |- ПостКВН"}
- {id: 79, cat: TV/Documentary, desc: " |- Comedy Club"}
- {id: 80, cat: TV/Documentary, desc: " |- Наша Russia, Наша Belarussia, Файна Юкрайна"}
- {id: 1143, cat: TV/Documentary, desc: " |- Хорошие шутки "}
- {id: 82, cat: TV/Documentary, desc: " |- Телепередачи и шоу"}
- {id: 83, cat: TV/Documentary, desc: " |- Другие развлекательные передачи"}
- {id: 635, cat: TV/Documentary, desc: "Обучающее видео"}

View File

@@ -6,6 +6,8 @@ language: en-us
type: public
encoding: UTF-8
links:
- https://looptorrent.net/
legacylinks:
- https://vsttorrents.net/
caps:

View File

@@ -38,6 +38,7 @@ legacylinks:
- https://yggtorrent.si/
- http://www2.yggtorrent.si/
- https://www2.yggtorrent.si/
- https://www.yggtorrent.li/
caps:
categorymappings:

View File

@@ -38,6 +38,7 @@ legacylinks:
- https://yggtorrent.si/
- http://www2.yggtorrent.si/
- https://www2.yggtorrent.si/
- https://www.yggtorrent.li/
caps:
categorymappings:

View File

@@ -6,7 +6,7 @@ language: fr-fr
type: public
encoding: UTF-8
links:
- https://www.zetorrents.org/
- https://wvw.zetorrents.org/
legacylinks:
- https://www.zetorrents.co/
- https://www.zetorrents.io/
@@ -14,6 +14,7 @@ legacylinks:
- https://vww.zetorrents.io/
- https://wwv.zetorrents.io/
- https://ww1.zetorrents.io/
- https://www.zetorrents.org/
caps:
categories:

View File

@@ -9,7 +9,7 @@ followredirect: true
links:
- https://zooqle.com/
- https://zooqle.unblockninja.com/
- https://zooqle.unblockit.onl/
- https://zooqle.unblockit.li/
- https://zooqle.nocensor.space/
legacylinks:
- https://zooqle.unblockit.pro/
@@ -36,6 +36,7 @@ legacylinks:
- https://zooqle.unblockit.buzz/
- https://zooqle.unblocked.monster/
- https://zooqle.unblockit.club/
- https://zooqle.unblockit.onl/
caps:
categorymappings:

View File

@@ -45,7 +45,8 @@ namespace Jackett.Common.Indexers
name: "Abnormal",
description: "General French Private Tracker",
link: "https://abnormal.ws/",
caps: new TorznabCapabilities {
caps: new TorznabCapabilities
{
TvSearchParams = new List<TvSearchParam>
{
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep

View File

@@ -77,7 +77,7 @@ namespace Jackett.Common.Indexers.Abstract
{
var cats = new List<int>();
var resolution = row.Value<string>("video_quality");
switch(row.Value<string>("type"))
switch (row.Value<string>("type"))
{
case "Movie":
cats.Add(resolution switch

View File

@@ -24,14 +24,17 @@ namespace Jackett.Common.Indexers.Abstract
{
protected virtual string LoginUrl => SiteLink + "login.php";
protected virtual string APIUrl => SiteLink + "ajax.php";
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id=";
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download&usetoken=" + (useTokens ? "1" : "0") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + "&id=";
protected virtual string DetailsUrl => SiteLink + "torrents.php?torrentid=";
protected virtual string AuthorizationFormat => "{0}";
protected virtual int ApiKeyLength => 41;
protected bool useTokens;
protected string cookie = "";
private readonly bool imdbInTags;
private readonly bool useApiKey;
private readonly bool usePassKey;
private new ConfigurationDataGazelleTracker configData => (ConfigurationDataGazelleTracker)base.configData;
@@ -39,7 +42,7 @@ namespace Jackett.Common.Indexers.Abstract
IIndexerConfigurationService configService, WebClient client, Logger logger,
IProtectionService p, ICacheService cs, TorznabCapabilities caps,
bool supportsFreeleechTokens, bool imdbInTags = false, bool has2Fa = false,
bool useApiKey = false, string instructionMessageOptional = null)
bool useApiKey = false, bool usePassKey = false, string instructionMessageOptional = null)
: base(id: id,
name: name,
description: description,
@@ -51,12 +54,13 @@ namespace Jackett.Common.Indexers.Abstract
p: p,
cacheService: cs,
configData: new ConfigurationDataGazelleTracker(
has2Fa, supportsFreeleechTokens, useApiKey, instructionMessageOptional))
has2Fa, supportsFreeleechTokens, useApiKey, usePassKey, instructionMessageOptional))
{
Encoding = Encoding.UTF8;
this.imdbInTags = imdbInTags;
this.useApiKey = useApiKey;
this.usePassKey = usePassKey;
}
public override void LoadValuesFromJson(JToken jsonConfig, bool useProtectionService = false)
@@ -81,8 +85,8 @@ namespace Jackett.Common.Indexers.Abstract
var apiKey = configData.ApiKey;
if (apiKey?.Value == null)
throw new Exception("Invalid API Key configured");
if (apiKey.Value.Length != 41)
throw new Exception($"Invalid API Key configured: expected length: 41, got {apiKey.Value.Length}");
if (apiKey.Value.Length != ApiKeyLength)
throw new Exception($"Invalid API Key configured: expected length: {ApiKeyLength}, got {apiKey.Value.Length}");
try
{
@@ -189,7 +193,7 @@ namespace Jackett.Common.Indexers.Abstract
searchUrl += "?" + queryCollection.GetQueryString();
var apiKey = configData.ApiKey;
var headers = apiKey != null ? new Dictionary<string, string> { ["Authorization"] = apiKey.Value } : null;
var headers = apiKey != null ? new Dictionary<string, string> { ["Authorization"] = String.Format(AuthorizationFormat, apiKey.Value) } : null;
var response = await RequestWithCookiesAndRetryAsync(searchUrl, headers: headers);
// we get a redirect in html pages and an error message in json response (api)
@@ -368,7 +372,7 @@ namespace Jackett.Common.Indexers.Abstract
public override async Task<byte[]> Download(Uri link)
{
var apiKey = configData.ApiKey;
var headers = apiKey != null ? new Dictionary<string, string> { ["Authorization"] = apiKey.Value } : null;
var headers = apiKey != null ? new Dictionary<string, string> { ["Authorization"] = String.Format(AuthorizationFormat, apiKey.Value) } : null;
var response = await base.RequestWithCookiesAsync(link.ToString(), null, RequestType.GET, headers: headers);
var content = response.ContentBytes;
@@ -381,7 +385,7 @@ 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 left.")
|| html.Contains("You do not have enough freeleech tokens")
|| html.Contains("This torrent is too large."))
{
// download again with usetoken=0

View File

@@ -145,7 +145,7 @@ namespace Jackett.Common.Indexers.Abstract
Link = link,
Details = details,
Guid = details,
Category = MapTrackerCatToNewznab(cat),
Category = MapTrackerCatToNewznab(cat),
PublishDate = publishDate,
Description = description,
Poster = poster,

View File

@@ -5,8 +5,8 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Jackett.Common.Models;
using Jackett.Common.Models.IndexerConfig.Bespoke;
using Jackett.Common.Services.Interfaces;
@@ -80,7 +80,8 @@ namespace Jackett.Common.Indexers
throw new WebException($"AniLibria search returned unexpected result. Expected 200 OK but got {response.Status}.", WebExceptionStatus.ProtocolError);
var results = ParseApiResults(response.ContentString);
return results.Where(release => query.MatchQueryStringAND(release.Title, null, title));;
return results.Where(release => query.MatchQueryStringAND(release.Title, null, title));
;
}
private async Task<IEnumerable<ReleaseInfo>> FetchNewReleases()
@@ -97,7 +98,8 @@ namespace Jackett.Common.Indexers
return ParseApiResults(response.ContentString);
}
private string composeTitle(dynamic json) {
private string composeTitle(dynamic json)
{
var title = json.names.ru;
title += " / " + json.names.en;
if (json.alternative is string)
@@ -109,7 +111,8 @@ namespace Jackett.Common.Indexers
private List<ReleaseInfo> ParseApiResults(string json)
{
var releases = new List<ReleaseInfo>();
foreach (dynamic r in JArray.Parse(json)) {
foreach (dynamic r in JArray.Parse(json))
{
var baseRelease = new ReleaseInfo
{
Title = composeTitle(r),
@@ -117,12 +120,13 @@ namespace Jackett.Common.Indexers
Details = new Uri(SiteLink + "/release/" + r.code + ".html"),
DownloadVolumeFactor = 0,
UploadVolumeFactor = 1,
Category = new []
Category = new[]
{
TorznabCatType.TVAnime.ID
}
};
foreach (var t in r.torrents.list) {
foreach (var t in r.torrents.list)
{
var release = (ReleaseInfo)baseRelease.Clone();
release.Title += " [" + t.quality["string"] + "] - " + t.series["string"];
release.Size = t.total_size;

View File

@@ -53,17 +53,17 @@ namespace Jackett.Common.Indexers
AddCategoryMapping(3, TorznabCatType.TVAnime, "Anime - Dub");
AddCategoryMapping(4, TorznabCatType.TVAnime, "LA - Sub");
AddCategoryMapping(5, TorznabCatType.TVAnime, "LA - Raw");
AddCategoryMapping(6, TorznabCatType.TVAnime, "Light Novel");
AddCategoryMapping(7, TorznabCatType.TVAnime, "Manga - TLed");
AddCategoryMapping(8, TorznabCatType.TVAnime, "Manga - Raw");
AddCategoryMapping(9, TorznabCatType.TVAnime, "♫ - Lossy");
AddCategoryMapping(10, TorznabCatType.TVAnime, "♫ - Lossless");
AddCategoryMapping(11, TorznabCatType.TVAnime, "♫ - Video");
AddCategoryMapping(12, TorznabCatType.TVAnime, "Games");
AddCategoryMapping(13, TorznabCatType.TVAnime, "Applications");
AddCategoryMapping(14, TorznabCatType.TVAnime, "Pictures");
AddCategoryMapping(15, TorznabCatType.TVAnime, "Adult Video");
AddCategoryMapping(16, TorznabCatType.TVAnime, "Other");
AddCategoryMapping(6, TorznabCatType.BooksEBook, "Light Novel");
AddCategoryMapping(7, TorznabCatType.BooksComics, "Manga - TLed");
AddCategoryMapping(8, TorznabCatType.BooksComics, "Manga - Raw");
AddCategoryMapping(9, TorznabCatType.AudioMP3, "♫ - Lossy");
AddCategoryMapping(10, TorznabCatType.AudioLossless, "♫ - Lossless");
AddCategoryMapping(11, TorznabCatType.AudioVideo, "♫ - Video");
AddCategoryMapping(12, TorznabCatType.PCGames, "Games");
AddCategoryMapping(13, TorznabCatType.PC0day, "Applications");
AddCategoryMapping(14, TorznabCatType.XXXImageSet, "Pictures");
AddCategoryMapping(15, TorznabCatType.XXX, "Adult Video");
AddCategoryMapping(16, TorznabCatType.Other, "Other");
AddLanguageConfiguration();

Some files were not shown because too many files have changed in this diff Show More