import nest_asyncio nest_asyncio.apply() from telegram import ( Update, InlineKeyboardMarkup, InlineKeyboardButton, Bot ) from telegram.constants import ParseMode # Исправленный импорт from telegram.ext import ( Application, CommandHandler, CallbackQueryHandler, ContextTypes, ) # Замените YOUR_BOT_TOKEN на токен вашего бота TOKEN = "7354282831:AAHXUpGBk1vRadIZENQjGmYE1mdfwJt2exI" # Замените @YOUR_CHANNEL_NAME на ваш username канала или ID CHANNEL_ID = "@yufi_ru" async def send_post(bot: Bot): keyboard = [ [ InlineKeyboardButton("Получить ключ", callback_data="check_subscription"), ], ] reply_markup = InlineKeyboardMarkup(keyboard) await bot.send_message( chat_id=CHANNEL_ID, text="Нажмите на кнопку ниже, чтобы получить ключ доступа для neurix.ru", reply_markup=reply_markup, parse_mode=ParseMode.HTML # Для возможности использовать HTML-форматирование ) async def check_subscription(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: query = update.callback_query try: # Получаем информацию о членстве пользователя в канале member = await context.bot.get_chat_member(CHANNEL_ID, query.from_user.id) if member.status in ['member', 'creator', 'administrator']: await query.answer(text="Ключ доступа: нейрикс", show_alert=True) else: await query.answer(text="Пожалуйста, подпишитесь на канал.", show_alert=True) except Exception as e: await query.answer(text="Пожалуйста, подпишитесь на канал", show_alert=True) async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): await send_post(context.bot) # Завершаем работу бота после отправки сообщения await context.bot.stop() # Необязательно, но можно отправить сообщение об успешной отправке в консоль print("Сообщение отправлено в канал, бот завершил работу.") def main() -> None: application = Application.builder().token(TOKEN).build() # Используем CommandHandler для запуска отправки поста application.add_handler(CommandHandler("sendpost", start)) # Замените /start на /sendpost или другую команду application.add_handler(CallbackQueryHandler(check_subscription)) try: application.run_polling() except Exception as e: print(f"Произошла ошибка: {e}") if __name__ == "__main__": main()