Yakova's picture
Update src/app.py
bd57d1d
import logging
import asyncio
from aiohttp import web
import asyncio
from telethon import TelegramClient
from src.Classes.Hander import Handler
import os
routes = web.RouteTableDef()
API_ID=os.environ.get("API_ID")
API_HASH=os.environ.get("API_HASH")
BOT_TOKEN=os.environ.get("BOT_TOKEN")
client = TelegramClient("stream_bot", API_ID, API_HASH)
@routes.get(r"/")
async def get_status(req: web.Request):
return web.json_response(data={"status": "working"}, status=200)
@routes.get(r"/stream/{id:\d+}")
async def handle_get_request(req: web.Request) -> web.Response:
hander = Handler(req=req, client=client)
hander.route = "inline"
return await hander.process_request()
@routes.head(r"/download/{id:\d+}")
async def handle_get_request(req: web.Request) -> web.Response:
hander = Handler(req=req, client=client)
hander.head = True
hander.route = "attachment"
return await hander.process_request()
@routes.get(r"/download/{id:\d+}")
async def handle_get_request(req: web.Request) -> web.Response:
hander = Handler(req=req, client=client)
hander.route = "attachment"
return await hander.process_request()
async def main():
port = int(os.environ.get("PORT", "7860"))
await client.start(bot_token=BOT_TOKEN)
server = web.Application()
server.add_routes(routes)
runner = web.AppRunner(server)
await runner.setup()
await web.TCPSite(runner, port=port).start()
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.run_forever()