From efc16029363c48b1c29cc011ba8d34455a5bc8d1 Mon Sep 17 00:00:00 2001
From: ilike2burnthing <59480337+ilike2burnthing@users.noreply.github.com>
Date: Sat, 27 May 2023 03:47:17 +0100
Subject: [PATCH] trezzor: update, add separate cookie indexer. resolves #14376
(#14379)
---
README.md | 2 +-
src/Jackett.Common/Definitions/trezzor.yml | 162 ++++++++++-----
.../Definitions/trezzorcookie.yml | 184 ++++++++++++++++++
3 files changed, 295 insertions(+), 53 deletions(-)
create mode 100644 src/Jackett.Common/Definitions/trezzorcookie.yml
diff --git a/README.md b/README.md
index a5d949e82..6110e98ee 100644
--- a/README.md
+++ b/README.md
@@ -576,7 +576,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
* TotallyKids (TK)
* ToTheGlory (TTG) [![(invite needed)][inviteneeded]](#)
* TranceTraffic
- * Trezzor [![(invite needed)][inviteneeded]](#)
+ * TreZzoR [![(invite needed)][inviteneeded]](#)
* TurkSeed
* TurkTorrent (TT)
* TV Chaos UK (TVCUK)
diff --git a/src/Jackett.Common/Definitions/trezzor.yml b/src/Jackett.Common/Definitions/trezzor.yml
index f0992d4bc..5a359204d 100644
--- a/src/Jackett.Common/Definitions/trezzor.yml
+++ b/src/Jackett.Common/Definitions/trezzor.yml
@@ -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: "
- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ label: Results Per Page
+ default: For best results, change the Torrentu na strance: setting to 100 on your account profile.
+ - name: info_xxx
+ type: info
+ label: XXX Results
+ default: To include XXX in results, click Kategoria XXX sa nezobrazuje!!!. povolit zobrazenie 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
diff --git a/src/Jackett.Common/Definitions/trezzorcookie.yml b/src/Jackett.Common/Definitions/trezzorcookie.yml
new file mode 100644
index 000000000..91ac435f9
--- /dev/null
+++ b/src/Jackett.Common/Definitions/trezzorcookie.yml
@@ -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: "- Login to this tracker with your browser
- Open the DevTools panel by pressing F12
- Select the Network tab
- Click on the Doc button (Chrome Browser) or HTML button (FireFox)
- Refresh the page by pressing F5
- Click on the first row entry
- Select the Headers tab on the Right panel
- Find 'cookie:' in the Request Headers section
- Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
"
+ - 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 Torrentu na strance: setting to 100 on your account profile.
+ - name: info_xxx
+ type: info
+ label: XXX Results
+ default: To include XXX in results, click Kategoria XXX sa nezobrazuje!!!. povolit zobrazenie 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