---
  site: torlock
  name: Torlock
  description: "Torlock is a torrent search site that lists verified torrents only for TV series and movies"
  language: en-us
  type: public
  encoding: UTF-8
  links:
    - https://www.torlock2.com/
  legacylinks:
    - https://www.torlock.com/

  caps:
    categorymappings:
      - {id: TELEVISION, cat: TV, desc: "TV Shows"}
      - {id: MOVIES, cat: Movies, desc: "Movies"}
      - {id: MUSIC, cat: Audio, desc: "Music"}
      - {id: GAMES, cat: PC/Games, desc: "Games"}
      - {id: SOFTWARE, cat: PC, desc: "Software"}
      - {id: ANIME, cat: TV/Anime, desc: "Anime"}
      - {id: EBOOKS, cat: Books/Ebook, desc: "Books"}
      - {id: OTHER, cat: Other, desc: "Other"}
      - {id: ADULT, cat: XXX, desc: "Adult"}
      - {id: AUDIOBOOK, cat: Audio/Audiobook, desc: "Audiobook"}
      - {id: IMAGES, cat: Other/Misc, desc: "Images"}
      
    modes:
      search: [q]
      tv-search: [q, season, ep]
  
  settings: []
  
  search:
    paths:
      - path: "{{if .Keywords}}/television/torrents/{{ .Keywords }}.html{{else}}/television/1/added/desc.html{{end}}"
        categorymappings: [TELEVISION]
      - path: "{{if .Keywords}}/movies/torrents/{{ .Keywords }}.html{{else}}/movies/1/added/desc.html{{end}}"
        categorymappings: [MOVIES]
      - path: "{{if .Keywords}}/music/torrents/{{ .Keywords }}.html{{else}}/music/1/added/desc.html{{end}}"
        categorymappings: [MUSIC]
      - path: "{{if .Keywords}}/games/torrents/{{ .Keywords }}.html{{else}}/games/1/added/desc.html{{end}}"
        categorymappings: [GAMES]
      - path: "{{if .Keywords}}/software/torrents/{{ .Keywords }}.html{{else}}/software/1/added/desc.html{{end}}"
        categorymappings: [SOFTWARE]
      - path: "{{if .Keywords}}/anime/torrents/{{ .Keywords }}.html{{else}}/anime/1/added/desc.html{{end}}"
        categorymappings: [ANIME]
      - path: "{{if .Keywords}}/ebooks/torrents/{{ .Keywords }}.html{{else}}/ebooks/1/added/desc.html{{end}}"
        categorymappings: [EBOOKS]
      - path: "{{if .Keywords}}/unknown/torrents/{{ .Keywords }}.html{{else}}/unknown.html{{end}}" # sorting is broken for unknown
        categorymappings: [OTHER]
      - path: "{{if .Keywords}}/adult/torrents/{{ .Keywords }}.html{{else}}/adult/1/added/desc.html{{end}}"
        categorymappings: [ADULT]
      - path: "{{if .Keywords}}/audiobooks/torrents/{{ .Keywords }}.html{{else}}/audiobooks/1/added/desc.html{{end}}"
        categorymappings: [AUDIOBOOK]
      - path: "{{if .Keywords}}/images/torrents/{{ .Keywords }}.html{{else}}/images/1/added/desc.html{{end}}"
        categorymappings: [IMAGES]
    keywordsfilters:
      - name: tolower
      - name: re_replace
        args: ["[^a-zA-Z0-9]+", "-"]
    rows:
      selector: table > tbody > tr:has(td:has(div:has(a[href^="/torrent/"])))
      filters:
        - name: andmatch
    fields:
      title:
        selector: td:nth-child(1) > div > a
      details:
        selector: td:nth-child(1) > div > a[href^="/torrent/"]
        attribute: href
      download:
        selector: td:nth-child(1) > div > a[href^="/torrent/"]
        attribute: href
        filters:
        - name: replace
          args: ["/torrent/", "/tor/"]
        - name: regexp
          args: (^/tor/\d*)
        - name: append
          args: ".torrent"
      date:
        selector: td:nth-child(2)
        filters: 
          - name: re_replace
            args: ["(day|hour|min)s?$", "$0s ago"] # add ago to relative dates (fresh torrents page)
      size:
        selector: td:nth-child(3)
      seeders:
        selector: td:nth-child(4)
      leechers:
        selector: td:nth-child(5)
      category:
        selector: span[class^="tv"]
        attribute: class
        case:
          span.tv0: OTHER
          span.tv1: MOVIES
          span.tv2: MUSIC
          span.tv3: TELEVISION
          span.tv4: GAMES
          span.tv5: SOFTWARE
          span.tv6: ANIME
          span.tv7: ADULT
          span.tv8: EBOOKS
          span.tv9: IMAGES
          span.tv12: AUDIOBOOK
          "*": "" # some torrents have invalid categories
      downloadvolumefactor:
        text: "1"
      uploadvolumefactor:
        text: "1"
