""" ВЗАИМОВЫРУЧКА ЛКМ37 Локальный шеринг и помощь соседям. """ from aiogram import Router, F from aiogram.types import Message, CallbackQuery, InlineKeyboardButton from aiogram.utils.keyboard import InlineKeyboardBuilder from aiogram.filters import Command from aiogram.fsm.state import State, StatesGroup from aiogram.fsm.context import FSMContext from utils.ui_styles import fmt_msg import config router = Router() class HelpState(StatesGroup): waiting_for_text = State() @router.callback_query(F.data == "mutual_aid") async def start_help(callback: CallbackQuery): kb = InlineKeyboardBuilder() kb.row(InlineKeyboardButton(text="🆘 МНЕ НУЖНА ПОМОЩЬ", callback_data="need_help")) kb.row(InlineKeyboardButton(text="🤝 Я МОГУ ПОМОЧЬ", callback_data="can_help")) text = ( f"{fmt_msg('ВЗАИМОВЫРУЧКА ЛКМ37', 'resident')}\n\n" "Соседи — это сила! Здесь вы можете попросить о помощи или предложить свою.\n" "Например: одолжить дрель, соль, помочь с тяжелыми сумками." ) await callback.message.answer(text, reply_markup=kb.as_markup()) await callback.answer() @router.callback_query(F.data == "need_help") async def need_help_start(callback: CallbackQuery, state: FSMContext): await callback.message.answer("Опишите коротко, что вам нужно:\nНапример: 'Нужна дрель на 10 минут'") await state.set_state(HelpState.waiting_for_text) await callback.answer() @router.message(HelpState.waiting_for_text) async def process_help_request(message: Message, state: FSMContext): help_text = message.text user_id = message.from_user.id # Публикуем в общий чат alert_text = ( f"🆘 НУЖНА ПОМОЩЬ СОСЕДЕЙ!\n\n" f"👤 Субъект: ID{user_id}\n" f"💬 Запрос: {help_text}\n\n" f"Если можете помочь, напишите соседу в личку!" ) try: await message.bot.send_message( chat_id=config.ADMIN_CHAT_ID, text=alert_text, parse_mode='HTML', reply_markup=InlineKeyboardBuilder().row( InlineKeyboardButton(text="🤝 Помочь", url=f"tg://user?id={user_id}") ).as_markup() ) await message.answer(f"{fmt_msg('Запрос отправлен в чат дома!', 'system')}") except Exception as e: await message.answer("❌ Ошибка при отправке. Попробуйте позже.") await state.clear()