mirror of
https://github.com/civsocit/olgram.git
synced 2023-07-22 01:29:12 +03:00
61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
|
import asyncio
|
||
|
|
||
|
from aiogram import Bot as AioBot, Dispatcher
|
||
|
from aiogram.contrib.fsm_storage.memory import MemoryStorage
|
||
|
from tortoise.signals import post_delete, post_save
|
||
|
from tortoise import Tortoise
|
||
|
|
||
|
from olgram.settings import BotSettings, TORTOISE_ORM
|
||
|
|
||
|
from olgram.commands.bots import router as bots_router
|
||
|
from olgram.commands.start import router as start_router
|
||
|
from olgram.commands.bot import router as bot_router
|
||
|
|
||
|
from olgram.models.models import Bot
|
||
|
from extendedinstance.bot import BotInstanceDatabase
|
||
|
|
||
|
|
||
|
@post_save(Bot)
|
||
|
async def signal_post_save(
|
||
|
sender,
|
||
|
instance: Bot,
|
||
|
created: bool,
|
||
|
using_db,
|
||
|
update_fields,
|
||
|
) -> None:
|
||
|
if created:
|
||
|
await BotInstanceDatabase.on_create(instance)
|
||
|
|
||
|
|
||
|
@post_delete(Bot)
|
||
|
async def signal_post_delete(sender, instance: Bot, using_db) -> None:
|
||
|
await BotInstanceDatabase.on_delete(instance)
|
||
|
|
||
|
|
||
|
async def init_database():
|
||
|
await Tortoise.init(config=TORTOISE_ORM)
|
||
|
|
||
|
|
||
|
def main():
|
||
|
"""
|
||
|
Classic polling
|
||
|
"""
|
||
|
loop = asyncio.get_event_loop()
|
||
|
loop.run_until_complete(init_database())
|
||
|
|
||
|
bot = AioBot(BotSettings.token())
|
||
|
dp = Dispatcher(bot, storage=MemoryStorage())
|
||
|
|
||
|
start_router.setup(dp)
|
||
|
bots_router.setup(dp)
|
||
|
bot_router.setup(dp)
|
||
|
|
||
|
loop.run_until_complete(BotInstanceDatabase.run_all())
|
||
|
loop.create_task(dp.start_polling())
|
||
|
|
||
|
loop.run_forever()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|