add tests, some fixes

This commit is contained in:
KatykhinAA
2024-07-10 23:18:36 +03:00
parent 7860d4f5c0
commit f2e44ddb29
9 changed files with 1034 additions and 63 deletions

26
main.py
View File

@@ -4,9 +4,7 @@ import sys
from pathlib import Path
from time import sleep
from enum import Enum
from typing import Any
from apscheduler.schedulers.background import BackgroundScheduler
from db import BotDB
from database.db import BotDB
import telebot
import random
from datetime import datetime, timedelta
@@ -37,7 +35,7 @@ LOGS = config.getboolean('Settings', 'logs')
TEST = config.getboolean('Settings', 'test')
# Инициализируем бота и базку
BotDB = BotDB()
BotDB = BotDB(name='tg-bot-database')
class State(Enum):
@@ -134,10 +132,17 @@ class TelegramHelperBot:
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
item1 = types.KeyboardButton("Выйти из чата")
markup.add(item1)
message_id = message.reply_to_message.id
message_id = 0
try:
message_id = message.reply_to_message.id
except AttributeError:
self.bot.send_message(message.chat.id, f'Блять, выдели сообщение!')
message_from_admin = message.text
chat_id = BotDB.get_user_by_message_id(message_id)
self.bot.send_message(chat_id, message_from_admin, reply_markup=markup)
try:
chat_id = BotDB.get_user_by_message_id(message_id)
self.bot.send_message(chat_id, message_from_admin, reply_markup=markup)
except TypeError:
self.bot.send_message(message.chat.id, f'Не могу найти кому ответить в базе, проебали сообщение.')
# Админка
@self.bot.callback_query_handler(func=lambda call: call.data in ['publish', 'decline'])
@@ -212,6 +217,7 @@ class TelegramHelperBot:
def unban_notifier(self):
# Получение сегодняшней даты в формате DD-MM-YYYY
current_date = datetime.now()
print('Мы в функции unban_notifier')
today = current_date.strftime("%d-%m-%Y")
# Получение списка разблокированных пользователей
unblocked_users = BotDB.get_users_for_unblock_today(today)
@@ -369,7 +375,7 @@ class TelegramHelperBot:
)
current_date = datetime.now()
date = current_date.strftime("%Y-%m-%d %H:%M:%S")
BotDB.add_new_message_in_db(message.text, message.message_id + 1, message.from_user.id, date)
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 PREVIEW_LINK,
@@ -543,7 +549,7 @@ class TelegramHelperBot:
return formatted_date
@staticmethod
def create_keyboard_with_pagination(page: int, total_items: int, array_items: list[tuple[Any, Any]], callback: str):
def create_keyboard_with_pagination(page: int, total_items: int, array_items: list[tuple[any, any]], callback: str):
"""
Создает клавиатуру с пагинацией для заданного набора элементов и устанавливает необходимый callback
@@ -636,6 +642,6 @@ if __name__ == "__main__":
bot.start()
#scheduler = BackgroundScheduler()
#scheduler.add_job(bot.unban_notifier(), 'cron', hour=0, minute=0)
#scheduler.add_job(bot.unban_notifier(), 'cron', hour=22, minute=9)
#scheduler.start()