--- 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"