diff --git a/main.py b/main.py
index 13818b4..dacd966 100755
--- a/main.py
+++ b/main.py
@@ -1,15 +1,11 @@
+import telebot # Telegram bot module
+from re import match, compile # ANALYS WORD
+from db import read_db, write_db # database functions
+database = read_db()
+bot = telebot.TeleBot(database['token'])
-import telebot
-import os
-import json
-from telebot import types, util
-#############TOKEN INIT#####
-from db import *
-db = read_db()
-bot = telebot.TeleBot(db['token'])
-########## ALANYS WORD #####
-from re import search, match, sub, compile
-def is_bad(word, bad, excepts):
+
+def is_bad(word, bad, excepts): # check bad words
# Replace spec.symbols
# Excepts
if word in excepts:
@@ -22,29 +18,22 @@ def is_bad(word, bad, excepts):
else:
return False
-### TRANSLIT an OTHER ######
-def rep(word):
- rep = [['e', 'е'], ['a', 'а'], ['i', 'и'], ['t', 'т'], ['y', 'у'], ['u', 'у'], ['o', 'о'], ['d', 'д'], ['x', 'х'],
- ['t', 'т'], ['p', 'п'], ['r', 'р'], ['h', 'х'], ['b', 'б'], ['n', 'н'],
- ['🇽', 'х'], ['🇾', 'у'], ['🇹', 'т'], ['🇪', 'е'], ['❌', 'х'], ['✖', 'х'], ['❎', 'х']]
- for i in rep:
- word = word.replace(i[0], i[1])
+
+def rep(word): # TRANSLIT an OTHER
+ symbols = [['e', 'е'], ['a', 'а'], ['i', 'и'], ['t', 'т'], ['y', 'у'], ['u', 'у'], ['o', 'о'], ['d', 'д'], ['x', 'х'],
+ ['t', 'т'], ['p', 'п'], ['r', 'р'], ['h', 'х'], ['b', 'б'], ['n', 'н'],
+ ['🇽', 'х'], ['🇾', 'у'], ['🇹', 'т'], ['🇪', 'е'], ['❌', 'х'], ['✖', 'х'], ['❎', 'х']]
+ for symbol in symbols:
+ word = word.replace(symbol[0], symbol[1])
return word
-####### SEND MESSAGE #######
-def send_message(user_id ,message):
- bot.send_message(user_id,
- message,
- parse_mode='HTML')
-####### CATCH BAD WORDS ####
-def catch(message):
+def catch(message): # CATCH BAD WORDS
bad_list = ['ху.+й', 'х.+уй', 'xуи', 'xyи', 'хyи', 'xyй', 'xуй', 'ху.', '.+хуе', '.+хуё', 'xyu', 'xui', 'хyй',
- 'поху', '.уй', 'ах.ен' , 'а.уе', '.+хуй', '.+хуй', 'хуя', '.+хуя',
- 'бл.+ть', 'бля', 'бл.+ть',
- '.+бл+.дь+', '.+бл.+дь',
- 'трах', 'еб.+ть', 'ебу', 'ебал', '..ебен', 'ёбан', 'ебть', 'eby', '..ебись', 'уеб', 'уёб', 'ебей', 'ебу', 'ебл', 'еба',
- '.+ебн.+т.+', '.+еб.ть', 'ебо', '.+ебо', '.+еба', '.+ёбы', 'еби.+', 'ёба.+', 'ебля', 'ебё.+', 'заеб', 'заеб.+', 'заёб',
+ 'поху', '.уй', 'ах.ен', 'а.уе', '.+хуй', '.+хуй', 'хуя', '.+хуя',
+ 'бл.+ть', 'бля', 'бл.+ть', '.+бл+.дь+', '.+бл.+дь',
+ 'трах', 'еб.+ть', 'ебу', 'ебал', '..ебен', 'ёбан', 'ебть', 'eby', '..ебись', 'уеб', 'уёб', 'ебей', 'ебу', 'ебл', 'еба',
+ '.+ебн.+т.+', '.+еб.ть', 'ебо', '.+ебо', '.+еба', '.+ёбы', 'еби.+', 'ёба.+', 'ебля', 'ебё.+', 'заеб', 'заеб.+', 'заёб',
'.+заеб', '.+заёб', 'заеб.+', 'заёб.+', 'ёбск', '.+ебуч.+',
'еб.+утые', 'е.+б.+утые', 'ебан', 'еб.+н', 'ебн', 'ёбн', '.+ёбка', '.+ебка',
'пр..ба', '.б.л', 'у.б', '.блан',
@@ -65,7 +54,7 @@ def catch(message):
if bad_found:
break
for bad in bad_list:
- if is_bad(check.lower(), bad, excepts) == True:
+ if is_bad(check.lower(), bad, excepts):
bad_found = True
break
if not bad_found:
@@ -76,57 +65,71 @@ def catch(message):
if bad_found:
break
for bad in bad_list:
- if is_bad(check.lower(), bad, excepts) == True:
+ if is_bad(check.lower(), bad, excepts):
bad_found = True
break
if bad_found:
- db = read_db()
+ database = read_db()
chat_id = str(message.chat.id)
user_id = str(message.from_user.id)
- username = str(message.from_user.username)
- if chat_id not in db:
- db[chat_id] = {}
- if user_id not in db[chat_id]:
- db[chat_id][user_id] = {}
- db[chat_id][user_id]["lunch"] = 0
- if username not in db[chat_id][user_id]:
- db[chat_id][user_id]["username"] = username
- if user_id in db[chat_id]:
- db[chat_id][user_id]["lunch"] += 1
- #bot.delete_message(message.chat.id, message.id)
-# bot.send_message(message.chat.id,
- # f'Пользователь [{telebot.util.user_link(message.from_user)}] использовал непечатное выражение.\n'\
- # f'Кол-во потерянных обедов пользователя: {db[chat_id][user_id]}',
- # parse_mode='HTML')
- write_db(db)
-
-@bot.message_handler(commands=['stats'])
+ if chat_id not in database:
+ database[chat_id] = {}
+ if user_id not in database[chat_id]:
+ database[chat_id][user_id] = {}
+ database[chat_id][user_id]["lunch"] = 0
+ if user_id in database[chat_id]:
+ database[chat_id][user_id]["lunch"] += 1
+ bot.send_message(message.chat.id,
+ f'Пользователь использовал непечатное выражение.\n'
+ f'Кол-во потерянных обедов: {database[chat_id][user_id]["lunch"]}',
+ parse_mode='HTML')
+ write_db(database)
+
+
+@bot.message_handler(commands=['stats']) # stats
def send_stats(message):
- db = read_db()
+ database = read_db()
chat_id = str(message.chat.id)
user_id = str(message.from_user.id)
- #if str(message.from_user.id)==db[str(message.chat.id)]:
- bot.send_message(chat_id, f"Количество потраченных обедов [{telebot.util.user_link(message.from_user)}]: {db[chat_id][user_id]['lunch']}{'😿' if db[chat_id][user_id]['lunch'] > 0 else '😻'}", parse_mode='HTML')
+ if user_id not in database[chat_id]:
+ database[chat_id] = {}
+ database[chat_id][user_id] = {}
+ database[chat_id][user_id]["lunch"] = 0
+ else:
+ lunch_count = database[chat_id][user_id]["lunch"]
+ if lunch_count > 0:
+ if lunch_count == 1: obed = "обеда"
+ else: obed = "обедов"
+ bot.send_message(chat_id, f'Вы убили {database[chat_id][user_id]["lunch"]} {obed}! Ужас...', parse_mode='HTML')
+ else:
+ bot.send_message(chat_id, f'Вы не убили ни одного обеда сегодня, поздравляю!', parse_mode='HTML')
+
@bot.message_handler()
def catch_all_messages(message):
catch(message)
+
@bot.edited_message_handler()
def catch_edited_messages(message):
catch(message)
-mod = 1
-if mod == 1:
- while True:
- try:
- bot.polling()
- except KeyboardInterrupt:
- exit()
- except:
- pass
-elif mod == 2:
- bot.polling()
-else:
- exit()
+def main():
+ mod = 1
+ if mod == 1:
+ while True:
+ try:
+ bot.polling()
+ except KeyboardInterrupt:
+ exit()
+ except:
+ pass
+ elif mod == 2:
+ bot.polling()
+ else:
+ exit()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..2d77c10
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+schedule==1.2.1
+telebot==0.0.5
diff --git a/send_message.py b/send_message.py
index 092c3a2..5e260c6 100644
--- a/send_message.py
+++ b/send_message.py
@@ -1,25 +1,38 @@
import schedule
-import time
+from time import sleep
import telebot
-from db import *
-db = read_db()
-bot = telebot.TeleBot(db['token'])
+from db import read_db, write_db
+token = read_db()["token"]
+bot = telebot.TeleBot(token)
def send_message():
- db = read_db()
- for i in db:
- if i != "token":
- text = 'Статистика обедов за 24 часа:\n'
- for j in db[i]:
- text += f'@{db[i][j]["username"]} - {db[i][j]["lunch"]} 😿\n'
- db[i][j]["lunch"] = 0
- write_db(db)
- bot.send_message(int(i), text, parse_mode='HTML')
+ database = read_db()
+ for chat_id in database:
+ text = 'Статистика обедов за 24 часа:\n'
+ if chat_id != "token":
+ for user_id in database[chat_id]:
+ lunch = database[chat_id][user_id]["lunch"]
+ if lunch > 0:
+ if lunch == 1: obed = "обеда"
+ else: obed = "обедов"
+ text += f'Пользователь убил {lunch} {obed}😿\n'
+ database[chat_id][user_id]["lunch"] = 0
+ else:
+ text += f'Пользователь молодец!\n'
+ write_db(database)
+ bot.send_message(int(chat_id), text, parse_mode='HTML')
-schedule.every().day.at("21:00","Europe/Moscow").do(send_message)
-while True:
- try:
- schedule.run_pending()
- time.sleep(1)
- except: ...
+
+def main():
+ schedule.every().day.at('21:00', 'Europe/Moscow').do(send_message)
+ while True:
+ try:
+ schedule.run_pending()
+ sleep(1)
+ except:
+ pass
+
+
+if __name__ == "__main__":
+ main()