forked from civsocit/olgram
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
67 lines (51 loc) · 2.08 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import asyncio
import argparse
from tortoise import Tortoise
from olgram.router import dp
from olgram.settings import TORTOISE_ORM, OlgramSettings
from olgram.utils.permissions import AccessMiddleware
from server.custom import init_redis
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
import olgram.commands.info # noqa: F401
import olgram.commands.promo # noqa: F401
import olgram.commands.admin # noqa: F401
from locales.locale import _
from server.server import main as server_main
async def init_database():
await Tortoise.init(config=TORTOISE_ORM)
async def init_olgram():
from olgram.router import bot, dp
dp.setup_middleware(AccessMiddleware(OlgramSettings.admin_id()))
from aiogram.types import BotCommand
await bot.set_my_commands(
[
BotCommand("start", _("Запустить бота")),
BotCommand("addbot", _("Добавить бот")),
BotCommand("mybots", _("Управление ботами")),
BotCommand("help", _("Справка"))
]
)
async def initialization():
await init_database()
await init_redis()
await init_olgram()
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")
group.add_argument("--onlyserver", help="Запустить только сервер обратной связи, без Olgram", action="store_true")
args = parser.parse_args()
loop = asyncio.get_event_loop()
loop.run_until_complete(initialization())
if not args.onlyserver:
print("Run olgram polling")
loop.create_task(dp.start_polling())
if not args.noserver:
print("Run olgram server")
loop.create_task(server_main().start())
loop.run_forever()
if __name__ == '__main__':
main()