Обновление 4.2
This commit is contained in:
@@ -6,6 +6,7 @@ from .callback_handlers import router as callback_handlers_router
|
||||
from .commands.bot_command import set_commands
|
||||
from .administration import router as admin_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 .common import router as users_head_router
|
||||
|
||||
@@ -19,6 +20,7 @@ router = Router(name="main_router")
|
||||
router.include_routers(
|
||||
callback_handlers_router,
|
||||
admin_head_router,
|
||||
survey_head_router,
|
||||
commands_head_router,
|
||||
downloads_head_router,
|
||||
)
|
||||
|
||||
@@ -4,12 +4,10 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
from BotLibrary import *
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера и настройка экспорта модулей
|
||||
__all__ = ("router",)
|
||||
|
||||
from routers.msg_default import msg_default
|
||||
|
||||
router = Router(name="secret_message_router")
|
||||
log_type = "Admin"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.enums import ChatAction
|
||||
from BotLibrary import *
|
||||
from routers.msg_default import msg_default
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера и настройка экспорта
|
||||
__all__ = ("router",)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from random import randint
|
||||
from aiogram import Router, F
|
||||
from aiogram.types import CallbackQuery
|
||||
from keyboards.inline_kb.actor_kb import ButtonInl
|
||||
from BotCode.keyboards.inline_kb.actor_kb import ButtonInl
|
||||
|
||||
# Создание роутера и настройка экспорта модулей
|
||||
__all__ = ("router",)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from random import randint
|
||||
from aiogram import Router, F
|
||||
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",)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
from BotLibrary import *
|
||||
from keyboards.inline_kb.actor_kb import get_actor_kb
|
||||
from routers.msg_default import *
|
||||
from BotCode.keyboards.inline_kb.actor_kb import get_actor_kb
|
||||
from BotCode.routers.msg_default import *
|
||||
|
||||
# Создание роутера, переменных и настройка экспорта модулей
|
||||
__all__ = ("router", "cmd_actor", "log_type",)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
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")
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
from BotLibrary import *
|
||||
from keyboards.reply_kb.help_kb import get_help_kb
|
||||
from routers.msg_default import msg_default
|
||||
from BotCode.keyboards.reply_kb.help_kb import get_help_kb
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера, переменных и экспорта модулей
|
||||
__all__ = ("router", "cmd_help", "log_type", "description")
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
from BotLibrary import *
|
||||
from keyboards.reply_kb.more_kb import get_more_kb
|
||||
from routers.msg_default import msg_default
|
||||
from BotCode.keyboards.reply_kb.more_kb import get_more_kb
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера, переменных и экспорта модулей
|
||||
__all__ = ("router", "cmd_start", "log_type",)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
from BotLibrary import *
|
||||
from keyboards.inline_kb.randnum_kb import get_randnum_kb
|
||||
from routers.msg_default import msg_default
|
||||
from BotCode.keyboards.inline_kb.randnum_kb import get_randnum_kb
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера, переменных и экспорта модулей
|
||||
__all__ = ("router", "cmd_randnum", "log_type",)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command, CommandStart
|
||||
from BotLibrary import *
|
||||
from keyboards.reply_kb.start_kb import get_start_kb
|
||||
from routers.msg_default import msg_default
|
||||
from BotCode.keyboards.reply_kb.start_kb import get_start_kb
|
||||
from BotCode.routers.msg_default import msg_default
|
||||
|
||||
# Создание роутера, переменных и настройка экспорта модулей
|
||||
__all__ = ("router", "cmd_start", "log_type", "description")
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from aiogram import Router, types, F
|
||||
from aiogram.filters import Command
|
||||
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")
|
||||
|
||||
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 aiogram import Router, types
|
||||
from routers.msg_default import *
|
||||
from BotCode.routers.msg_default import *
|
||||
|
||||
# Настройка экспорта модулей и роутера
|
||||
__all__ = ("router",)
|
||||
@@ -15,7 +15,7 @@ log_type = "Messages"
|
||||
# Хэндлер на все сообщения и записывает данные
|
||||
@router.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)
|
||||
|
||||
await common_msg_logginger(message, user_name, message_type, log_type)
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
from aiogram import Router, types, F
|
||||
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 keyboards.reply_kb.start_kb import ButtonText
|
||||
from BotCode.keyboards.reply_kb.start_kb import ButtonText
|
||||
|
||||
# Настройка экспорта модулей и роутера
|
||||
__all__ = ("router",)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Небольшое облегчение для команд
|
||||
|
||||
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.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 = "Гонки"
|
||||
Reference in New Issue
Block a user