--- id: kinozal name: Kinozal description: "Kinozal is a RUSSIAN Semi-Private Torrent Tracker for MOVIES / TV / MUSIC" language: ru-RU type: semi-private encoding: windows-1251 links: - http://kinozal.tv/ # site forces http, https is not supported - https://kinozal.guru/ - https://kinozal-guru.appspot.com/ legacylinks: - https://kinozal-tv.appspot.com/ caps: categorymappings: # TV - {id: 1001, cat: TV, desc: "All TV Shows"} - {id: 45, cat: TV, desc: "Russian TV Series"} - {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 Movies"} - {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/Anime, desc: "All Cartoons/Anime"} - {id: 21, cat: TV/Anime, desc: "Cartoons"} - {id: 22, cat: TV/Anime, desc: "Cartoons - Russian"} - {id: 20, cat: TV/Anime, 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: Console, 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] 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 Раздачи page in browser, and in the address bar you will see something like ?sid=abC1de2F. Those last 8 characters are your SID." - name: sid type: text label: SID - name: freeleech type: checkbox label: Search freeleech only default: false - name: striprussian type: checkbox label: Strip Russian 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 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: userdetails.php 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 # 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 }}" $raw: "{{ if .Config.sid }}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.striprussian }}$3{{ 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(".")) 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(".") optional: true filters: - name: replace args: [" в", ""] - name: append args: " +00:00" # auto adjusted by site account profile - name: dateparse args: "02.01.2006 15:04 -07:00" date: text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ 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