forked from Muzifs/LGBot
Исправление с границами слов
Исправление команды карма с юзернеймом
This commit is contained in:
@@ -126,7 +126,7 @@ def normalize_text(text: str) -> str:
|
||||
Убирает:
|
||||
- Звездочки, точки, подчеркивания между буквами (х*й, х.у.й, х_у_й → хуй)
|
||||
- Повторяющиеся символы (хууууууй → хуй)
|
||||
- Пробелы между буквами (х у й → хуй)
|
||||
- ОДИНОЧНЫЕ пробелы между ОДИНОЧНЫМИ буквами (х у й → хуй, но "не бу" остаётся "не бу")
|
||||
|
||||
Args:
|
||||
text: Исходный текст
|
||||
@@ -140,9 +140,22 @@ def normalize_text(text: str) -> str:
|
||||
# Приводим к нижнему регистру
|
||||
normalized = text.lower()
|
||||
|
||||
# Убираем распространенные символы обфускации между буквами
|
||||
# Заменяем последовательности: буква + [*._ ]+ + буква на буква+буква
|
||||
normalized = re.sub(r'([а-яё])[\*\.\-_\s]+([а-яё])', r'\1\2', normalized)
|
||||
# Циклически убираем обфускацию, пока что-то меняется
|
||||
max_iterations = 10
|
||||
for _ in range(max_iterations):
|
||||
before = normalized
|
||||
|
||||
# Убираем звёздочки, точки, дефисы, подчёркивания между буквами
|
||||
# х*й, х.у.й, х_у_й → хуй
|
||||
normalized = re.sub(r'([а-яё])[\*\.\-_]+([а-яё])', r'\1\2', normalized)
|
||||
|
||||
# Убираем ОДИНОЧНЫЕ пробелы между ОДИНОЧНЫМИ буквами (обфускация)
|
||||
# "х у й" → "хуй", но "не бу" → "не бу" (не склеиваем обычные слова)
|
||||
# Паттерн: одиночная буква + пробелы + одиночная буква
|
||||
normalized = re.sub(r'\b([а-яё])\s+([а-яё])\b', r'\1\2', normalized)
|
||||
|
||||
if before == normalized:
|
||||
break
|
||||
|
||||
# Убираем повторяющиеся буквы (более 2 подряд)
|
||||
# хууууууй → хуй, пииииздец → пиздец
|
||||
|
@@ -52,6 +52,7 @@ def register_handlers(bot: AsyncTeleBot):
|
||||
user_data = db.get_user_by_username(username)
|
||||
if user_data:
|
||||
target_user_id = user_data[0]
|
||||
logger.info(f"[KARMA CMD] Найден пользователь по username '{username}': id={user_data[0]}, nickname={user_data[1]}, tag={user_data[2]}")
|
||||
target_user = type('User', (), {
|
||||
'id': user_data[0],
|
||||
'first_name': user_data[1],
|
||||
|
Reference in New Issue
Block a user