Files
pyrogram-bridge/api_server.py
T
2025-02-01 16:47:46 +03:00

43 lines
1.1 KiB
Python

from fastapi import FastAPI, HTTPException, Response
from telegram_client import TelegramClient
from config import get_settings
import logging
import json
logger = logging.getLogger(__name__)
app = FastAPI(title="PyroTg Bridge")
client = TelegramClient()
settings = get_settings()
@app.on_event("startup")
async def startup():
await client.start()
@app.on_event("shutdown")
async def shutdown():
await client.stop()
@app.get("/post/{channel}/{post_id}")
async def get_post(channel: str, post_id: int):
try:
data = await client.get_post(channel, post_id)
return Response(
content=json.dumps(data),
media_type="application/json"
)
except Exception as e:
logger.error(f"API error: {str(e)}")
raise HTTPException(
status_code=404,
detail={
"error": "post_retrieval_error",
"message": str(e)
}
) from e
@app.get("/status")
async def health_check():
return {
"status": "ok",
"connected": client.client.is_connected
}