File size: 1,627 Bytes
7ad85cf
 
 
 
 
 
 
d5fcd88
 
 
a6e3f28
20eb075
7ad85cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import os
import streamlit as st
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
import logging
import asyncio
import threading
import telebot
from fastapi import FastAPI, Request
import uvicorn

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!")