olgram/main.py

68 lines
2.1 KiB
Python
Raw Normal View History

2021-07-11 12:53:33 +03:00
import asyncio
import argparse
2021-07-11 12:53:33 +03:00
from tortoise import Tortoise
2021-09-06 00:36:03 +03:00
from olgram.router import dp
from olgram.settings import TORTOISE_ORM, OlgramSettings
from olgram.utils.permissions import AccessMiddleware
2021-09-10 22:38:29 +03:00
from server.custom import init_redis
2021-07-11 12:53:33 +03:00
2021-09-09 10:58:33 +03:00
import olgram.commands.bots # noqa: F401
import olgram.commands.start # noqa: F401
import olgram.commands.menu # noqa: F401
import olgram.commands.bot_actions # noqa: F401
2021-12-24 19:39:25 +03:00
import olgram.commands.info # noqa: F401
2022-03-29 23:17:25 +03:00
import olgram.commands.promo # noqa: F401
2022-05-12 15:59:37 +03:00
import olgram.commands.admin # noqa: F401
2022-03-22 05:43:10 +03:00
from locales.locale import _
2021-07-11 12:53:33 +03:00
2021-09-09 23:35:13 +03:00
from server.server import main as server_main
2021-07-11 12:53:33 +03:00
async def init_database():
await Tortoise.init(config=TORTOISE_ORM)
2021-09-10 23:20:06 +03:00
async def init_olgram():
from olgram.router import bot, dp
dp.setup_middleware(AccessMiddleware(OlgramSettings.admin_id()))
2021-09-10 23:20:06 +03:00
from aiogram.types import BotCommand
await bot.set_my_commands(
[
2022-03-22 05:43:10 +03:00
BotCommand("start", _("Запустить бота")),
BotCommand("addbot", _("Добавить бот")),
BotCommand("mybots", _("Управление ботами")),
BotCommand("help", _("Справка"))
2021-09-10 23:20:06 +03:00
]
)
async def initialization():
await init_database()
await init_redis()
await init_olgram()
2021-07-11 12:53:33 +03:00
def main():
parser = argparse.ArgumentParser("Olgram bot and feedback server")
group = parser.add_mutually_exclusive_group()
group.add_argument("--noserver", help="Не запускать сервер обратной связи, только сам Olgram", action="store_true")
2022-03-13 02:29:34 +03:00
group.add_argument("--onlyserver", help="Запустить только сервер обратной связи, без Olgram", action="store_true")
args = parser.parse_args()
2022-01-19 00:42:29 +03:00
loop = asyncio.get_event_loop()
2021-09-10 23:20:06 +03:00
loop.run_until_complete(initialization())
2021-07-11 12:53:33 +03:00
if not args.onlyserver:
2022-03-13 02:19:33 +03:00
print("Run olgram polling")
loop.create_task(dp.start_polling())
if not args.noserver:
2022-03-13 02:19:33 +03:00
print("Run olgram server")
loop.create_task(server_main().start())
2021-07-11 12:53:33 +03:00
loop.run_forever()
if __name__ == '__main__':
main()