main
wadehusky 7 months ago
parent eb35470954
commit ef6149fee4

@ -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 def is_bad(word, bad, excepts): # check bad words
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):
# Replace spec.symbols # Replace spec.symbols
# Excepts # Excepts
if word in excepts: if word in excepts:
@ -22,27 +18,20 @@ def is_bad(word, bad, excepts):
else: else:
return False return False
### TRANSLIT an OTHER ######
def rep(word): def rep(word): # TRANSLIT an OTHER
rep = [['e', 'е'], ['a', 'а'], ['i', 'и'], ['t', 'т'], ['y', 'у'], ['u', 'у'], ['o', 'о'], ['d', 'д'], ['x', 'х'], symbols = [['e', 'е'], ['a', 'а'], ['i', 'и'], ['t', 'т'], ['y', 'у'], ['u', 'у'], ['o', 'о'], ['d', 'д'], ['x', 'х'],
['t', 'т'], ['p', 'п'], ['r', 'р'], ['h', 'х'], ['b', 'б'], ['n', 'н'], ['t', 'т'], ['p', 'п'], ['r', 'р'], ['h', 'х'], ['b', 'б'], ['n', 'н'],
['🇽', 'х'], ['🇾', 'у'], ['🇹', 'т'], ['🇪', 'е'], ['', 'х'], ['', 'х'], ['', 'х']] ['🇽', 'х'], ['🇾', 'у'], ['🇹', 'т'], ['🇪', 'е'], ['', 'х'], ['', 'х'], ['', 'х']]
for i in rep: for symbol in symbols:
word = word.replace(i[0], i[1]) word = word.replace(symbol[0], symbol[1])
return word 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и', 'х', 'xyй', 'xуй', 'ху.', '.+хуе', '.+хуё', 'xyu', 'xui', 'х', bad_list = ['ху.+й', 'х.+уй', 'xуи', 'xyи', 'х', 'xyй', 'xуй', 'ху.', '.+хуе', '.+хуё', 'xyu', 'xui', 'х',
'поху', '.уй', 'ах.ен' , 'а.уе', '.+хуй', '.+хуй', 'хуя', '.+хуя', 'поху', '.уй', 'ах.ен', 'а.уе', '.+хуй', '.+хуй', 'хуя', '.+хуя',
'бл.+ть', 'бля', 'бл.+ть', 'бл.+ть', 'бля', 'бл.+ть', '.+бл+.дь+', '.+бл.+дь',
'.+бл+.дь+', '.+бл.+дь',
'трах', 'еб.+ть', 'ебу', 'ебал', '..ебен', 'ёбан', 'ебть', 'eby', '..ебись', 'уеб', 'уёб', 'ебей', 'ебу', 'ебл', 'еба', 'трах', 'еб.+ть', 'ебу', 'ебал', '..ебен', 'ёбан', 'ебть', 'eby', '..ебись', 'уеб', 'уёб', 'ебей', 'ебу', 'ебл', 'еба',
'.+ебн.+т.+', '.+еб.ть', 'ебо', '.+ебо', '.+еба', '.+ёбы', 'еби.+', 'ёба.+', 'ебля', 'ебё.+', 'заеб', 'заеб.+', 'заёб', '.+ебн.+т.+', '.+еб.ть', 'ебо', '.+ебо', '.+еба', '.+ёбы', 'еби.+', 'ёба.+', 'ебля', 'ебё.+', 'заеб', 'заеб.+', 'заёб',
'.+заеб', '.+заёб', 'заеб.+', 'заёб.+', 'ёбск', '.+ебуч.+', '.+заеб', '.+заёб', 'заеб.+', 'заёб.+', 'ёбск', '.+ебуч.+',
@ -65,7 +54,7 @@ def catch(message):
if bad_found: if bad_found:
break break
for bad in bad_list: for bad in bad_list:
if is_bad(check.lower(), bad, excepts) == True: if is_bad(check.lower(), bad, excepts):
bad_found = True bad_found = True
break break
if not bad_found: if not bad_found:
@ -76,48 +65,59 @@ def catch(message):
if bad_found: if bad_found:
break break
for bad in bad_list: for bad in bad_list:
if is_bad(check.lower(), bad, excepts) == True: if is_bad(check.lower(), bad, excepts):
bad_found = True bad_found = True
break break
if bad_found: if bad_found:
db = read_db() database = read_db()
chat_id = str(message.chat.id) chat_id = str(message.chat.id)
user_id = str(message.from_user.id) user_id = str(message.from_user.id)
username = str(message.from_user.username) if chat_id not in database:
if chat_id not in db: database[chat_id] = {}
db[chat_id] = {} if user_id not in database[chat_id]:
if user_id not in db[chat_id]: database[chat_id][user_id] = {}
db[chat_id][user_id] = {} database[chat_id][user_id]["lunch"] = 0
db[chat_id][user_id]["lunch"] = 0 if user_id in database[chat_id]:
if username not in db[chat_id][user_id]: database[chat_id][user_id]["lunch"] += 1
db[chat_id][user_id]["username"] = username bot.send_message(message.chat.id,
if user_id in db[chat_id]: f'<a href="tg://user?id={user_id}">Пользователь</a> использовал непечатное выражение.\n'
db[chat_id][user_id]["lunch"] += 1 f'Кол-во потерянных обедов: {database[chat_id][user_id]["lunch"]}',
#bot.delete_message(message.chat.id, message.id) parse_mode='HTML')
# bot.send_message(message.chat.id, write_db(database)
# f'Пользователь [{telebot.util.user_link(message.from_user)}] использовал непечатное выражение.\n'\
# f'Кол-во потерянных обедов пользователя: {db[chat_id][user_id]}',
# parse_mode='HTML') @bot.message_handler(commands=['stats']) # stats
write_db(db)
@bot.message_handler(commands=['stats'])
def send_stats(message): def send_stats(message):
db = read_db() database = read_db()
chat_id = str(message.chat.id) chat_id = str(message.chat.id)
user_id = str(message.from_user.id) user_id = str(message.from_user.id)
#if str(message.from_user.id)==db[str(message.chat.id)]: if user_id not in database[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') 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'<a href="tg://user?id={user_id}">Вы</a> убили {database[chat_id][user_id]["lunch"]} {obed}! Ужас...', parse_mode='HTML')
else:
bot.send_message(chat_id, f'<a href="tg://user?id={user_id}">Вы</a> не убили ни одного обеда сегодня, поздравляю!', parse_mode='HTML')
@bot.message_handler() @bot.message_handler()
def catch_all_messages(message): def catch_all_messages(message):
catch(message) catch(message)
@bot.edited_message_handler() @bot.edited_message_handler()
def catch_edited_messages(message): def catch_edited_messages(message):
catch(message) catch(message)
mod = 1
if mod == 1: def main():
mod = 1
if mod == 1:
while True: while True:
try: try:
bot.polling() bot.polling()
@ -125,8 +125,11 @@ if mod == 1:
exit() exit()
except: except:
pass pass
elif mod == 2: elif mod == 2:
bot.polling() bot.polling()
else: else:
exit() exit()
if __name__ == "__main__":
main()

@ -0,0 +1,2 @@
schedule==1.2.1
telebot==0.0.5

@ -1,25 +1,38 @@
import schedule import schedule
import time from time import sleep
import telebot import telebot
from db import * from db import read_db, write_db
db = read_db() token = read_db()["token"]
bot = telebot.TeleBot(db['token']) bot = telebot.TeleBot(token)
def send_message(): def send_message():
db = read_db() database = read_db()
for i in db: for chat_id in database:
if i != "token":
text = 'Статистика обедов за 24 часа:\n' text = 'Статистика обедов за 24 часа:\n'
for j in db[i]: if chat_id != "token":
text += f'@{db[i][j]["username"]} - {db[i][j]["lunch"]} 😿\n' for user_id in database[chat_id]:
db[i][j]["lunch"] = 0 lunch = database[chat_id][user_id]["lunch"]
write_db(db) if lunch > 0:
bot.send_message(int(i), text, parse_mode='HTML') if lunch == 1: obed = "обеда"
else: obed = "обедов"
text += f'<a href="tg://user?id={user_id}">Пользователь</a> убил {lunch} {obed}😿\n'
database[chat_id][user_id]["lunch"] = 0
else:
text += f'<a href="tg://user?id={user_id}">Пользователь</a> молодец!\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: def main():
schedule.every().day.at('21:00', 'Europe/Moscow').do(send_message)
while True:
try: try:
schedule.run_pending() schedule.run_pending()
time.sleep(1) sleep(1)
except: ... except:
pass
if __name__ == "__main__":
main()

Loading…
Cancel
Save