TelegramWebhook / app.py
wb-droid's picture
Add some messages.
03a26dc
from fastapi import FastAPI, Request
import gradio as gr
import requests
import os
API_TOKEN = os.environ.get('HUGGINGFACE_API_KEY')
HF_API_KEY = API_TOKEN
TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN')
BASE_URL = f"https://api.telegram.org/bot{TOKEN}"
CUSTOM_PATH = "/gradio"
app = FastAPI()
@app.get("/")
async def read_main():
return {"message": "/webhook is for Telegram webhook and works. But respond message cannot be sent because Huggingface space does not support connection to https://api.telegram.org/."}
@app.post("/")
async def read_main():
return {"message": "This is for dummy webhook"}
@app.post("/webhook")
async def webhook(req: Request):
data = await req.json()
chat_id = data['message']['chat']['id']
text = data['message']['text']
msg = f"{BASE_URL}/sendMessage?chat_id={chat_id}&text={text}"
# Sending message to api.telegram.org fails for "No address associated with hostname"
#response = requests.get(msg)
return data
@app.get("/webhook")
async def webhook_get():
return {"message": "/webhook for Telegram webhook is running. It accepts POST request from Telegram server."}
def flip_text(x):
return x[::-1]
with gr.Blocks() as demo:
gr.Markdown(
"""
# Flip Text!
Start typing below to see the output.
"""
)
input = gr.Textbox(placeholder="Flip this text")
output = gr.Textbox()
input.change(fn=flip_text, inputs=input, outputs=output)
gr.mount_gradio_app(app, demo, path=CUSTOM_PATH)