From 2957edbeb01f7ecb4e55c29c7162e12564a3fffc Mon Sep 17 00:00:00 2001 From: kotolex Date: Sun, 24 Dec 2023 20:55:17 +0500 Subject: [PATCH] BUGFIX: fix is_mixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - после сработки на русские кавычки - поменял логику, тепрь она такая: ЕСЛИ хоть одна буква русская И при этом есть хоть 1 английская буква -то смешение --- src/constants.py | 2 +- src/helpers.py | 4 ++-- tests/test_helpers.py | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/constants.py b/src/constants.py index 3d71bc2..3b37e23 100644 --- a/src/constants.py +++ b/src/constants.py @@ -38,7 +38,7 @@ ALLOWED_WORDS = [ RUS = """ёйцукенгшщзхъфывапролджэячсмитьбю.Ё!"№;%:?ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,""" ONLY_RUS_LETTERS = "ёйцукенгшщзхъфывапролджэячсмитьбю" -RUS_LETTERS_AND_PUNCTUATION = ONLY_RUS_LETTERS + string.punctuation +ONLY_ENG_LETTERS = string.ascii_lowercase ENG = """`qwertyuiop[]asdfghjkl;'zxcvbnm,./~!@#$%^&QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?""" RUS_ENG_TABLE = str.maketrans(RUS, ENG) ENG_RUS_TABLE = str.maketrans(ENG, RUS) diff --git a/src/helpers.py b/src/helpers.py index 7c7f4e7..5c652cd 100644 --- a/src/helpers.py +++ b/src/helpers.py @@ -6,7 +6,7 @@ from urllib.request import urlopen from telebot import types -from .constants import SPAM, BAN_WORDS, NON_GRATA, ADMIN_ID, ONLY_RUS_LETTERS, RUS_LETTERS_AND_PUNCTUATION, RULES_TEXT +from .constants import SPAM, BAN_WORDS, NON_GRATA, ADMIN_ID, ONLY_RUS_LETTERS, ONLY_ENG_LETTERS, RULES_TEXT def is_url_reachable(url: str) -> bool: @@ -32,7 +32,7 @@ def is_mixed(text: str) -> bool: """ for word in text.split(): word = word.strip().lower() - if any(e in ONLY_RUS_LETTERS for e in word) and not all(e in RUS_LETTERS_AND_PUNCTUATION for e in word): + if any(e in ONLY_RUS_LETTERS for e in word) and any(e in ONLY_ENG_LETTERS for e in word): return True return False diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 80da6e1..286dae8 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -28,8 +28,16 @@ class TestSpam(TestCase): self.assertFalse(is_mixed("привет ребята!")) self.assertFalse(is_mixed("hi guys")) self.assertFalse(is_mixed("hi guys! #%^&%^$ @Вася привет g! п@")) - self.assertFalse(is_mixed("тут подробнее https://hack.comp.com")) + self.assertFalse(is_mixed("hi guys! #%^&%^$ @Вася привет g! п@")) + self.assertFalse(is_mixed("тут *подробнее* https://hack.comp.com")) self.assertTrue(is_mixed("hi guys! #%^&%^$ ghb привет g! пQ")) + text = """ + В целом очень интересный чат, где 4 человека + считают себя выше мира всего и нападают/насмехаются на всех/над всеми, кто что-то "недо". +Один из которых вообще выдаёт какие-то фразы через бота) интересно, потому что сам не может сказать, или потому что раздвоение личности дело такое) +«Я пуп земли», – твердит гордец надменно, +Забыв, что он – песчинка во вселенной.""" + self.assertFalse(is_mixed(text)) class TestOthers(TestCase):