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

211 lines
8.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: rutor
name: RuTor
description: "RuTor is a RUSSIAN Public site for MOVIES / TV / GENERAL"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://rutor.info/
- https://rutor.is/
legacylinks:
- https://rutor.uk-unblock.xyz/
- https://rutor.ind-unblock.xyz/
- https://rutor.unblocked.bar/
- https://rutor.proxyportal.pw/
- https://rutor.uk-unblock.pro/
- https://rutor.root.yt/
- https://rutor.unblocked.rest/
- https://rutor.unblocked.monster/
- https://rutor.nocensor.space/
- https://rutor.nocensor.work/
- http://6tor.org/
- https://rutor.nocensor.world/
- https://rutor.nocensor.lol/
- https://rutor.nocensor.art/
- https://rutor.mrunblock.guru/
- https://rutor.mrunblock.life/
- https://rutor.nocensor.click/
- https://rutor.mrunblock.bond/ # for magnet only
- https://rutor.nocensor.cloud/
- http://new-rutor.org/ # Oops. Something went wrong, try reloading the page
- http://rutor.info/
- http://rutor.is/
caps:
# unfortunately RuTor does not display categories anywhere in its search results page :-(
# albeit you can select a single category in its search options
# so I've opted not to support categories
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Other, desc: "Other"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
settings:
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
default: false
- name: addrussiantotitle
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- name: info
type: info
label: A note about RuTor
default: RuTor does not display categories in its search results page. This definition is probably only suitable for Prowlarr Dashboard Manual searches.
- name: sort
type: select
label: Sort requested from site (Applies only to Search with Keywords)
default: 0
options:
0: "created desc"
1: "created asc"
2: "seeders desc"
3: "seeders asc"
6: "size desc"
7: "size asc"
8: "title desc"
9: "title asc"
search:
paths:
# http://rutor.info/search/0/0/010/0/tt10288566 # search title and descr for imdb
# http://rutor.info/search/0/0/100/0/gotham%2004x01 # search title for query
# http://rutor.info/ # search keywordless
- path: "{{ if .Query.IMDBID }}search/0/0/010/{{ .Config.sort }}/{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Keywords }}search/0/0/100/{{ .Config.sort }}/{{ .Keywords }}/{{ else }}{{ end }}{{ if or .Keywords .Query.IMDBID }}{{ else }}/{{ end }}"
rows:
selector: tr:has(td:has(a[href^="magnet:?xt="]))
fields:
category:
text: 3
title:
selector: td:nth-of-type(2) a[href^="/torrent/"]
filters:
# normalize to SXXEYY format
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ери[ияй]|Эпизод|Выпуски?)[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?)\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?)\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(\\d+(?:-\\d+)?)[хx](\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ери[ияй]|Эпизод|Выпуски?)[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "S$1"]
- name: re_replace
args: ["(?i)(?:[CС]ери[ияй]|Эпизод|Выпуски?)[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ери[ияй]|Эпизод|Выпуски?)\\s+из\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(?:[CС]ери[ияй]|Эпизод|Выпуски?)[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ери[ияй]|Эпизод|Выпуски?)", "E$1"]
- name: re_replace
args: ["(?i)\\bFiles-х\\b", "Files-x"]
- name: re_replace
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
- name: re_replace
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
- name: re_replace
args: ["(?i)\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
- name: re_replace
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
- name: re_replace
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
- name: re_replace
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
- name: re_replace
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
- name: re_replace
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
- name: re_replace
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
- name: re_replace
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
- name: append
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
details:
selector: td:nth-of-type(2) a[href^="/torrent/"]
attribute: href
magnet:
selector: td:nth-of-type(2) a[href^="magnet:?xt="]
attribute: href
date:
# 27 Окт 17
selector: td:nth-of-type(1)
filters:
# replace white spaces
- name: re_replace
args: ["[\\s]+", " "]
# replace month abbreviations
- name: replace
args: ["Янв", "Jan"]
- name: replace
args: ["Фев", "Feb"]
- name: replace
args: ["Мар", "Mar"]
- name: replace
args: ["Апр", "Apr"]
- name: replace
args: ["Май", "May"]
- name: replace
args: ["Июн", "Jun"]
- name: replace
args: ["Июл", "Jul"]
- name: replace
args: ["Авг", "Aug"]
- name: replace
args: ["Сен", "Sep"]
- name: replace
args: ["Окт", "Oct"]
- name: replace
args: ["Ноя", "Nov"]
- name: replace
args: ["Дек", "Dec"]
- name: append
args: " 00:00:00 +03:00" # MSK
- name: dateparse
args: "dd MMM yy HH:mm:ss zzz"
# some results don't have comments which throws off td count. So we go fishing for the following fields
size:
optional: true
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
seeders:
selector: td span.green
leechers:
selector: td span.red
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
selector: td:nth-of-type(2) a[href^="/torrent/"]
# engine n/a