This commit is contained in:
KatykhinAA
2024-07-13 12:42:21 +03:00
parent f2dd9f4b42
commit 24ac638433
6 changed files with 103 additions and 86 deletions

View File

@@ -9,10 +9,10 @@ db_logger = Logger(name='db')
# Получение абсолютного пути к текущей директории
current_dir = os.getcwd()
class BotDB:
def __init__(self):
self.db_file = os.path.join(current_dir, 'database/tg-bot-database')
class BotDB:
def __init__(self, name):
self.db_file = os.path.join(current_dir, name)
self.conn = None
self.cursor = None
self.logger = db_logger.get_logger()
@@ -545,7 +545,8 @@ class BotDB:
Raises:
sqlite3.Error: Если произошла ошибка при выполнении запроса.
"""
self.logger.info(f"Запуск функции add_new_message_in_db: user_id={user_id}, message_id={message_id}, date={date}")
self.logger.info(
f"Запуск функции add_new_message_in_db: user_id={user_id}, message_id={message_id}, date={date}")
try:
self.connect()
self.cursor.execute(

View File

View File

@@ -44,11 +44,13 @@ class TelegramHelperBot:
# Router for user
@self.bot.message_handler(func=lambda message: True, chat_types=['private'])
def handle_message(message):
self.logger.info(f'Получено сообщение: {message.text} от пользователя: {message.from_user.full_name} id юзера: {message.chat.id}')
self.logger.info(
f'Получено сообщение: {message.text} от пользователя: {message.from_user.full_name} id юзера: {message.chat.id}')
if self.BotDB.check_user_in_blacklist(message.from_user.id):
attribute = self.BotDB.get_blacklist_users_by_id(message.from_user.id)
self.bot.send_message(message.chat.id,
f'<b>Ты заблокирован\nПричина блокировки:</b> {attribute[2]}\n<b>Дата разблокировки:</b> {attribute[3]}', parse_mode='HTML')
f'<b>Ты заблокирован\nПричина блокировки:</b> {attribute[2]}\n<b>Дата разблокировки:</b> {attribute[3]}',
parse_mode='HTML')
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) заблокирован')
return
if self.state == State.START:
@@ -73,10 +75,12 @@ class TelegramHelperBot:
if access:
self.admin_panel(message)
self.state = State.ADMIN
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вошел в админ-панель')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вошел в админ-панель')
else:
self.bot.send_message(message.chat.id, 'Доступ запрещен, досвидания!')
self.logger.info(f'Пользователю {message.from_user.full_name} (ID: {message.chat.id}) отказано в доступе к админ-панели')
self.logger.info(
f'Пользователю {message.from_user.full_name} (ID: {message.chat.id}) отказано в доступе к админ-панели')
elif message.text == '/state':
self.bot.send_message(message.chat.id,
f'Твой state == {self.state.value}')
@@ -84,7 +88,8 @@ class TelegramHelperBot:
self.bot.send_message(message.chat.id,
#TODO: Здесь раньше был /state
"Не понимаю где ты находишься. Нажми /start, и я перезапущусь")
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) отправил непонятное сообщение: {message.text}')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) отправил непонятное сообщение: {message.text}')
if self.state == State.SUGGEST:
self.bot.register_next_step_handler(message, self.suggest_router)
@@ -92,24 +97,28 @@ class TelegramHelperBot:
if message.text == '/start':
self.state = State.START
self.start_message(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
if self.state == State.PRE_CHAT:
self.bot.register_next_step_handler(message, self.resend_message_in_group_for_message)
self.state = State.START
if message.text == '/start':
self.state = State.START
self.start_message(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
if self.state == State.CHAT:
if message.text == 'Выйти из чата':
self.state = State.START
self.end_message(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вышел из чата')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вышел из чата')
elif message.text == '/start':
self.state = State.START
self.start_message(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
else:
self.resend_message_in_group_for_message(message)
@@ -118,19 +127,23 @@ class TelegramHelperBot:
access = self.check_access(message.from_user.id)
if access:
self.admin_panel(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вошел в админ-панель')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вошел в админ-панель')
else:
self.bot.send_message(message.chat.id, 'Доступ запрещен, досвидания!')
self.logger.info(f'Пользователю {message.from_user.full_name} (ID: {message.chat.id}) отказано в доступе к админ-панели')
self.logger.info(
f'Пользователю {message.from_user.full_name} (ID: {message.chat.id}) отказано в доступе к админ-панели')
if message.text == '/start':
self.state = State.START
self.start_message(message)
self.logger.info(f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
self.logger.info(
f'Пользователь {message.from_user.full_name} (ID: {message.chat.id}) вернулся в главное меню')
@self.bot.message_handler(func=lambda message: True, chat_types=['group'])
def handle_message(message):
"""Функция ответа админа пользователю через закрытый чат"""
self.logger.info(f'Получено сообщение в группе {message.chat.title} (ID: {message.chat.id}) от пользователя {message.from_user.full_name} (ID: {message.from_user.id}): "{message.text}"')
self.logger.info(
f'Получено сообщение в группе {message.chat.title} (ID: {message.chat.id}) от пользователя {message.from_user.full_name} (ID: {message.from_user.id}): "{message.text}"')
self.state = State.CHAT
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
item1 = types.KeyboardButton("Выйти из чата")
@@ -140,7 +153,8 @@ class TelegramHelperBot:
message_id = message.reply_to_message.id
except AttributeError:
self.bot.send_message(message.chat.id, f'Блять, выдели сообщение!')
self.logger.warning(f'В группе {message.chat.title} (ID: {message.chat.id}) админ не выделил сообщение для ответа.')
self.logger.warning(
f'В группе {message.chat.title} (ID: {message.chat.id}) админ не выделил сообщение для ответа.')
message_from_admin = message.text
try:
chat_id = self.BotDB.get_user_by_message_id(message_id)
@@ -148,12 +162,14 @@ class TelegramHelperBot:
self.logger.info(f'Ответ админа "{message.text}" отправлен пользователю с ID: {chat_id}.')
except TypeError:
self.bot.send_message(message.chat.id, f'Не могу найти кому ответить в базе, проебали сообщение.')
self.logger.error(f'Ошибка при поиске пользователя в базе для ответа: {message.text} в группе {message.chat.title} (ID: {message.chat.id})')
self.logger.error(
f'Ошибка при поиске пользователя в базе для ответа: {message.text} в группе {message.chat.title} (ID: {message.chat.id})')
# Админка
@self.bot.callback_query_handler(func=lambda call: call.data in ['publish', 'decline'])
def post_for_group(call):
self.logger.info(f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
self.logger.info(
f'Получен callback-запрос с данными: {call.data} от пользователя {call.from_user.full_name} (ID: {call.from_user.id})')
if call.data == 'publish' and call.message.content_type == 'text':
try:
self.bot.send_message(chat_id=self.MAIN_PUBLIC, text=call.message.text)
@@ -181,7 +197,8 @@ class TelegramHelperBot:
elif call.data == 'decline':
try:
self.bot.delete_message(chat_id=self.GROUP_FOR_POST, message_id=call.message.message_id)
self.logger.info(f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
self.logger.info(
f'Сообщение отклонено админом {call.from_user.full_name} (ID: {call.from_user.id}).')
except Exception as e:
if self.LOGS:
self.bot.send_message(self.IMPORTANT_LOGS,
@@ -230,9 +247,11 @@ class TelegramHelperBot:
def start(self):
while True:
try:
print(self.bot.last_update_id)
self.bot.polling(none_stop=True)
except ConnectionError as e:
self.logger.error(f"Произошла ошибка (потеря коннекта): {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
self.logger.error(
f"Произошла ошибка (потеря коннекта): {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
except Exception as e:
self.logger.error(f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
@@ -286,7 +305,8 @@ class TelegramHelperBot:
self.admin_panel(message)
def ban_user(self, message, user_id: int):
self.logger.info(f"Получена команда от админа на бан пользователя: {message.text} (пользователь: {message.from_user.id})")
self.logger.info(
f"Получена команда от админа на бан пользователя: {message.text} (пользователь: {message.from_user.id})")
user_name = self.BotDB.get_username(user_id=user_id)
ban_object = {'user_id': user_id, 'user_name': user_name, 'message_for_user': None, 'date_to_unban': None}
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
@@ -348,14 +368,16 @@ class TelegramHelperBot:
self.admin_panel(message)
def get_last_users(self, message):
self.logger.info(f"Попытка получения списка последних пользователей. Текст сообщения: {message.text} Имя автора сообщения: {message.from_user.full_name})")
self.logger.info(
f"Попытка получения списка последних пользователей. Текст сообщения: {message.text} Имя автора сообщения: {message.from_user.full_name})")
list_users = self.BotDB.get_last_users_from_db()
keyboard = self.create_keyboard_with_pagination(1, len(list_users), list_users, 'ban')
self.bot.send_message(chat_id=message.chat.id, text="Список пользователей которые последними обращались к боту",
reply_markup=keyboard)
def get_banned_users(self, message):
self.logger.info(f"Попытка получения списка заблокированных пользователей. Текст сообщения: {message.text} Имя автора сообщения: {message.from_user.full_name})")
self.logger.info(
f"Попытка получения списка заблокированных пользователей. Текст сообщения: {message.text} Имя автора сообщения: {message.from_user.full_name})")
message_text = self.get_banned_users_list(0)
buttons_list = self.get_banned_users_buttons()
if buttons_list:
@@ -367,7 +389,8 @@ class TelegramHelperBot:
def start_message(self, message):
try:
self.logger.info(f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name})")
self.logger.info(
f"Формирование приветственного сообщения для пользователя. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name})")
name_stick_hello = list(Path('Stick').rglob('Hello_*'))
random_stick_hello = open(random.choice(name_stick_hello), 'rb')
self.logger.info(f"Стикер успешно получен из БД")
@@ -385,7 +408,8 @@ class TelegramHelperBot:
f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
try:
self.logger.info(f"Получение данных для приветственного сообщения пользователю. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name})")
self.logger.info(
f"Получение данных для приветственного сообщения пользователю. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name})")
user_id = message.from_user.id
first_name = message.from_user.first_name
full_name = message.from_user.full_name
@@ -403,13 +427,15 @@ class TelegramHelperBot:
self.bot.send_message(message.chat.id, hello_message, parse_mode='html', reply_markup=markup,
disable_web_page_preview=not self.PREVIEW_LINK)
except Exception as e:
self.logger.error(f"Произошла ошибка при отправке приветственного сообщения для пользователя {message.from_user.id} Имя: {message.from_user.full_name}. Ошибка: {str(e)}")
self.logger.error(
f"Произошла ошибка при отправке приветственного сообщения для пользователя {message.from_user.id} Имя: {message.from_user.full_name}. Ошибка: {str(e)}")
if self.LOGS:
self.bot.send_message(self.IMPORTANT_LOGS,
f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
def resend_message_in_group_for_message(self, message):
self.logger.info(f"Попытка пересылки сообщения в связь с админами. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name} Идентификатор сообщения: {message.id})")
self.logger.info(
f"Попытка пересылки сообщения в связь с админами. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name} Идентификатор сообщения: {message.id})")
self.bot.forward_message(chat_id=self.GROUP_FOR_MESSAGE,
from_chat_id=message.chat.id,
message_id=message.message_id
@@ -419,12 +445,14 @@ class TelegramHelperBot:
self.BotDB.add_new_message_in_db(message.text, message.from_user.id, message.message_id + 1, date)
question = messages.get_message(self.__get_first_name(message), 'QUESTION')
markup = self.get_reply_keyboard(message)
self.bot.send_message(message.chat.id, question, parse_mode='html', disable_web_page_preview=not self.PREVIEW_LINK,
self.bot.send_message(message.chat.id, question, parse_mode='html',
disable_web_page_preview=not self.PREVIEW_LINK,
reply_markup=markup)
def suggest_post(self, message):
try:
self.logger.info(f"Вызов функции suggest_post. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name} Идентификатор сообщения: {message.id})")
self.logger.info(
f"Вызов функции suggest_post. Сообщение: {message.text} Имя автора сообщения: {message.from_user.full_name} Идентификатор сообщения: {message.id})")
markup = types.ReplyKeyboardRemove()
suggest_news = messages.get_message(self.__get_first_name(message), 'SUGGEST_NEWS')
self.bot.send_message(message.chat.id, suggest_news, parse_mode='html')
@@ -436,7 +464,8 @@ class TelegramHelperBot:
f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
def stickers(self, message):
self.logger.info(f"Вызов функции stickers. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.info(
f"Вызов функции stickers. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.BotDB.update_info_about_stickers(user_id=message.from_user.id)
markup = self.get_reply_keyboard(message)
try:
@@ -449,10 +478,12 @@ class TelegramHelperBot:
except ApiTelegramException as e:
self.bot.send_message(chat_id=self.IMPORTANT_LOGS,
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
self.logger.error(f"Ошибка функции stickers. Ошибка: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.error(
f"Ошибка функции stickers. Ошибка: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
def connect_with_admin(self, message):
self.logger.info(f"Вызов функции connect_with_admin. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.info(
f"Вызов функции connect_with_admin. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
connect_with_admin = messages.get_message(self.__get_first_name(message), 'CONNECT_WITH_ADMIN')
self.bot.send_message(message.chat.id, connect_with_admin, parse_mode="html")
# logging
@@ -463,12 +494,14 @@ class TelegramHelperBot:
def end_message(self, message):
try:
self.logger.info(f"Вызов функции end_message. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.info(
f"Вызов функции end_message. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
name_stick_bye = list(Path('Stick').rglob('Universal_*'))
random_stick_bye = open(random.choice(name_stick_bye), 'rb')
self.bot.send_sticker(message.chat.id, random_stick_bye)
except ApiTelegramException as e:
self.logger.error(f"Ошибка в функции stickers при получении стикера: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.error(
f"Ошибка в функции stickers при получении стикера: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
if self.LOGS:
self.bot.send_message(chat_id=self.IMPORTANT_LOGS,
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
@@ -476,10 +509,12 @@ class TelegramHelperBot:
try:
bye_message = messages.get_message(self.__get_first_name(message), 'BYE_MESSAGE')
self.bot.send_message(message.chat.id, bye_message,
parse_mode='html', reply_markup=markup, disable_web_page_preview=not self.PREVIEW_LINK)
parse_mode='html', reply_markup=markup,
disable_web_page_preview=not self.PREVIEW_LINK)
except Exception as e:
if self.LOGS:
self.logger.error(f"Ошибка в функции stickers при получении сообщения: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.logger.error(
f"Ошибка в функции stickers при получении сообщения: {str(e)} Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
self.bot.send_message(chat_id=self.IMPORTANT_LOGS,
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
@@ -551,41 +586,45 @@ class TelegramHelperBot:
disable_web_page_preview=not self.PREVIEW_LINK, reply_markup=markup_for_user)
def suggest_router(self, message):
self.logger.info(
f"Вызов функции suggest_router. Пользователь: {message.from_user.id} Имя автора сообщения: {message.from_user.full_name}")
try:
if message.content_type == 'text':
lower_text = message.text.lower()
post_text, is_anonymous = self._get_text_message(lower_text, message.from_user.full_name, message.from_user.id)
post_text, is_anonymous = self._get_text_message(lower_text, message.from_user.full_name,
message.from_user.id)
if is_anonymous:
self._send_text_message(post_text)
else:
self._send_text_message(post_text)
elif message.content_type == 'photo' and message.media_group_id is None:
lower_caption = message.caption.lower()
post_caption, is_anonymous = self._get_text_message(lower_caption, message.from_user.full_name, message.from_user.id)
if is_anonymous:
self._send_photo_message(message.photo[-1].file_id, post_caption)
else:
self._send_photo_message(message.photo[-1].file_id, post_caption)
elif message.media_group_id is not None:
#TODO: Остановился здесь, так нихрена не рабоатет
self._get_media_group_from_user(message)
media_group = self._prepare_media_group(message.media, message.caption)
self._send_media_group_message(media_group)
except Exception as e:
if self.LOGS:
self.bot.send_message(chat_id=self.IMPORTANT_LOGS,
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
markup_for_user = self.get_reply_keyboard(message)
success_send_message = messages.get_message(self.__get_first_name(message), 'SUCCESS_SEND_MESSAGE')
self.bot.send_message(message.chat.id, success_send_message, parse_mode='html',
disable_web_page_preview=not self.PREVIEW_LINK, reply_markup=markup_for_user)
def _get_media_group_from_user(self, message):
if message.media_group_id is not None:
print(message)
elif message.content_type == 'photo' and message.media_group_id is None:
lower_caption = message.caption.lower()
post_caption, is_anonymous = self._get_text_message(lower_caption, message.from_user.full_name,
message.from_user.id)
if is_anonymous:
self._send_photo_message(message.photo[-1].file_id, post_caption)
else:
self._send_photo_message(message.photo[-1].file_id, post_caption)
markup_for_user = self.get_reply_keyboard(message)
success_send_message = messages.get_message(self.__get_first_name(message), 'SUCCESS_SEND_MESSAGE')
self.bot.send_message(message.chat.id, success_send_message, parse_mode='html',
disable_web_page_preview=not self.PREVIEW_LINK, reply_markup=markup_for_user)
elif message.media_group_id is not None:
self.bot.send_message(message.chat.id,
'Я пока не умею работать с несколькими файлами. Пришли текст и не более одного фото')
self.bot.register_next_step_handler(message, self.suggest_router)
else:
self.bot.send_message(message.chat.id,
'Я пока не умею работать с таким сообщением. Пришли текст и не более одного фото')
self.bot.register_next_step_handler(message, self.suggest_router)
except Exception as e:
if self.LOGS:
self.bot.send_message(chat_id=self.IMPORTANT_LOGS,
text=f"Произошла ошибка: {str(e)}\n\nTraceback:\n{traceback.format_exc()}")
@staticmethod
def _get_reply_keyboard_for_post():
@@ -595,22 +634,6 @@ class TelegramHelperBot:
markup.add(item1, item2)
return markup
def _prepare_media_group(self, message, post_caption):
post_content = message.photo
media_group = []
if len(post_caption) > 1021:
#TODO: Выключил обработку таких сообщений. Позднее нужно будет подумать что делать с длинными сообщениями
pass
else:
for idx, photo in enumerate(post_content):
if idx == 0:
media_group.append(InputMediaPhoto(photo.file_id,
caption=post_caption))
else:
media_group.append(InputMediaPhoto(photo.file_id,
caption=''))
return media_group
@staticmethod
def _get_text_message(post_text: str, first_name: str, username: str):
"""
@@ -655,9 +678,6 @@ class TelegramHelperBot:
reply_markup=markup
)
def _send_media_group_message(self, media_group: list[InputMediaPhoto]):
self.bot.send_media_group(chat_id=self.GROUP_FOR_POST, media=media_group)
def get_reply_keyboard(self, message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
item1 = types.KeyboardButton("📢Предложить свой пост")
@@ -731,7 +751,6 @@ class TelegramHelperBot:
keyboard.append(buttons[i:i + 3])
return types.InlineKeyboardMarkup(keyboard)
def get_banned_users_list(self, offset: int):
"""
Возвращает сообщение со списком пользователей и словарь с ником + идентификатором

View File

@@ -19,7 +19,7 @@ class BaseDependencyFactory:
config_path = os.path.join(sys.path[0], 'settings.ini')
self.config = configparser.ConfigParser()
self.config.read(config_path)
self.BotDB = BotDB()
self.BotDB = BotDB('database/tg-bot-database')
self.settings = {}
for section in self.config.sections():
@@ -36,9 +36,6 @@ class BaseDependencyFactory:
def get_settings(self):
return self.settings
def get_config(self):
return self.config
def get_database(self):
return self.BotDB

View File

@@ -1,10 +1,9 @@
import os
from datetime import datetime
import pytest
import os
import sqlite3
import pytest
from database.db import BotDB
@pytest.fixture
def bot():
"""Фикстура для создания объекта BotDB."""
@@ -234,6 +233,7 @@ def test_update_version_integrity_error(bot):
with pytest.raises(sqlite3.IntegrityError):
bot.update_version(123, "script_2.sql")
def test_update_version_error(bot):
__drop_table('migrations')
with pytest.raises(sqlite3.OperationalError):

View File

@@ -30,7 +30,7 @@ TEST = config.getboolean('Settings', 'test')
#Инициализируем бота и базку
bot = telebot.TeleBot(BOT_TOKEN, parse_mode=None)
BotDB = BotDB('tg-bot-database')
BotDB = BotDB('database/tg-bot-database')