2021-07-11 12:53:33 +03:00
|
|
|
|
import asyncio
|
2021-09-28 01:43:57 +03:00
|
|
|
|
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
|
2021-10-01 19:48:23 +03:00
|
|
|
|
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-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():
|
2021-10-01 19:48:23 +03:00
|
|
|
|
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():
|
2022-02-19 05:53:53 +03:00
|
|
|
|
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")
|
2021-09-28 01:43:57 +03:00
|
|
|
|
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
|
|
|
|
|
2022-02-19 05:53:53 +03:00
|
|
|
|
if not args.onlyserver:
|
2022-03-13 02:19:33 +03:00
|
|
|
|
print("Run olgram polling")
|
2022-02-19 05:53:53 +03:00
|
|
|
|
loop.create_task(dp.start_polling())
|
2021-09-28 01:43:57 +03:00
|
|
|
|
if not args.noserver:
|
2022-03-13 02:19:33 +03:00
|
|
|
|
print("Run olgram server")
|
2021-09-28 01:43:57 +03:00
|
|
|
|
loop.create_task(server_main().start())
|
2021-07-11 12:53:33 +03:00
|
|
|
|
|
|
|
|
|
loop.run_forever()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
main()
|