From f05228fec472854dd9a7eb71e2344d81fe7fafc1 Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Wed, 9 Feb 2022 09:12:01 +1300 Subject: [PATCH] add turktracker a Turkish private site. resolves #12923 --- README.md | 1 + .../Definitions/turktracker.yml | 177 ++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 src/Jackett.Common/Definitions/turktracker.yml diff --git a/README.md b/README.md index a6bab7d13..19c270659 100644 --- a/README.md +++ b/README.md @@ -572,6 +572,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht * Trezzor [![(invite needed)][inviteneeded]](#) * TurkSeed * TurkTorrent (TT) + * turktracker * TV Chaos UK (TVCUK) * TvRoad * TVstore diff --git a/src/Jackett.Common/Definitions/turktracker.yml b/src/Jackett.Common/Definitions/turktracker.yml new file mode 100644 index 000000000..adbb244c4 --- /dev/null +++ b/src/Jackett.Common/Definitions/turktracker.yml @@ -0,0 +1,177 @@ +--- +id: turktracker +name: turktracker +description: "turktracker is a TURKISH Private Torrent Tracker for MOVIES / TV" +language: tr-TR +type: private +encoding: UTF-8 +testlinktorrent: false +links: + - https://turktracker.net/ + +caps: + categorymappings: + - {id: 8, cat: TV, desc: "Altyazılı Diziler (Subtitled Series)"} + - {id: 7, cat: Movies, desc: "Altyazılı Filmler (Subtitled Movies)"} + - {id: 5, cat: TV/Documentary, desc: "Belgesel (Documentary)"} + - {id: 9, cat: TV, desc: "BluTV"} + - {id: 3, cat: Movies, desc: "Boxset"} + - {id: 11, cat: TV, desc: "Dublaj Dizi(Dubbing Series)"} + - {id: 10, cat: Movies, desc: "Dublaj Film (Dubbing Movie)"} + - {id: 12, cat: Books, desc: "E-Kitap (E-Book)"} + - {id: 6, cat: TV, desc: "Eğitim (education)"} + - {id: 13, cat: TV, desc: "EXXEN"} + - {id: 26, cat: TV, desc: "Gain"} + - {id: 14, cat: Audio, desc: "Müzik (Music)"} + - {id: 21, cat: TV, desc: "Netflix"} + - {id: 15, cat: Console, desc: "Oyunlar (Games)"} + - {id: 16, cat: PC, desc: "Program"} + - {id: 19, cat: XXX, desc: "XXX"} + - {id: 18, cat: TV, desc: "Yerli Diziler (Domestic TV Series)"} + - {id: 17, cat: Movies, desc: "Yerli Filmler (Domestic Movies)"} + + 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: Filter freeleech only + default: false + - name: sort + 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: login.php + method: form + form: form[action="takelogin.php"] + captcha: + type: image + selector: img#regimage + input: imagestring + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + logout: "" + error: + - selector: table:has(td.thead:contains("An error has occured!")) + - selector: table:has(td.thead:contains("Bir hata oluştu!")) + test: + path: index.php + selector: a[href*="logout.php?logouthash="] + +download: + before: + path: takethanks.php + method: post + inputs: + torrentid: "{{ .DownloadUri.Query.id }}" + selectors: + - selector: a[href*="download.php?id="] + attribute: href + +search: + paths: + - path: browse.php + inputs: + do: search + category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}" + # yes incldead, no activeonly + include_dead_torrents: yes + keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" + # t_name, t_description, t_both, t_uploader, t_genre + search_type: "{{ if .Query.IMDBID }}t_genre{{ else }}t_name{{ end }}" + sort: "{{ .Config.sort }}" + order: "{{ .Config.type }}" + # does not return imdb link in results + keywordsfilters: + - name: re_replace # replace special characters with "%" (wildcard) + args: ["[^a-zA-Z0-9]+", "%"] + + rows: + selector: "table#sortabletable tbody tr:has(a[href*=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}" + + fields: + category: + selector: a[href*="browse.php?category="] + attribute: href + filters: + - name: querystring + args: category + title_default: + # is often abbreviated + selector: a[href*="details.php?id="] + title_optional: + # usually longer than details title + selector: div[id^="port-content-"] div:nth-child(2) + optional: true + title: + text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}" + details: + selector: a[href*="details.php?id="] + attribute: href + download: + selector: a[href*="details.php?id="] + attribute: href + magnet: + selector: a[href^="magnet:?xt="] + attribute: href + poster: + selector: div[id^="port-content-"] div 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: "02-01-2006 15:04 -07:00" + 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$="/external.gif"]: 0 + img[src$="/freedownload.gif"]: 0 + img[src$="/silverdownload.gif"]: 0.5 + "*": 1 + uploadvolumefactor: + case: + img[src$="/x2.gif"]: 2 + "*": 1 +# TBD, Rules and FAQ do not cover this yet +# minimumratio: +# text: 1.0 +# minimumseedtime: +# # 2 days (as seconds = 2 x 24 x 60 x 60) +# text: 172800 +# TS Special Edition v.7.5 - v.8.0 hybrid