35 lines
902 B
Python
35 lines
902 B
Python
import asyncio
|
|
import logging
|
|
from sys import exit
|
|
|
|
import uvloop
|
|
|
|
from nwxraybot import NwXrayBot, Settings
|
|
from nwxraybot.handlers import *
|
|
from nwxraybot.models import User
|
|
|
|
|
|
async def main(bot: NwXrayBot, skip_updates: bool = True) -> None:
|
|
await asyncio.create_task(bot.start())
|
|
|
|
if __name__ == "__main__":
|
|
config = Settings() # Load config from .env
|
|
logging.basicConfig(level=logging.DEBUG if config.debug else logging.INFO)
|
|
|
|
# Check if bot token is set
|
|
if config.bot_token == 'token':
|
|
logging.error("Bot token is not set")
|
|
exit(1)
|
|
|
|
User.create_table()
|
|
|
|
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
|
loop = uvloop.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
|
|
# Start bot
|
|
bot = NwXrayBot(config.bot_token.get_secret_value())
|
|
bot.include_routers(HelloHandler(), MenuHandler(), AdminHandler())
|
|
|
|
asyncio.run(main(bot))
|