forked from Kabuda-czh/BBot-Graia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
55 lines (44 loc) · 1.5 KB
/
bot.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
import asyncio
import contextlib
from creart import it
from pathlib import Path
from graia.saya import Saya
from graia.ariadne.app import Ariadne
from graia.scheduler import GraiaScheduler
from graiax.playwright.service import PlaywrightService
from graia.ariadne.entry import config, HttpClientConfig, WebsocketClientConfig
from core.log import logger
from core.bot_config import BotConfig
from core.announcement import base_telemetry
logger.info("BBot is starting...")
base_telemetry()
host = BotConfig.Mirai.mirai_host
app_config = config(
BotConfig.Mirai.account,
BotConfig.Mirai.verify_key,
HttpClientConfig(host),
WebsocketClientConfig(host),
)
app = Ariadne(app_config)
app.config(install_log=True)
if BotConfig.Bilibili.use_browser:
app.launch_manager.add_service(
PlaywrightService(
user_data_dir=Path("data").joinpath("browser"),
device_scale_factor=2 if BotConfig.Bilibili.mobile_style else 1.25,
user_agent=(
"Mozilla/5.0 (Linux; Android 10; RMX1911) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36"
)
if BotConfig.Bilibili.mobile_style
else "",
)
)
app.create(GraiaScheduler)
saya = it(Saya)
with saya.module_context():
saya.require("function")
import function # noqa: E402 F401
with contextlib.suppress(KeyboardInterrupt, asyncio.exceptions.CancelledError):
app.launch_blocking()
logger.info("BBot is shutting down...")