Files
PrimoGuardBot/configs/mapping.py

164 lines
9.6 KiB
Python
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.
"""
Словари для нормализации текста и замены символов
"""
from typing import Dict
# Словарь замены латинских букв на кириллические (для обхода фильтров)
LATIN_TO_CYRILLIC: Dict[str, str] = {
'a': 'а', 'A': 'А',
'b': 'б', 'B': 'В',
'c': 'с', 'C': 'С',
'e': 'е', 'E': 'Е',
'h': 'н', 'H': 'Н',
'k': 'к', 'K': 'К',
'm': 'м', 'M': 'М',
'o': 'о', 'O': 'О',
'p': 'р', 'P': 'Р',
't': 'т', 'T': 'Т',
'x': 'х', 'X': 'Х',
'y': 'у', 'Y': 'У'
}
# Словарь замены похожих кириллических букв (украинские, белорусские и т.д.)
CYRILLIC_NORMALIZE: Dict[str, str] = {
'ґ': 'г', 'Ґ': 'Г', # украинское Ґ
'є': 'е', 'Є': 'Е', # украинское Є
'і': 'и', 'І': 'И', # украинское І
'ї': 'и', 'Ї': 'И', # украинское Ї
'ў': 'у', 'Ў': 'У', # белорусское Ў
'ѐ': 'е', 'Ѐ': 'Е', # кириллица с грависом
'ё': 'е', 'Ё': 'Е', # ё -> е для упрощения
}
# Большой словарь Unicode-символов -> кириллица/латиница
UNICODE_MAP: Dict[str, str] = {
# === ЛАТИНСКИЕ БУКВЫ -> КИРИЛЛИЦА ===
'a': 'а', 'A': 'А', 'b': 'б', 'B': 'В', 'c': 'с', 'C': 'С',
'd': 'д', 'D': 'Д', 'e': 'е', 'E': 'Е', 'f': 'ф', 'F': 'Ф',
'g': 'г', 'G': 'Г', 'h': 'н', 'H': 'Н', 'i': 'и', 'I': 'И',
'j': 'ж', 'J': 'Ж', 'k': 'к', 'K': 'К', 'l': 'л', 'L': 'Л',
'm': 'м', 'M': 'М', 'n': 'н', 'N': 'Н', 'o': 'о', 'O': 'О',
'p': 'р', 'P': 'Р', 'q': 'к', 'Q': 'К', 'r': 'р', 'R': 'Р',
's': 'с', 'S': 'С', 't': 'т', 'T': 'Т', 'u': 'у', 'U': 'У',
'v': 'в', 'V': 'В', 'w': 'ш', 'W': 'Ш', 'x': 'х', 'X': 'Х',
'y': 'у', 'Y': 'У', 'z': 'з', 'Z': 'З',
# === SMALL CAPS ===
'': 'а', 'ʙ': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'ɢ': 'г', 'ʜ': 'н', 'ɪ': 'и', '': 'ж', '': 'к', 'ʟ': 'л',
'': 'м', 'ɴ': 'н', '': 'о', '': 'р', '': 'к', 'ʀ': 'р',
'': 's', '': 'т', '': 'у', '': 'в', '': 'ш', 'ʏ': 'у', '': 'з',
'': 'г', '': 'л', 'ʍ': 'м', '': 'п', '': 'р', 'ɸ': 'ф', 'ɯ': 'ш',
# === ГРЕЧЕСКИЕ ===
'α': 'а', 'Α': 'А', 'β': 'б', 'Β': 'В', 'γ': 'г', 'Γ': 'Г',
'δ': 'д', 'Δ': 'Д', 'ε': 'е', 'Ε': 'Е', 'ζ': 'з', 'Ζ': 'З',
'η': 'н', 'Η': 'Н', 'θ': 'т', 'Θ': 'Т', 'ι': 'и', 'Ι': 'И',
'κ': 'к', 'Κ': 'К', 'λ': 'л', 'Λ': 'Л', 'μ': 'м', 'Μ': 'М',
'ν': 'н', 'Ν': 'Н', 'ξ': 'кс', 'Ξ': 'КС', 'ο': 'о', 'Ο': 'О',
'π': 'п', 'Π': 'П', 'ρ': 'р', 'Ρ': 'Р', 'σ': 'с', 'Σ': 'С',
'τ': 'т', 'Τ': 'Т', 'υ': 'у', 'Υ': 'У', 'φ': 'ф', 'Φ': 'Ф',
'χ': 'х', 'Χ': 'Х', 'ψ': 'пс', 'Ψ': 'ПС', 'ω': 'о', 'Ω': 'О',
'ύ': 'у', 'ϱ': 'р', 'ς': 'с', 'ϲ': 'с', 'ϕ': 'ф', 'ϰ': 'к',
'ϻ': 'м', 'ϸ': 'ш', 'ϙ': 'к', 'ϝ': 'в', '϶': 'э', 'ʐ': 'з',
'ʒ': 'ж', 'ʂ': 'ш', 'ʈ': 'т', 'ɳ': 'н', 'ɭ': 'л', 'ƙ': 'к',
'ɼ': 'р', 'ʠ': 'к', 'ɩ': 'и', 'ʝ': 'ж', 'ɦ': 'х', 'ɠ': 'г',
'ɗ': 'д', 'ɓ': 'б', 'ɞ': 'е', 'ƒ': 'ф', 'ɧ': 'х', 'ʑ': 'з',
'ɱ': 'м', 'ƴ': 'у', 'ʌ': 'л', 'ƿ': 'р', 'ɾ': 'р', 'ɟ': 'ж',
'ɥ': 'х', 'ɰ': 'м', 'ѕ': 'с', 'ѡ': 'ш',
# === КОПТСКИЕ ===
'': 'а', '': 'А', '': 'б', '': 'Б', '': 'в', '': 'В',
'': 'г', '': 'Г', '': 'д', '': 'Д', '': 'е', '': 'Е',
'': 'ж', '': 'Ж', '': 'з', '': 'З', '': 'к', '': 'К',
'': 'л', '': 'Л', '': 'м', '': 'М', '': 'н', '': 'Н',
'': 'о', '': 'О', '': 'п', '': 'П', '': 'р', '': 'Р',
'': 'с', '': 'С', '': 'т', '': 'Т', '': 'у', '': 'У',
'': 'ф', '': 'Ф', '': 'х', '': 'Х', '': 'ч', '': 'Ч',
'': 'ш', '': 'Ш', '': 'щ', '': 'Щ', '': 'ж', '': 'Ж',
'': 'г', '': 'Г', '': 'л', '': 'Л', '': 'с', '': 'С',
'': 'в', '': 'В', '': 'з', '': 'З', '': 'и', '': 'И',
'': 'н', '': 'Н', '': 'у', '': 'у',
# === КИРИЛЛИЧЕСКИЕ СТИЛИЗОВАННЫЕ ===
'ѧ': 'а', 'ѣ': 'е', 'ґ': 'г', 'Ґ': 'Г', 'є': 'е', 'Є': 'Е',
'ѫ': 'о', 'Ѫ': 'О', 'ӡ': 'з', 'Ӡ': 'З', 'џ': 'дж', 'Џ': 'ДЖ',
'ӣ': 'и', 'Ӣ': 'И', 'ѳ': 'ф', 'Ѳ': 'Ф', '': 'н', 'ҁ': 'ч',
'ѻ': 'о', 'Ѻ': 'О', 'ҵ': 'ц', 'Ҵ': 'Ц', 'ӌ': 'ч', 'Ӌ': 'Ч',
'ѱ': 'пс', 'Ѱ': 'ПС', 'ƀ': 'б', 'ѥ': 'е', 'Ѥ': 'Е',
'': 'я', 'і': 'и', 'І': 'И', 'ї': 'и', 'Ї': 'И',
'ў': 'у', 'Ў': 'У', 'ӷ': 'г', 'Ӷ': 'Г', 'ӄ': 'к', 'Ӄ': 'К',
'ҁ': 'ч', 'Ҁ': 'Ч', 'ӽ': 'х', 'Ӽ': 'Х', 'ҕ': 'г', 'Ҕ': 'Г',
'ѵ': 'в', 'Ѵ': 'В', 'ʯ': 'ч', 'ɜ': 'з',
# === TAI THAM ===
'': 'а', '': 'е', '': 'и', '': 'й', '': 'л', '': 'н',
'': 'о', '': 'п', '': 'с', '': 'х', '': 'в', '': 'ш',
'': 'з', '': 'з', '': 'л', '': 'а', '': 'б', '': 'в',
'': 'д', '': 'е', '': 'и', '': 'й', '': 'о', '': 'п',
'': 'с', '': 'ч', '': 'л', '': 'д', '': 'х', '': 'ж',
'': 'х', '': 'в', '': 'з', '': 'я', '': 'м',
# === СТАРЫЕ ИТАЛИЙСКИЕ ===
'𐌀': 'А', '𐌁': 'В', '𐌂': 'С', '𐌄': 'Е', '𐌅': 'Ф', '𐌉': 'И',
'𐌊': 'К', '𐌋': 'Ж', '𐌑': 'М', '𐌏': 'О', '𐌐': 'Г', '𐌛': 'Р',
'𐌕': 'Т', '𐌖': 'В', '𐌗': 'Х', '𐌟': 'Ж', '𐌍': 'Й', '𐍔': 'У',
'𐌔': 'З', '𐌒': 'К', '𐌓': 'Я', '𐍃': 'С', '𐌴': 'Э', '𐍂': 'Р',
'𐌜': 'Ь', '𐌆': 'Ж', '𐍆': 'Ф', '𐌺': 'К', '𐌡': 'Л', '𐌌': 'М',
'𐌻': 'л', '𐌼': 'м', '𐌽': 'н', '𐌸': 'щ', '𐍅': 'у', '𐍉': 'я',
'𐌵': 'у', '𐋏': 'н', '𐠨': 'в',
# === ДЕВАНАГАРИ И ПРОЧИЕ ===
'𑀐': 'г', '𑀥': 'д', '𑀝': 'с', '𑀡': 'ж', '𑀗': 'с', '𑀱': 'т',
'𑀉': 'л', '𑀌': 'х', '𑀨': 'ь', '': 'б', '': 'з', '': 'щ',
'': 'р', '': 'т', '': 'ж', '': 'о', 'ʆ': 'ж', 'ʠ': 'к',
'': 'к', '': 'е', '': 'е', '': 'ж', '': 'з', '': 'и',
'': 'х', '': 'к', '': 'м', '': 'м', '': 'н', '': 'о',
'': 'к', '': 'р', '': 'с', '': 'т', '': 'у', '': 'ф',
'': 'х', '': 'ч', '': 'ш', '': 'щ', '': 'ы', '': 'ь',
'': 'э', '': 'ю', '': 'я', '': 'а', '': 'б', '': 'в',
'': 'г', '': 'ф', '': 'г', '': 'ж', '': 'ж', '': 'л',
'': 'к', '': 'р', '': 'с', '': 'д', '': 'м', '': 'ж',
'': 'к', '': 'ш', '': 'у', 'ս': 'у', 'Ա': 'ч', 'Կ': 'ч',
'': 'Г', '': 'Б', '': 'К', '': 'Л', '': 'М', '': 'Н',
'': 'О', '': 'Р', '': 'С', '': 'Т', '': 'У', '': 'Ф',
'': 'Ч', '': 'Ш', '': 'Щ', '': 'А', '': 'Д', '': 'Е',
'': 'Ф', '': 'Г', '': 'И', '': 'Ж', '': 'Л', '': 'Р',
'': 'С', '': 'У', '': 'В', '': 'Ш', '': 'З', '': 'Г',
'': 'К', '': 'Х', '': 'В', '': 'Г', 'ᏏᏓ': 'Ы', '': 'Ь',
'ᎰᏫ': 'Ю', '': 'З', '': 'Р', '': 'Б', '': 'Д', '': 'Ж',
# === FULLWIDTH ===
'': 'а', '': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'': 'г', '': 'н', '': 'и', '': 'ж', '': 'к', '': 'л',
'': 'м', '': 'н', '': 'о', '': 'р', '': 'к', '': 'р',
'': 'с', '': 'т', '': 'у', '': 'в', '': 'ш', '': 'х',
'': 'у', '': 'з',
# === МАТЕМАТИЧЕСКИЕ ===
'𝐚': 'а', '𝐛': 'б', '𝐜': 'с', '𝐝': 'д', '𝐞': 'е', '𝐟': 'ф',
'𝐠': 'г', '𝐡': 'н', '𝐢': 'и', '𝐣': 'ж', '𝐤': 'к', '𝐥': 'л',
'𝐦': 'м', '𝐧': 'н', '𝐨': 'о', '𝐩': 'р', '𝐪': 'к', '𝐫': 'р',
'𝐬': 'с', '𝐭': 'т', '𝐮': 'у', '𝐯': 'в', '𝐰': 'ш', '𝐱': 'х',
'𝐲': 'у', '𝐳': 'з',
# === CIRCLED ===
'': 'а', '': 'б', '': 'с', '': 'д', '': 'е', '': 'ф',
'': 'г', '': 'н', '': 'и', '': 'ж', '': 'к', '': 'л',
'': 'м', '': 'н', '': 'о', '': 'р', '': 'к', '': 'р',
'': 'с', '': 'т', '': 'у', '': 'в', '': 'ш', '': 'х',
'': 'у', '': 'з',
# === GUJARATI/DEVANAGARI ===
'': 'у', '': 'р', '': 'о', '': 'к', '': 'с', '': 'ч',
'': 'к', '𑀋': 'х', '': 'я', '': 'ы', '': 'з', 'چ': 'б',
'': 'ю', '': 'ь', '': 'а', '': 'к', '': 'р', '': 'с',
'': 'д', '': 'ф', 'ϻ': 'м', '': 'ж', '': 'п', '': 'х',
'Ͷ': 'М', 'Ͳ': 'Т', 'Ϸ': 'Р', 'Ϥ': 'Ч', 'Ͽ': 'Э', 'Ϳ': 'Ж',
'Ɗ': 'Д', 'Ɠ': 'Г', 'Ɍ': 'Р', 'Ʋ': 'У', 'Ɲ': 'Н', 'Ϙ': 'К',
'ϒ': 'У', 'ζ': 'з', 'Ŵ': 'Ш', '': 'Ы', '': 'х',
# === ЦИФРЫ КАК БУКВЫ ===
'0': 'о', '1': 'и', '3': 'з', '4': 'ч', '5': 'с', '7': 'т', '8': 'в',
}