mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
34 lines
844 B
Python
34 lines
844 B
Python
"""
|
|
Main application entry point.
|
|
Runs both the FastAPI application and Telegram bot.
|
|
"""
|
|
import asyncio
|
|
import uvicorn
|
|
from app.main import app
|
|
from app.bot import start_bot
|
|
from logging import getLogger
|
|
|
|
logger = getLogger(__name__)
|
|
|
|
async def run_bot():
|
|
"""Run Telegram bot"""
|
|
try:
|
|
await start_bot()
|
|
except Exception as e:
|
|
logger.error(f"Bot crashed: {e}", exc_info=True)
|
|
|
|
async def run_api():
|
|
"""Run FastAPI application"""
|
|
config = uvicorn.Config(app, host="0.0.0.0", port=8000, reload=True)
|
|
server = uvicorn.Server(config)
|
|
try:
|
|
await server.serve()
|
|
except Exception as e:
|
|
logger.error(f"API crashed: {e}", exc_info=True)
|
|
|
|
async def run_all():
|
|
"""Run both bot and API"""
|
|
await asyncio.gather(run_bot(), run_api())
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(run_all()) |