def __init__(self, config: GlobalConfig): if not self.__first_init: logger.info("Initializing") self.__loop = asyncio.get_event_loop() self.__bcc = Broadcast(loop=self.__loop) self.__app = Ariadne(broadcast=self.__bcc, chat_log_config=False, connect_info=DefaultAdapter( broadcast=self.__bcc, ping=False, mirai_session=MiraiSession( host=config.mirai_host, verify_key=str(config.verify_key), account=config.bot_qq), )) self.__saya = Saya(self.__bcc) self.__saya.install_behaviours(BroadcastBehaviour(self.__bcc)) if _install_scheduler: self.__sche = GraiaScheduler(loop=self.__loop, broadcast=self.__bcc) self.__saya.install_behaviours( GraiaSchedulerBehaviour(self.__sche)) self.__app.debug = False self.__config = config AppCore.__first_init = True logger.info("Initialize end") else: raise AppCoreAlreadyInitialized()
from SAGIRIBOT.basics.check_group_data_init import check_group_data_init from SAGIRIBOT.process.group_message_process import group_message_process from SAGIRIBOT.process.friend_message_process import friend_message_process from SAGIRIBOT.data_manage.get_data.get_rank import get_rank from SAGIRIBOT.data_manage.get_data.get_setting import get_setting from SAGIRIBOT.data_manage.update_data.update_dragon import update_dragon_data from SAGIRIBOT.basics.aio_mysql_excute import execute_sql from SAGIRIBOT.basics.tasks_listener import tasks_listener from SAGIRIBOT.functions.search_magnet import search_magnet from SAGIRIBOT.functions.petpet import petpet from SAGIRIBOT.functions.get_abbreviation_explain import get_abbreviation_explain loop = asyncio.get_event_loop() bcc = Broadcast(loop=loop) sche = GraiaScheduler(loop=loop, broadcast=bcc) with open('config.json', 'r', encoding='utf-8') as f: # 从json读配置 configs = json.loads(f.read()) app = GraiaMiraiApplication( broadcast=bcc, connect_info=Session( host="http://localhost:8080", authKey="1234567890", account=configs["BotQQ"], websocket=True ) ) # 复读判断
import asyncio import json import traceback import re from graia.application import MessageChain from graia.application.message.elements.internal import Plain, Image from graia.scheduler import GraiaScheduler from graia.scheduler.timers import crontabify from core.broadcast import bcc from core.template import logger_info from core.utils import get_url from database import BotDB check_enable_modules_all = BotDB.check_enable_modules_all scheduler = GraiaScheduler(bcc.loop, bcc) async def start_check_weekly(app): @scheduler.schedule(crontabify('30 8 * * MON')) async def check_weekly(): logger_info('Checking MCWZH weekly...') result = json.loads(await get_url( 'https://minecraft.fandom.com/zh/api.php?action=parse&page=Minecraft_Wiki/weekly&prop=text|revid&format=json' )) html = result['parse']['text']['*'] text = re.sub(r'<p>', '\n', html) # 分段 text = re.sub(r'<(.*?)>', '', text, flags=re.DOTALL) # 移除所有 HTML 标签 text = re.sub(r'\n\n\n', '\n\n', text) # 移除不必要的空行 text = re.sub(r'\n*$', '', text) img = re.findall(
import asyncio from graia.saya import Saya from graia.broadcast import Broadcast from graia.saya.builtins.broadcast import BroadcastBehaviour from graia.scheduler import GraiaScheduler from graia.scheduler.saya import GraiaSchedulerBehaviour from graia.application.entry import ( GraiaMiraiApplication, Session ) from utils import ModuleLoader, BotAttributes from utils import logger loop = asyncio.get_event_loop() broadcast = Broadcast(loop=loop) scheduler = GraiaScheduler(loop, broadcast) saya = Saya(broadcast) bot = BotAttributes("./config.json") saya.install_behaviours(BroadcastBehaviour(broadcast)) saya.install_behaviours(GraiaSchedulerBehaviour(scheduler)) ModuleLoader.load(saya) app = GraiaMiraiApplication( broadcast=broadcast, connect_info=Session( host=bot.host, authKey=bot.authKey, account=bot.account, websocket=True