---
id: hdtorrentsit
name: HDTorrents.it
description: "HDTorrents.it is an ITALIAN Private site for TV / MOVIES"
language: it-it
type: private
encoding: UTF-8
links:
  - https://hdtorrents.xyz/ # Italian IP address filtering
legacylinks:
  - http://hdtorrents.it/
  - http://hdtorrents.xyz/

caps:
  categorymappings:
    - {id: 2040, cat: Movies/HD}
    - {id: 5040, cat: TV/HD}
  modes:
    search: [q]
    tv-search: [q, season, ep]
    movie-search: [q]

settings:
  - name: username
    type: text
    label: Username
  - name: password
    type: password
    label: Password
  - name: ip_filtering
    type: info
    label: "IP Filtering"
    default: "HDtorrents allows only Italian IP addressess. The <b>404 Not Found</b> error means your IP was not accepted."

login:
  path: takelogin.php
  method: post
  inputs:
    username: "{{ .Config.username }}"
    password: "{{ .Config.password }}"
  error:
    - selector: div.error
    - selector: h1:contains("404 Not Found")
  test:
    path: browse.php

search:
  paths:
    - path: browse.php
      method: post
  keywordsfilters:
    - name: re_replace
      args: ["[^a-zA-Z0-9]+", "%"]
    - name: diacritics
      args: replace
    - name: re_replace # remove SXXEYY from research
      args: ["(?i)(S\\d{1,2}E\\d{1,2})", ""]
    - name: re_replace # remove SXX from research
      args: ["(?i)(S\\d{1,2})", ""]
  inputs:
    ajax: false
    search: "{{ .Keywords }}"
    incldead: 0

  rows:
    selector: tbody#highlighted tr

  fields:
    title:
      selector: td:nth-child(2) a:nth-child(1)
      filters:
        - name: re_replace # separate title
          args: ["(\\s+\\/\\s+|\\/\\s+|\\s+\\/|\\/)(.*)\\s\\(", " ("]
        - name: re_replace # remove (yyyy) from the title
          args: ["(\\(\\d{4}\\)?\\s?)", ""]
        - name: re_replace # remove |
          args: ["(\\s\\||\\s\\/)", ""]
        - name: re_replace # Stagione X --> S0X
          args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
        - name: re_replace # Stagione XX --> SXX
          args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
        - name: re_replace # / Episodio [YY-YY --> EYY-YY
          args: ["(?i)(\\s\\/?\\s?Episodi[o]?)\\s\\[", "E"]
        - name: re_replace # Episodio 4 to E4
          args: ["(?i)\\b(?:[\\s\\/\\|]?Episodi[o]?\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
        - name: re_replace # / Completa [episodi  YY-YY --> EYY-YY
          args: ["(?i)(\\s\\/\\sCompleta\\s\\[episodi\\s)", "E"]
        - name: re_replace # remove  di YY] | remove /YY]
          args: ["(?i)(\\sdi\\s\\d{1,2}|\\/\\d{1,2})\\]", " "]
        - name: re_replace # remove various
          args: ["(?i)(Serie completa|Completa|\\[in pausa\\])", ""]
    title|append: # start year
      text: " ("
    title|append: # add year
      selector: td:nth-child(2) a:nth-child(1)
      filters:
        - name: regexp # find torrent year
          args: (\d{4})
    title|append: # end year
      text: ") "
    title|append: # start quality TAG
      text: "["
    title|append: # quality TAG (BDRip 1080, BDRip 720p etc)
      selector: td:nth-child(1) a:nth-child(1) img
      attribute: alt
    title|append: # separator
      text: " - "
    title|append: # ita audio TAG
      selector: a[href^="download.php?id="]
      attribute: href
      filters:
        - name: querystring
          args: name
        - name: regexp
          args: (DTS AC3 ITA|DTS ITA|AC3 ITA)
        - name: re_replace
          args: ["ITA", ""]
    title|append: # end TAG
      text: "ITA]"
      filters:
        - name: re_replace # replace multiple spaces
          args: ["[ ]{2,}", " "]
    details:
      selector: td:nth-child(2) a:nth-child(1)
      attribute: href
    poster:
      selector: td:nth-child(2)[onmousemove]
      attribute: onmousemove
      filters:
        - name: regexp
          args: ".*\\(.*,.*,.*,'(.*?)'\\)"
    download:
      selector: a[href^="download.php?id="]
      attribute: href
    size:
      selector: td:nth-child(3)
    seeders:
      text: 1
    seeders:
      selector: td:nth-child(4)
      optional: true
      filters:
        - name: re_replace
          args: ["(\\d*) \\(\\+\\d*\\)\n? \\| (\\d*) \\(\\+\\d*\\)", "$1"]
    leechers:
      text: 1
    leechers:
      selector: td:nth-child(4)
      optional: true
      filters:
        - name: re_replace
          args: ["(\\d*) \\(\\+\\d*\\)\n? \\| (\\d*) \\(\\+\\d*\\)", "$2"]
    date:
      selector: td:nth-child(2) i
      filters:
        - name: append
          args: " +02:00" # EET
        - name: dateparse
          args: "2006-01-02 15:04:05 -07:00"
    category:
      case:
        "a[href^=\"details.php\"]:contains(\"Stagione\")": 5040 # TV/HD
        "*": 2040 # default to Movies/HD
    downloadvolumefactor:
      case:
        img[src="pic/freedownload.gif"]: 0
        "*": 1
    uploadvolumefactor:
      text: 1
# engine tbd
