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