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