diff --git a/README.md b/README.md index 4802e9c98..44fcda8ba 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht * Genesis-Movement * HamsterStudio * HD-CzTorrent + * HDGalaKtik * HunTorrent * IV-Torrents * KinoNaVse100 diff --git a/src/Jackett.Common/Definitions/hdgalaktik.yml b/src/Jackett.Common/Definitions/hdgalaktik.yml new file mode 100644 index 000000000..ed49a6eaa --- /dev/null +++ b/src/Jackett.Common/Definitions/hdgalaktik.yml @@ -0,0 +1,200 @@ +--- +id: hdgalaktik +name: HDGalaKtik +description: "HDGalaKtik is a RUSSIAN Semi-Private tracker for TV / MOVIES / GENERAL" +language: ru-RU +type: semi-private +encoding: UTF-8 +links: + - https://hdgalaktik.com/ + +caps: + categorymappings: + - {id: 13, cat: Movies, desc: "Фильмы (Movies)"} + - {id: 6, cat: TV, desc: "Мультфильмы (Cartoons)"} + - {id: 10, cat: Audio, desc: "Музыка (Music)"} + - {id: 26, cat: PC, desc: "Программы (Programs)"} + - {id: 5, cat: Console, desc: "Игры (Games)"} + - {id: 25, cat: Other, desc: "Картинки (Pictures)"} + - {id: 11, cat: TV, desc: "Сериалы (TV Series)"} + - {id: 12, cat: TV/Anime, desc: "Аниме (Anime)"} + - {id: 16, cat: Books, desc: "Книги (Books)"} + - {id: 18, cat: Audio/Video, desc: "Клипы / Ролики (Clips / Trailers)"} + - {id: 22, cat: TV, desc: "ТВ / Передачи (TV)"} + - {id: 27, cat: PC/Mobile-Other, desc: "Игры - Мобила / КПК (Mobile)"} + - {id: 1, cat: PC/ISO, desc: "Образы (ISO)"} + - {id: 4, cat: Other, desc: "Другое (Other)"} + + 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: striprussian + type: checkbox + label: Strip Russian Letters + default: false + - name: sort + type: select + label: Sort requested from site + default: 4 + options: + 4: created + 1: title + 5: size + 8: 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 Torrents per page: setting to 100 on your account profile. + +login: + path: takelogin.php + method: post + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + error: + - selector: div.error + - selector: pre.captcha + message: + text: The username may not exist or the password may not have been entered. + test: + path: / + selector: a[href="mybonus.php"] + +search: + # https://hdgalaktik.com/browse.php?search=&stype=0&s=0&cat=0&gr=0&kp=0&im=0&incldead=1&sort=0&type=desc + paths: + - path: browse.php + keywordsfilters: + - name: re_replace # S01E01 to [1 сезон 1 сери] + args: ["(?i)S0*(\\d+)E0*(\\d+)", "[$1 сезон $2 сери]"] + - name: re_replace # S01 to [1 сезон] + args: ["(?i)S0*(\\d+)", "[$1 сезон]"] + - name: re_replace # E01 to [1 сери] + args: ["(?i)E0*(\\d+)", "[$1 сери]"] + - name: re_replace # replace special characters with "%" (wildcard) + args: ["[^a-zA-Z0-9]+", "%"] + inputs: + $raw: "{{ range .Categories }}c{{.}}=1&{{end}}" + search: "{{ .Keywords }}" + # 0 title, 1 descr, 2 filename, 4 infohash + stype: 0 + # 0 AND 1 OR + s: 0 + # release group + gr: 0 + # ratings + kp: 0 + # 1 active, 2 dead, 3 gold, 4 sticky, lots of others + incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}" + sort: "{{ .Config.sort }}" + ascdesc: "{{ .Config.type }}" + + rows: + selector: table.embedded > tbody > tr.torcontduo + + fields: + category: + selector: a[href^="browse.php?cat="] + attribute: href + filters: + - name: querystring + args: cat + title: + selector: a.alink + attribute: title + filters: + # normalize to SXXEYY format + - name: re_replace + args: ["[\\.\\,\\:\\/\\|\\[\\]]", " "] + - name: re_replace + args: ["(.*) от .*$", "$1"] + - name: re_replace + args: ["(.*)(\\d+\\-\\d+)\\s*[CСcс]езон\\s*(\\d+\\-\\d+)\\s*[CСcс]ери[ия]\\s*из\\s*\\d+(.*)", "$1 S$2E$3 rus $4"] + - name: re_replace + args: ["(.*)(\\d+)\\-(\\d+)\\s*[CСcс]езон\\s*(\\d+)\\-(\\d+)\\s*[CСcс]ери[ия](.*)", "$1 S$2E$3 rus $4"] + - name: re_replace + args: ["(.*)(\\d+)\\s*[CСcс]езон\\s*(\\d+\\-\\d+)\\s*[CСcс]ери[ия]\\s*из\\s*\\d+(.*)", "$1 S$2E$3 rus $4"] + - name: re_replace + args: ["(.*)(\\d+)\\s*[CСcс]езон\\s*(\\d+\\-\\d+)\\s*[CСcс]ери[ия](.*)", "$1 S$2E$3 rus $4"] + - name: re_replace + args: ["(.*)(\\d+\\-\\d+)\\s*[CСcс]езон\\s*(.*)", "$1 S$2 rus $3"] + - name: re_replace + args: ["(.*)(\\d+)\\s*[CСcс]езон\\s*(.*)", "$1 S$2 rus $3"] + - name: re_replace + args: ["(.*)(\\d+\\-\\d+)\\s*[CСcс]ери[ия]\\s*из\\s*\\d+(.*)", "$1 E$2 rus $3"] + - name: re_replace + args: ["(.*)(\\d+)\\s*[CСcс]ери[ия]\\s*из\\s*\\d+(.*)", "$1 E$2 rus $3"] + - name: re_replace + args: ["(.*)(\\d+\\-\\d+)\\s*[CСcс]ери[ия](.*)", "$1 E$2 rus $3"] + - name: re_replace + args: ["(.*)(\\d+)\\s*[CСcс]ери[ия](.*)", "$1 E$2 rus $3"] + - name: re_replace + args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"] + - name: replace + args: ["WEBRip", "WEBDL"] + - name: replace + args: ["WEB-DL", "WEBDL"] + - name: replace + args: ["WEBDLRip", "WEBDL"] + - name: replace + args: ["HDTVRip", "HDTV"] + - name: replace + args: ["SATRip", "TV"] + details: + selector: a.alink + attribute: href + download: + selector: a.alink + attribute: href + filters: + - name: replace + args: ["details", "download"] + size: + selector: td:nth-child(4) + seeders: + selector: td:nth-child(6) + filters: + - name: split + args: ["|", 0] + leechers: + selector: td:nth-child(6) + filters: + - name: split + args: ["|", 0] + date: + # 1 day ago + selector: a[href^="browse.php?date="] + filters: + - name: timeago + downloadvolumefactor: + case: + img[src="/pic/freedownload.gif"]: 0 + "*": 1 + uploadvolumefactor: + text: 1 + minimumratio: + text: 1.0 +# engine n/a