media-server-docker-compose/config/prowlarr/Definitions/torlock.yml
Braden Jageman fd77c332fb new stuff
2024-04-07 00:37:31 -04:00

178 lines
6.8 KiB
YAML

---
id: 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
requestDelay: 2
links:
- https://www.torlock.com/
- https://www.torlock2.com/
- https://torlock.unblockit.africa/
legacylinks:
- https://torlock.com/
- https://www.torlock.icu/
- https://torlock.nocensor.lol/
- https://torlock.unblockit.ink/
- https://torlock.unblockit.bio/
- https://torlock.unblockit.boo/
- https://torlock.mrunblock.guru/
- https://torlock.unblockit.click/
- https://torlock.unblockit.asia/
- https://torlock.mrunblock.life/
- https://torlock.unblockit.mov/
- https://torlock.unblockit.rsvp/
- https://torlock.nocensor.click/
- https://torlock.unblockit.vegas/
- https://torlock.unblockit.esq/
- https://torlock.unblockit.zip/
- https://torlock.unblockit.foo/
- https://torlock.unblockit.ing/
- https://torlock.nocensor.cloud/
- https://torlock.mrunblock.bond/
- https://torlock.unblockit.date/
- https://torlock.unblockit.dad/
caps:
# dont forget to update the search fields category case block
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]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site (only works for search with keywords)
default: added
options:
added: created
seeds: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
search:
paths:
- path: "/all/torrents/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}"
categories: ["!", TELEVISION, MOVIES, MUSIC, GAMES, SOFTWARE, ANIME, EBOOKS, OTHER, ADULT, AUDIOBOOK, IMAGES]
- path: "{{ if .Keywords }}/television/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/television/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [TELEVISION]
- path: "{{ if .Keywords }}/movie/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/movies/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [MOVIES]
- path: "{{ if .Keywords }}/music/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/music/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [MUSIC]
- path: "{{ if .Keywords }}/game/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/games/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [GAMES]
- path: "{{ if .Keywords }}/software/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/software/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [SOFTWARE]
- path: "{{ if .Keywords }}/anime/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/anime/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [ANIME]
- path: "{{ if .Keywords }}/ebook/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/ebooks/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [EBOOKS]
- path: "{{ if .Keywords }}/unknown/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/unknown.html{{end}}" # sorting is broken for unknown
categories: [OTHER]
- path: "{{ if .Keywords }}/adult/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/adult/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [ADULT]
- path: "{{ if .Keywords }}/audiobook/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/audiobook/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [AUDIOBOOK]
- path: "{{ if .Keywords }}/image/torrents/{{ .Keywords }}.html?sort={{ .Config.sort }}&order={{ .Config.type }}{{else}}/images/1/{{ .Config.sort }}/{{ .Config.type }}.html{{end}}"
categories: [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:
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.tv10: EBOOKS
span.tv12: AUDIOBOOK
"*": OTHER # some torrents have invalid categories
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_year:
selector: td:nth-child(2):contains("/")
optional: true
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "M/d/yyyy zzz"
date_day:
selector: td:nth-child(2):contains("Today"), td:nth-child(2):contains("Yesterday")
optional: true
filters:
- name: fuzzytime
date_ago:
selector: td:nth-child(2):not(:contains("Today")):not(:contains("Yesterday")):not(:contains("/"))
optional: true
filters:
- name: re_replace
args: ["(min|mins)", "minutes"]
- name: timeago
date:
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(3)
seeders:
selector: td:nth-child(4)
leechers:
selector: td:nth-child(5)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a