Example #1
0
 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()
Example #2
0
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
    )
)

# 复读判断
Example #3
0
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(
Example #4
0
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