Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, Request, Response | |
| from contextlib import asynccontextmanager | |
| from http import HTTPStatus | |
| from telegram import ForceReply, Update | |
| from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters | |
| # Initialize python telegram bot | |
| ptb = ( | |
| Application.builder() | |
| .updater(None) | |
| .token('7163529766:AAGGGlSjVqtcm_b0vJJu7sU9Y7VzSzeYNZg') | |
| .read_timeout(7) | |
| .get_updates_read_timeout(42) | |
| .build() | |
| ) | |
| async def lifespan(_: FastAPI): | |
| await ptb.bot.setWebhook('https://manishx-telegrambot.hf.space/') | |
| async with ptb: | |
| await ptb.start() | |
| yield | |
| await ptb.stop() | |
| # Initialize FastAPI app (similar to Flask) | |
| app = FastAPI(lifespan=lifespan) | |
| def read_general(): | |
| return {"response": "Started"} | |
| async def process_update(request: Request): | |
| req = await request.json() | |
| update = Update.de_json(req, ptb.bot) | |
| await ptb.process_update(update) | |
| return Response(status_code=HTTPStatus.OK) | |
| # Define a few command handlers. These usually take the two arguments update and context. | |
| async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: | |
| """Send a message when the command /start is issued.""" | |
| user = update.effective_user | |
| await update.message.reply_html( | |
| rf"Hi {user.mention_html()}!", | |
| reply_markup=ForceReply(selective=True), | |
| ) | |
| async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: | |
| """Send a message when the command /help is issued.""" | |
| await update.message.reply_text("Help!") | |
| async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: | |
| """Echo the user message.""" | |
| await update.message.reply_text(update.message.text) | |
| # on different commands - answer in Telegram | |
| ptb.add_handler(CommandHandler("start", start)) | |
| ptb.add_handler(CommandHandler("help", help_command)) | |
| # on non command i.e message - echo the message on Telegram | |
| ptb.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo)) | |