diff --git a/README.md b/README.md index 2e6cba308..199776491 100644 --- a/README.md +++ b/README.md @@ -533,6 +533,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht * TJUPT * TLFBits [![(invite needed)][inviteneeded]](#) * TmGHuB + * Tornado * Torrent Network (TN) * Torrent Sector Crew (TSC) * Torrent Surf diff --git a/src/Jackett.Common/Definitions/tornado.yml b/src/Jackett.Common/Definitions/tornado.yml new file mode 100644 index 000000000..1b5d46609 --- /dev/null +++ b/src/Jackett.Common/Definitions/tornado.yml @@ -0,0 +1,181 @@ +--- +id: tornado +name: Tornado +description: "Tornado is a SLOVENIAN Private Torrent Tracker for MOVIES / TV / GENERAL" +language: sl-SI +type: private +encoding: UTF-8 +links: + - https://www.tornado.si/ + +caps: + categorymappings: + - {id: 32, cat: Movies/SD, desc: "Filmi - Xvid"} + - {id: 33, cat: Movies/DVD, desc: "Filmi - DVD"} + - {id: 34, cat: Movies/BluRay, desc: "Filmi - BD"} + - {id: 35, cat: TV/Documentary, desc: "Dokumentarci"} + - {id: 36, cat: TV/Anime, desc: "Risanke"} + - {id: 37, cat: Audio/Video, desc: "Koncerti"} + - {id: 38, cat: Audio/MP3, desc: "Glasba MP3"} + - {id: 39, cat: Audio/Lossless, desc: "Glasba FLAC"} + - {id: 40, cat: PC/Games, desc: "Igre - PC"} + - {id: 41, cat: Console/PS3, desc: "Igre - PS3"} + - {id: 42, cat: Console/PS4, desc: "Igre - PS4"} + - {id: 43, cat: Console/XBox, desc: "Igre - Xbox"} + - {id: 47, cat: Console/NDS, desc: "Igre - Nintendo"} + - {id: 44, cat: PC, desc: "Programi"} + - {id: 45, cat: Books/EBook, desc: "E - Knjige"} + - {id: 46, cat: Books/Mags, desc: "E - Revije"} + - {id: 48, cat: TV, desc: "TV - Rip"} + - {id: 49, cat: XXX/ImageSet, desc: "Slike"} + - {id: 50, cat: XXX/DVD, desc: "Erotika"} + - {id: 51, cat: Other/Misc, desc: "Ostalo"} + - {id: 52, cat: Other, desc: "VIP"} + + 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: added + options: + added: created + seeders: seeders + size: size + - name: type + type: select + label: Order requested from site + default: desc + options: + desc: desc + asc: asc + - name: info_results + type: info + label: Search results + default: "If you are getting the error Found no results while trying to browse this tracker then first access the site with your browser and check that you are not being forced to change your password because it has expired after 180 days." + +login: + path: ?p=home&pid=1 + method: form + form: form#loginbox_form + submitpath: ajax/login.php + inputs: + action: login + loginbox_membername: "{{ .Config.username }}" + loginbox_password: "{{ .Config.password }}" + loginbox_remember: 1 + selectorinputs: + securitytoken: + selector: "script:contains(\"stKey: \")" + filters: + - name: regexp + args: "stKey: \"(.+?)\"," + error: + - selector: div.error + - selector: :contains("-ERROR-") + test: + path: ?p=home&pid=1 + selector: div#member_info_bar + +search: + paths: + - path: / + keywordsfilters: + - name: re_replace + args: ["[^a-zA-Z0-9]+", "%25"] + inputs: + p: torrents + pid: 32 + $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}" + keywords: "{{ .Keywords }}" + # name, description, both, uploader + search_type: name + "sortOptions[sortBy]": "{{ .Config.sort }}" + "sortOptions[sortOrder]": "{{ .Config.type }}" + # does not support imdbid search but has imdbid links in results. + error: + - selector: div.error:not(:contains("There are no results found.")) + + rows: + selector: "div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}" + + fields: + category: + selector: a[href*="?p=torrents&pid=10&cid="] + attribute: href + filters: + - name: querystring + args: cid + title: + selector: a[href*="?p=torrents&pid=10&action=details&tid="] + details: + selector: a[href*="?p=torrents&pid=10&action=details&tid="] + attribute: href + download: + selector: a[href*="?p=torrents&pid=10&action=download&tid="] + attribute: href + magnet: + selector: a[href^="magnet:?xt="] + attribute: href + poster: + selector: a[href*="data/torrents/torrent_images/"] + attribute: href + imdbid: + selector: a[href*="imdb.com/title/tt"] + attribute: href + size: + selector: a[rel="torrent_size"] + grabs: + selector: a[rel="times_completed"] + seeders: + selector: a[rel="torrent_seeders"] + leechers: + selector: a[rel="torrent_leechers"] + date_day: + selector: div.torrentOwner:contains("day") + # auto adjusted by site account profile + optional: true + filters: + - name: regexp + args: "Uploaded (.+?) by" + - name: fuzzytime + date_year: + selector: div.torrentOwner:contains("-") + # auto adjusted by site account profile + optional: true + filters: + - name: regexp + args: "Uploaded (.+?) by" + - name: dateparse + args: "02-01-2006 15:04" + date_unix: + selector: div.torrentOwner abbr + optional: true + attribute: data-time + date: + text: "{{ if or .Result.date_day .Result.date_year .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_unix }}{{ else }}now{{ end }}" + downloadvolumefactor: + case: + img[src$="/torrent_free.png"]: 0 + "*": 1 + uploadvolumefactor: + text: 1 + minimumratio: + text: 1.0 +# TSUE 2.2