bot / app.py
AstraOS's picture
Update app.py
7ad85cf verified
raw
history blame
1.56 kB
import os
import streamlit as st
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
import logging
import asyncio
import threading
app = FastAPI()
# Enable logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Load bot token
BOT_TOKEN = "6655373829:AAGduLdLyNx7zUtxH73Sp3Z1vHKS35tV9WU"
if not BOT_TOKEN:
raise ValueError("Bot token is not set in environment variables")
# Create the bot application
application = Application.builder().token(BOT_TOKEN).build()
# Define the /start command handler
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hello! This bot is running on Hugging Face Spaces πŸš€")
# Add command handlers
application.add_handler(CommandHandler("start", start))
# Function to run polling in a thread-safe way
def run_polling():
loop = asyncio.new_event_loop() # Create a new event loop
asyncio.set_event_loop(loop) # Set it for the current thread
loop.run_until_complete(application.run_polling(close_loop=True)) # Run polling in the loop
# Streamlit UI
st.title("Telegram Bot on Streamlit")
st.write("This bot is running using Streamlit and Python-Telegram-Bot.")
# Button to start the bot
if st.button("Start Bot"):
thread = threading.Thread(target=run_polling, daemon=True) # Run polling in a background thread
thread.start()
st.write("Bot started successfully and is now polling Telegram!")