772d3d5b83
It's version 0.3.0
80 lines
2.7 KiB
Python
80 lines
2.7 KiB
Python
from config import Config
|
|
import aiohttp
|
|
from aiogram.types import BufferedInputFile
|
|
from utils.antispam import admin_required
|
|
from aiogram import Dispatcher, Bot
|
|
from aiogram.types import Message
|
|
from models.state import BotState
|
|
from aiogram.filters import Command
|
|
from logging import getLogger
|
|
from aiogram.types import PollAnswer
|
|
from storage.message_storage import save_message
|
|
|
|
logger = getLogger(__name__)
|
|
API_URL = "http://127.0.0.1:7700/speak"
|
|
|
|
from config import Config
|
|
import aiohttp
|
|
from aiogram.types import BufferedInputFile
|
|
from utils.antispam import admin_required
|
|
from aiogram import Dispatcher, Bot
|
|
from aiogram.types import Message
|
|
from models.state import BotState
|
|
from aiogram.filters import Command
|
|
from logging import getLogger
|
|
from aiogram.types import PollAnswer
|
|
from storage.message_storage import save_message
|
|
|
|
logger = getLogger(__name__)
|
|
API_URL = "http://127.0.0.1:7700/speak"
|
|
|
|
def register_handlers(dp: Dispatcher, state: BotState, bot: Bot):
|
|
@dp.message(Command("poll"))
|
|
@admin_required(5)
|
|
async def send_poll(message: Message):
|
|
for chat_id in Config.CHAT_IDS:
|
|
try:
|
|
poll_msg = await bot.send_poll(
|
|
chat_id=chat_id,
|
|
question="Кто опоздает?",
|
|
options=["Я", "Не знаю", "Наверное"],
|
|
is_anonymous=False,
|
|
allows_multiple_answers=False
|
|
)
|
|
# сохраняем сам опрос
|
|
save_message(poll_msg.chat.id, poll_msg.message_id)
|
|
logger.info(f"Опрос отправлен в чат {chat_id}")
|
|
|
|
except Exception as e:
|
|
logger.error(f"Ошибка при отправке в чат {chat_id}: {e}")
|
|
|
|
confirm_msg = await message.answer("✅ Сообщение отправлено.")
|
|
save_message(confirm_msg.chat.id, confirm_msg.message_id)
|
|
|
|
@dp.poll_answer()
|
|
async def handle_poll_answer(poll_answer: PollAnswer):
|
|
user = poll_answer.user
|
|
option_ids = poll_answer.option_ids
|
|
|
|
# username или fallback на имя
|
|
username = f"@{user.username}" if user.username else user.first_name
|
|
|
|
# всегда пишем в первый чат из Config.CHAT_IDS
|
|
|
|
if option_ids and option_ids[0] == 0:
|
|
msg = await bot.send_message(
|
|
chat_id=6394047531,
|
|
text=f"{username} опоздает"
|
|
)
|
|
save_message(msg.chat.id, msg.message_id)
|
|
else:
|
|
msg = await bot.send_message(
|
|
chat_id=6394047531,
|
|
text=f"{username} выбрал вариант {option_ids}"
|
|
)
|
|
save_message(msg.chat.id, msg.message_id)
|
|
|
|
|
|
|
|
|