---
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: 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>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
  - 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 <b>Torrents per page:</b> setting to <b>100</b> on your account profile.

login:
  method: cookie
  inputs:
    cookie: "{{ .Config.cookie }}"
  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: td:nth-child(1)
      optional: true
      filters:
        - name: replace
          args: ["---", 4]
    category|noappend:
      selector: a[href^="browse.php?cat="]
      attribute: href
      optional: true
      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"]
    imdbid:
      selector: a[href^="browse.php?imdb="]
      attribute: href
      filters:
        - name: querystring
          args: imdb
    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
