82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
|
#### Ловим ошибки ####
|
||
|
from catch_err import *
|
||
|
######### БД #########
|
||
|
from db import *
|
||
|
######################
|
||
|
|
||
|
# -> True/False
|
||
|
def is_auth(bot, message):
|
||
|
try:
|
||
|
db = load()
|
||
|
if str(message.chat.id) in db:
|
||
|
return True
|
||
|
else:
|
||
|
bot.reply_to(message,"Извините, но Вы не авторизованы.\n\n/reg ник")
|
||
|
return False
|
||
|
except:
|
||
|
catch_error(bot, message)
|
||
|
|
||
|
|
||
|
# Регулярные выражения
|
||
|
from re import sub, compile
|
||
|
# -> True/False
|
||
|
def nick_ok(bot, message, nick):
|
||
|
if len(nick) > 30:
|
||
|
bot.reply_to(message,"Слишком длинный ник, попробуйте короче.")
|
||
|
return False
|
||
|
if is_num(nick):
|
||
|
bot.reply_to(message,"Ник должен содержать хоть 1 букву, попробуйте ещё раз.")
|
||
|
return False
|
||
|
|
||
|
en = True
|
||
|
ru = True
|
||
|
# Если только английский
|
||
|
regex = compile('[^a-zA-Z0-9]')
|
||
|
check = regex.sub('', nick)
|
||
|
if check != nick:
|
||
|
en = False
|
||
|
# Если только русский
|
||
|
regex = compile('[^а-яА-ЯЁё0-9]')
|
||
|
check = regex.sub('', nick)
|
||
|
if check != nick:
|
||
|
ru = False
|
||
|
|
||
|
if en == False and ru == False:
|
||
|
bot.reply_to(message,"Нельзя смешивать алфавиты и ставить спец.-символы, попробуйте ещё раз")
|
||
|
return False
|
||
|
|
||
|
return True
|
||
|
|
||
|
|
||
|
# Проверяем совпадение ключей при отправке сообщений
|
||
|
# -> True/False
|
||
|
def key_valid(bot, message, channel):
|
||
|
try:
|
||
|
db = load()
|
||
|
our_nick = db[str(message.chat.id)]
|
||
|
user = db[our_nick]
|
||
|
# Добавляем ключ если его нету в нашей БД
|
||
|
if channel not in user.keys:
|
||
|
user.keys[channel] = db[channel].pkey
|
||
|
save(db)
|
||
|
return True
|
||
|
|
||
|
our_key = user.keys[channel]
|
||
|
dest_key = db[channel].pkey
|
||
|
|
||
|
if our_key == dest_key:
|
||
|
return True
|
||
|
else:
|
||
|
use.keys[channel] = dest_key
|
||
|
save(db)
|
||
|
|
||
|
bot.reply_to(message, f"""⚠️ Публичные ключи не совпадают ⚠️
|
||
|
Ожидаемый ключ: {telebot.formatting.hcode(our_key)}
|
||
|
|
||
|
Отправка сообщения отклонена.
|
||
|
Если вы уверены - повторите отправку.
|
||
|
""", parse_mode="HTML")
|
||
|
return False
|
||
|
except:
|
||
|
catch_error(bot, message)
|