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() client = TelegramClient("stream_bot", 870972, "ce2efaca02dfcd110941be6025e9ac0d") @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", "8080")) await client.start(bot_token="384248541:AAFRkVeRyCUvlO_JuIzsE5qbWGt7-Mi7WKk") 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()