small refactor
This commit is contained in:
parent
c3699e0766
commit
2ff6ae92ae
3
TODO.md
3
TODO.md
@ -2,6 +2,5 @@
|
||||
- Организовать корректную проверку введенных данных.
|
||||
- Написать функцию по составлению SQL-запроса для БД
|
||||
- Сформировать БД из данной exel-таблицы
|
||||
- Написать функцию для рассылки WatsApp и Email
|
||||
- Вынести кнопки в отдельные класс.
|
||||
- Написать функцию для рассылки WatsApp
|
||||
- Переписать обработчики сообщений, вынести отдельными функциями из __init__
|
14
modules/keyboards.py
Normal file
14
modules/keyboards.py
Normal file
@ -0,0 +1,14 @@
|
||||
from telebot.types import KeyboardButton, ReplyKeyboardMarkup
|
||||
|
||||
class Keyboards:
|
||||
def __init__(self) -> None:
|
||||
self.markup = ReplyKeyboardMarkup()
|
||||
|
||||
def create_buttons(self, data: tuple, row_width: int = 3) -> ReplyKeyboardMarkup:
|
||||
self.markup = ReplyKeyboardMarkup()
|
||||
self.markup.row_width = row_width
|
||||
|
||||
for item in data:
|
||||
self.markup.add(KeyboardButton(item))
|
||||
|
||||
return self.markup
|
@ -7,6 +7,7 @@ import telebot
|
||||
from telebot.types import BotCommand, KeyboardButton, ReplyKeyboardMarkup
|
||||
|
||||
from modules.configuration import Configuration
|
||||
from modules.keyboards import Keyboards
|
||||
|
||||
|
||||
class TGSenderBot:
|
||||
@ -18,6 +19,7 @@ class TGSenderBot:
|
||||
self.bot = telebot.TeleBot(self.config.token)
|
||||
self.start_cmd = BotCommand(command="start", description="Start bot")
|
||||
self.start_mailing = BotCommand(command="mailing", description="Prepare to mailing")
|
||||
self.keyboards = Keyboards()
|
||||
self.company = None
|
||||
self.template_msg_path = Path()
|
||||
self.mailing_method = None
|
||||
@ -37,7 +39,7 @@ class TGSenderBot:
|
||||
message.chat.id,
|
||||
"Привет! Давай начнем подготовку к рассылке.\n\n"
|
||||
"Для начала - нужно выбрать компанию, от имени которой ты будешь делать рассылку.",
|
||||
reply_markup=self.__company_buttons(),
|
||||
reply_markup=self.keyboards.create_buttons(("COZY COTTON", "MixFix", "chic chick", "Ky Ky", "WOLF&OWL", "NOW")),
|
||||
)
|
||||
|
||||
# Messages
|
||||
@ -55,7 +57,7 @@ class TGSenderBot:
|
||||
self.bot.send_message(
|
||||
message.chat.id,
|
||||
"Отлично! Шаблон сохранен. Осталось лишь проверить все данные, для рассылки.",
|
||||
reply_markup= self.__enter_check(),
|
||||
reply_markup=self.keyboards.create_buttons(("Проверить данные",)),
|
||||
)
|
||||
else:
|
||||
self.bot.send_message(
|
||||
@ -72,7 +74,7 @@ class TGSenderBot:
|
||||
f'Выбрана компания "{self.company}"\n\nТеперь необходимо выбрать метод,'
|
||||
"которым будут рассылаться сообщения.\n"
|
||||
"Пожалуйста, выбери формат шаблона.",
|
||||
reply_markup=self.__mailing_methods(),
|
||||
reply_markup=self.keyboards.create_buttons(("E-Mail", "WatsApp"))
|
||||
)
|
||||
case "E-Mail" | "WatsApp":
|
||||
self.mailing_method = "mail" if message.text == "E-Mail" else "whatsapp"
|
||||
@ -82,7 +84,7 @@ class TGSenderBot:
|
||||
message.chat.id,
|
||||
f"Рассылка будет произведена методом {msg}.\n\n"
|
||||
"Далее мы с тобой напишем шаблон сообщения для рассылки.",
|
||||
reply_markup=self.__types_template_message(),
|
||||
reply_markup=self.keyboards.create_buttons(("Текст", "HTML"))
|
||||
)
|
||||
case "Текст" | "HTML":
|
||||
self.template_type = "plain" if message.text == "Текст" else "html"
|
||||
@ -101,12 +103,12 @@ class TGSenderBot:
|
||||
f"Метод: {self.mailing_method}\n"
|
||||
f"Текст:\n\n{txt}",
|
||||
)
|
||||
self.bot.send_message(message.chat.id, msg,reply_markup=self.__finish_menu())
|
||||
self.bot.send_message(message.chat.id, msg,reply_markup=self.keyboards.create_buttons(("Изменить компанию", "Изменить метод", "Изменить шаблон", "Начать")))
|
||||
case "Изменить компанию":
|
||||
self.bot.send_message(
|
||||
message.chat.id,
|
||||
"Выбери компанию, от имени которой ты будешь делать рассылку.",
|
||||
reply_markup=self.__company_buttons()
|
||||
reply_markup=self.keyboards.create_buttons(("COZY COTTON", "MixFix", "chic chick", "Ky Ky", "WOLF&OWL", "NOW"))
|
||||
)
|
||||
case "Начать":
|
||||
self.bot.send_message(
|
||||
@ -120,58 +122,3 @@ class TGSenderBot:
|
||||
self.mailing_method = None
|
||||
self.waiting_template = bool
|
||||
self.template_type = None
|
||||
|
||||
def __enter_check(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 3
|
||||
markup.add(KeyboardButton("Проверить данные"))
|
||||
return markup
|
||||
|
||||
def __enter_company(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 3
|
||||
markup.add(KeyboardButton("Выбрать компанию"))
|
||||
return markup
|
||||
|
||||
def __types_template_message(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 2
|
||||
|
||||
for method in ("Текст", "HTML"):
|
||||
markup.add(KeyboardButton(method))
|
||||
|
||||
return markup
|
||||
|
||||
def __genetare_message_button(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 3
|
||||
markup.add(
|
||||
KeyboardButton("Send Number", request_contact=True),
|
||||
)
|
||||
return markup
|
||||
|
||||
def __company_buttons(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 3
|
||||
|
||||
for company in ("COZY COTTON", "MixFix", "chic chick", "Ky Ky", "WOLF&OWL", "NOW"):
|
||||
markup.add(KeyboardButton(company))
|
||||
|
||||
return markup
|
||||
|
||||
def __mailing_methods(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 2
|
||||
|
||||
for method in ("E-Mail", "WatsApp"):
|
||||
markup.add(KeyboardButton(method))
|
||||
|
||||
return markup
|
||||
|
||||
def __finish_menu(self) -> ReplyKeyboardMarkup:
|
||||
markup = ReplyKeyboardMarkup()
|
||||
markup.row_width = 3
|
||||
|
||||
for state in ("Изменить компанию", "Изменить метод", "Изменить шаблон", "Начать"):
|
||||
markup.add(KeyboardButton(state))
|
||||
return markup
|
||||
|
Loading…
Reference in New Issue
Block a user