mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-11 14:19:17 +02:00
Compare commits
83 Commits
v0.20.4152
...
v0.21.52
Author | SHA1 | Date | |
---|---|---|---|
![]() |
efc1602936 | ||
![]() |
906b8e1ff8 | ||
![]() |
bf4228b0dc | ||
![]() |
0a00e4edcd | ||
![]() |
abbf37060d | ||
![]() |
f6108ee852 | ||
![]() |
a6bde9f001 | ||
![]() |
2594fdba13 | ||
![]() |
97873506e3 | ||
![]() |
4944aef039 | ||
![]() |
a63fd138a8 | ||
![]() |
e4af5f1db2 | ||
![]() |
25e45daa20 | ||
![]() |
468ea2472b | ||
![]() |
49f57a9833 | ||
![]() |
63c7bf6aed | ||
![]() |
f5b787562f | ||
![]() |
182de9c60a | ||
![]() |
497e02e80c | ||
![]() |
fba5201ccd | ||
![]() |
8c2baf3bd2 | ||
![]() |
5b69bdfef4 | ||
![]() |
844855e3ba | ||
![]() |
ddb5e95785 | ||
![]() |
ef714804ee | ||
![]() |
3aab5de496 | ||
![]() |
fbe225bbf6 | ||
![]() |
897156176a | ||
![]() |
2db0ca6d52 | ||
![]() |
63faed4687 | ||
![]() |
0806e4182b | ||
![]() |
91307ff044 | ||
![]() |
0f5e919f33 | ||
![]() |
051cbabbcf | ||
![]() |
bd3ec7533d | ||
![]() |
78fecaced2 | ||
![]() |
4142a9d037 | ||
![]() |
1d89c135a3 | ||
![]() |
16c2d6f9ca | ||
![]() |
5c42955ba8 | ||
![]() |
64ee0c912d | ||
![]() |
a48aa7a6e1 | ||
![]() |
c56f32695a | ||
![]() |
c53933f307 | ||
![]() |
baa8439781 | ||
![]() |
c2aec85893 | ||
![]() |
e146ad227c | ||
![]() |
675b259e0a | ||
![]() |
04e24bacb3 | ||
![]() |
9638823cf1 | ||
![]() |
05dfda2736 | ||
![]() |
c6f4a55444 | ||
![]() |
e29f409164 | ||
![]() |
f68381010f | ||
![]() |
c12c050ed7 | ||
![]() |
558d3530fa | ||
![]() |
a5331e20c2 | ||
![]() |
ffdd0348c2 | ||
![]() |
a012c9d686 | ||
![]() |
7e33461c7f | ||
![]() |
4000c46be1 | ||
![]() |
f018aa252c | ||
![]() |
5f1445d59b | ||
![]() |
25cdf412c1 | ||
![]() |
02a818f71f | ||
![]() |
ca35c57d78 | ||
![]() |
76343fd56a | ||
![]() |
dd9feca37b | ||
![]() |
6ab273651d | ||
![]() |
d3599c9c3a | ||
![]() |
f701bba1ef | ||
![]() |
7907e2b620 | ||
![]() |
78d673f491 | ||
![]() |
b7756508e1 | ||
![]() |
0210b7dc5b | ||
![]() |
efb8de4d4c | ||
![]() |
dee88f618a | ||
![]() |
4e0c5814f4 | ||
![]() |
df48a6ed41 | ||
![]() |
aed390f7ba | ||
![]() |
b0adee0047 | ||
![]() |
d634670ad8 | ||
![]() |
8f260f7f97 |
31
README.md
31
README.md
@@ -14,7 +14,7 @@ Please see our [troubleshooting and contributing guidelines](CONTRIBUTING.md) be
|
||||
|
||||
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar3](https://github.com/mylar3/mylar3), [Lidarr](https://github.com/lidarr/lidarr), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), [qBittorrent](https://www.qbittorrent.org/), [Nefarious](https://github.com/lardbit/nefarious) etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
|
||||
|
||||
Developer note: The software implements the [Torznab](https://web.archive.org/web/20220517013745/https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with hybrid [nZEDb](https://github.com/nZEDb/nZEDb/blob/b485fa326a0ff1f47ce144164eb1f070e406b555/resources/db/schema/data/10-categories.tsv)/[Newznab](https://newznab.readthedocs.io/en/latest/misc/api/#predefined-categories) [category numbering](https://github.com/Jackett/Jackett/wiki/Jackett-Categories)) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
|
||||
Developer note: The software implements the [Torznab](https://torznab.github.io/spec-1.3-draft/index.html) (with hybrid [nZEDb](https://github.com/nZEDb/nZEDb/blob/b485fa326a0ff1f47ce144164eb1f070e406b555/resources/db/schema/data/10-categories.tsv)/[Newznab](https://newznab.readthedocs.io/en/latest/misc/api/#predefined-categories) [category numbering](https://github.com/Jackett/Jackett/wiki/Jackett-Categories)) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
|
||||
|
||||
A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](https://github.com/webtor-io/go-jackett)
|
||||
|
||||
@@ -188,10 +188,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Il CorSaRo Blu
|
||||
* Kinorun
|
||||
* Kinozal
|
||||
* Lightning-Tor
|
||||
* LostFilm.tv
|
||||
* Magnetico (Local DHT) [[site](https://github.com/boramalper/magnetico)]
|
||||
* Marine Tracker
|
||||
* Masters-TB
|
||||
* Mazepa
|
||||
* Metal Tracker
|
||||
* Moviesite
|
||||
@@ -236,14 +236,13 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* 1ptbar
|
||||
* 2 Fast 4 You [![(invite needed)][inviteneeded]](#)
|
||||
* 2xFree
|
||||
* 3ChangTrai (3CT) [![(invite needed)][inviteneeded]](#)
|
||||
* 3ChangTrai (3CT)
|
||||
* 3D Torrents (3DT)
|
||||
* 4thD (4th Dimension)
|
||||
* 52PT
|
||||
* 720pier
|
||||
* Abnormal
|
||||
* ABtorrents (ABT + RNS)
|
||||
* Acervos [![(invite needed)][inviteneeded]](#)
|
||||
* Acid Lounge (A-L)
|
||||
* AcrossTheTasman [![(invite needed)][inviteneeded]](#)
|
||||
* Aftershock
|
||||
@@ -266,7 +265,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* AudioNews (AN)
|
||||
* Aussierul.es [![(invite needed)][inviteneeded]](#)
|
||||
* AvistaZ (AsiaTorrents)
|
||||
* Back-ups [![(invite needed)][inviteneeded]](#)
|
||||
* Back-ups
|
||||
* BakaBT
|
||||
* BeiTai
|
||||
* Best-Core
|
||||
@@ -302,10 +301,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CartoonChaos (CC)
|
||||
* Cathode-Ray.Tube (CRT)
|
||||
* CCFBits [![(invite needed)][inviteneeded]](#)
|
||||
* Central Torrent
|
||||
* CeskeForum
|
||||
* CGPeers [![(invite needed)][inviteneeded]](#)
|
||||
* CHDBits [![(invite needed)][inviteneeded]](#)
|
||||
* ChileBT
|
||||
* CiNEFiLHD
|
||||
* Cinemageddon [![(invite needed)][inviteneeded]](#)
|
||||
* CinemaMovieS_ZT
|
||||
* Cinematik [![(invite needed)][inviteneeded]](#)
|
||||
@@ -350,7 +351,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* GainBound [![(invite needed)][inviteneeded]](#)
|
||||
* Gay-Torrents.org
|
||||
* GAYtorrent.ru
|
||||
* GazelleGames (GGn) [![(invite needed)][inviteneeded]](#)
|
||||
* GazelleGames (GGn)
|
||||
* Generation-Free
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT)
|
||||
@@ -396,6 +397,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
* Infire
|
||||
* Insane Tracker
|
||||
* IPTorrents (IPT)
|
||||
* ItaTorrents
|
||||
@@ -417,19 +419,22 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* leech24
|
||||
* LemonHD
|
||||
* Les-Cinephiles
|
||||
* Lesbians4u
|
||||
* Libble
|
||||
* LibraNet (LN)
|
||||
* LinkoManija [![(invite needed)][inviteneeded]](#)
|
||||
* Locadora
|
||||
* LosslessClub [![(invite needed)][inviteneeded]](#)
|
||||
* LST
|
||||
* M-Team TP (MTTP) [![(invite needed)][inviteneeded]](#)
|
||||
* M-Team TP (MTTP)
|
||||
* MaDs Revolution
|
||||
* magic-heaven
|
||||
* Magico (Trellas) [![(invite needed)][inviteneeded]](#)
|
||||
* Majomparádé (TurkDepo)
|
||||
* Mansão dos Animes (MDAN)
|
||||
* MegamixTracker
|
||||
* MeseVilág (Fairytale World)
|
||||
* MetalGuru
|
||||
* Milkie
|
||||
* MIRcrew
|
||||
* MMA-Torrents [![(invite needed)][inviteneeded]](#)
|
||||
@@ -455,6 +460,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* OurBits (HDPter)
|
||||
* P2PBG
|
||||
* Partis
|
||||
* Party-Tracker
|
||||
* PassThePopcorn (PTP)
|
||||
* Peeratiko
|
||||
* Peers.FM
|
||||
@@ -474,6 +480,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* PTerClub
|
||||
* PTFiles (PTF)
|
||||
* PThome [![(invite needed)][inviteneeded]](#)
|
||||
* PT分享站 (itzmx)
|
||||
* PTSBAO
|
||||
* PTtime
|
||||
* Punk's Horror Tracker
|
||||
@@ -494,15 +501,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* RevolutionTT
|
||||
* Romanian Metal Torrents (RMT) [![(invite needed)][inviteneeded]](#)
|
||||
* RPTorrents
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* SceneRush
|
||||
* SceneTime
|
||||
* SDBits [![(invite needed)][inviteneeded]](#)
|
||||
* Secret Cinema
|
||||
* SeedFile
|
||||
* Shareisland
|
||||
* SharkPT
|
||||
* Shazbat [![(invite needed)][inviteneeded]](#)
|
||||
* Shazbat
|
||||
* SiamBIT
|
||||
* SkipTheCommercials
|
||||
* SkipTheTrailers
|
||||
@@ -569,8 +575,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TorrentSeeds (TS)
|
||||
* TotallyKids (TK)
|
||||
* ToTheGlory (TTG) [![(invite needed)][inviteneeded]](#)
|
||||
* TranceTraffic [![(invite needed)][inviteneeded]](#)
|
||||
* Trezzor [![(invite needed)][inviteneeded]](#)
|
||||
* TranceTraffic
|
||||
* TreZzoR [![(invite needed)][inviteneeded]](#)
|
||||
* TurkSeed
|
||||
* TurkTorrent (TT)
|
||||
* TV Chaos UK (TVCUK)
|
||||
@@ -584,6 +590,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* UnleashTheCartoons
|
||||
* UnlimitZ
|
||||
* Uploads
|
||||
* UTOPIA
|
||||
* White Angel
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* World-of-Tomorrow
|
||||
|
@@ -2,7 +2,7 @@
|
||||
name: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
variables:
|
||||
majorVersion: 0
|
||||
minorVersion: 20
|
||||
minorVersion: 21
|
||||
patchVersion: $[counter(variables['minorVersion'], 1)] # this will reset when we bump minor
|
||||
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
buildConfiguration: Release
|
||||
|
@@ -529,10 +529,10 @@
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>You can search all configured indexers from this screen.</p>
|
||||
<label for="text">Query</label>
|
||||
<label for="searchquery">Query</label>
|
||||
<input class="form-control" type="text" name="query" id="searchquery" />
|
||||
{{#if filters}}
|
||||
<label for="filter">Filter</label>
|
||||
<label for="searchFilter">Filter</label>
|
||||
<select name="filter" id="searchFilter">
|
||||
<option value="all">all</option>
|
||||
{{#each filters}}
|
||||
@@ -540,9 +540,9 @@
|
||||
{{/each}}
|
||||
</select>
|
||||
{{/if}}
|
||||
<label for="tracker">Tracker</label>
|
||||
<label for="searchTracker">Tracker</label>
|
||||
<select name="tracker" id="searchTracker" multiple="multiple"></select>
|
||||
<label for="category">Category</label>
|
||||
<label for="searchCategory">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>
|
||||
<div id="searchResults"></div>
|
||||
|
@@ -20,7 +20,7 @@ Handlebars.registerHelper('jacketTimespan', function (context, block) {
|
||||
|
||||
var hours = timeSpan.asHours();
|
||||
if (hours < 48) {
|
||||
return Math.round(hours) + 'h ago';
|
||||
return parseFloat(hours).toFixed(1) + 'h ago';
|
||||
}
|
||||
|
||||
var days = timeSpan.asDays();
|
||||
|
@@ -89,7 +89,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -98,8 +97,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -31,7 +31,7 @@ settings:
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/anilibria/docs/blob/master/api_v3.md
|
||||
- path: "https://api.anilibria.tv/v3/{{ if .Keywords }}searchTitles{{ else }}getUpdates{{ end }}"
|
||||
- path: "https://api.anilibria.tv/v3/title/{{ if .Keywords }}search{{ else }}updates{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
|
@@ -91,7 +91,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -100,8 +99,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -94,13 +94,10 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
@@ -6,8 +6,6 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
certificates:
|
||||
- 7b36f0dc75d3340727b6f74bbdbde46ec59b7037 # expired 12 Feb 2023
|
||||
links:
|
||||
- https://asnet.pw/
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
id: arabp2p
|
||||
name: ArabP2P
|
||||
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AR
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
id: arabtorrents
|
||||
name: ArabTorrents
|
||||
description: "ArabTorrents is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AR
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: windows-1256
|
||||
requestDelay: 2
|
||||
@@ -145,7 +145,7 @@ download:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
torrentid: "{{ re_replace .DownloadUri.PathAndQuery \".*download-torrent-(\\d+).*\" \"$1\"}}"
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -169,22 +169,22 @@ search:
|
||||
args: ["^(.+)$", "*$1*"]
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(div > a[href*="details.php?id="])
|
||||
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href*="/browse.php?category="]
|
||||
selector: td a[href*="/torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
- name: regexp
|
||||
args: "torrent-category-(\\d+)\/"
|
||||
title:
|
||||
selector: td a[href*="/details.php?id="]
|
||||
selector: td div.tooltip-target
|
||||
details:
|
||||
selector: td a[href*="/details.php?id="]
|
||||
selector: span a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
selector: a[href*="/download-torrent-"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) > div:nth-child(3)
|
||||
|
@@ -28,6 +28,7 @@ caps:
|
||||
- {id: 20, cat: Movies/HD, desc: "Movies / Movies HD"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Movies / x265"}
|
||||
- {id: 22, cat: Movies/UHD, desc: "Movies / 4K"}
|
||||
- {id: 59, cat: Movies/HD, desc: "Movies / AV1"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 23, cat: TV/HD, desc: "Series / TV Episodes HD"}
|
||||
- {id: 24, cat: TV, desc: "Series / TV Episodes"}
|
||||
|
@@ -78,7 +78,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -87,8 +86,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -7,11 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
# use https://tellme.pw/btsow to find the new domain
|
||||
links:
|
||||
- https://btsow.hair/
|
||||
- https://btsow.bond/
|
||||
legacylinks:
|
||||
- https://btsow.surf/
|
||||
- https://btsow.com/
|
||||
- https://btsow.cam/
|
||||
- https://btsow.digital/
|
||||
- https://btsow.shop/
|
||||
- https://btsow.us/
|
||||
@@ -26,6 +23,7 @@ legacylinks:
|
||||
- https://btsow.beauty/
|
||||
- https://btsow.mom/
|
||||
- https://btsow.boats/
|
||||
- https://btsow.hair/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
155
src/Jackett.Common/Definitions/centraltorrent.yml
Normal file
155
src/Jackett.Common/Definitions/centraltorrent.yml
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
id: centraltorrent
|
||||
name: Central Torrent
|
||||
description: "Central Torrent is a POLISH Private Torrent Tracker for MOVIES / MUSIC"
|
||||
language: pl-PL
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- http://central-torrent.eu/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: TV/Anime, desc: "Animowane"}
|
||||
- {id: 1, cat: PC, desc: "Aplikacje"}
|
||||
- {id: 26, cat: Movies, desc: "Dzieci/Bajki"}
|
||||
- {id: 29, cat: Books/EBook, desc: "E-books"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Filmy/DVD"}
|
||||
- {id: 22, cat: Movies/SD, desc: "Filmy/RMVB"}
|
||||
- {id: 35, cat: Movies/UHD, desc: "Filmy/UHD"}
|
||||
- {id: 24, cat: Movies/HD, desc: "Filmy/x264"}
|
||||
- {id: 36, cat: Movies/HD, desc: "Filmy/x265"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Filmy/XviD"}
|
||||
- {id: 21, cat: Movies/SD, desc: "Filmy/XviD PL"}
|
||||
- {id: 12, cat: PC/Games, desc: "Gry"}
|
||||
- {id: 17, cat: PC/Games, desc: "Gry/Konsole"}
|
||||
- {id: 4, cat: PC/Games, desc: "Gry/PC ISO"}
|
||||
- {id: 28, cat: Other, desc: "GSM/PDA"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "HD/Blu-ray"}
|
||||
- {id: 31, cat: Audio/Lossless, desc: "Music/Lossless"}
|
||||
- {id: 6, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 30, cat: Other, desc: "Rozne"}
|
||||
- {id: 25, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 27, cat: Audio/Video, desc: "Teledyski"}
|
||||
- {id: 7, cat: TV, desc: "TV/Seriale"}
|
||||
- {id: 9, 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: Search 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
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img.cimage
|
||||
input: captcha
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
test:
|
||||
path: my.php
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 all, 1 polish, 2 non-polish
|
||||
polish: 0
|
||||
# 0 name
|
||||
blah: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[onMouseover] > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# tbsource
|
@@ -2,7 +2,7 @@
|
||||
id: chilebt
|
||||
name: ChileBT
|
||||
description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: es-419
|
||||
language: es-CL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
|
172
src/Jackett.Common/Definitions/cinefilhd.yml
Normal file
172
src/Jackett.Common/Definitions/cinefilhd.yml
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
id: cinefilhd
|
||||
name: CiNEFiLHD
|
||||
description: "CiNEFiLHD is a Private Torrent Tracker for MOVIES / TV / MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://cinefilhd.sytes.net/
|
||||
legacylinks:
|
||||
- http://www.cinefilhd.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 37, cat: Movies/HD, desc: "Internal/HD-1080p"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Internal/HD-720p"}
|
||||
- {id: 30, cat: TV/HD, desc: "Internal/HDTV"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Internal/mHD"}
|
||||
- {id: 40, cat: Movies, desc: "Internal/Mp4"}
|
||||
- {id: 26, cat: Movies, desc: "Internal/Remux"}
|
||||
- {id: 45, cat: Movies/WEB-DL, desc: "Internal/WEB-DL"}
|
||||
- {id: 5, cat: Movies/BluRay, desc: "Movies/BluRay"}
|
||||
- {id: 38, cat: Movies/HD, desc: "Movies/HD-1080p"}
|
||||
- {id: 10, cat: Movies/HD, desc: "Movies/HD-720p"}
|
||||
- {id: 29, cat: Movies/HD, desc: "Movies/mHD"}
|
||||
- {id: 41, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 39, cat: Movies, desc: "Movies/Remux"}
|
||||
- {id: 44, cat: Movies/WEB-DL, desc: "Movies/WEB-DL"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 14, cat: Audio/MP3, desc: "MP3-Packs"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music-MP3"}
|
||||
- {id: 43, cat: Audio/Video, desc: "Music/1080p"}
|
||||
- {id: 42, cat: Audio/Video, desc: "Music/720p"}
|
||||
- {id: 12, cat: TV/HD, desc: "HDTV-Packs"}
|
||||
- {id: 21, cat: TV/HD, desc: "Movies/HDTV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, genre]
|
||||
movie-search: [q, imdbid, genre]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
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 }}"
|
||||
submitme: LOGIN
|
||||
error:
|
||||
- selector: h2:contains("failed")
|
||||
message:
|
||||
selector: td.colhead2
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.Genre }}{{ .Query.Genre }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Genre }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# title, descr, genre, all
|
||||
searchin: "{{ if .Query.IMDBID }}descr{{else}}{{end}}{{ if .Query.Genre }}genre{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Genre }}{{ else }}title{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}0{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.mainouter table > tbody > tr:has(a[href^="details.php?id="]), table.mainouter table > tbody > tr[id^="kdescr"]
|
||||
after: 1
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
# onmouseover="Tip('<img class=\'pup\' src=\'https://image.tmdb.org/t/p/original/x96AdPlpl4MjUP2DeUhRJifhCMd.jpg\' width=
|
||||
- name: regexp
|
||||
args: src=\\'(.*?)\\'
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
date_day:
|
||||
# Today<br/>10:20 AM
|
||||
# Yesterday<br/>08:03 PM
|
||||
selector: td:nth-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
# Feb 14 2019<br/>10:20 AM
|
||||
selector: td:nth-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
genre:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, font
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.freeleech_color: 0
|
||||
tr.highlight: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# U-232 v3
|
@@ -90,7 +90,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -99,8 +98,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -83,7 +83,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -92,8 +91,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -92,6 +92,7 @@ caps:
|
||||
- {id: 117, cat: Audio, desc: "Compact Disc Club"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 118, cat: Audio, desc: "Dream Radio Music"}
|
||||
- {id: 124, cat: Movies, desc: "VIP Movies"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -14,6 +14,7 @@ caps:
|
||||
- {id: "Action/Adventure", cat: Books/EBook, desc: "Action/Adventure"}
|
||||
- {id: "Animals", cat: Books/EBook, desc: "Animals"}
|
||||
- {id: "Arts", cat: Books/EBook, desc: "Arts"}
|
||||
- {id: "Audio Books", cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: "Beauty", cat: Books/EBook, desc: "Beauty"}
|
||||
- {id: "Business", cat: Books/EBook, desc: "Business"}
|
||||
- {id: "Certification", cat: Books/EBook, desc: "Certification"}
|
||||
@@ -29,7 +30,7 @@ caps:
|
||||
- {id: "Fantasy", cat: Books/EBook, desc: "Fantasy"}
|
||||
- {id: "Gardening", cat: Books/EBook, desc: "Gardening"}
|
||||
- {id: "Health", cat: Books/EBook, desc: "Health"}
|
||||
- {id: "Historical", cat: Books/EBook, desc: "Historical"}
|
||||
- {id: "Historical Fiction", cat: Books/EBook, desc: "Historical Fiction"}
|
||||
- {id: "History", cat: Books/EBook, desc: "History"}
|
||||
- {id: "Horror", cat: Books/EBook, desc: "Horror"}
|
||||
- {id: "Humorous", cat: Books/EBook, desc: "Humorous"}
|
||||
@@ -64,6 +65,7 @@ caps:
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
@@ -101,8 +103,10 @@ search:
|
||||
optional: true
|
||||
default: Other
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEbooks?\\b", ""]
|
||||
- name: regexp
|
||||
args: "E book under:\\s+(.+?)\\s"
|
||||
args: "E book under:\\s+(.+?)\\s?\\\xA0"
|
||||
title:
|
||||
selector: div.postname a
|
||||
details:
|
||||
|
@@ -60,6 +60,8 @@ search:
|
||||
selector: table#descargas > tbody > tr:has(td:has(a[href^="magnet:?"]))
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: "{{ if eq .Config.category \"todos\" }}Anime{{ else }}{{ .Config.category }}{{ end }}"
|
||||
title:
|
||||
selector: td.tit a
|
||||
filters:
|
||||
@@ -84,10 +86,6 @@ search:
|
||||
magnet:
|
||||
selector: td:nth-child(1) a[href^="magnet:?"]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td.tit span
|
||||
optional: true
|
||||
default: Anime
|
||||
date_day:
|
||||
# 1d
|
||||
# 2d 3h
|
||||
|
@@ -77,7 +77,10 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
- name: info_news
|
||||
type: info
|
||||
label: Reminder from GF-Free Admin
|
||||
default: "Attention users of third-party software like Jackett or Radarr, Sonarr or similar:<br>Despite your seed downloads you must physically connect to the web site with your browser or risk being <b>Banned for non-participation</b>...<br><ol>We ask :<li>Remain in seed at least 48 hours on the media to avoid H$R</li><li>And much more depending on your storage means</li><li>Participate in the life of the site shout forum...</li><li>Connect regularly to possibly read your private messages.</li></ol>"
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
@@ -106,11 +109,10 @@ search:
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
free[]: "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -119,8 +121,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -76,7 +76,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -85,8 +84,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
@@ -82,7 +82,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -91,8 +90,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -85,13 +85,10 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
158
src/Jackett.Common/Definitions/infire.yml
Normal file
158
src/Jackett.Common/Definitions/infire.yml
Normal file
@@ -0,0 +1,158 @@
|
||||
---
|
||||
id: infire
|
||||
name: Infire
|
||||
description: "Infire is a SLOVENIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: sl-SI
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://infire.si/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/HD, desc: "HD 720p"}
|
||||
- {id: 16, cat: Movies/HD, desc: "HD 1080p"}
|
||||
- {id: 17, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 18, cat: TV/Documentary, desc: "Dokumentarci"}
|
||||
- {id: 19, cat: Movies/DVD, desc: "DVD/R5"}
|
||||
- {id: 20, cat: Movies/WEB-DL, desc: "WEB/Rip"}
|
||||
- {id: 21, cat: Movies/WEB-DL, desc: "WEB/Download"}
|
||||
- {id: 14, cat: Movies/SD, desc: "XviD"}
|
||||
- {id: 32, cat: XXX, desc: "XXX"}
|
||||
- {id: 50, cat: Movies/BluRay, desc: "BluRay 1080p"}
|
||||
- {id: 49, cat: Movies/UHD, desc: "HD 2160p"}
|
||||
- {id: 23, cat: TV, desc: "TV"}
|
||||
- {id: 24, cat: TV/HD, desc: "HD TV"}
|
||||
- {id: 26, cat: TV/Anime, desc: "Animirano"}
|
||||
- {id: 28, cat: PC/Games, desc: "PC"}
|
||||
- {id: 29, cat: PC/ISO, desc: "PC ISO"}
|
||||
- {id: 30, cat: Console/Other, desc: "GBA"}
|
||||
- {id: 31, cat: Console/PS3, desc: "PS2"}
|
||||
- {id: 33, cat: Audio, desc: "Glasba"}
|
||||
- {id: 34, cat: Console/PS3, desc: "PS3"}
|
||||
- {id: 35, cat: Console/XBox, desc: "Xbox"}
|
||||
- {id: 36, cat: Console/PSP, desc: "PSP"}
|
||||
- {id: 37, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 38, cat: PC, desc: "Programi"}
|
||||
- {id: 39, cat: Books/EBook, desc: "eKnjige"}
|
||||
- {id: 40, cat: Other, desc: "Slike"}
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "AudioBook"}
|
||||
- {id: 42, cat: Audio/Video, desc: "Music DVD"}
|
||||
- {id: 43, cat: TV/Other, desc: "Videospoti"}
|
||||
- {id: 44, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 45, cat: PC/Mobile-iOS, desc: "iOS"}
|
||||
- {id: 46, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 47, cat: PC, desc: "Linux"}
|
||||
|
||||
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: data
|
||||
options:
|
||||
data: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
filename: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: login.php
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: font[color="#FF0000"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
# does not support multi categories, defaulting to all.
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
# 0 all, 1 classic, 2 silver, 3 gold, 4 gold & silver
|
||||
gold: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.lista > tbody > tr.a
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy HH:mm:ss"
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
grabs:
|
||||
selector: td:nth-child(11)
|
||||
genre:
|
||||
selector: td:nth-child(2) span
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/gold.png"]: 0
|
||||
img[src="images/silver.png"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 30 hours (as seconds = 30 x 60 x 60)
|
||||
text: 108000
|
||||
# BtiTracker 1.5.8
|
@@ -88,7 +88,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -99,8 +98,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -90,7 +90,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -99,8 +98,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
id: korsar
|
||||
name: Korsar
|
||||
description: "Korsar is a RUSSIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ru-ru
|
||||
language: ru-RU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
|
@@ -136,6 +136,8 @@ search:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: 95
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
|
@@ -94,7 +94,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -103,8 +102,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -131,6 +131,7 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logintype: yes
|
||||
error:
|
||||
- selector: table:contains("An error has occured!")
|
||||
test:
|
||||
@@ -207,6 +208,8 @@ search:
|
||||
optional: true
|
||||
remove: a, b, img, span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["|", ""]
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd hh:mm tt"
|
||||
date:
|
||||
|
167
src/Jackett.Common/Definitions/lesbians4u.yml
Normal file
167
src/Jackett.Common/Definitions/lesbians4u.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
id: lesbians4u
|
||||
name: Lesbians4u
|
||||
description: "Lesbians4u is a Private Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://lesbians4u.org/ # does not support https, CA invalid
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: XXX, desc: "Amateur"}
|
||||
- {id: 12, cat: XXX, desc: "Anime &Hentai &JAV"}
|
||||
- {id: 17, cat: XXX, desc: "Appz"}
|
||||
- {id: 3, cat: XXX, desc: "Classics"}
|
||||
- {id: 6, cat: XXX, desc: "Clips &Siterips"}
|
||||
- {id: 16, cat: XXX, desc: "DVD"}
|
||||
- {id: 15, cat: XXX, desc: "EX-V.I.P. Torrents"}
|
||||
- {id: 9, cat: XXX, desc: "Fetish"}
|
||||
- {id: 8, cat: XXX, desc: "Games"}
|
||||
- {id: 11, cat: XXX, desc: "Misc."}
|
||||
- {id: 10, cat: XXX, desc: "Movie"}
|
||||
- {id: 5, cat: XXX, desc: "Solo"}
|
||||
- {id: 14, cat: XXX, desc: "V.I.P."}
|
||||
- {id: 13, cat: XXX, desc: "Watersport"}
|
||||
|
||||
modes:
|
||||
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: added
|
||||
options:
|
||||
added: 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
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
error:
|
||||
- selector: table:has(a[href*="login.php?error=1"])
|
||||
message:
|
||||
text: "ERROR: Incorrect username!"
|
||||
- selector: table:has(a[href*="login.php?error=4"])
|
||||
message:
|
||||
text: "ERROR: Incorrect password!"
|
||||
- selector: table:has(a[href*="login.php?error="])
|
||||
message:
|
||||
text: "ERROR: Something went wrong during login!"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="/logout.php?logouthash="]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ re_replace .DownloadUri.PathAndQuery \".*torrent-details-(\\d+).*\" \"$1\"}}"
|
||||
selectors:
|
||||
- selector: a[href*="download-torrent-"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
|
||||
keywordsfilters:
|
||||
# prefix and postfix percent wildcard as well as replacing spaces between words
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
- name: re_replace
|
||||
args: ["^(.+)$", "%$1%"]
|
||||
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_name
|
||||
# does not support multi category searching so defaulting to all.
|
||||
category: 0
|
||||
include_dead_torrents: yes
|
||||
sort: "{{ if .Config.freeleech }}free{{ else }}{{ .Config.sort }}{{ end }}"
|
||||
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: "table.sortable tr:has(a[href*=\"/download-torrent-\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: torrent-category-(\d+)
|
||||
title_default:
|
||||
# is often abbreviated
|
||||
selector: a[href*="torrent-details-"]
|
||||
title:
|
||||
# usually longer than details title
|
||||
selector: div[id^="port-content-"] div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href*="torrent-details-"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="torrent-details-"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div[id^="port-content-"] img
|
||||
attribute: src
|
||||
date:
|
||||
selector: td:nth-child(2) > div:last-child
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
img[src$="/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# TS Special Edition v.7.3
|
@@ -1,172 +0,0 @@
|
||||
---
|
||||
id: lightning-tor
|
||||
name: Lightning-Tor
|
||||
description: "Lightning-Tor is a DUTCH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: nl-NL
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://lightning-tor.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# the search pull down cats disagrees with the prior category count links, so merged the two lists, with count overriding pull
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD Retail"}
|
||||
- {id: 17, cat: Movies/Other, desc: "DVD Promo/R5"}
|
||||
- {id: 3, cat: Audio/Video, desc: "DVD Muziek"}
|
||||
- {id: 4, cat: Movies/SD, desc: " DVD Cam"}
|
||||
- {id: 18, cat: Movies/Other, desc: "DVD Kinderen"}
|
||||
- {id: 6, cat: TV, desc: "Tv Serie"}
|
||||
- {id: 19, cat: XXX/DVD, desc: "DVD XXX"}
|
||||
- {id: 20, cat: TV/Documentary, desc: "Docomentaire"}
|
||||
- {id: 45, cat: Audio/Video, desc: "Cabaret Div."}
|
||||
- {id: 9, cat: PC/Games, desc: "Spelletjes Pc"}
|
||||
- {id: 10, cat: Console/NDS, desc: "Ps2/NDS"}
|
||||
- {id: 11, cat: Console/XBox, desc: "XBoX"}
|
||||
- {id: 22, cat: Console/Wii, desc: "Wii"}
|
||||
- {id: 8, cat: Audio, desc: "Muziek Album"}
|
||||
- {id: 23, cat: Audio/Other, desc: "Muziek Diversen"}
|
||||
- {id: 1, cat: Other, desc: "Kinderen Diversen"}
|
||||
- {id: 13, cat: Other, desc: "Afbeeldingen"}
|
||||
- {id: 14, cat: PC/Mobile-Other, desc: "GSM/Navigatie"}
|
||||
- {id: 7, cat: PC, desc: "Software PC"}
|
||||
- {id: 12, cat: PC/0day, desc: "Microsoft"}
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Software PDA"}
|
||||
- {id: 5, cat: Movies/SD, desc: "Xvid Film"}
|
||||
- {id: 15, cat: XXX/SD, desc: "Xvid XXX"}
|
||||
- {id: 24, cat: Other, desc: "Xvid Diversen"}
|
||||
- {id: 16, cat: Other/Misc, desc: "Overigen"}
|
||||
- {id: 50, cat: Books, desc: "E-books"}
|
||||
- {id: 48, cat: Movies/HD, desc: "movies 264"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: thankyou
|
||||
type: text
|
||||
label: Thank You Comment
|
||||
- name: info
|
||||
type: info
|
||||
label: Thank you comment
|
||||
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.main:contains("Aanmelden mislukt")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
# https://lightning-tor.org/comment.php?action=add&tid=166386
|
||||
path: comment.php
|
||||
method: post
|
||||
inputs:
|
||||
action: add
|
||||
tid: "{{ .DownloadUri.Query.id }}"
|
||||
text: "{{ .Config.thankyou }}"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
keywordsfilters:
|
||||
- name: re_replace # S01E02 to 1 2
|
||||
args: ["(?i)\\bS0*(\\d{1,2})\\s*E0*(\\d{1,2})\\b", "$1 $2"]
|
||||
- name: re_replace # S01 to 1
|
||||
args: ["(?i)\\bS0*(\\d{1,2})\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: table.embedded[width="99%"][border="1"][cellspacing="0"][cellpadding="0"]
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(seizoen\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "S$2-$4"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "E$2-$4"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})", "E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)compleet", "Complete"]
|
||||
details:
|
||||
# using the download link because the details link has an error
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["download", "details"]
|
||||
download:
|
||||
# need to say thanks first
|
||||
text: "{{ .Result.details }}"
|
||||
size:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?) in"
|
||||
files:
|
||||
selector: a[href^="details_bestanden.php?torrent_id="]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "in (\\d+) bestan"
|
||||
grabs:
|
||||
selector: table table tr:nth-child(2) td:nth-child(1)
|
||||
date:
|
||||
selector: table tr:nth-child(3) td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
- name: append
|
||||
args: " hours ago"
|
||||
- name: timeago
|
||||
seeders:
|
||||
selector: table tr:nth-child(3) td:nth-child(5) font b
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: table tr:nth-child(3) td:nth-child(5) font b:nth-child(2)
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
@@ -127,7 +127,7 @@ search:
|
||||
default: "{{ if .Result.category_is_tv_show }}TV shows{{ else }}Other{{ end }}"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: " in (.+?)$"
|
||||
args: " in (.+?)[.]?$"
|
||||
details:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
|
@@ -98,7 +98,7 @@ search:
|
||||
default: "{{ if .Result.category_is_tv_show }}TV shows{{ else }}Other{{ end }}"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: " in (.+?)$"
|
||||
args: " in (.+?)[.]?$"
|
||||
details:
|
||||
selector: div.tt-name > a[href^="/"]
|
||||
attribute: href
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: locadora
|
||||
name: Locadora
|
||||
description: "Locadora is a Brazilian tracker for Movies and TV Shows"
|
||||
description: "Locadora is a BRAZILIAN Private Tracker for MOVIES and TV"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
@@ -12,15 +12,16 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies}
|
||||
- {id: 2, cat: TV}
|
||||
- {id: 6, cat: TV/Anime}
|
||||
- {id: 7, cat: Movies, desc: "Concerts"}
|
||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Animes"}
|
||||
- {id: 7, cat: Audio/Video, desc: "Shows"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -83,7 +84,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -92,8 +92,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -88,7 +88,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -97,8 +96,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
159
src/Jackett.Common/Definitions/masters-tb.yml
Normal file
159
src/Jackett.Common/Definitions/masters-tb.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
id: masters-tb
|
||||
name: Masters-TB
|
||||
description: "Masters-TB is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://masters-tb.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: TV/Anime, desc: "Анимации"}
|
||||
- {id: 56, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 53, cat: Books/EBook, desc: "e-Books"}
|
||||
- {id: 17, cat: Console, desc: "Игри/конзоли"}
|
||||
- {id: 4, cat: PC/Games, desc: "Игри/PC ISO"}
|
||||
- {id: 21, cat: PC/Games, desc: "Игри/PC Rip"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Програми/PC ISO"}
|
||||
- {id: 22, cat: PC, desc: "Програми/други"}
|
||||
- {id: 57, cat: TV, desc: "Препоръчано MastersTB"}
|
||||
- {id: 57, cat: Movies, desc: "Препоръчано MastersTB"}
|
||||
- {id: 6, cat: Audio, desc: "Музика"}
|
||||
- {id: 12, cat: Audio/Video, desc: "Музика/Видео"}
|
||||
- {id: 33, cat: Audio/Video, desc: "Музика/DVD-R"}
|
||||
- {id: 52, cat: Audio/Lossless, desc: "Музика/Lossless"}
|
||||
- {id: 35, cat: TV, desc: "Сериали/BoxSet"}
|
||||
- {id: 7, cat: TV, desc: "Сериали/TV"}
|
||||
- {id: 32, cat: Movies, desc: "Филми/БГ"}
|
||||
- {id: 55, cat: Movies, desc: "Филми/Asian"}
|
||||
- {id: 36, cat: Movies, desc: "Филми/BoxSet"}
|
||||
- {id: 28, cat: Movies, desc: "Филми/Руски"}
|
||||
- {id: 34, cat: Movies/DVD, desc: "Филми/Руски DVD-R"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Филми/DVD-R"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Филми/HD"}
|
||||
- {id: 30, cat: TV/Sport, desc: "Филми/Спорт"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Филми/XviD"}
|
||||
- {id: 29, cat: TV/Documentary, desc: "Филми/Документални"}
|
||||
- {id: 54, cat: TV, desc: "TV Show"}
|
||||
- {id: 2, cat: Other, desc: "Други"}
|
||||
|
||||
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
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Tоренти на страница:</b> setting to <b>100</b> on your account profile. The default is <i>20</i>.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: my.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead
|
||||
incldead: 1
|
||||
# 0 name, 1 descr
|
||||
searchrs: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[width=\"65%\"] > tbody > tr[onmouseover]{{ if .Config.freeleech }}:has(img[src=\"pic/freeleech.png\"]){{ 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
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
optional: true
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
# 2023-05-19<br/>14:10:17
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
grabs:
|
||||
selector: td:nth-last-child(3)
|
||||
seeders:
|
||||
selector: td:nth-last-child(2)
|
||||
leechers:
|
||||
selector: td:nth-last-child(1)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freeleech.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine tbd
|
@@ -77,6 +77,11 @@ caps:
|
||||
- {id: 96, cat: Books, desc: " |- Українська художня література"}
|
||||
- {id: 95, cat: Books, desc: " |- Зарубіжна художня література"}
|
||||
- {id: 94, cat: Books, desc: " |- Історія, біографістика, спогади"}
|
||||
- {id: 168, cat: PC, desc: "Програмне забезпечення Операційні системи"}
|
||||
- {id: 169, cat: PC, desc: "Програмне забезпечення Системні програми"}
|
||||
- {id: 170, cat: PC, desc: "Програмне забезпечення Офіс, текстові редактори"}
|
||||
- {id: 171, cat: PC, desc: "Програмне забезпечення Аудіо, відео обробка"}
|
||||
- {id: 173, cat: PC, desc: "Програмне забезпечення Операційні системи Інше"}
|
||||
- {id: 23, cat: Movies, desc: "Архів"} # Archive - unlisted
|
||||
|
||||
modes:
|
||||
|
159
src/Jackett.Common/Definitions/mdan.yml
Normal file
159
src/Jackett.Common/Definitions/mdan.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
id: mdan
|
||||
name: MDAN
|
||||
description: "Mansão dos Animes (MDAN) is a BRAZILIAN Private Torrent Tracker for ANIME"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bt.mdan.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 5, cat: TV/Anime, desc: "Animes Completo"}
|
||||
- {id: 1, cat: TV/Anime, desc: "Animes Episódios"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Animes OVAs"}
|
||||
- {id: 3, cat: Movies, desc: "Filmes"}
|
||||
- {id: 6, cat: Movies/Other, desc: "Live"}
|
||||
- {id: 7, cat: Books/Comics, desc: "Mangá"}
|
||||
- {id: 4, cat: Audio, desc: "OST"}
|
||||
|
||||
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: 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
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents por página (Torrents per Page):</b> setting to <b>100</b> on your Perfil (Profile). The default is <i>30</i>.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: :contains("incorret")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, genre, all
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[style^="width"] > tbody > tr:has(a[href^="details.php?id="]), table[style^="width"] > tbody > tr[id^="kdescr"]
|
||||
after: 1
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
# titles are abbreviated :-(
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?torrent={{ .Result._id }}&ssl=1"
|
||||
poster:
|
||||
selector: td:nth-child(9) img
|
||||
attribute: src
|
||||
date_day:
|
||||
# 10:50<br/>Hoje
|
||||
# 13:15<br/>Ontem
|
||||
selector: td:nth-child(7):contains("e")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Hoje", "Today"]
|
||||
- name: replace
|
||||
args: ["Ontem", "Yesterday"]
|
||||
date_year:
|
||||
# 18:55<br/>03-05-2023
|
||||
selector: td:nth-child(7):not(:contains("e"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "HH:mm dd-MM-yyyy"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: a[href$="seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[href$="leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="./pic/free.gif"]: 0
|
||||
img[src="./pic/silver2.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
# U-232
|
169
src/Jackett.Common/Definitions/metalguru.yml
Normal file
169
src/Jackett.Common/Definitions/metalguru.yml
Normal file
@@ -0,0 +1,169 @@
|
||||
---
|
||||
id: metalguru
|
||||
name: MetalGuru
|
||||
description: "MetalGuru is a Private Torrent Tracker for General with focus on Music"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://metalguru.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 51, cat: Audio/Lossless, desc: "24bit"}
|
||||
- {id: 58, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 39, cat: PC/Mobile-Other, desc: "Anything Mobile"}
|
||||
- {id: 1, cat: PC, desc: "Applications"}
|
||||
- {id: 2, cat: Books, desc: "Books Ebooks & mags"}
|
||||
- {id: 59, cat: Movies/SD, desc: "Cams"}
|
||||
- {id: 46, cat: Books, desc: "Documents"}
|
||||
- {id: 47, cat: Audio/Lossless, desc: "Flac/HD Audio"}
|
||||
- {id: 61, cat: Console, desc: "Games"}
|
||||
- {id: 62, cat: Audio, desc: "Karaoke"}
|
||||
- {id: 45, cat: Other, desc: "Misc"}
|
||||
- {id: 57, cat: Movies, desc: "Movie Packs"}
|
||||
- {id: 10, cat: Movies, desc: "Movies"}
|
||||
- {id: 50, cat: Audio, desc: "MQA"}
|
||||
- {id: 29, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Audio/Video, desc: "Music| Movie/Videos"}
|
||||
- {id: 32, cat: Audio, desc: "Music| Packs"}
|
||||
- {id: 60, cat: TV, desc: "Toons"}
|
||||
- {id: 54, cat: TV, desc: "TV"}
|
||||
- {id: 63, cat: TV, desc: "TV Packs"}
|
||||
- {id: 56, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
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: 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 }}"
|
||||
use_ssl: 1
|
||||
submitme: X
|
||||
error:
|
||||
- selector: h2:contains("failed")
|
||||
message:
|
||||
selector: td.colhead2
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}"
|
||||
# title, descr, genre, all
|
||||
searchin: "{{ if .Query.IMDBID }}descr{{else}}title{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 no, 1 yes
|
||||
only_free: "{{ if .Config.freeleech }}1{{else}}0{{end}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# no imdbid in results
|
||||
|
||||
rows:
|
||||
selector: table.table-bordered > tbody > tr:has(a[href^="details.php?id="])
|
||||
# filters:
|
||||
# - name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="][onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
# onmouseover="Tip('<img src=\'https://metalguru.me/bucket/2023/05/75ad78_theofficialtop40singleschart12-05-2023.jpg\' width=
|
||||
- name: regexp
|
||||
args: src=\\'(.*?)\\'
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
date_day:
|
||||
# Today<br/>10:20 AM
|
||||
# Yesterday<br/>08:03 PM
|
||||
selector: td:nth-child(7):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
# Feb 14 2019<br/>10:20 AM
|
||||
selector: td:nth-child(7):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
a.infofree: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 48h freeleech (as seconds = 48 x 60 x 60)
|
||||
# 36h notfree (as seconds = 36 x 60 x 60)
|
||||
case:
|
||||
a.infofree: 172800
|
||||
"*": 129600
|
||||
# U-232 v5
|
@@ -87,7 +87,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -96,8 +95,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -75,7 +75,6 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
logintype: yes
|
||||
error:
|
||||
- selector: table:contains("Hiba történt!")
|
||||
|
@@ -89,7 +89,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -98,8 +97,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -162,4 +162,4 @@ search:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: short_description
|
||||
# engine n/a
|
||||
# engine BtiTracker
|
||||
|
171
src/Jackett.Common/Definitions/party-tracker.yml
Normal file
171
src/Jackett.Common/Definitions/party-tracker.yml
Normal file
@@ -0,0 +1,171 @@
|
||||
---
|
||||
id: party-tracker
|
||||
name: Party-Tracker
|
||||
description: "Party-Tracker is a HUNGARIAN private tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://party-tracker.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 47, cat: Console/XBox, desc: "Játék/Xbox"}
|
||||
- {id: 46, cat: Console/PS3, desc: "Játék/Ps2"}
|
||||
- {id: 45, cat: PC/Games, desc: "Játék/Pc"}
|
||||
- {id: 44, cat: Movies/SD, desc: "Cam/hun"}
|
||||
- {id: 69, cat: Movies/SD, desc: "Cam/eng"}
|
||||
- {id: 43, cat: Movies/SD, desc: "Film/Hun/XviD"}
|
||||
- {id: 42, cat: Movies/SD, desc: "Film/Eng/XviD"}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Film/Hun/DVD"}
|
||||
- {id: 40, cat: Movies/DVD, desc: "Film/Eng/DVD"}
|
||||
- {id: 39, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 38, cat: TV/HD, desc: "HD/Hun"}
|
||||
- {id: 57, cat: TV/SD, desc: "Sorozat/Eng"}
|
||||
- {id: 66, cat: TV/HD, desc: "HD/Eng"}
|
||||
- {id: 50, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 51, cat: PC/0day, desc: "Programok"}
|
||||
- {id: 52, cat: TV/SD, desc: "Sorozat/Hun"}
|
||||
- {id: 53, cat: XXX/x264, desc: "XXX/Film"}
|
||||
- {id: 54, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
- {id: 48, cat: Other, desc: "Képek"}
|
||||
- {id: 49, cat: TV/Anime, desc: "Mese"}
|
||||
- {id: 55, cat: Audio, desc: "Zene/Eng"}
|
||||
- {id: 56, cat: Audio, desc: "Zene/Hun"}
|
||||
- {id: 65, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 67, cat: Audio/Video, desc: "Klipp"}
|
||||
- {id: 68, cat: Books/EBook, desc: "Ebook/eng"}
|
||||
|
||||
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: 4
|
||||
options:
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrent oldalanként:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: takelogin.php
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.main:contains("Hiba")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?url="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: letoltes.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, actor, tag
|
||||
ker: 0
|
||||
# 0 active, 1 active+idead, 2 dead, 3 free, 4 x2, 6 my torrents
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support imdbid searches
|
||||
|
||||
keywordsfilters:
|
||||
# replace spaces between words with percent wildcard
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: table.main > tbody > tr:has(a[href^="letoltes.php?tipus="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="letoltes.php?tipus="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: tipus
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: span[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
genre:
|
||||
selector: a[href^="/letoltes.php?cimke="]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
remove: font
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\xA0", ""]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="fajlok/kepek/free.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="fajlok/kepek/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
@@ -88,7 +88,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -97,8 +96,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -5,6 +5,8 @@ description: "PTFiles (PTF) is a Private site for TV / MOVIES / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
certificates:
|
||||
- 69901C31636B4D413903F4B32573ED6E8F5961FE # expired 26 May 2023
|
||||
links:
|
||||
- https://ptfiles.net/
|
||||
|
||||
@@ -42,13 +44,12 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
- name: username
|
||||
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><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -71,9 +72,20 @@ settings:
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: loginproc/
|
||||
method: form
|
||||
form: form#login
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
force_ssl: on
|
||||
ssl: ""
|
||||
selectorinputs:
|
||||
hash:
|
||||
selector: input[name="hash"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: p.error:contains(strong)
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
|
167
src/Jackett.Common/Definitions/ptitzmx.yml
Normal file
167
src/Jackett.Common/Definitions/ptitzmx.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
id: ptitzmx
|
||||
name: PT分享站
|
||||
description: "PT分享站 (itzmx) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.itzmx.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime.动画"}
|
||||
- {id: 404, cat: Books/Comics, desc: "Comics.漫画"}
|
||||
- {id: 408, cat: Audio, desc: "Music.音乐"}
|
||||
- {id: 401, cat: Movies, desc: "Movies.电影"}
|
||||
- {id: 402, cat: TV, desc: "TV.电视剧"}
|
||||
- {id: 414, cat: Movies/BluRay, desc: "MoviesBluray.蓝光"}
|
||||
- {id: 410, cat: PC, desc: "Appz.软件"}
|
||||
- {id: 411, cat: Console, desc: "Games.游戏"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
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: 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
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }} {{ else }}{{ end }}{{ .Keywords }}"
|
||||
# 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 (does not work)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP v1.5 2014-04-14
|
@@ -112,7 +112,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -121,8 +120,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
@@ -98,7 +98,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -107,8 +106,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -86,7 +86,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -95,8 +94,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -82,7 +82,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -91,8 +90,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -5,8 +5,6 @@ description: "RPTorrents is a Private tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- e674aa17bf38af08a119626025298e1bb4d2d5cb # Expired 29 April 2023
|
||||
links:
|
||||
- https://rptorrents.com/
|
||||
|
||||
|
@@ -16,7 +16,8 @@
|
||||
"type": "string"
|
||||
},
|
||||
"language": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"enum": ["af", "af-ZA", "ar", "ar-AE", "ar-BH", "ar-DZ", "ar-EG", "ar-IQ", "ar-JO", "ar-KW", "ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SY", "ar-TN", "ar-YE", "az", "az-AZ", "be", "be-BY", "bg", "bg-BG", "bs-BA", "ca", "ca-ES", "cs", "cs-CZ", "cy", "cy-GB", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "de-LI", "de-LU", "dv", "dv-MV", "el", "el-GR", "en", "en-AU", "en-BZ", "en-CA", "en-CB", "en-GB", "en-IE", "en-JM", "en-NZ", "en-PH", "en-TT", "en-US", "en-ZA", "en-ZW", "eo", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-CR", "es-DO", "es-EC", "es-ES", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PR", "es-PY", "es-SV", "es-UY", "es-VE", "et", "et-EE", "eu", "eu-ES", "fa", "fa-IR", "fi", "fi-FI", "fo", "fo-FO", "fr", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "fr-LU", "fr-MC", "gl", "gl-ES", "gu", "gu-IN", "he", "he-IL", "hi", "hi-IN", "hr", "hr-BA", "hr-HR", "hu", "hu-HU", "hy", "hy-AM", "id", "id-ID", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ja-JP", "ka", "ka-GE", "kk", "kk-KZ", "kn", "kn-IN", "ko", "ko-KR", "kok", "kok-IN", "ky", "ky-KG", "lt", "lt-LT", "lv", "lv-LV", "mi", "mi-NZ", "mk", "mk-MK", "mn", "mn-MN", "mr", "mr-IN", "ms", "ms-BN", "ms-MY", "mt", "mt-MT", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "nn-NO", "ns", "ns-ZA", "pa", "pa-IN", "pl", "pl-PL", "ps", "ps-AR", "pt", "pt-BR", "pt-PT", "qu", "qu-BO", "qu-EC", "qu-PE", "ro", "ro-RO", "ru", "ru-RU", "sa", "sa-IN", "se", "se-FI", "se-NO", "se-SE", "sk", "sk-SK", "sl", "sl-SI", "sq", "sq-AL", "sr-BA", "sr-SP", "sv", "sv-FI", "sv-SE", "sw", "sw-KE", "syr", "syr-SY", "ta", "ta-IN", "te", "te-IN", "th", "th-TH", "tl", "tl-PH", "tn", "tn-ZA", "tr", "tr-TR", "tt", "tt-RU", "ts", "uk", "uk-UA", "ur", "ur-PK", "uz", "uz-UZ", "vi", "vi-VN", "xh", "xh-ZA", "zh", "zh-CN", "zh-HK", "zh-MO", "zh-SG", "zh-TW", "zu", "zu-ZA", "af", "af-ZA", "ar", "ar-AE", "ar-BH", "ar-DZ", "ar-EG", "ar-IQ", "ar-JO", "ar-KW", "ar-LB", "ar-LY", "ar-MA", "ar-OM", "ar-QA", "ar-SA", "ar-SY", "ar-TN", "ar-YE", "az", "az-AZ", "be", "be-BY", "bg", "bg-BG", "bs-BA", "ca", "ca-ES", "cs", "cs-CZ", "cy", "cy-GB", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "de-LI", "de-LU", "dv", "dv-MV", "el", "el-GR", "en", "en-AU", "en-BZ", "en-CA", "en-CB", "en-GB", "en-IE", "en-JM", "en-NZ", "en-PH", "en-TT", "en-US", "en-ZA", "en-ZW", "eo", "es", "es-AR", "es-BO", "es-CL", "es-CO", "es-CR", "es-DO", "es-EC", "es-ES", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PR", "es-PY", "es-SV", "es-UY", "es-VE", "et", "et-EE", "eu", "eu-ES", "fa", "fa-IR", "fi", "fi-FI", "fo", "fo-FO", "fr", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "fr-LU", "fr-MC", "gl", "gl-ES", "gu", "gu-IN", "he", "he-IL", "hi", "hi-IN", "hr", "hr-BA", "hr-HR", "hu", "hu-HU", "hy", "hy-AM", "id", "id-ID", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ja-JP", "ka", "ka-GE", "kk", "kk-KZ", "kn", "kn-IN", "ko", "ko-KR", "kok", "kok-IN", "ky", "ky-KG", "lt", "lt-LT", "lv", "lv-LV", "mi", "mi-NZ", "mk", "mk-MK", "mn", "mn-MN", "mr", "mr-IN", "ms", "ms-BN", "ms-MY", "mt", "mt-MT", "nb", "nb-NO", "nl", "nl-BE", "nl-NL", "nn-NO", "ns", "ns-ZA", "pa", "pa-IN", "pl", "pl-PL", "ps", "ps-AR", "pt", "pt-BR", "pt-PT", "qu", "qu-BO", "qu-EC", "qu-PE", "ro", "ro-RO", "ru", "ru-RU", "sa", "sa-IN", "se", "se-FI", "se-NO", "se-SE", "sk", "sk-SK", "sl", "sl-SI", "sq", "sq-AL", "sr-BA", "sr-SP", "sv", "sv-FI", "sv-SE", "sw", "sw-KE", "syr", "syr-SY", "ta", "ta-IN", "te", "te-IN", "th", "th-TH", "tl", "tl-PH", "tn", "tn-ZA", "tr", "tr-TR", "tt", "tt-RU", "ts", "uk", "uk-UA", "ur", "ur-PK", "uz", "uz-UZ", "vi", "vi-VN", "xh", "xh-ZA", "zh", "zh-CN", "zh-HK", "zh-MO", "zh-SG", "zh-TW", "zu", "zu-ZA"]
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
|
@@ -90,7 +90,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
@@ -105,8 +104,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -1,153 +0,0 @@
|
||||
---
|
||||
id: sharkpt
|
||||
name: SharkPT
|
||||
description: "SharkPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sharkpt.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视连续剧"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐视频"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 408, cat: Audio, desc: "Music/HQ Audio"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search 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
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ 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 (4 does not appear to work)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: div.torrent-item
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.torrent-category
|
||||
case:
|
||||
img[src$="movies64.png"]: 401
|
||||
img[src$="tvseries64.png"]: 402
|
||||
img[src$="tvshows64.png"]: 403
|
||||
img[src$="doc64.png"]: 404
|
||||
img[src$="anime64.png"]: 405
|
||||
img[src$="mv64.png"]: 406
|
||||
img[src$="sports64.png"]: 407
|
||||
img[src$="hqaudio64.png"]: 408
|
||||
img[src$="misc64.png"]: 409
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?id={{ .Result._id }}"
|
||||
imdbid:
|
||||
selector: shark-tag-group[onClick*="imdb.com/title/tt"]
|
||||
attribute: onClick
|
||||
doubanid:
|
||||
selector: shark-tag-group[onClick*="movie.douban.com/subject/"]
|
||||
attribute: onClick
|
||||
description:
|
||||
selector: div.torrent-subtitle
|
||||
date:
|
||||
selector: div.torrent-when > span
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: div.torrent-size
|
||||
seeders:
|
||||
selector: div.torrent-seeders
|
||||
leechers:
|
||||
selector: div.torrent-leechers
|
||||
grabs:
|
||||
selector: div.torrent-snatches
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.s-tag:contains(\"FREE\")": 0
|
||||
"span.s-tag:contains(\"50%\")": 0.5
|
||||
"span.s-tag:contains(\"30%\")": 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"span.s-tag:contains(\"2X\")": 2
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# NexusPHP Standard v1.5 Beta 4 2010-09-19
|
@@ -78,7 +78,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -87,8 +86,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -78,7 +78,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -87,8 +86,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -16,8 +16,8 @@ caps:
|
||||
- {id: 9, cat: XXX, desc: "xXx"}
|
||||
- {id: 23, cat: Books, desc: "Knihy a Časopisy"}
|
||||
- {id: 25, cat: Other, desc: "Ostatní"}
|
||||
- {id: 5, cat: Movies, desc: "Filmy Kreslené"}
|
||||
- {id: 1, cat: Movies, desc: "Filmy CZ/SK dabing"}
|
||||
- {id: 5, cat: Movies, desc: "Filmy Kreslené"}
|
||||
- {id: 14, cat: Movies/Other, desc: "Filmy Kamera"}
|
||||
- {id: 15, cat: Movies, desc: "Filmy s titulkama"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Filmy DVD"}
|
||||
@@ -32,6 +32,7 @@ caps:
|
||||
- {id: 37, cat: PC/Games, desc: "Hry na Linux"}
|
||||
- {id: 59, cat: PC/Games, desc: "Hry na Mac"}
|
||||
- {id: 60, cat: PC/Games, desc: "xXx hry (18+)"}
|
||||
- {id: 63, cat: PC/Games, desc: "VR Hry"}
|
||||
- {id: 16, cat: TV, desc: "TV Seriál"}
|
||||
- {id: 17, cat: TV/Documentary, desc: "TV Dokument"}
|
||||
- {id: 42, cat: TV, desc: "TV Pořad"}
|
||||
|
@@ -2,7 +2,7 @@
|
||||
id: superbits
|
||||
name: Superbits
|
||||
description: "Superbits is a SWEDISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: sv-SW
|
||||
language: sv-SE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
|
@@ -90,7 +90,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -99,8 +98,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -79,7 +79,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -88,8 +87,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -92,7 +92,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
@@ -101,8 +100,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
@@ -7,7 +7,6 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.torrent9.fi/
|
||||
- https://www.torrent9.fm/
|
||||
- https://torrent9.unblockninja.com/
|
||||
legacylinks:
|
||||
@@ -44,6 +43,7 @@ legacylinks:
|
||||
- https://www.oxtorrent.me/ # http 522 Connection timed out
|
||||
- https://www.torrent9.gg/
|
||||
- https://torrent9.to/ # no response data
|
||||
- https://www.torrent9.fi/ # this is the torrent9clone domain
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
|
@@ -28,6 +28,7 @@ caps:
|
||||
- {id: Documentaries, cat: TV/Documentary, desc: Documentaries}
|
||||
- {id: XXX, cat: XXX, desc: XXX}
|
||||
- {id: Other, cat: Other, desc: Other}
|
||||
- {id: Anime, cat: TV/Anime, desc: Anime}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -83,6 +84,17 @@ search:
|
||||
download:
|
||||
selector: span > a
|
||||
attribute: href
|
||||
date_day:
|
||||
# 10am May. 24th
|
||||
selector: div > span:nth-child(4):contains("."):not(:contains(":"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(st|nd|rd|th)", ""]
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "htt MMM. d zzz"
|
||||
date_year:
|
||||
# Sep. 7th '10
|
||||
selector: div > span:nth-child(4):not(:contains(":"))
|
||||
@@ -106,7 +118,7 @@ search:
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_time }}{{ or .Result.date_year .Result.date_time }}{{ else }}now{{ end }}"
|
||||
text: "{{ if or .Result.date_day .Result.date_year .Result.date_time }}{{ or .Result.date_day .Result.date_year .Result.date_time }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: div > span:nth-child(5)
|
||||
seeders:
|
||||
|
@@ -7,10 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq256.com/
|
||||
- https://torrentqq258.com/
|
||||
legacylinks:
|
||||
- https://torrentqq241.com/
|
||||
- https://torrentqq242.com/
|
||||
- https://torrentqq243.com/
|
||||
- https://torrentqq244.com/
|
||||
- https://torrentqq245.com/. # typo
|
||||
@@ -25,6 +23,8 @@ legacylinks:
|
||||
- https://torrentqq253.com/
|
||||
- https://torrentqq254.com/
|
||||
- https://torrentqq255.com/
|
||||
- https://torrentqq256.com/
|
||||
- https://torrentqq257.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -89,7 +89,6 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: replace # avoid conflict when prepending + to words
|
||||
@@ -102,8 +101,6 @@ search:
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
|
@@ -7,11 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir105.com/
|
||||
- https://torrentsir106.com/
|
||||
legacylinks:
|
||||
- https://torrentsir90.com/
|
||||
- http://torrentsir91.com/
|
||||
- https://torrentsir91.com/
|
||||
- http://torrentsir92.com/
|
||||
- https://torrentsir92.com/
|
||||
- http://torrentsir93.com/
|
||||
@@ -33,6 +30,8 @@ legacylinks:
|
||||
- http://torrentsir104.com/
|
||||
- https://torrentsir104.com/
|
||||
- http://torrentsir105.com/
|
||||
- https://torrentsir105.com/
|
||||
- http://torrentsir106.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,11 +7,10 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://viewtorrent8.com/
|
||||
- https://viewtorrent10.com/
|
||||
legacylinks:
|
||||
- https://torrentview.net/
|
||||
- https://torrentview.co/
|
||||
- https://torrentview57.com/
|
||||
- https://torrentview60.com/
|
||||
- https://torrentview62.com/
|
||||
- https://torrentview63.com/
|
||||
@@ -25,6 +24,7 @@ legacylinks:
|
||||
- https://viewtorrent5.com/
|
||||
- https://viewtorrent6.com/
|
||||
- https://viewtorrent7.com/
|
||||
- https://viewtorrent8.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -7,9 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentwiz57.com/
|
||||
- https://torrentwiz58.com/
|
||||
legacylinks:
|
||||
- https://torrentwiz39.com/
|
||||
- https://torrentwiz40.com/
|
||||
- https://torrentwiz41.com/
|
||||
- https://torrentwiz42.com/
|
||||
@@ -25,6 +24,7 @@ legacylinks:
|
||||
- https://torrentwiz54.com/
|
||||
- https://torrentwiz55.com/
|
||||
- https://torrentwiz56.com/
|
||||
- https://torrentwiz57.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: trezzor
|
||||
name: Trezzor
|
||||
description: "Trezzor is a CZECH Private site for TV / MOVIES / GENERAL"
|
||||
name: TreZzoR
|
||||
description: "TreZzoR is a CZECH Private site for TV / MOVIES / GENERAL"
|
||||
language: cs-CZ
|
||||
type: private
|
||||
encoding: windows-1250
|
||||
@@ -10,74 +10,103 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVD CZ/SK dabing"}
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD CZ/SK titulky"}
|
||||
- {id: 3, cat: Audio/Video, desc: "DVD Hudební video"}
|
||||
- {id: 4, cat: Movies/SD, desc: "XviD, DivX CZ/SK dabing"}
|
||||
- {id: 13, cat: Audio, desc: "Hudba CZ/SK scéna"}
|
||||
- {id: 24, cat: Audio, desc: "Mluv. slovo CZ/SK dabing"}
|
||||
- {id: 10, cat: Audio/Other, desc: "DTS audio"}
|
||||
- {id: 14, cat: PC/Games, desc: "Hry"}
|
||||
- {id: 17, cat: PC, desc: "Programy"}
|
||||
- {id: 14, cat: PC, desc: "Cestiny,patche,upgrady"}
|
||||
- {id: 18, cat: Books, desc: "Knihy CZ/SK lokalizace"}
|
||||
- {id: 18, cat: Books/Comics, desc: "Komiks CZ/SK lokalizace"}
|
||||
- {id: 16, cat: Other, desc: "Foto,obrázky"}
|
||||
- {id: 20, cat: Console, desc: "Konzole"}
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Mobilmánia"}
|
||||
- {id: 22, cat: Other, desc: "Ostatní CZ/SK scéna"}
|
||||
- {id: 23, cat: Other, desc: "Na prani non CZ/SK"}
|
||||
- {id: 27, cat: Other, desc: "TreZzoR rls"}
|
||||
- {id: 35, cat: Audio/Video, desc: "HDTV Hudební video"}
|
||||
- {id: 36, cat: Movies/SD, desc: "XviD, DivX CZ/SK titulky"}
|
||||
- {id: 31, cat: Movies/HD, desc: "HDTV CZ/SK Dabing"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HDTV CZ/SK Titulky"}
|
||||
- {id: 39, cat: Movies/3D, desc: "3D HDTV CZ/SK Dabing"}
|
||||
- {id: 40, cat: Movies/3D, desc: "3D HDTV CZ/SK Titulky"}
|
||||
- {id: 5, cat: Movies/SD, desc: "TV-rip CZ/SK dabing"}
|
||||
- {id: 31, cat: Movies/HD, desc: "HD CZ/SK Dabing"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HD CZ/SK Titulky"}
|
||||
- {id: 41, cat: TV/HD, desc: "HD Seriály CZ/SK dabing"}
|
||||
- {id: 42, cat: TV/HD, desc: "HD Seriály CZ/SK titulky"}
|
||||
- {id: 1, cat: Movies/BluRay, desc: "Full disc CZ/SK dabing"}
|
||||
- {id: 2, cat: Movies/BluRay, desc: "Full disc CZ/SK titulky"}
|
||||
- {id: 4, cat: Movies/SD, desc: "SD CZ/SK dabing"}
|
||||
- {id: 36, cat: Movies/SD, desc: "SD CZ/SK titulky"}
|
||||
- {id: 7, cat: TV/SD, desc: "Seriály CZ/SK dabing"}
|
||||
- {id: 37, cat: TV/SD, desc: "Seriály CZ/SK titulky"}
|
||||
- {id: 9, cat: XXX/XviD, desc: "XXX CZ/SK dabing"}
|
||||
- {id: 32, cat: XXX/x264, desc: "XXX HD CZ/SK dabing"}
|
||||
- {id: 35, cat: Audio/Video, desc: "Hudebni video"}
|
||||
- {id: 32, cat: XXX, desc: "XXX CZ/SK"}
|
||||
- {id: 13, cat: Audio, desc: "Hudba"}
|
||||
- {id: 24, cat: Audio/Audiobook, desc: "Mluv. slovo CZ/SK dabing"}
|
||||
- {id: 14, cat: PC/Games, desc: "Hry"}
|
||||
- {id: 17, cat: PC/0day, desc: "Programy"}
|
||||
- {id: 15, cat: PC/Games, desc: "Cestiny,patche,upgrady"}
|
||||
- {id: 18, cat: Books, desc: "Knihy CZ/SK lokalizace"}
|
||||
- {id: 19, cat: Books/Comics, desc: "Komiks CZ/SK lokalizace"}
|
||||
- {id: 16, cat: Other, desc: "Foto,obrázky"}
|
||||
- {id: 21, cat: PC/Mobile-Android, desc: "Mobilmánia"}
|
||||
- {id: 20, cat: Console, desc: "Konzole"}
|
||||
- {id: 22, cat: Other, desc: "Ostatní CZ/SK scéna"}
|
||||
- {id: 23, cat: Other, desc: "Na prani non CZ/SK"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, year]
|
||||
movie-search: [q, year]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
- name: username
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
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: data
|
||||
options:
|
||||
data: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
filename: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentu na strance:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_xxx
|
||||
type: info
|
||||
label: XXX Results
|
||||
default: To include XXX in results, click <b>Kategoria XXX sa nezobrazuje!!!. povolit zobrazenie</b> on the tracker search page.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: prihlasenie.php
|
||||
method: post
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div > font:has(a[href="neregpodp.php"])
|
||||
test:
|
||||
path: torrents.php
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)S(\\d{2})E(\\d{2})", "$1 $2"]
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
category: 0
|
||||
active: 1
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
rok: "{{ .Query.Year }}"
|
||||
# can search for genre but you need to know the id. &genres=57466 for Akční
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)S(\\d{2})E(\\d{2})", "$1 $2"]
|
||||
|
||||
rows:
|
||||
selector: tr.torrenty_lista
|
||||
selector: "tr.torrenty_lista{{ if .Config.freeleech }}:has(a[href^=\"details.php?slug=\"] b span[style=\"color:darkmagenta\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -90,17 +119,36 @@ search:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: title
|
||||
filters:
|
||||
# Czech, English
|
||||
- name: re_replace
|
||||
args: ["(?i)(Zobrazit detaily: |View details: )", ""]
|
||||
args: ["(?i)^(Zobrazit detaily|View details|Detaily): ", ""]
|
||||
- name: re_replace
|
||||
args: ["(Detaily: )", ""]
|
||||
args: ["(?i)[\\s\\->]*FREELEECH.*", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\w)\\.(\\w)", "$1 $2"]
|
||||
args: [".*?/ ", ""]
|
||||
- name: re_replace
|
||||
args: [".*? / ", ""]
|
||||
- name: diacritics
|
||||
args: replace
|
||||
args: ["(?i)\\b(\\d{1,3})x(\\d{1,3})\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)[\\.,\\s]*Epizoda[\\s\\.]*(\\d+(?:-\\d+)?)\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3}(?:-\\d+)?)[\\s\\.]*(?:Sezona|Series?|Seria|Season)[\\.,\\s]*(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)[\\.,\\s]+(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3})[-\\+\\.,\\s]+(\\d+)\\b", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3})[-\\+\\.\\s]+(\\d+)[\\s\\.]*(?:Sezona|Series?|Seria|Season)\\b", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3}(?:-\\d+)?)[\\s\\.]*(?:Sezona|Series?|Seria|Season)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEpizoda[\\s\\.]*(\\d+)[-\\+\\.,\\s]+(\\d+)\\b", "E$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)[-\\+\\.,\\s]+(\\d+)[\\s\\.]*Epizoda\\b", "E$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEpizoda[\\s\\.]*(\\d+(?:-\\d+)?)\\b", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "E$1"]
|
||||
details:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: href
|
||||
@@ -123,7 +171,17 @@ search:
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
case:
|
||||
a[href^="details.php?slug="] b span[style="color:darkmagenta"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^(Zobrazit detaily|View details|Detaily): ", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)[\\s\\->]*FREELEECH.*", ""]
|
||||
# engine tbd
|
||||
|
184
src/Jackett.Common/Definitions/trezzorcookie.yml
Normal file
184
src/Jackett.Common/Definitions/trezzorcookie.yml
Normal file
@@ -0,0 +1,184 @@
|
||||
---
|
||||
id: trezzorcookie
|
||||
name: TreZzoRCookie
|
||||
description: "TreZzoR is a CZECH Private site for TV / MOVIES / GENERAL. This uses the cookie method for access"
|
||||
language: cs-CZ
|
||||
type: private
|
||||
encoding: windows-1250
|
||||
links:
|
||||
- https://tracker.czech-server.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 31, cat: Movies/HD, desc: "HD CZ/SK Dabing"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HD CZ/SK Titulky"}
|
||||
- {id: 41, cat: TV/HD, desc: "HD Seriály CZ/SK dabing"}
|
||||
- {id: 42, cat: TV/HD, desc: "HD Seriály CZ/SK titulky"}
|
||||
- {id: 1, cat: Movies/BluRay, desc: "Full disc CZ/SK dabing"}
|
||||
- {id: 2, cat: Movies/BluRay, desc: "Full disc CZ/SK titulky"}
|
||||
- {id: 4, cat: Movies/SD, desc: "SD CZ/SK dabing"}
|
||||
- {id: 36, cat: Movies/SD, desc: "SD CZ/SK titulky"}
|
||||
- {id: 7, cat: TV/SD, desc: "Seriály CZ/SK dabing"}
|
||||
- {id: 37, cat: TV/SD, desc: "Seriály CZ/SK titulky"}
|
||||
- {id: 35, cat: Audio/Video, desc: "Hudebni video"}
|
||||
- {id: 32, cat: XXX, desc: "XXX CZ/SK"}
|
||||
- {id: 13, cat: Audio, desc: "Hudba"}
|
||||
- {id: 24, cat: Audio/Audiobook, desc: "Mluv. slovo CZ/SK dabing"}
|
||||
- {id: 14, cat: PC/Games, desc: "Hry"}
|
||||
- {id: 17, cat: PC/0day, desc: "Programy"}
|
||||
- {id: 15, cat: PC/Games, desc: "Cestiny,patche,upgrady"}
|
||||
- {id: 18, cat: Books, desc: "Knihy CZ/SK lokalizace"}
|
||||
- {id: 19, cat: Books/Comics, desc: "Komiks CZ/SK lokalizace"}
|
||||
- {id: 16, cat: Other, desc: "Foto,obrázky"}
|
||||
- {id: 21, cat: PC/Mobile-Android, desc: "Mobilmánia"}
|
||||
- {id: 20, cat: Console, desc: "Konzole"}
|
||||
- {id: 22, cat: Other, desc: "Ostatní CZ/SK scéna"}
|
||||
- {id: 23, cat: Other, desc: "Na prani non CZ/SK"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, year]
|
||||
movie-search: [q, year]
|
||||
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><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter FreeLeech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: data
|
||||
options:
|
||||
data: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
filename: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrentu na strance:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_xxx
|
||||
type: info
|
||||
label: XXX Results
|
||||
default: To include XXX in results, click <b>Kategoria XXX sa nezobrazuje!!!. povolit zobrazenie</b> on the tracker search page.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
category: 0
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
rok: "{{ .Query.Year }}"
|
||||
# can search for genre but you need to know the id. &genres=57466 for Akční
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)S(\\d{2})E(\\d{2})", "$1 $2"]
|
||||
|
||||
rows:
|
||||
selector: "tr.torrenty_lista{{ if .Config.freeleech }}:has(a[href^=\"details.php?slug=\"] b span[style=\"color:darkmagenta\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?onlycat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: onlycat
|
||||
title:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^(Zobrazit detaily|View details|Detaily): ", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)[\\s\\->]*FREELEECH.*", ""]
|
||||
- name: re_replace
|
||||
args: [".*?/ ", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3})x(\\d{1,3})\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)[\\.,\\s]*Epizoda[\\s\\.]*(\\d+(?:-\\d+)?)\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3}(?:-\\d+)?)[\\s\\.]*(?:Sezona|Series?|Seria|Season)[\\.,\\s]*(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)[\\.,\\s]+(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3})[-\\+\\.,\\s]+(\\d+)\\b", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3})[-\\+\\.\\s]+(\\d+)[\\s\\.]*(?:Sezona|Series?|Seria|Season)\\b", "S$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:Sezona|Series?|Seria|Season)[\\s\\.]*(\\d{1,3}(?:-\\d+)?)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d{1,3}(?:-\\d+)?)[\\s\\.]*(?:Sezona|Series?|Seria|Season)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEpizoda[\\s\\.]*(\\d+)[-\\+\\.,\\s]+(\\d+)\\b", "E$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)[-\\+\\.,\\s]+(\\d+)[\\s\\.]*Epizoda\\b", "E$1-$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEpizoda[\\s\\.]*(\\d+(?:-\\d+)?)\\b", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+(?:-\\d+)?)[\\s\\.]*Epizoda\\b", "E$1"]
|
||||
details:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?slug="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "d/M/yyyy HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8) a
|
||||
leechers:
|
||||
selector: td:nth-child(9) a
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
a[href^="details.php?slug="] b span[style="color:darkmagenta"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: a[href^="details.php?slug="]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^(Zobrazit detaily|View details|Detaily): ", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)[\\s\\->]*FREELEECH.*", ""]
|
||||
# engine tbd
|
@@ -35,6 +35,7 @@ caps:
|
||||
- {id: 39, cat: TV, desc: "Netflix Film"}
|
||||
- {id: 38, cat: TV, desc: "Netflix Dizi"}
|
||||
- {id: 40, cat: TV, desc: "Netflix Belgesel"}
|
||||
- {id: 104, cat: TV, desc: "Netflix Reality/Yarışma"}
|
||||
- {id: 47, cat: PC, desc: "Programlar"}
|
||||
- {id: 48, cat: PC, desc: "Programlar Windows"}
|
||||
- {id: 96, cat: PC, desc: "Programlar Linux"}
|
||||
|
@@ -92,6 +92,12 @@ search:
|
||||
qty: 100
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
|
||||
keywordsfilters:
|
||||
# if searching for season packs switch S01 to Series 1 #14369
|
||||
- name: re_replace
|
||||
args: ["(?i)(S0)(\\d{1,2})$", "Series $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(S)(\\d{1,3})$", "Series $2"]
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
@@ -105,6 +111,9 @@ search:
|
||||
args: "/categories/(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)Series[\\s]+(\\d+)", "S$1"]
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
|
@@ -1,32 +1,22 @@
|
||||
---
|
||||
id: acervos
|
||||
name: Acervos (API)
|
||||
description: "Acervos is a Brazilian tracker for movies, tv shows, and others."
|
||||
language: pt-BR
|
||||
id: utopia
|
||||
name: UTOPIA
|
||||
description: "UTOPIA is a UKRAINIAN Private Tracker for HD MOVIES and TV"
|
||||
language: uk-UA
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acervos.cc/
|
||||
- https://utp.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
||||
- {id: 2, cat: TV, desc: "Séries"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Animes"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentários"}
|
||||
- {id: 7, cat: Audio/Video, desc: "Shows"}
|
||||
- {id: 4, cat: Console, desc: "Games"}
|
||||
- {id: 8, cat: Other, desc: "Cursos"}
|
||||
- {id: 9, cat: Books, desc: "eBooks / Revistas / Apostilas"}
|
||||
- {id: 5, cat: PC, desc: "Programas"}
|
||||
- {id: 10, cat: Other, desc: "Materiais de Apoio"}
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -35,7 +25,7 @@ settings:
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://acervos.cc/\" target=\"_blank\">Acervos</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://utp.to/\" target=\"_blank\">UTOPIA</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -89,19 +79,14 @@ search:
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS(\\d+)", "T$1"]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -110,27 +95,15 @@ search:
|
||||
selector: name
|
||||
filters:
|
||||
- name: re_replace
|
||||
args:
|
||||
- "\\bDUAL\\b"
|
||||
- "Portuguese (Brazil) English"
|
||||
args: ["\\.", " "]
|
||||
details:
|
||||
selector: details_link
|
||||
_cat:
|
||||
selector: category
|
||||
_type:
|
||||
selector: type
|
||||
_res:
|
||||
selector: resolution
|
||||
optional: true
|
||||
_reg:
|
||||
selector: region
|
||||
optional: true
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
selector: poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -140,15 +113,6 @@ search:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Ficção científica)", "Ficção_científica"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result._cat }} {{ .Result._type }} {{ .Result._res }} {{ .Result._reg }} {{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -183,10 +147,10 @@ search:
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
||||
# global MR is 0.4 but torrents must be seeded for 3 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 6.4.1 (custom)
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 6.2.1
|
@@ -89,6 +89,7 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logintype: yes
|
||||
error:
|
||||
- selector: div.error
|
||||
- selector: table:has(img[src="/pic/ts_error/error.jpg"])
|
||||
|
@@ -209,7 +209,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
var jMovieTv = row.Value<JToken>("movie_tv");
|
||||
if (jMovieTv != null && jMovieTv.HasValues)
|
||||
{
|
||||
imdb = ParseUtil.GetImdbID(jMovieTv.Value<string>("imdb"));
|
||||
imdb = ParseUtil.GetImdbId(jMovieTv.Value<string>("imdb"));
|
||||
if (long.TryParse(jMovieTv.Value<string>("tvdb"), out var tvdbParsed))
|
||||
tvdb = tvdbParsed;
|
||||
if (long.TryParse(jMovieTv.Value<string>("tmdb"), out var tmdbParsed))
|
||||
@@ -253,7 +253,9 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
DownloadVolumeFactor = row.Value<double>("download_multiply"),
|
||||
UploadVolumeFactor = row.Value<double>("upload_multiply"),
|
||||
MinimumRatio = 1,
|
||||
MinimumSeedTime = 172800 // 48 hours
|
||||
MinimumSeedTime = 172800, // 48 hours
|
||||
Languages = row.Value<JArray>("audio")?.Select(x => x.Value<string>("language")).ToList() ?? new List<string>(),
|
||||
Subs = row.Value<JArray>("subtitle")?.Select(x => x.Value<string>("language")).ToList() ?? new List<string>(),
|
||||
};
|
||||
|
||||
releases.Add(release);
|
||||
|
@@ -98,7 +98,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
Link = new Uri((string)r["download_url"])
|
||||
};
|
||||
release.Guid = release.Link;
|
||||
release.Imdb = ParseUtil.GetImdbID((string)r["imdb_id"]);
|
||||
release.Imdb = ParseUtil.GetImdbId((string)r["imdb_id"]);
|
||||
var freeleech = (bool)r["freeleech"];
|
||||
if (freeleech)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
|
@@ -27,13 +27,13 @@ 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") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + (useAuthKey ? "&authkey=" + configData.AuthKey.Value : "") + "&id=";
|
||||
protected virtual string DownloadUrl => SiteLink + "torrents.php?action=download" + (useTokens ? "&usetoken=1" : "") + (usePassKey ? "&torrent_pass=" + configData.PassKey.Value : "") + (useAuthKey ? "&authkey=" + configData.AuthKey.Value : "") + "&id=";
|
||||
protected virtual string DetailsUrl => SiteLink + "torrents.php?torrentid=";
|
||||
protected virtual string PosterUrl => SiteLink;
|
||||
protected virtual string AuthorizationName => "Authorization";
|
||||
protected virtual string AuthorizationFormat => "{0}";
|
||||
protected virtual int ApiKeyLength => 41;
|
||||
protected virtual string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "usetoken=0");
|
||||
protected virtual string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
|
||||
protected bool useTokens;
|
||||
protected string cookie = "";
|
||||
@@ -270,7 +270,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
|
||||
if (imdbInTags)
|
||||
release.Imdb = tags
|
||||
.Select(tag => ParseUtil.GetImdbID((string)tag))
|
||||
.Select(tag => ParseUtil.GetImdbId((string)tag))
|
||||
.Where(tag => tag != null).FirstIfSingleOrDefault();
|
||||
|
||||
if (r["torrents"] is JArray)
|
||||
@@ -294,7 +294,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
OnParseError(response.ContentString, ex);
|
||||
}
|
||||
|
||||
return releases;
|
||||
return releases.OrderByDescending(o => o.PublishDate).ToArray();
|
||||
}
|
||||
|
||||
// hook to add/modify the parsed information, return false to exclude the torrent from the results
|
||||
@@ -418,7 +418,7 @@ namespace Jackett.Common.Indexers.Abstract
|
||||
|| html.Contains("This torrent is too large.")
|
||||
|| html.Contains("You cannot use tokens here"))
|
||||
{
|
||||
// download again with usetoken=0
|
||||
// download again without usetoken=1
|
||||
var requestLinkNew = FlipOptionalTokenString(requestLink);
|
||||
content = await base.Download(new Uri(requestLinkNew), RequestType.GET, headers: headers);
|
||||
}
|
||||
|
@@ -117,8 +117,8 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
var searchString = query.GetQueryString().Trim();
|
||||
|
||||
// replace any space, special char, etc. with % (wildcard)
|
||||
searchString = Regex.Replace(searchString, "[^a-zA-Z0-9]+", "%");
|
||||
// replace non-word characters with % (wildcard)
|
||||
searchString = Regex.Replace(searchString, @"[\W]+", "%");
|
||||
|
||||
var searchUrl = SearchUrl;
|
||||
|
||||
|
@@ -164,6 +164,14 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var downloadVolumeFactor = row.QuerySelector("span.freeleech") != null ? 0 : 1;
|
||||
|
||||
// Skip non-freeleech results when freeleech only is set
|
||||
if (configData.FreeleechOnly.Value && downloadVolumeFactor != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var qTitleLink = row.QuerySelector("a.title, a.alt_title");
|
||||
if (qTitleLink == null)
|
||||
continue;
|
||||
@@ -247,7 +255,7 @@ namespace Jackett.Common.Indexers
|
||||
else
|
||||
release.PublishDate = DateTime.ParseExact(dateStr, "dd MMM yy", CultureInfo.InvariantCulture);
|
||||
|
||||
release.DownloadVolumeFactor = row.QuerySelector("span.freeleech") != null ? 0 : 1;
|
||||
release.DownloadVolumeFactor = downloadVolumeFactor;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
releases.Add(release);
|
||||
|
@@ -124,7 +124,7 @@ namespace Jackett.Common.Indexers
|
||||
else if (query.IsMovieSearch)
|
||||
postData.Add(BHDParams.categories, "Movies");
|
||||
|
||||
var imdbId = ParseUtil.GetImdbID(query.ImdbID);
|
||||
var imdbId = ParseUtil.GetImdbId(query.ImdbID);
|
||||
if (imdbId != null)
|
||||
postData.Add(BHDParams.imdb_id, imdbId.ToString());
|
||||
if (query.IsTmdbQuery)
|
||||
@@ -158,7 +158,7 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(bhdResult.imdb_id))
|
||||
releaseInfo.Imdb = ParseUtil.GetImdbID(bhdResult.imdb_id);
|
||||
releaseInfo.Imdb = ParseUtil.GetImdbId(bhdResult.imdb_id);
|
||||
|
||||
releaseInfo.DownloadVolumeFactor = 1;
|
||||
releaseInfo.UploadVolumeFactor = 1;
|
||||
|
@@ -161,7 +161,7 @@ namespace Jackett.Common.Indexers
|
||||
descriptions.Add("Origin: " + btnResult.Origin);
|
||||
if (!string.IsNullOrWhiteSpace(btnResult.Series))
|
||||
descriptions.Add("Youtube Trailer: <a href=\"" + btnResult.YoutubeTrailer + "\">" + btnResult.YoutubeTrailer + "</a>");
|
||||
var imdb = ParseUtil.GetImdbID(btnResult.ImdbID);
|
||||
var imdb = ParseUtil.GetImdbId(btnResult.ImdbID);
|
||||
var link = new Uri(btnResult.DownloadURL);
|
||||
var details = new Uri($"{SiteLink}torrents.php?id={btnResult.GroupID}&torrentid={btnResult.TorrentID}");
|
||||
var publishDate = DateTimeUtil.UnixTimestampToDateTime(btnResult.Time);
|
||||
|
@@ -9,8 +9,10 @@ using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Dom;
|
||||
using AngleSharp.Html;
|
||||
using AngleSharp.Html.Dom;
|
||||
using AngleSharp.Html.Parser;
|
||||
using AngleSharp.Text;
|
||||
using AngleSharp.Xml.Parser;
|
||||
using Jackett.Common.Helpers;
|
||||
using Jackett.Common.Models;
|
||||
@@ -608,8 +610,18 @@ namespace Jackett.Common.Indexers
|
||||
foreach (var input in inputs)
|
||||
{
|
||||
var name = input.GetAttribute("name");
|
||||
if (name == null)
|
||||
|
||||
if (name == null || input.IsDisabled())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (input is IHtmlInputElement element &&
|
||||
element.Type.IsOneOf(InputTypeNames.Checkbox, InputTypeNames.Radio) &&
|
||||
!input.IsChecked())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var value = input.GetAttribute("value") ?? "";
|
||||
|
||||
|
@@ -25,10 +25,10 @@ namespace Jackett.Common.Indexers
|
||||
public override string Id => "dontorrent";
|
||||
public override string Name => "DonTorrent";
|
||||
public override string Description => "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.discount/";
|
||||
public override string SiteLink { get; protected set; } = "https://dontorrent.dad/";
|
||||
public override string[] AlternativeSiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.discount/",
|
||||
"https://dontorrent.dad/",
|
||||
"https://todotorrents.net/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -37,7 +37,6 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
public override string[] LegacySiteLinks => new[]
|
||||
{
|
||||
"https://dontorrent.surf/",
|
||||
"https://dontorrent.how/",
|
||||
"https://dontorrent.casa/",
|
||||
"https://dontorrent.chat/",
|
||||
@@ -51,8 +50,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://dontorrent.care/",
|
||||
"https://dontorrent.cash/",
|
||||
"https://dontorrent.observer/",
|
||||
"https://dontorrent.company/"
|
||||
|
||||
"https://dontorrent.company/",
|
||||
"https://dontorrent.discount/",
|
||||
};
|
||||
public override string Language => "es-ES";
|
||||
public override string Type => "public";
|
||||
|
@@ -158,7 +158,7 @@ namespace Jackett.Common.Indexers
|
||||
var publishDate = DateTime.Parse(row.Value<string>("upload_date") + " +0300", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
|
||||
var downloadVolumeFactor = isFreeleech ? 0 : 1;
|
||||
var uploadVolumeFactor = row.Value<bool>("doubleup") ? 2 : 1;
|
||||
var imdbId = ((JObject)row).ContainsKey("imdb") ? ParseUtil.GetImdbID(row.Value<string>("imdb")) : null;
|
||||
var imdbId = ((JObject)row).ContainsKey("imdb") ? ParseUtil.GetImdbId(row.Value<string>("imdb")) : null;
|
||||
var link = new Uri(row.Value<string>("download_link"));
|
||||
|
||||
var release = new ReleaseInfo
|
||||
|
@@ -33,7 +33,7 @@ namespace Jackett.Common.Indexers
|
||||
protected override string APIUrl => SiteLink + "api.php";
|
||||
protected override string AuthorizationName => "X-API-Key";
|
||||
protected override int ApiKeyLength => 64;
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "");
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
public GazelleGamesApi(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(configService: configService,
|
||||
@@ -240,6 +240,11 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
var group = gObj.Value as JObject;
|
||||
|
||||
if (group["Torrents"].Type == JTokenType.Array && group["Torrents"] is JArray array && array.Count == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (var tObj in JObject.FromObject(group["Torrents"]))
|
||||
{
|
||||
var torrent = tObj.Value as JObject;
|
||||
|
@@ -1,8 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Extensions;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
@@ -67,7 +71,14 @@ namespace Jackett.Common.Indexers
|
||||
query.ImdbID = null;
|
||||
}
|
||||
|
||||
return await base.PerformQuery(query);
|
||||
var releases = await base.PerformQuery(query);
|
||||
|
||||
if (query.SearchTerm.IsNullOrWhiteSpace())
|
||||
{
|
||||
releases = releases.Take(50).ToList();
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
|
||||
protected override bool ReleaseInfoPostParse(ReleaseInfo release, JObject torrent, JObject result)
|
||||
@@ -144,7 +155,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
var imdbID = (string)result["imdbId"];
|
||||
if (!string.IsNullOrEmpty(imdbID))
|
||||
release.Imdb = ParseUtil.GetImdbID(imdbID);
|
||||
release.Imdb = ParseUtil.GetImdbId(imdbID);
|
||||
|
||||
release.MinimumRatio = 1;
|
||||
release.MinimumSeedTime = 172800; // 48 hours
|
||||
@@ -152,6 +163,15 @@ namespace Jackett.Common.Indexers
|
||||
release.Category = new List<int> { TorznabCatType.Movies.ID };
|
||||
if (!string.IsNullOrEmpty(groupSubName))
|
||||
release.Description = groupSubName;
|
||||
|
||||
var time = torrent.Value<string>("time");
|
||||
|
||||
if (time.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
// Time is Chinese Time, add 8 hours difference from UTC
|
||||
release.PublishDate = DateTime.ParseExact($"{time} +08:00", "yyyy-MM-dd HH:mm:ss zzz", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -97,7 +97,7 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
var requestData = new JObject();
|
||||
var queryString = query.GetQueryString();
|
||||
var imdbId = ParseUtil.GetImdbID(query.ImdbID);
|
||||
var imdbId = ParseUtil.GetImdbId(query.ImdbID);
|
||||
|
||||
if (imdbId != null)
|
||||
requestData["imdb"] = new JObject
|
||||
@@ -175,7 +175,7 @@ namespace Jackett.Common.Indexers
|
||||
};
|
||||
|
||||
if (r.ContainsKey("imdb"))
|
||||
release.Imdb = ParseUtil.GetImdbID((string)r["imdb"]["id"]);
|
||||
release.Imdb = ParseUtil.GetImdbId((string)r["imdb"]["id"]);
|
||||
|
||||
if (r.ContainsKey("tvdb"))
|
||||
release.TVDBId = (long)r["tvdb"]["id"];
|
||||
|
@@ -195,7 +195,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
var imdbLink = row.Children[1].QuerySelector("a[href*=imdb]");
|
||||
if (imdbLink != null)
|
||||
release.Imdb = ParseUtil.GetImdbID(imdbLink.GetAttribute("href").Split('/').Last());
|
||||
release.Imdb = ParseUtil.GetImdbId(imdbLink.GetAttribute("href").Split('/').Last());
|
||||
|
||||
var dateStr = row.Children[4].TextContent.Trim();
|
||||
//"July 11, 2015, 13:34:09", "Today|Yesterday at 20:04:23"
|
||||
|
@@ -24,7 +24,7 @@ namespace Jackett.Common.Indexers
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
||||
protected override string AuthorizationFormat => "token {0}";
|
||||
protected override int ApiKeyLength => 118;
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("usetoken=1", "");
|
||||
protected override string FlipOptionalTokenString(string requestLink) => requestLink.Replace("&usetoken=1", "");
|
||||
public Orpheus(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
ICacheService cs)
|
||||
: base(configService: configService,
|
||||
|
@@ -237,7 +237,7 @@ namespace Jackett.Common.Indexers
|
||||
var episodeInfo = item.Value<JToken>("episode_info");
|
||||
if (episodeInfo.HasValues)
|
||||
{
|
||||
release.Imdb = ParseUtil.GetImdbID(episodeInfo.Value<string>("imdb"));
|
||||
release.Imdb = ParseUtil.GetImdbId(episodeInfo.Value<string>("imdb"));
|
||||
release.TVDBId = episodeInfo.Value<long?>("tvdb");
|
||||
release.RageID = episodeInfo.Value<long?>("tvrage");
|
||||
release.TMDb = episodeInfo.Value<long?>("themoviedb");
|
||||
|
@@ -22,7 +22,7 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
public override TorznabCapabilities TorznabCaps => SetCapabilities();
|
||||
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download&usetoken=" + (useTokens ? "1" : "0") + "&id=";
|
||||
protected override string DownloadUrl => SiteLink + "ajax.php?action=download" + (useTokens ? "&usetoken=1" : "") + "&id=";
|
||||
|
||||
public Redacted(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps, ICacheService cs)
|
||||
: base(configService: configService,
|
||||
|
@@ -190,7 +190,7 @@ namespace Jackett.Common.Indexers
|
||||
var category = row.QuerySelector(".br_type > a").GetAttribute("href").Replace("browse.php?cat=", string.Empty);
|
||||
|
||||
var qImdb = row.QuerySelector("a[href*=\"www.imdb.com/\"]");
|
||||
var imdb = qImdb != null ? ParseUtil.GetImdbID(qImdb.GetAttribute("href").Split('/').Last()) : null;
|
||||
var imdb = qImdb != null ? ParseUtil.GetImdbId(qImdb.GetAttribute("href").Split('/').Last()) : null;
|
||||
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
|
@@ -1441,17 +1441,11 @@ namespace Jackett.Common.Indexers
|
||||
var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, CookieHeader, true, null, LoginUrl, true);
|
||||
await ConfigureIfOK(result.Cookies, result.ContentString != null && result.ContentString.Contains("id=\"logged-in-username\""), () =>
|
||||
{
|
||||
var errorMessage = "Unknown error message, please report";
|
||||
var parser = new HtmlParser();
|
||||
var doc = parser.ParseDocument(result.ContentString);
|
||||
var errormsg = doc.QuerySelector("div.msg-main");
|
||||
if (errormsg != null)
|
||||
errorMessage = errormsg.TextContent;
|
||||
errormsg = doc.QuerySelector("h4[class=\"warnColor1 tCenter mrg_16\"]");
|
||||
if (errormsg != null)
|
||||
errorMessage = errormsg.TextContent;
|
||||
var errorMessage = doc.QuerySelector("h4.warnColor1.tCenter.mrg_16, div.msg-main")?.TextContent.Trim();
|
||||
|
||||
throw new ExceptionWithConfigData(errorMessage, configData);
|
||||
throw new ExceptionWithConfigData(errorMessage ?? "RuTracker authentication failed", configData);
|
||||
});
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
}
|
||||
|
@@ -149,7 +149,7 @@ namespace Jackett.Common.Indexers
|
||||
Files = item.Value<long>("numfiles"),
|
||||
Seeders = item.Value<int>("seeders"),
|
||||
Peers = item.Value<int>("leechers") + item.Value<int>("seeders"),
|
||||
Imdb = ParseUtil.GetImdbID(item.Value<string>("imdbid")),
|
||||
Imdb = ParseUtil.GetImdbId(item.Value<string>("imdbid")),
|
||||
MinimumRatio = 1,
|
||||
MinimumSeedTime = 0,
|
||||
DownloadVolumeFactor = dlVolumeFactor,
|
||||
|
@@ -72,25 +72,26 @@ namespace Jackett.Common.Indexers
|
||||
caps.Categories.AddCategoryMapping(57, TorznabCatType.MoviesSD, "Movies SD");
|
||||
caps.Categories.AddCategoryMapping(59, TorznabCatType.MoviesHD, "Movies HD");
|
||||
caps.Categories.AddCategoryMapping(64, TorznabCatType.Movies3D, "Movies 3D");
|
||||
caps.Categories.AddCategoryMapping(82, TorznabCatType.MoviesOther, "Movies CAM-TS");
|
||||
caps.Categories.AddCategoryMapping(82, TorznabCatType.MoviesOther, "Movies CAM/TS");
|
||||
caps.Categories.AddCategoryMapping(16, TorznabCatType.MoviesUHD, "Movies UHD");
|
||||
caps.Categories.AddCategoryMapping(2, TorznabCatType.TVUHD, "TV UHD");
|
||||
caps.Categories.AddCategoryMapping(43, TorznabCatType.TV, "TV Packs");
|
||||
caps.Categories.AddCategoryMapping(9, TorznabCatType.TVHD, "TV HD");
|
||||
caps.Categories.AddCategoryMapping(77, TorznabCatType.TVSD, "TV SD");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.PCGames, "Games PC ISO");
|
||||
caps.Categories.AddCategoryMapping(1, TorznabCatType.TVAnime, "TV ANIME");
|
||||
caps.Categories.AddCategoryMapping(6, TorznabCatType.PCGames, "Games PC-ISO");
|
||||
caps.Categories.AddCategoryMapping(48, TorznabCatType.ConsoleXBox, "Games XBOX");
|
||||
caps.Categories.AddCategoryMapping(51, TorznabCatType.ConsoleWii, "Games Wii");
|
||||
caps.Categories.AddCategoryMapping(55, TorznabCatType.ConsoleNDS, "Games Nintendo DS");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.ConsolePS4, "Games/PS");
|
||||
caps.Categories.AddCategoryMapping(55, TorznabCatType.ConsoleNDS, "Games Nintendo");
|
||||
caps.Categories.AddCategoryMapping(12, TorznabCatType.ConsolePS4, "Games PS");
|
||||
caps.Categories.AddCategoryMapping(15, TorznabCatType.ConsoleOther, "Games Dreamcast");
|
||||
caps.Categories.AddCategoryMapping(52, TorznabCatType.PCMac, "Mac/Linux");
|
||||
caps.Categories.AddCategoryMapping(53, TorznabCatType.PC0day, "Apps");
|
||||
caps.Categories.AddCategoryMapping(24, TorznabCatType.PCMobileOther, "Mobile Apps");
|
||||
caps.Categories.AddCategoryMapping(7, TorznabCatType.Books, "Books and Magazines");
|
||||
caps.Categories.AddCategoryMapping(65, TorznabCatType.BooksComics, "Books Comic");
|
||||
caps.Categories.AddCategoryMapping(65, TorznabCatType.BooksComics, "Books Comics");
|
||||
caps.Categories.AddCategoryMapping(4, TorznabCatType.Audio, "Music");
|
||||
caps.Categories.AddCategoryMapping(116, TorznabCatType.Audio, "Music Pack");
|
||||
caps.Categories.AddCategoryMapping(116, TorznabCatType.Audio, "Music Packs");
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user