Merge pull request #10 from kotolex/master

SPAM FIX
This commit is contained in:
Rykov7
2023-12-28 15:12:51 +03:00
committed by GitHub
2 changed files with 57 additions and 15 deletions
+12 -12
View File
@@ -49,18 +49,18 @@ RULES = types.InlineKeyboardButton("🟡 Правила чата", url="https://
FAQ = types.InlineKeyboardButton("🔵 Частые вопросы", url="https://telegra.ph/faq-10-07-4")
LIB = types.InlineKeyboardButton("📚 Книги", url="https://telegra.ph/what-to-read-10-06")
SPAM = {"me.sv/", "tg.sv/", "goo.by/", "go.sv/", "intim.video/", "uclck.ru/", 'раб0т',
'0плат', 'Жду в ЛС', 'новый способ заработка', 'криптовалют', 'цифровых валют',
'Binance', 'ByBit', 'Помогу заработать', 'подробнее в лс', 'арбитраж', 'напиши в личку',
'DEX бирж', 'пишите в ЛС', 'Писать в ЛИЧКУ!', 'любую девушку', 'Пишите в личку',
'прибыль у вaс', 'обучaю быстро', 'в л.с.', 'вопросам в ЛС', 'Предлагаю новый вид заработка',
'пишите мне в ЛС', 'Писать в ЛС', 'межбиржев', 'КУПЮРЫ', '💎', 'kрипт', 'биpж', 'apбитpaж',
'в неделю выходит до', 'предложить заработок', 'голые фот', '🔞', 'интимные фот', '➡️',
'заработка в крипте', 'Веду набор', 'Идёт набор', 'мне в ЛС', 'Доход от', 'Trading',
'P2P', 'Идет набор', 'в лс', 'нaбop', 'комaндy', 'kpuпт', 'бupж', '💰', 'пишитe', '💸',
'$ в неделю', 'обучаю с нуля', 'доходы для всех', 'по трейдингу', 'фальшивые рубли', '‼️',
'зароботку', 'Набuраю', 'цuфр', 'Обучу вас', 'прuб', 'остались курсы', 'Crypt', 'kр', 'рu',
'в лc', "в личные сообще"}
SPAM = {"me.sv/", "tg.sv/", "goo.by/", "go.sv/", "intim.video/", "uclck.ru/",
'💎', '🔞', '➡️', '💰', '💸', '‼️',
'раб0т', '0плат', 'новый способ заработка', 'криптовалют', 'цифровых валют', 'Binance', 'ByBit',
'Помогу заработать', 'арбитраж', 'DEX бирж', 'любую девушку', 'прибыль у вaс', 'обучaю быстро',
'Предлагаю новый вид заработка', 'межбиржев', 'КУПЮРЫ', 'в неделю выходит до',
'предложить заработок', 'голые фот', 'интимные фот', 'заработка в крипте', 'Веду набор', 'Идёт набор',
'Доход от', 'Trading', 'P2P', 'Идет набор', '$ в неделю', 'обучаю с нуля', 'доходы для всех',
'по трейдингу', 'фальшивые рубли', 'зароботку', 'Обучу вас', 'остались курсы', 'Crypt',
'в лc', "в личные сообще", 'напиши в личку', 'Писать в ЛИЧКУ', 'Пишите в личку', 'в л.с.', 'в лс',
'Писать в личные', 'в личку', 'в личке', 'в личных сооб', 'пишите в личные', 'пишем в личные'
}
NON_GRATA = {"дудар", "хауди", "dudar"}
BAN_WORDS = {"GREEN"}
+45 -3
View File
@@ -4,11 +4,35 @@ from src.constants import SPAM, BAN_WORDS, ADMIN_ID, RULES_TEXT
from src.helpers import is_spam, is_mixed, is_ban_words_in_caption, is_in_not_allowed, is_nongrata, is_admin, \
fetch_rule, cleaned_text, remove_spaces, has_no_letters
CASES = (
REAL_CASES = (
"Оформим резидeнтствo ОАЭ без предoплаты за 5000 дирхам. Пoдробнoсти в лc",
"Всем привет Я в поисках людей в kpиптo кoмaнду У нас вы пройдете 6ecплaтноe обученue 1-3 дня Можно совмещать с основной paбoтoй",
"Здравствуйте! Нужны 2 человека от 200 $/день. Можно без опыта Пишите в личные сообщения +",
"Здравствуйте!Нужны 2 человека от 200 $/день.Пишите в личные сообщение +"
"Здравствуйте!Нужны 2 человека от 200 $/день.Пишите в личные сообщение +",
f"🙌Присоединяйтесь к нашей команде и освойте мир цифровой валюты совершенно бесплатно! Низкий порог входа "
f"позволяет каждому воплотить свои финансовые амбиции. У нас - не просто обучение, а возможность изменить свое "
f"финансовое будущее. Прокачайте свои навыки вместе с нами!Писать в личные✌️",
)
TEST_CASES = ('here it me.sv/122', "My site is tg.sv/home", "look here goo.by/home", "Go there go.sv/home",
"I am here intim.video/home", "Here ckick it uclck.ru/home", 'WOW💎', 'Attention 🔞', 'Look here ➡️',
'Money for you💰', 'Some cash💸', 'Real money‼️', 'Много раб0т', '0плата гарантируется',
'для вас новый способ заработка', 'в сфере криптовалют', 'в сфере цифровых валют', 'на бирже Binance',
'на бирже ByBit', 'Помогу заработать денег', 'арбитраж вам нужен', 'DEX биржи', 'любую девушку можно',
'прибыль у вaс в кармане', 'обучaю быстро и бесплатно', 'Предлагаю новый вид заработка',
'межбиржевой круг', 'КУПЮРЫ как настоящие', 'kрипта форева', 'биpжа ждет', 'apбитpaж валют',
'в неделю выходит до 100', 'хочу предложить заработок', 'голые фотки баб', 'интимные фото девчат',
'заработка в крипте много не бывает', 'Веду набор в команде', 'Идёт набор ко мне', 'Доход от 100',
'Trading это круто', 'P2P бойз', 'Идет набор куда то', 'нaбop номера', 'в комaндy', 'kpuпта есть',
'бupжы рулят', 'пишитe всем', 'ноль $ в неделю', 'обучаю с нуля и единицы', 'доходы для всех парней',
'по трейдингу пройдем', 'фальшивые рубли это зло', 'зароботку в нете', 'Набuраю номера', 'цuфры есть?',
'Обучу вас плясать', 'прuбором владею', 'остались курсы по шитью', 'Cryptограф', 'kристалл', 'рuсовать',
'в лc пиши', "в личные сообщения пиши", 'Жду в ЛС ребят', 'подробнее в лс напишу', 'напиши в личку друг',
'пишите в ЛС парни', 'Писать в ЛИЧКУ! ура!', 'Пишите в личку админу', 'в л.с. кпсс', 'по вопросам в ЛС',
'пишите мне в ЛС девчата', 'Писать в ЛС не нужно', 'мне в ЛС не пишите', 'в лс пишите', 'Писать в личные',
'пишем в личку', 'стучите в личку', 'жду в личке', 'жду в личных сообщениях', 'шлем в личные сообщения +',
'Пишем в личные', 'напишите в личные',
)
@@ -19,7 +43,12 @@ class TestSpam(TestCase):
self.assertTrue(is_spam(spam_word))
def test_case_first(self):
for text in CASES:
for text in REAL_CASES:
with self.subTest(f"check case({text})"):
self.assertTrue(is_spam(text))
def test_main_cases(self):
for text in TEST_CASES:
with self.subTest(f"check case({text})"):
self.assertTrue(is_spam(text))
@@ -44,6 +73,19 @@ class TestSpam(TestCase):
self.assertFalse(is_mixed('print("привет")'))
self.assertFalse(is_mixed("print('привет')"))
self.assertFalse(is_mixed("text='слово'"))
self.assertTrue(is_mixed("kрипт"))
self.assertTrue(is_mixed("kpuпт"))
self.assertTrue(is_mixed('бupж'))
self.assertTrue(is_mixed('пишитe'))
self.assertTrue(is_mixed('нaбop'))
self.assertTrue(is_mixed('комaндy'))
self.assertTrue(is_mixed('Набuраю'))
self.assertTrue(is_mixed('цuфр'))
self.assertTrue(is_mixed('прuб'))
self.assertTrue(is_mixed('kр'))
self.assertTrue(is_mixed('рu'))
self.assertTrue(is_mixed('apбитpaж'))
self.assertTrue(is_mixed('биpж'))
class TestOthers(TestCase):