Обновление 4.2
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
# Инициализация пакета keyboards, для работы с клавиатурами
|
# Инициализация пакета keyboards, для работы с клавиатурами
|
||||||
|
|
||||||
from aiogram import Router
|
from aiogram import Router
|
||||||
from .inline_kb import router as inline_kb_router
|
|
||||||
from .reply_kb import router as reply_kb_router
|
from .reply_kb import router as reply_kb_router
|
||||||
from .inline_kb import *
|
from .inline_kb import *
|
||||||
from .reply_kb import *
|
from .reply_kb import *
|
||||||
@@ -13,7 +12,4 @@ router = Router(name="kb_router")
|
|||||||
|
|
||||||
|
|
||||||
# Список подключаемых роутеров сверху-вниз
|
# Список подключаемых роутеров сверху-вниз
|
||||||
router.include_routers(
|
router.include_routers(reply_kb_router)
|
||||||
inline_kb_router,
|
|
||||||
reply_kb_router,
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
# BotCode/keyboards/inline_kb/__init__.py
|
# BotCode/keyboards/inline_kb/__init__.py
|
||||||
# Инициализация пакета inline_keyboards, для работы с инлайн клавиатурами
|
# Инициализация пакета inline_keyboards, для работы с инлайн клавиатурами
|
||||||
|
|
||||||
from aiogram import Router
|
|
||||||
from .actor_kb import *
|
from .actor_kb import *
|
||||||
from .randnum_kb import *
|
from .randnum_kb import *
|
||||||
|
|
||||||
# Объявление роутера и настройка экспорта модулей
|
# Объявление роутера и настройка экспорта модулей
|
||||||
__all__ = ("router", "actor_kb", "ButtonInl")
|
__all__ = ("randnum_kb", "actor_kb")
|
||||||
router = Router(name="inline_kb_router")
|
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
# BotCode/keyboards/inline_kb/actor_kb.py
|
# BotCode/keyboards/inline_kb/actor_kb.py
|
||||||
# Создания инлайн-клавиатуры на команду: /actor
|
# Создания инлайн-клавиатуры на команду: /actor
|
||||||
|
|
||||||
from aiogram import Router
|
|
||||||
from aiogram.types import InlineKeyboardMarkup
|
from aiogram.types import InlineKeyboardMarkup
|
||||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
from BotLibrary import ikb
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта
|
# Создание роутера и настройка экспорта
|
||||||
__all__ = ("router", "get_actor_kb", "kb_text", "ButtonInl",)
|
__all__ = ("get_actor_kb", "ButtonInl")
|
||||||
kb_text = "ActorKb"
|
|
||||||
router = Router(name="actor_kb_router")
|
|
||||||
|
|
||||||
|
|
||||||
# Класс с параметрами кнопок
|
# Класс с параметрами кнопок
|
||||||
@@ -35,20 +32,14 @@ class ButtonInl:
|
|||||||
|
|
||||||
# Функция создания клавиатуры на команду: /actor
|
# Функция создания клавиатуры на команду: /actor
|
||||||
def get_actor_kb() -> InlineKeyboardMarkup:
|
def get_actor_kb() -> InlineKeyboardMarkup:
|
||||||
# Создаем билдер клавиатуры
|
|
||||||
builder = InlineKeyboardBuilder()
|
|
||||||
|
|
||||||
# Добавляем кнопки, группируя их по строкам
|
# Добавляем кнопки, группируя их по строкам
|
||||||
builder.button(text=ButtonInl.tg_chn, url=ButtonInl.tg_chn_url)
|
ikb.button(text=ButtonInl.tg_chn, url=ButtonInl.tg_chn_url)
|
||||||
builder.button(text=ButtonInl.tg_chat, url=ButtonInl.tg_chat_url)
|
ikb.button(text=ButtonInl.tg_chat, url=ButtonInl.tg_chat_url)
|
||||||
|
|
||||||
builder.button(text=ButtonInl.web_text, url=ButtonInl.web_url)
|
|
||||||
builder.button(text=ButtonInl.random_site, callback_data=ButtonInl.random_site_cbd)
|
|
||||||
builder.button(text=ButtonInl.random_num_dice, callback_data=ButtonInl.random_num_dice_cbd)
|
|
||||||
builder.button(text=ButtonInl.random_num_modal, callback_data=ButtonInl.random_num_modal_cdb)
|
|
||||||
|
|
||||||
builder.adjust(2, 1)
|
|
||||||
|
|
||||||
return builder.as_markup()
|
|
||||||
|
|
||||||
|
ikb.button(text=ButtonInl.web_text, url=ButtonInl.web_url)
|
||||||
|
ikb.button(text=ButtonInl.random_site, callback_data=ButtonInl.random_site_cbd)
|
||||||
|
ikb.button(text=ButtonInl.random_num_dice, callback_data=ButtonInl.random_num_dice_cbd)
|
||||||
|
ikb.button(text=ButtonInl.random_num_modal, callback_data=ButtonInl.random_num_modal_cdb)
|
||||||
|
|
||||||
|
ikb.adjust(2, 1)
|
||||||
|
return ikb.as_markup()
|
||||||
|
|||||||
@@ -1,27 +1,21 @@
|
|||||||
# BotCode/keyboards/inline_kb/randnum_kb.py
|
# BotCode/keyboards/inline_kb/randnum_kb.py
|
||||||
# Создания инлайн-клавиатуры на команду: /randnum
|
# Создания инлайн-клавиатуры на команду: /randnum
|
||||||
|
|
||||||
from aiogram import Router
|
|
||||||
from aiogram.types import InlineKeyboardMarkup
|
from aiogram.types import InlineKeyboardMarkup
|
||||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
from BotLibrary import ikb
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта
|
# Создание роутера и настройка экспорта
|
||||||
__all__ = ("router", "get_randnum_kb", "kb_text", "ButtonInl",)
|
__all__ = ("get_randnum_kb", "ButtonInl")
|
||||||
kb_text = "RandNumKb"
|
|
||||||
router = Router(name="actor_kb_router")
|
|
||||||
|
|
||||||
|
|
||||||
# Класс с параметрами кнопок
|
# Класс с параметрами кнопок
|
||||||
class ButtonInl:
|
class ButtonInl:
|
||||||
|
text = "Получить ответ"
|
||||||
mark_cbd = "mark_cbd"
|
mark_cbd = "mark_cbd"
|
||||||
|
|
||||||
|
|
||||||
# Функция создания клавиатуры на команду: /actor
|
# Функция создания клавиатуры на команду: /actor
|
||||||
def get_randnum_kb(text_msg="Получить ответ") -> InlineKeyboardMarkup:
|
def get_randnum_kb() -> InlineKeyboardMarkup:
|
||||||
# Создаем билдер клавиатуры
|
ikb.button(text=ButtonInl.text, callback_data=ButtonInl.mark_cbd)
|
||||||
builder = InlineKeyboardBuilder()
|
ikb.add_row(1)
|
||||||
|
return ikb.as_markup()
|
||||||
# Добавляем кнопки, группируя их по строкам
|
|
||||||
builder.button(text=text_msg, callback_data=ButtonInl.mark_cbd)
|
|
||||||
|
|
||||||
return builder.as_markup()
|
|
||||||
|
|||||||
@@ -2,19 +2,13 @@
|
|||||||
# Инициализация пакета reply_kb, для работы с клавиатурами
|
# Инициализация пакета reply_kb, для работы с клавиатурами
|
||||||
|
|
||||||
from aiogram import Router
|
from aiogram import Router
|
||||||
from .start_kb import router as start_kb_router
|
|
||||||
from .help_kb import router as help_kb_router
|
from .help_kb import router as help_kb_router
|
||||||
from .more_kb import router as more_kb_router
|
|
||||||
|
|
||||||
|
|
||||||
# Объявление роутера и настройка экспорта модулей
|
# Объявление роутера и настройка экспорта модулей
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
router = Router(name="reply_kb_router")
|
router = Router(name=__name__)
|
||||||
|
|
||||||
|
|
||||||
# Список подключаемых роутеров сверху-вниз
|
# Список подключаемых роутеров сверху-вниз
|
||||||
router.include_routers(
|
router.include_routers(help_kb_router)
|
||||||
start_kb_router,
|
|
||||||
help_kb_router,
|
|
||||||
more_kb_router,
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# BotCode/keyboards/reply_kb/help_kb.py
|
# BotCode/keyboards/reply_kb/help_kb.py
|
||||||
# Создание клавиатуры для сообщения: "Помогите!"
|
# Создание клавиатуры для сообщения: "Помогите!"
|
||||||
|
# Создает небольшую числовую клавиатуру для тестов
|
||||||
|
|
||||||
from aiogram import Router, F
|
from aiogram import Router, F
|
||||||
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
||||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
from BotLibrary import rkb
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта модулей
|
# Создание роутера и настройка экспорта модулей
|
||||||
__all__ = ("router", "get_help_kb", "kb_text",)
|
__all__ = ("router", "get_help_kb")
|
||||||
kb_text = "HelpKb"
|
|
||||||
router = Router(name="help_kb_router")
|
router = Router(name="help_kb_router")
|
||||||
|
|
||||||
|
|
||||||
@@ -21,12 +21,10 @@ def get_help_kb() -> ReplyKeyboardMarkup:
|
|||||||
"0️⃣",
|
"0️⃣",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Создание кнопки каждого числа по отдельности
|
||||||
buttons_row = [KeyboardButton(text=num) for num in numbers]
|
buttons_row = [KeyboardButton(text=num) for num in numbers]
|
||||||
builder = ReplyKeyboardBuilder()
|
|
||||||
for num in numbers:
|
for num in numbers:
|
||||||
builder.button(text=num)
|
rkb.button(text=num)
|
||||||
builder.adjust(3)
|
|
||||||
builder.row(buttons_row[3], buttons_row[9])
|
|
||||||
builder.add(buttons_row[-1])
|
|
||||||
|
|
||||||
return builder.as_markup(resize_keyboard=True)
|
rkb.adjust(3)
|
||||||
|
return rkb.as_markup(resize_keyboard=True)
|
||||||
|
|||||||
@@ -1,39 +1,25 @@
|
|||||||
# BotCode/keyboards/reply_kb/more_kb.py
|
# BotCode/keyboards/reply_kb/more_kb.py
|
||||||
# Создания клавиатуры на команду: /more
|
# Создания клавиатуры на команду: /more
|
||||||
|
# Для проверки отправки информации о пользователе
|
||||||
|
|
||||||
from aiogram import Router
|
from aiogram.types import KeyboardButtonPollType, ReplyKeyboardMarkup
|
||||||
from aiogram.types import KeyboardButtonPollType
|
from BotLibrary import rkb
|
||||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта модулей
|
# Настройка экспорта из этого модуля
|
||||||
__all__ = ("router", "get_more_kb", "kb_text",)
|
__all__ = ("get_more_kb", "ButtonText")
|
||||||
kb_text = "HelpKb"
|
|
||||||
router = Router(name="more_kb_router")
|
|
||||||
|
|
||||||
|
|
||||||
# Класс с названиями кнопок
|
# Создание класса со значениями кнопок
|
||||||
class ButtonText:
|
class ButtonText:
|
||||||
More = "More"
|
|
||||||
Location = "Отправить локацию"
|
Location = "Отправить локацию"
|
||||||
Contact = "Отправить контакт"
|
Contact = "Отправить контакт"
|
||||||
Chat = "Отправить чат???"
|
|
||||||
Poll = "Отправить опрос"
|
Poll = "Отправить опрос"
|
||||||
Users = "Что то с common"
|
|
||||||
|
|
||||||
|
|
||||||
# Функция создания клавиатуры на команду: /more
|
# Функция создания клавиатуры на команду: /more
|
||||||
def get_more_kb() -> ReplyKeyboardBuilder:
|
def get_more_kb() -> ReplyKeyboardMarkup:
|
||||||
builder = ReplyKeyboardBuilder()
|
rkb.button(text=ButtonText.Location, request_location=True)
|
||||||
# builder.add(KeyboardButton(text=ButtonText.Location, request_location=True))
|
rkb.button(text=ButtonText.Contact, request_contact=True)
|
||||||
builder.button(text=ButtonText.Location, request_location=True)
|
rkb.button(text=ButtonText.Poll, request_poll=KeyboardButtonPollType())
|
||||||
builder.button(text=ButtonText.Contact, request_contact=True)
|
rkb.adjust(1)
|
||||||
builder.button(text=ButtonText.Poll, request_poll=KeyboardButtonPollType())
|
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
|
|
||||||
builder.adjust(1)
|
|
||||||
return builder.as_markup(resize_keyboard=True)
|
|
||||||
|
|
||||||
# Один из вариантов создание клавиатуры
|
|
||||||
# markup = ReplyKeyboardMarkup(
|
|
||||||
# keyboard=[]
|
|
||||||
# )
|
|
||||||
# return markup
|
|
||||||
|
|||||||
@@ -1,17 +1,15 @@
|
|||||||
# BotCode/keyboards/reply_kb/start_kb.py
|
# BotCode/keyboards/reply_kb/start_kb.py
|
||||||
# Создания клавиатуры на команду: /start
|
# Создания клавиатуры на команду: /start
|
||||||
|
# Для создания базовой клавиатуры с некими элементами
|
||||||
|
|
||||||
from aiogram import Router
|
from aiogram.types import ReplyKeyboardMarkup
|
||||||
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
from BotLibrary import rkb
|
||||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта
|
# Настройка экспорта из этого модуля
|
||||||
__all__ = ("router", "get_start_kb", "kb_text", "ButtonText",)
|
__all__ = ("get_start_kb", "ButtonText")
|
||||||
kb_text = "StartKb"
|
|
||||||
router = Router(name="start_kb_router")
|
|
||||||
|
|
||||||
|
|
||||||
# Класс с названиями кнопок
|
# Создание класса со значениями кнопок
|
||||||
class ButtonText:
|
class ButtonText:
|
||||||
Hello = "Привет!"
|
Hello = "Привет!"
|
||||||
Help = "Помогите!"
|
Help = "Помогите!"
|
||||||
@@ -19,16 +17,9 @@ class ButtonText:
|
|||||||
|
|
||||||
|
|
||||||
# Функция создания клавиатуры на команду: /start
|
# Функция создания клавиатуры на команду: /start
|
||||||
def get_start_kb() -> ReplyKeyboardBuilder:
|
def get_start_kb() -> ReplyKeyboardMarkup:
|
||||||
button_hello = KeyboardButton(text=ButtonText.Hello)
|
rkb.button(text=ButtonText.Hello)
|
||||||
button_help = KeyboardButton(text=ButtonText.Help)
|
rkb.button(text=ButtonText.Help)
|
||||||
button_bye = KeyboardButton(text=ButtonText.Bye)
|
rkb.button(text=ButtonText.Bye)
|
||||||
|
rkb.adjust(2)
|
||||||
buttons_first_row = [button_hello, button_help]
|
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
buttons_second_row = [button_bye]
|
|
||||||
markup = ReplyKeyboardMarkup(
|
|
||||||
keyboard=[buttons_first_row, buttons_second_row],
|
|
||||||
resize_keyboard=True,
|
|
||||||
one_time_keyboard=True,
|
|
||||||
)
|
|
||||||
return markup
|
|
||||||
|
|||||||
23
BotCode/keyboards/reply_kb/survey_yesno_kb.py
Normal file
23
BotCode/keyboards/reply_kb/survey_yesno_kb.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# BotCode/keyboards/reply_kb/survey_yesno_kb.py
|
||||||
|
# Создания клавиатуры на команду: /survey
|
||||||
|
# Для того, чтобы определить отправлять ли сообщения в будущем
|
||||||
|
|
||||||
|
from aiogram.types import ReplyKeyboardMarkup
|
||||||
|
from BotLibrary import rkb
|
||||||
|
|
||||||
|
# Настройка экспорта из этого модуля
|
||||||
|
__all__ = ("get_survey_email_kb", "ButtonText")
|
||||||
|
|
||||||
|
|
||||||
|
# Создание класса со значениями кнопок
|
||||||
|
class ButtonText:
|
||||||
|
Yes = "Да"
|
||||||
|
No = "Нет"
|
||||||
|
|
||||||
|
|
||||||
|
# Функция создания клавиатуры на команду: /survey
|
||||||
|
def get_survey_email_kb() -> ReplyKeyboardMarkup:
|
||||||
|
rkb.button(text=ButtonText.Yes)
|
||||||
|
rkb.button(text=ButtonText.No)
|
||||||
|
rkb.adjust(1)
|
||||||
|
return rkb.as_markup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
@@ -6,6 +6,7 @@ from .callback_handlers import router as callback_handlers_router
|
|||||||
from .commands.bot_command import set_commands
|
from .commands.bot_command import set_commands
|
||||||
from .administration import router as admin_head_router
|
from .administration import router as admin_head_router
|
||||||
from .commands import router as commands_head_router
|
from .commands import router as commands_head_router
|
||||||
|
from .survey import router as survey_head_router
|
||||||
from .downloads import router as downloads_head_router
|
from .downloads import router as downloads_head_router
|
||||||
from .common import router as users_head_router
|
from .common import router as users_head_router
|
||||||
|
|
||||||
@@ -19,6 +20,7 @@ router = Router(name="main_router")
|
|||||||
router.include_routers(
|
router.include_routers(
|
||||||
callback_handlers_router,
|
callback_handlers_router,
|
||||||
admin_head_router,
|
admin_head_router,
|
||||||
|
survey_head_router,
|
||||||
commands_head_router,
|
commands_head_router,
|
||||||
downloads_head_router,
|
downloads_head_router,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,12 +4,10 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта модулей
|
# Создание роутера и настройка экспорта модулей
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|
||||||
from routers.msg_default import msg_default
|
|
||||||
|
|
||||||
router = Router(name="secret_message_router")
|
router = Router(name="secret_message_router")
|
||||||
log_type = "Admin"
|
log_type = "Admin"
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.enums import ChatAction
|
from aiogram.enums import ChatAction
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта
|
# Создание роутера и настройка экспорта
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
from random import randint
|
from random import randint
|
||||||
from aiogram import Router, F
|
from aiogram import Router, F
|
||||||
from aiogram.types import CallbackQuery
|
from aiogram.types import CallbackQuery
|
||||||
from keyboards.inline_kb.actor_kb import ButtonInl
|
from BotCode.keyboards.inline_kb.actor_kb import ButtonInl
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта модулей
|
# Создание роутера и настройка экспорта модулей
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
from random import randint
|
from random import randint
|
||||||
from aiogram import Router, F
|
from aiogram import Router, F
|
||||||
from aiogram.types import CallbackQuery
|
from aiogram.types import CallbackQuery
|
||||||
from keyboards.inline_kb.randnum_kb import ButtonInl, get_randnum_kb
|
from BotCode.keyboards.inline_kb.randnum_kb import ButtonInl, get_randnum_kb
|
||||||
|
|
||||||
# Создание роутера и настройка экспорта модулей
|
# Создание роутера и настройка экспорта модулей
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from keyboards.inline_kb.actor_kb import get_actor_kb
|
from BotCode.keyboards.inline_kb.actor_kb import get_actor_kb
|
||||||
from routers.msg_default import *
|
from BotCode.routers.msg_default import *
|
||||||
|
|
||||||
# Создание роутера, переменных и настройка экспорта модулей
|
# Создание роутера, переменных и настройка экспорта модулей
|
||||||
__all__ = ("router", "cmd_actor", "log_type",)
|
__all__ = ("router", "cmd_actor", "log_type",)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и экспорта модулей
|
# Создание роутера, переменных и экспорта модулей
|
||||||
__all__ = ("router", "exit_cmd", "log_type", "description")
|
__all__ = ("router", "exit_cmd", "log_type", "description")
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from keyboards.reply_kb.help_kb import get_help_kb
|
from BotCode.keyboards.reply_kb.help_kb import get_help_kb
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и экспорта модулей
|
# Создание роутера, переменных и экспорта модулей
|
||||||
__all__ = ("router", "cmd_help", "log_type", "description")
|
__all__ = ("router", "cmd_help", "log_type", "description")
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from keyboards.reply_kb.more_kb import get_more_kb
|
from BotCode.keyboards.reply_kb.more_kb import get_more_kb
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и экспорта модулей
|
# Создание роутера, переменных и экспорта модулей
|
||||||
__all__ = ("router", "cmd_start", "log_type",)
|
__all__ = ("router", "cmd_start", "log_type",)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from keyboards.inline_kb.randnum_kb import get_randnum_kb
|
from BotCode.keyboards.inline_kb.randnum_kb import get_randnum_kb
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и экспорта модулей
|
# Создание роутера, переменных и экспорта модулей
|
||||||
__all__ = ("router", "cmd_randnum", "log_type",)
|
__all__ = ("router", "cmd_randnum", "log_type",)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command, CommandStart
|
from aiogram.filters import Command, CommandStart
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from keyboards.reply_kb.start_kb import get_start_kb
|
from BotCode.keyboards.reply_kb.start_kb import get_start_kb
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и настройка экспорта модулей
|
# Создание роутера, переменных и настройка экспорта модулей
|
||||||
__all__ = ("router", "cmd_start", "log_type", "description")
|
__all__ = ("router", "cmd_start", "log_type", "description")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from routers.msg_default import msg_default
|
from BotCode.routers.msg_default import msg_default
|
||||||
|
|
||||||
# Создание роутера, переменных и настройка экспорта модулей
|
# Создание роутера, переменных и настройка экспорта модулей
|
||||||
__all__ = ("router", "start_time", "log_type", "description")
|
__all__ = ("router", "start_time", "log_type", "description")
|
||||||
|
|||||||
0
BotCode/routers/commands/user_cmd/states.py
Normal file
0
BotCode/routers/commands/user_cmd/states.py
Normal file
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from BotLibrary import *
|
from BotLibrary import *
|
||||||
from aiogram import Router, types
|
from aiogram import Router, types
|
||||||
from routers.msg_default import *
|
from BotCode.routers.msg_default import *
|
||||||
|
|
||||||
# Настройка экспорта модулей и роутера
|
# Настройка экспорта модулей и роутера
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
@@ -15,7 +15,7 @@ log_type = "Messages"
|
|||||||
# Хэндлер на все сообщения и записывает данные
|
# Хэндлер на все сообщения и записывает данные
|
||||||
@router.message()
|
@router.message()
|
||||||
async def handle_all_messages(message: types.Message):
|
async def handle_all_messages(message: types.Message):
|
||||||
user_name = find_imp_id(message.from_user.id)
|
user_name = find_imp_id(message.chat.id)
|
||||||
message_type = types_message(message)
|
message_type = types_message(message)
|
||||||
|
|
||||||
await common_msg_logginger(message, user_name, message_type, log_type)
|
await common_msg_logginger(message, user_name, message_type, log_type)
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
from aiogram import Router, types, F
|
from aiogram import Router, types, F
|
||||||
from aiogram.types import ReplyKeyboardRemove
|
from aiogram.types import ReplyKeyboardRemove
|
||||||
|
|
||||||
from routers.msg_default import *
|
from BotCode.routers.msg_default import *
|
||||||
from BotLibrary import find_imp_id, types_message, common_msg_logginger
|
from BotLibrary import find_imp_id, types_message, common_msg_logginger
|
||||||
from keyboards.reply_kb.start_kb import ButtonText
|
from BotCode.keyboards.reply_kb.start_kb import ButtonText
|
||||||
|
|
||||||
# Настройка экспорта модулей и роутера
|
# Настройка экспорта модулей и роутера
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# Небольшое облегчение для команд
|
# Небольшое облегчение для команд
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from routers.downloads.download_avatar_all import download_avatar
|
from BotCode.routers.downloads.download_avatar_all import download_avatar
|
||||||
from BotLibrary.analitics.message_to_file import write_message_to_file
|
from BotLibrary.analitics.message_to_file import write_message_to_file
|
||||||
from BotLibrary.analitics.user_data_to_file import write_user_info_to_file
|
from BotLibrary.analitics.user_data_to_file import write_user_info_to_file
|
||||||
|
|
||||||
|
|||||||
15
BotCode/routers/survey/__init__.py
Normal file
15
BotCode/routers/survey/__init__.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# BotCode/routers/survey/__init__.py
|
||||||
|
# Инициализация пакета survey, для работы с закачкой данных
|
||||||
|
|
||||||
|
from aiogram import Router
|
||||||
|
from .handlers import router as handlers_router
|
||||||
|
|
||||||
|
# Объявление роутера и настройка экспорта модулей
|
||||||
|
__all__ = ("router", )
|
||||||
|
router = Router(name="survey_head_router")
|
||||||
|
|
||||||
|
|
||||||
|
# Список подключаемых роутеров сверху-вниз
|
||||||
|
router.include_routers(
|
||||||
|
handlers_router,
|
||||||
|
)
|
||||||
89
BotCode/routers/survey/handlers.py
Normal file
89
BotCode/routers/survey/handlers.py
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
from aiogram import Router, types, F
|
||||||
|
from aiogram.filters import Command
|
||||||
|
from aiogram.fsm.context import FSMContext
|
||||||
|
from aiogram.utils import markdown
|
||||||
|
|
||||||
|
from BotLibrary import BotVariables
|
||||||
|
from email_validators import valid_email
|
||||||
|
from keyboards.reply_kb.survey_yesno_kb import get_survey_email_kb
|
||||||
|
from .states import Survey
|
||||||
|
|
||||||
|
router = Router(name=__name__)
|
||||||
|
|
||||||
|
@router.message(Command("survey", prefix=BotVariables.prefixs))
|
||||||
|
async def handler_survey(message: types.Message, state: FSMContext):
|
||||||
|
await state.set_state(Survey.full_name)
|
||||||
|
await message.answer(
|
||||||
|
text="Приветствую тебя в нашем маленьком раю! Подожди, я кажется не знаю твоего имени.. Как тебя зовут?",
|
||||||
|
reply_markup=types.ReplyKeyboardRemove(),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.full_name, F.text)
|
||||||
|
async def handler_survey_user_name(message: types.Message, state: FSMContext):
|
||||||
|
await state.update_data(full_name=message.text)
|
||||||
|
await message.answer(
|
||||||
|
f"Привет, {markdown.hbold(message.text)}! Скажи свою почту)",
|
||||||
|
)
|
||||||
|
await state.set_state(Survey.email)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.full_name)
|
||||||
|
async def handler_survey_user_name_invalid(message: types.Message):
|
||||||
|
await message.answer(
|
||||||
|
f"Извините, но кажется я вас не понимаю.. Повторите свое имя, пожалуйста!!!",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.email, F.text.cast(valid_email).as_("email"))
|
||||||
|
async def handler_survey_email(message: types.Message, state: FSMContext, email: str):
|
||||||
|
await state.update_data(email=email)
|
||||||
|
await message.answer(
|
||||||
|
text=f"Отличная почта: {markdown.hcode(message.text)}! "
|
||||||
|
f"\nХочешь ли получать письма от меня?",
|
||||||
|
reply_markup=get_survey_email_kb()
|
||||||
|
)
|
||||||
|
await state.set_state(Survey.email_newsletter)
|
||||||
|
|
||||||
|
|
||||||
|
async def send_survey_results(message: types.Message, data: dict) -> None:
|
||||||
|
text = markdown.text(
|
||||||
|
"Ваши результаты: \n",
|
||||||
|
markdown.text(f"Имя: {markdown.hbold(data['full_name'])}"),
|
||||||
|
markdown.text(f"Почта: {markdown.hcode(data['email'])}"),
|
||||||
|
(
|
||||||
|
"Отлично, теперь ждите новых сообщений)"
|
||||||
|
if data["news_letter"]
|
||||||
|
else "Что-ж, мы не будем писать вам!"
|
||||||
|
),
|
||||||
|
sep='\n'
|
||||||
|
)
|
||||||
|
await message.answer(text=text, reply_markup=types.ReplyKeyboardRemove())
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.email)
|
||||||
|
async def handler_survey_email_invalid(message: types.Message):
|
||||||
|
await message.answer(
|
||||||
|
text="Почта не подошла, попробуйте еще раз!",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.email_newsletter, F.text.casefold() == "да")
|
||||||
|
async def handle_survey_email_newsletter_ok(message: types.Message, state: FSMContext):
|
||||||
|
data = await state.update_data(news_letter=True)
|
||||||
|
await state.clear()
|
||||||
|
await send_survey_results(message, data)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.email_newsletter, F.text.casefold() == "нет")
|
||||||
|
async def handle_survey_email_newsletter_no(message: types.Message, state: FSMContext):
|
||||||
|
data = await state.update_data(news_letter=False)
|
||||||
|
await state.clear()
|
||||||
|
await send_survey_results(message, data)
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Survey.email_newsletter)
|
||||||
|
async def handle_survey_email_newsletter_not_understand(message: types.Message, state: FSMContext):
|
||||||
|
await message.answer(
|
||||||
|
text=f"Простите, я не понимаю пожалуйста ответьте {markdown.hcode("да")} или {markdown.hcode("нет")}!"
|
||||||
|
)
|
||||||
15
BotCode/routers/survey/states.py
Normal file
15
BotCode/routers/survey/states.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from enum import StrEnum
|
||||||
|
from aiogram.fsm.state import StatesGroup, State
|
||||||
|
|
||||||
|
class Survey(StatesGroup):
|
||||||
|
full_name = State()
|
||||||
|
age = State()
|
||||||
|
email = State()
|
||||||
|
sport = State()
|
||||||
|
email_newsletter = State()
|
||||||
|
|
||||||
|
|
||||||
|
class Sports(StrEnum):
|
||||||
|
tennis = "Теннис"
|
||||||
|
football = "Футбол"
|
||||||
|
fomula_one = "Гонки"
|
||||||
@@ -6,3 +6,4 @@ from .analitics import *
|
|||||||
from .library import *
|
from .library import *
|
||||||
from .media import *
|
from .media import *
|
||||||
from .configs import *
|
from .configs import *
|
||||||
|
from .validators import *
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# Определение типа сообщения
|
# Определение типа сообщения
|
||||||
|
|
||||||
from aiogram.types import ContentType
|
from aiogram.types import ContentType
|
||||||
from configs import *
|
from ..configs import *
|
||||||
from .find_ids import find_imp_id
|
from .find_ids import find_imp_id
|
||||||
|
|
||||||
# Настройка экспорта модулей и логирования
|
# Настройка экспорта модулей и логирования
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import json
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from aiogram.types import User, Birthdate
|
from aiogram.types import User, Birthdate
|
||||||
from configs import *
|
from ..configs import *
|
||||||
from ..library.time import TimeVariable
|
from ..library.time import TimeVariable
|
||||||
|
|
||||||
# Настройка экспорта модулей и логирования
|
# Настройка экспорта модулей и логирования
|
||||||
|
|||||||
@@ -68,4 +68,4 @@ class DataID:
|
|||||||
groups = data_list_id.get("important_groups_ids", {})
|
groups = data_list_id.get("important_groups_ids", {})
|
||||||
users = data_list_id.get("important_users_list_ids", {})
|
users = data_list_id.get("important_users_list_ids", {})
|
||||||
channels = data_list_id.get("important_channel_ids", {})
|
channels = data_list_id.get("important_channel_ids", {})
|
||||||
important = {**admins, **groups, **users, **channels}
|
important = {**groups, **admins, **users, **channels}
|
||||||
|
|||||||
@@ -2,20 +2,25 @@
|
|||||||
# Создание и настройка бота в одном файле
|
# Создание и настройка бота в одном файле
|
||||||
|
|
||||||
from aiogram import Dispatcher, Bot, F
|
from aiogram import Dispatcher, Bot, F
|
||||||
from aiogram.client.default import DefaultBotProperties
|
|
||||||
from aiogram.enums import ParseMode
|
from aiogram.enums import ParseMode
|
||||||
|
from aiogram.client.default import DefaultBotProperties
|
||||||
|
from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
|
||||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||||
|
|
||||||
from .time import *
|
from .time import *
|
||||||
from configs import bot_token, BotVariables
|
from ..configs import bot_token, BotVariables
|
||||||
|
|
||||||
# Настройка экспорта модулей и логирования
|
# Настройка экспорта из этого модуля
|
||||||
__all__ = ("dp", "bot", "scheduler", "F_Media", "BotInfo", "bot_get_info")
|
__all__ = ("dp", "rkb", "ikb", "bot", "scheduler",
|
||||||
log_type = "Bot"
|
"F_Media", "F_All", "BotInfo", "bot_get_info")
|
||||||
|
|
||||||
|
|
||||||
# Создание экземпляра диспатчера и его параметров
|
# Создание экземпляра диспатчера, строителей кнопок
|
||||||
dp = Dispatcher()
|
dp = Dispatcher()
|
||||||
|
rkb = ReplyKeyboardBuilder()
|
||||||
|
ikb = InlineKeyboardBuilder()
|
||||||
|
|
||||||
|
# Настройка параметров диспатчера
|
||||||
dp["started_at"] = host_time
|
dp["started_at"] = host_time
|
||||||
dp["started_at_msk"] = get_choice_time(TimeVariable.choice_utc_msk)
|
dp["started_at_msk"] = get_choice_time(TimeVariable.choice_utc_msk)
|
||||||
dp["is_active"] = True # Флаг активности бота
|
dp["is_active"] = True # Флаг активности бота
|
||||||
@@ -46,6 +51,7 @@ bot_properties = DefaultBotProperties(
|
|||||||
bot = Bot(token=bot_token, default=bot_properties) # Объявление бота
|
bot = Bot(token=bot_token, default=bot_properties) # Объявление бота
|
||||||
scheduler = AsyncIOScheduler(timezone=get_time_zone()) # Создание планировщика
|
scheduler = AsyncIOScheduler(timezone=get_time_zone()) # Создание планировщика
|
||||||
F_Media = F.photo | F.files | F.video | F.animation | F.voice | F.video_note # Фильтр-медиа
|
F_Media = F.photo | F.files | F.video | F.animation | F.voice | F.video_note # Фильтр-медиа
|
||||||
|
F_All = F.text | F.photo | F.files | F.video | F.animation | F.voice | F.video_note # Фильтр на все
|
||||||
|
|
||||||
|
|
||||||
# Класс для хранения данных о боте (некоторые переменные даны как шаблон)
|
# Класс для хранения данных о боте (некоторые переменные даны как шаблон)
|
||||||
|
|||||||
5
BotLibrary/validators/__init__.py
Normal file
5
BotLibrary/validators/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# BotLibrary/validators/__init__.py
|
||||||
|
# Инициализация пакета validator, для работы с валидацией данных
|
||||||
|
|
||||||
|
# Импортируем библиотеки для экспорта
|
||||||
|
from .email_validators import *
|
||||||
15
BotLibrary/validators/email_validators.py
Normal file
15
BotLibrary/validators/email_validators.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# BotLibrary/validators/email_validators.py
|
||||||
|
# Создание валидации почты для проекта
|
||||||
|
|
||||||
|
from email_validator import validate_email, EmailNotValidError
|
||||||
|
|
||||||
|
# Настройка экспорта из этого модуля
|
||||||
|
__all__ = ("valid_email",)
|
||||||
|
|
||||||
|
|
||||||
|
def valid_email(text: str) -> str | None:
|
||||||
|
try:
|
||||||
|
email = validate_email(text)
|
||||||
|
except EmailNotValidError:
|
||||||
|
return None
|
||||||
|
return email.normalized
|
||||||
@@ -43,3 +43,9 @@
|
|||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
07.02.2025
|
||||||
|
- [ ] Сделать проверку на личные сообщения
|
||||||
|
- [ ] Починить start_time и отображение времени
|
||||||
|
- [ ] Модуль день рождение
|
||||||
|
- [ ] FSM
|
||||||
@@ -9,11 +9,13 @@
|
|||||||
"1398573474": "Финаки",
|
"1398573474": "Финаки",
|
||||||
"1851081467": "Финик",
|
"1851081467": "Финик",
|
||||||
"929782381": "Хиде",
|
"929782381": "Хиде",
|
||||||
"6714237814": "Слешик"
|
"6714237814": "Слешик",
|
||||||
|
"1686743480": "Полина",
|
||||||
|
"1184519857": "Катаз"
|
||||||
},
|
},
|
||||||
"important_groups_ids": {
|
"important_groups_ids": {
|
||||||
"1087968824": "GroupAnonymousBot",
|
"1087968824": "GroupAnonymousBot",
|
||||||
"-1002247934490": "Сплетни_лавочек",
|
"-1002442589033": "Любовники Сергея",
|
||||||
"-1002124483077": "Труба_Сквад",
|
"-1002124483077": "Труба_Сквад",
|
||||||
"-1002123850090": "Тест_Чат",
|
"-1002123850090": "Тест_Чат",
|
||||||
"-1001552311087": "Все_Будет_Хорошо"
|
"-1001552311087": "Все_Будет_Хорошо"
|
||||||
|
|||||||
874
poetry.lock
generated
874
poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -19,7 +19,6 @@ pytz = "^2024.2"
|
|||||||
termcolor = "^2.5.0"
|
termcolor = "^2.5.0"
|
||||||
colorama = "^0.4.6"
|
colorama = "^0.4.6"
|
||||||
art = "^6.4"
|
art = "^6.4"
|
||||||
cowsay = "^6.1"
|
|
||||||
python-dotenv = "^1.0.1"
|
python-dotenv = "^1.0.1"
|
||||||
pydantic-settings = "^2.7.0"
|
pydantic-settings = "^2.7.0"
|
||||||
python-decouple = "^3.8"
|
python-decouple = "^3.8"
|
||||||
@@ -29,6 +28,7 @@ customtkinter = "^5.2.2"
|
|||||||
pillow = "^11.0.0"
|
pillow = "^11.0.0"
|
||||||
certifi = "^2024.12.14"
|
certifi = "^2024.12.14"
|
||||||
idna = "^3.10"
|
idna = "^3.10"
|
||||||
|
email-validator = "^2.2.0"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
|
|||||||
Reference in New Issue
Block a user