From 24ac638433b55c8d0597e7b1777fe9da5fb17880 Mon Sep 17 00:00:00 2001 From: KatykhinAA Date: Sat, 13 Jul 2024 12:42:21 +0300 Subject: [PATCH] some fix --- database/db.py | 15 ++-- helper_bot/__init__.py | 0 helper_bot/helper_bot.py | 161 ++++++++++++++++++++++----------------- main.py | 5 +- tests/test_db.py | 6 +- voice_bot.py | 2 +- 6 files changed, 103 insertions(+), 86 deletions(-) delete mode 100644 helper_bot/__init__.py diff --git a/database/db.py b/database/db.py index 0bd708c..4c63f2d 100644 --- a/database/db.py +++ b/database/db.py @@ -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() @@ -155,7 +155,7 @@ class BotDB: return None except sqlite3.Error as error: self.logger.error(f"Ошибка при добавлении пользователя в базу: {error}. " - f"Данные пользователя: user_id={user_id}, first_name={first_name}") + f"Данные пользователя: user_id={user_id}, first_name={first_name}") raise finally: self.close() @@ -486,7 +486,7 @@ class BotDB: sqlite3.Error: Если произошла ошибка при выполнении запроса. """ self.logger.info(f"Запуск функции set_user_blacklist: user_id={user_id}, user_name={user_name}," - f" message_for_user={message_for_user}, date_to_unban={date_to_unban}") + f" message_for_user={message_for_user}, date_to_unban={date_to_unban}") try: self.connect() result = self.cursor.execute("INSERT INTO 'blacklist' ('user_id', 'user_name'," @@ -523,7 +523,7 @@ class BotDB: return True except sqlite3.Error as error: self.logger.error(f"Ошибка удаления пользователя с идентификатором {user_id} " - f"из таблицы blacklist. Ошибка: {str(error)}") + f"из таблицы blacklist. Ошибка: {str(error)}") return False finally: self.close() @@ -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( diff --git a/helper_bot/__init__.py b/helper_bot/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/helper_bot/helper_bot.py b/helper_bot/helper_bot.py index 0232f14..8010dfc 100644 --- a/helper_bot/helper_bot.py +++ b/helper_bot/helper_bot.py @@ -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'Ты заблокирован\nПричина блокировки: {attribute[2]}\nДата разблокировки: {attribute[3]}', parse_mode='HTML') + f'Ты заблокирован\nПричина блокировки: {attribute[2]}\nДата разблокировки: {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) + 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.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) + 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: - #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) + 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()}") - 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) - @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): """ Возвращает сообщение со списком пользователей и словарь с ником + идентификатором diff --git a/main.py b/main.py index 8ab0959..24eba19 100644 --- a/main.py +++ b/main.py @@ -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 diff --git a/tests/test_db.py b/tests/test_db.py index e80846b..ff0eba5 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -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): diff --git a/voice_bot.py b/voice_bot.py index c0325f7..5e3f88c 100644 --- a/voice_bot.py +++ b/voice_bot.py @@ -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')