Rooni commited on
Commit
6612857
·
verified ·
1 Parent(s): 19e110d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +80 -0
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import nest_asyncio
2
+ nest_asyncio.apply()
3
+
4
+ from telegram import (
5
+ Update,
6
+ InlineKeyboardMarkup,
7
+ InlineKeyboardButton,
8
+ Bot
9
+ )
10
+ from telegram.constants import ParseMode # Исправленный импорт
11
+ from telegram.ext import (
12
+ Application,
13
+ CommandHandler,
14
+ CallbackQueryHandler,
15
+ ContextTypes,
16
+ )
17
+
18
+ # Замените YOUR_BOT_TOKEN на токен вашего бота
19
+ TOKEN = "7354282831:AAHXUpGBk1vRadIZENQjGmYE1mdfwJt2exI"
20
+
21
+ # Замените @YOUR_CHANNEL_NAME на ваш username канала или ID
22
+ CHANNEL_ID = "@yufi_ru"
23
+
24
+ async def send_post(bot: Bot):
25
+ keyboard = [
26
+ [
27
+ InlineKeyboardButton("Получить ключ", callback_data="check_subscription"),
28
+ ],
29
+ ]
30
+ reply_markup = InlineKeyboardMarkup(keyboard)
31
+
32
+ await bot.send_message(
33
+ chat_id=CHANNEL_ID,
34
+ text="Нажмите на кнопку ниже, чтобы получить ключ доступа для neurix.ru",
35
+ reply_markup=reply_markup,
36
+ parse_mode=ParseMode.HTML # Для возможности использовать HTML-форматирование
37
+ )
38
+
39
+
40
+
41
+ async def check_subscription(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
42
+ query = update.callback_query
43
+ try:
44
+ # Получаем информацию о членстве пользователя в канале
45
+ member = await context.bot.get_chat_member(CHANNEL_ID, query.from_user.id)
46
+ if member.status in ['member', 'creator', 'administrator']:
47
+ await query.answer(text="Ключ доступа: нейрикс", show_alert=True)
48
+ else:
49
+ await query.answer(text="Пожалуйста, подпишитесь на канал.", show_alert=True)
50
+ except Exception as e:
51
+ await query.answer(text="Пожалуйста, подпишитесь на канал", show_alert=True)
52
+
53
+
54
+
55
+ async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
56
+ await send_post(context.bot)
57
+ # Завершаем работу бота после отправки сообщения
58
+ await context.bot.stop()
59
+ # Необязательно, но можно отправить сообщение об успешной отправке в консоль
60
+ print("Сообщение отправлено в канал, бот завершил работу.")
61
+
62
+
63
+
64
+ def main() -> None:
65
+ application = Application.builder().token(TOKEN).build()
66
+
67
+ # Используем CommandHandler для запуска отправки поста
68
+ application.add_handler(CommandHandler("sendpost", start)) # Замените /start на /sendpost или другую команду
69
+ application.add_handler(CallbackQueryHandler(check_subscription))
70
+
71
+
72
+ try:
73
+ application.run_polling()
74
+
75
+
76
+ except Exception as e:
77
+ print(f"Произошла ошибка: {e}")
78
+
79
+ if __name__ == "__main__":
80
+ main()