media-server-docker-compose/config/prowlarr/Definitions/kinozal-magnet.yml

317 lines
10 KiB
YAML
Raw Normal View History

2024-04-07 00:37:31 -04:00
---
id: kinozal-magnet
name: Kinozal (M)
description: "Kinozal is a RUSSIAN Semi-Private Torrent Tracker for MOVIES / TV / MUSIC. This indexer uses magnet links."
language: ru-RU
type: semi-private
encoding: windows-1251
links:
- https://kinozal.tv/
- https://kinozal.guru/
- https://kinozal-guru.appspot.com/
legacylinks:
- https://kinozal-tv.appspot.com/
- http://kinozal.tv/
caps:
categorymappings:
# TV
- {id: 1001, cat: TV, desc: "All TV Shows"}
- {id: 45, cat: TV, desc: "TV Series - Russian"}
- {id: 46, cat: TV, desc: "TV Series"}
# Movies
- {id: 1002, cat: Movies, desc: "All Movies"}
- {id: 8, cat: Movies, desc: "Movies - Comedy"}
- {id: 6, cat: Movies, desc: "Movies - Action / War"}
- {id: 15, cat: Movies, desc: "Movies - Thriller / Detective"}
- {id: 17, cat: Movies, desc: "Movies - Drama"}
- {id: 35, cat: Movies, desc: "Movies - Melodrama"}
- {id: 39, cat: Movies, desc: "Movies - Indian"}
- {id: 13, cat: Movies, desc: "Movies - Science Fiction"}
- {id: 14, cat: Movies, desc: "Movies - Fantasy"}
- {id: 24, cat: Movies, desc: "Movies - Horror / Mystery"}
- {id: 11, cat: Movies, desc: "Movies - Adventure"}
- {id: 10, cat: Movies, desc: "Movies - Russian"}
- {id: 9, cat: Movies, desc: "Movies - Historical"}
- {id: 47, cat: Movies, desc: "Movies - Asian"}
- {id: 18, cat: Movies, desc: "Movies - Documentaries"}
- {id: 37, cat: Movies, desc: "Movies - Sport"}
- {id: 12, cat: Movies, desc: "Movies - Kids / Family"}
- {id: 7, cat: Movies, desc: "Movies - Classic"}
- {id: 48, cat: Movies, desc: "Movies - Concerts"}
- {id: 49, cat: Movies, desc: "Movies - Shows / TV Shows"}
- {id: 50, cat: Movies, desc: "Movies - TV Show Mir"}
- {id: 38, cat: Movies, desc: "Movies - Theatre, Opera, Ballet"}
- {id: 16, cat: Movies, desc: "Movies - Erotica"}
# Cartoons
- {id: 1003, cat: TV, desc: "All Cartoons"}
- {id: 1003, cat: Movies, desc: "All Cartoons"}
- {id: 21, cat: TV, desc: "Cartoons"}
- {id: 21, cat: Movies, desc: "Cartoons"}
- {id: 22, cat: TV, desc: "Cartoons - Russian"}
- {id: 22, cat: Movies, desc: "Cartoons - Russian"}
- {id: 20, cat: TV/Anime, desc: "Cartoons - Anime"}
- {id: 20, cat: Movies/Other, desc: "Cartoons - Anime"}
# Music
- {id: 1004, cat: Audio, desc: "All Music"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 4, cat: Audio, desc: "Music - Russian"}
- {id: 5, cat: Audio, desc: "Music - Collections"}
- {id: 42, cat: Audio, desc: "Music - Classical"}
# Other
- {id: 1006, cat: TV/Other, desc: "Shows, Concerts, Sports"}
- {id: 2, cat: Audio/Audiobook, desc: "Other - AudioBooks"}
- {id: 1, cat: Audio/Video, desc: "Other - Music Video's"}
- {id: 23, cat: PC/Games, desc: "Other - Games"}
- {id: 32, cat: PC, desc: "Other - Programs"}
- {id: 40, cat: Other, desc: "Other - Design / Graphics"}
- {id: 41, cat: Books, desc: "Other - Library"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
allowrawsearch: true
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: info_sid
type: info
label: How to get your SID
default: "This is only needed when using *.appspot.com mirrors, otherwise just leave blank. Access the tracker's <i>Раздачи</i> page in browser, and in the address bar you will see something like <b>?sid=abC1de2F</b>. Those last 8 characters are your SID."
- name: sid
type: text
label: SID
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
default: true
- name: addrussian
type: checkbox
label: Add RUSSIAN to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: true
- name: sort
type: select
label: Sort requested from site
default: 0
options:
0: created
1: seeders
3: size
- name: type
type: select
label: Order requested from site
default: 0
options:
0: desc
1: asc
- name: info_magnets
type: info
label: Magnets
default: "This tracker limits the number of torrents a user can download each day without paying. This indexer uses <b>magnet links</b> to bypass that limit, however this doesn't include the passkey, so any download/upload is not recorded. To download with torrents, use <b>Kinozal</b>."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: div.bx1:has(div.red)
message:
selector: div.bx1 div.red
test:
path: my.php
selector: a[href*="logout.php?hash4u="]
download:
before:
path: get_srv_details.php
inputs:
action: 2
id: "{{ .DownloadUri.Query.id }}"
infohash:
usebeforeresponse: true
hash:
selector: li:first-child
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
title:
selector: div.b
filters:
- name: trim
- name: validfilename
search:
paths:
# http://kinozal.tv/browse.php?s=lucifer+2017&g=0&c=0&v=0&d=0&w=0&t=0&f=0
- path: browse.php
# required for the appspot domain.
followredirect: true
keywordsfilters:
# - name: diacritics # 8686
# args: replace
- name: re_replace
args: ["[^a-zA-Zа-яА-ЯёЁ0-9]+", " "]
- name: re_replace # S01 to 1
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
- name: re_replace # S01E01 to 1 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
inputs:
# multi cat is not supported. so defaulting to ALL
c: 0
s: "{{ .Keywords }}"
# where 0 title, 1 person, 2 genres, 3 regular expression
g: 0
# format 0 all
v: 0
# released 0 all
d: 0
# filter 0 all, 1 today, 2 yesterday, 3 in 3 days, 4 this week, 5 per month, 6-10 size rages, 11 gold, 12 silver
w: "{{ if .Config.freeleech }}11{{ else }}0{{ end }}"
t: "{{ .Config.sort }}"
f: "{{ .Config.type }}"
sid: "{{ if .Config.sid }}{{ .Config.sid }}{{ else }}{{ end }}"
rows:
selector: table > tbody > tr:has(td.bt)
fields:
title:
selector: td.nam a[href^="/details.php?"]
filters:
# normalize to SXXEYY format
- name: replace
args: ["Кураж-Бамбей", "kurazh"]
- name: replace
args: ["Кубик в Кубе", "Kubik"]
- name: replace
args: ["Кравец", "Kravec"]
- name: replace
args: ["Пифагор", "Pifagor"]
- name: replace
args: ["Невафильм", "Nevafilm"]
- name: replace
args: ["АП", "AVO"]
- name: replace
args: ["ЛО", "VO"]
- name: replace
args: ["ЛД", "DVO"]
- name: replace
args: ["ЛМ", "MVO"]
- name: replace
args: ["ПО", "VO"]
- name: replace
args: ["ПД", "DVO"]
- name: replace
args: ["ПМ", "MVO"]
- name: replace
args: ["ДБ", "DUB"]
- name: replace
args: ["СТ", "Sub"]
- name: re_replace
args: ["\\((\\d+-*\\d*)\\s+[Сс]езоны?:?\\s+(?:(\\d+-*\\d*)\\s+(?:[Сс]ери[ийя]|выпуски?(?:ов)?)(?:.*\\d+)?)?\\)(.*)\\s+((?:[12][0-9]{3}-?){1,})(.*)", "$3 - S$1E$2 - $4 $5"]
- name: re_replace
args: ["\\((?:(\\d+-*\\d*)\\s+(?:[Сс]ери[ийя]|выпуски?(?:ов)?)(?:.*\\d+)?)?\\)(.*)\\s+((?:[12][0-9]{3}-?){1,})(.*)", "$2 - E$1 - $3 $4"]
- name: re_replace
args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ ((?:[12][0-9]{3}-?){1,}))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.stripcyrillic }}{{ else }}$0{{ end }}"]
- name: replace
args: [" / ", " "]
- name: re_replace
args: ["^-\\s+", " "]
- name: re_replace
args: ["\\((\\d+[pi])\\)", "$1"]
- name: re_replace
args: ["(.*)(Blu-Ray\\s*(?:Disc|EUR|CEE)?)\\s*(\\d+[pi])", "$1 BR-DISK $3"]
- name: append
args: "{{ if .Config.addrussian }} - RUSSIAN{{ else }}{{ end }}"
- name: replace
args: ["-Rip", "Rip"]
- name: replace
args: ["WEB-DL", "WEBDL"]
- name: replace
args: ["WEBDLRip", "WEBDL"]
- name: replace
args: ["HDTVRip", "HDTV"]
details:
selector: td.nam a[href^="/details.php?"]
attribute: href
category:
selector: td.bt img
attribute: onclick
filters:
- name: re_replace
args: ["[^\\d+]", ""]
download:
selector: td.nam a[href^="/details.php?"]
attribute: href
filters:
- name: replace
args: ["details", "download"]
size:
selector: td:nth-child(4)
filters:
- name: replace
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
args: ["МБ", "MB"]
- name: replace
args: ["КБ", "KB"]
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
# dates come in four flavours:
date_day:
# now
# Today 09:10
# Yesterday 13:04
selector: td:nth-child(7):not(:contains("."))
# auto adjusted by site account profile
optional: true
filters:
- name: replace
args: [" в", ""]
- name: replace
args: ["сейчас", "now"]
- name: replace
args: ["сегодня", "Today"]
- name: replace
args: ["вчера", "Yesterday"]
date_year:
# 24.10.2017 at 23:44
selector: td:nth-child(7):contains(".")
# auto adjusted by site account profile
optional: true
filters:
- name: replace
args: [" в", ""]
- name: dateparse
args: "dd.MM.yyyy HH:mm"
date:
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
downloadvolumefactor:
case:
a.r1: 0 # gold
a.r2: 0.5 # silver
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# engine n/a