Обновление 4.2

This commit is contained in:
sergey
2025-02-08 19:12:38 +07:00
parent 6e2e7bdc0f
commit ef6906b240
39 changed files with 730 additions and 553 deletions

View File

@@ -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,
)

View File

@@ -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"

View File

@@ -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",)

View File

@@ -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",)

View File

@@ -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",)

View File

@@ -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",)

View File

@@ -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")

View File

@@ -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")

View File

@@ -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",)

View File

@@ -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",)

View File

@@ -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")

View File

@@ -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")

View 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)

View File

@@ -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",)

View File

@@ -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

View 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,
)

View 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("нет")}!"
)

View 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 = "Гонки"