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

317 lines
10 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: 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