BUGFIX: fix is_mixed
- после сработки на русские кавычки - поменял логику, тепрь она такая: ЕСЛИ хоть одна буква русская И при этом есть хоть 1 английская буква -то смешение
This commit is contained in:
+1
-1
@@ -38,7 +38,7 @@ ALLOWED_WORDS = [
|
|||||||
|
|
||||||
RUS = """ёйцукенгшщзхъфывапролджэячсмитьбю.Ё!"№;%:?ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,"""
|
RUS = """ёйцукенгшщзхъфывапролджэячсмитьбю.Ё!"№;%:?ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,"""
|
||||||
ONLY_RUS_LETTERS = "ёйцукенгшщзхъфывапролджэячсмитьбю"
|
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<>?"""
|
ENG = """`qwertyuiop[]asdfghjkl;'zxcvbnm,./~!@#$%^&QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?"""
|
||||||
RUS_ENG_TABLE = str.maketrans(RUS, ENG)
|
RUS_ENG_TABLE = str.maketrans(RUS, ENG)
|
||||||
ENG_RUS_TABLE = str.maketrans(ENG, RUS)
|
ENG_RUS_TABLE = str.maketrans(ENG, RUS)
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ from urllib.request import urlopen
|
|||||||
|
|
||||||
from telebot import types
|
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:
|
def is_url_reachable(url: str) -> bool:
|
||||||
@@ -32,7 +32,7 @@ def is_mixed(text: str) -> bool:
|
|||||||
"""
|
"""
|
||||||
for word in text.split():
|
for word in text.split():
|
||||||
word = word.strip().lower()
|
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 True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,16 @@ class TestSpam(TestCase):
|
|||||||
self.assertFalse(is_mixed("привет ребята!"))
|
self.assertFalse(is_mixed("привет ребята!"))
|
||||||
self.assertFalse(is_mixed("hi guys"))
|
self.assertFalse(is_mixed("hi guys"))
|
||||||
self.assertFalse(is_mixed("hi guys! #%^&%^$ @Вася привет g! п@"))
|
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"))
|
self.assertTrue(is_mixed("hi guys! #%^&%^$ ghb привет g! пQ"))
|
||||||
|
text = """
|
||||||
|
В целом очень интересный чат, где 4 человека
|
||||||
|
считают себя выше мира всего и нападают/насмехаются на всех/над всеми, кто что-то "недо".
|
||||||
|
Один из которых вообще выдаёт какие-то фразы через бота) интересно, потому что сам не может сказать, или потому что раздвоение личности дело такое)
|
||||||
|
«Я пуп земли», – твердит гордец надменно,
|
||||||
|
Забыв, что он – песчинка во вселенной."""
|
||||||
|
self.assertFalse(is_mixed(text))
|
||||||
|
|
||||||
|
|
||||||
class TestOthers(TestCase):
|
class TestOthers(TestCase):
|
||||||
|
|||||||
Reference in New Issue
Block a user