Esempio n. 1
0
 def __init__(self, app_configs: Dict, configs: Dict):
     self.directs = {}
     self.docs = {}
     self.schedules = {}
     self.inner_commands = {}
     self.commands = {}
     self.schedule_task_list = []
     self.message_queue = Queue()
     self.command_queue = Queue()
     self.history = None
     self.loop = asyncio.get_event_loop()
     self.bcc = Broadcast(loop=self.loop)
     self.counters = [0, 0]
     if configs['debug']:
         global defaultLogger
         defaultLogger.close()
         defaultLogger = DefaultLogger(level=DEBUG)
     self.logger = defaultLogger
     self.app = GraiaMiraiApplication(broadcast=self.bcc,
                                      connect_info=Session(**app_configs),
                                      logger=self.logger,
                                      debug=configs['debug'])
     self.prefix = configs['prefix']
     self.db = Storage.load()
     self.load_mods()
Esempio n. 2
0
 def __init__(self, config: dict):
     if not self.__first_init:
         logger.info("Initializing")
         if any(parameter not in config
                for parameter in self.necessary_parameters):
             raise ValueError(
                 f"Missing necessary parameters! (miraiHost, authKey, BotQQ)"
             )
         self.__loop = asyncio.get_event_loop()
         self.__bcc = Broadcast(loop=self.__loop)
         self.__app = GraiaMiraiApplication(broadcast=self.__bcc,
                                            connect_info=Session(
                                                host=config["miraiHost"],
                                                authKey=config["authKey"],
                                                account=config["BotQQ"],
                                                websocket=True),
                                            enable_chat_log=False)
         self.__saya = Saya(self.__bcc)
         self.__saya.install_behaviours(BroadcastBehaviour(self.__bcc))
         self.__app.debug = False
         self.__config = config
         AppCore.__first_init = True
         logger.info("Initialize end")
     else:
         raise AppCoreAlreadyInitialized()
Esempio n. 3
0
 def __init__(self, account, key):
     self.loop = asyncio.get_event_loop()
     self.bcc = Broadcast(loop=self.loop)
     self.scheduler = AsyncIOScheduler()
     self.mirai = GraiaMiraiApplication(broadcast=self.bcc,
                                        connect_info=Session(
                                            host="http://localhost:8080",
                                            authKey=key,
                                            account=account,
                                            websocket=True))
Esempio n. 4
0
    def start(self):

        message_handler = MsgHandler()
        # message_handler.initHandler()

        loop = asyncio.get_event_loop()

        bcc = Broadcast(loop=loop)
        app = GraiaMiraiApplication(
            broadcast=bcc,
            connect_info=Session(
                host="http://*****:*****@bcc.receiver("FriendMessage")
        async def friend_message_listener(graia_app: GraiaMiraiApplication,
                                          friend: Friend,
                                          message: MessageChain):
            async def friend_sender(send_msg):
                result = await graia_app.sendFriendMessage(
                    friend, MessageChain.create([send_msg]))
                if result:
                    self.set_send_msg_flag(False)
                    threading.Timer(5.0, self.set_send_msg_flag).start()

            msg = message.asDisplay()
            log.i("receive friend message: %s" % msg)
            await message_handler.handle(msg, friend_sender, friend=friend)

        @bcc.receiver("GroupMessage")
        async def group_message_listener(graia_app: GraiaMiraiApplication,
                                         group: Group, member: Member,
                                         message: MessageChain):
            async def group_sender(send_msg):
                should_respond = True
                if member.id == aqiang_id:
                    should_respond = False

                if should_respond:
                    result = await graia_app.sendGroupMessage(
                        group, MessageChain.create([send_msg]))
                    if result:
                        self.set_send_msg_flag(False)
                        threading.Timer(5.0, self.set_send_msg_flag).start()

            msg = message.asDisplay()
            log.i("receive group message: %s" % msg)
            await message_handler.handle(msg, group_sender)

        app.launch_blocking()
Esempio n. 5
0
async def sendMsg(app: GraiaMiraiApplication,
                  msg: MESSAGE_T,
                  qq: int = None,
                  group: int = None):
    if isinstance(msg, str):
        msg = MessageChain.create([Plain(msg)])
    if isinstance(msg, ExternalElement):
        msg = MessageChain.create([msg])
    msg = msg.asSendable()
    if qq:
        asyncio.create_task(app.sendFriendMessage(qq, msg))
    if group:
        asyncio.create_task(app.sendGroupMessage(group, msg))
Esempio n. 6
0
def exception_resender_listener(app: GraiaMiraiApplication,
                                exception_resender_instance: ExceptionReSender,
                                loop):
    while True:
        task = exception_resender_instance.get()
        # print("task: ", task)
        if task:
            print("task catched!")
            print("len:", exception_resender_instance.getLen())
            print("task: ", task)
            try:
                if len(task) > 1 and task[0] == "None":
                    asyncio.run_coroutine_threadsafe(
                        app.sendGroupMessage(task[4], task[1]), loop)
                    # await app.sendGroupMessage(task[4], task[1])
                elif len(task) > 1 and task[0] == "AtSender":
                    asyncio.run_coroutine_threadsafe(
                        app.sendGroupMessage(task[4], task[1]), loop)
                    # await app.sendGroupMessage(task[4], task[1])
                elif len(task) > 1 and task[0] == "quoteSource":
                    asyncio.run_coroutine_threadsafe(
                        app.sendGroupMessage(task[4],
                                             task[1],
                                             quote=task[2][Source][0]), loop)
                    # await app.sendGroupMessage(task[4], task[1], quote=task[2][Source][0])
                elif len(task) > 1 and task[0] == "revoke":
                    asyncio.run_coroutine_threadsafe(revoke_process(app, task),
                                                     loop)
                    # msg = asyncio.run_coroutine_threadsafe(app.sendGroupMessage(task[4], task[1]), loop)
                    # asyncio.run_coroutine_threadsafe(asyncio.sleep(20), loop)
                    # asyncio.run_coroutine_threadsafe(app.revokeMessage(msg.result()), loop)
                    # msg = await app.sendGroupMessage(task[4], task[1])
                    # await asyncio.sleep(20)
                    # await app.revokeMessage(msg)
            except Exception:
                task[5] += 1
                if task[5] <= exception_resender_instance.max_retries:
                    exception_resender_instance.addTask(task)
                else:
                    asyncio.run_coroutine_threadsafe(
                        app.sendGroupMessage(
                            task[4],
                            MessageChain.create([
                                Plain(
                                    text=
                                    "Maximum number of retries exceeded! Task cancelled!"
                                )
                            ]),
                            quote=task[2][Source][0]), loop)
        time.sleep(2)
Esempio n. 7
0
def main():
    loop = asyncio.get_event_loop()
    bcc = Broadcast(loop=loop)
    app = GraiaMiraiApplication(
        broadcast=bcc,
        connect_info=Session(
            host="http://xqh.ma:12321",  # 填入 httpapi 服务运行的地址
            authKey="ltrump923429",  # 填入 authKey
            account=3218088431,  # 你的机器人的 qq 号
            websocket=True  # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
        ))
    env['app'] = app
    env['bcc'] = bcc
    load_plugins()
    app.launch_blocking()
def NetEaseMusic(app: GraiaMiraiApplication, group: Group, member: Member,
                 message: MessageChain):
    msg_argv = message.asDisplay().split(" ", 1)
    SearchResult = requests.get(
        "https://musicapi.leanapp.cn/search?" +
        urllib.parse.urlencode({"keywords": msg_argv[1]}),
        timeout=3).json()['result']['songs'][0]
    SongId = SearchResult['id']
    SongName = SearchResult['name']
    ArtistName = '/'.join([x['name'] for x in SearchResult['artists']])
    CoverPic = requests.get("https://musicapi.leanapp.cn/song/detail?ids=" +
                            str(SongId),
                            timeout=3).json()['songs'][0]['al']['picUrl']
    MusicUrl = "https://music.163.com/song/media/outer/url?id=" + str(
        SongId) + ".mp3"
    WebUrl = "https://music.163.com/#/song?id=" + str(SongId)

    finalXML = '''<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="2" templateID="1" action="web" brief="[分享] {SongName}" sourceMsgId="0" url="{WebUrl}" flag="0" adverSign="0" multiMsgFlag="0"><item layout="2"><audio cover="{CoverPic}" src="{MusicUrl}" /><title>{SongName}</title><summary>{ArtistName}</summary></item><source name="网易云音乐" icon="https://s1.music.126.net/style/favicon.ico?v20180823" url="{WebUrl}" action="app" a_actionData="com.tencent.qqmusic" i_actionData="tencent1101079856://" appid="1101079856" /></msg>'''.format(
        SongName=SongName,
        WebUrl=WebUrl,
        CoverPic=CoverPic,
        MusicUrl=MusicUrl,
        ArtistName=ArtistName)
    # return app.sendGroupMessage(
    #     group.id,
    # MessageChain.create(
    #     [
    #         Plain(MusicUrl),
    #         Plain(SongName),
    #         Plain(str(SongId))
    #     ]
    # )

    return app.sendGroupMessage(
        group.id, MessageChain.create([Plain(""), Xml(xml=finalXML)]))
def exception_resender_listener(app: GraiaMiraiApplication,
                                exception_resender_instance: ExceptionReSender,
                                loop):
    while True:
        task = exception_resender_instance.get()
        if task:
            logger.warning("task catched! " + "len:" +
                           str(exception_resender_instance.getLen()) +
                           "task: " + str(task))
            try:
                asyncio.run_coroutine_threadsafe(
                    task[0].strategy.send(app, task[0].message, task[1],
                                          task[2], task[3]), loop)
            except Exception:
                task[4] += 1
                if task[4] <= exception_resender_instance.max_retries:
                    exception_resender_instance.addTask(task)
                else:
                    logger.error(
                        "Maximum number of retries exceeded! Task cancelled!")
                    asyncio.run_coroutine_threadsafe(
                        app.sendGroupMessage(
                            task[4],
                            MessageChain.create([
                                Plain(
                                    text=
                                    "Maximum number of retries exceeded! Task cancelled!"
                                )
                            ]),
                            quote=task[1][Source][0]), loop)
        time.sleep(2)
Esempio n. 10
0
def WangYiYun(app: GraiaMiraiApplication, group: Group, member: Member,
              message: MessageChain):
    r = requests.get("https://nd.2890.ltd/api/")
    data = json.loads(r.text)
    payload = data['data']['content']['content']
    return app.sendGroupMessage(group.id,
                                MessageChain.create([Plain(text=payload)]))
Esempio n. 11
0
def AnimePicCome(app: GraiaMiraiApplication, group: Group, member: Member,
                 message: MessageChain):
    os.system(
        "cd ./pic/;wget https://acg.yanwz.cn/api.php --no-check-certificate;mv api.php api.png"
    )
    return app.sendGroupMessage(
        group.id, MessageChain.create([Image.fromLocalFile("./pic/api.png")]))
Esempio n. 12
0
def TodayInHistory(app: GraiaMiraiApplication, group: Group, member: Member,
                   message):
    r = requests.get("https://api.asilu.com/today")
    data = json.loads(r.text)
    payload = "今天是" + data['month'] + "月" + data['day'] + "日,在历史上的今天:\n"
    for i in data['data']:
        payload = payload + str(i['year']) + "年," + i['title'] + "\n"
    return app.sendGroupMessage(group.id,
                                MessageChain.create([Plain(text=payload)]))
Esempio n. 13
0
def hitokoto(app: GraiaMiraiApplication, group: Group, member: Member,
             message: MessageChain):
    hitokoto_instance = requests.get(
        "https://v1.hitokoto.cn/?c=a&c=b&c=d&c=i&c=k").json()
    return app.sendGroupMessage(
        group.id,
        MessageChain.create([
            Plain(text=hitokoto_instance['from'] + ": " +
                  hitokoto_instance['hitokoto'])
        ]))
Esempio n. 14
0
def draw_lots(app: GraiaMiraiApplication, group: Group, member: Member,
              message: MessageChain):
    with open('./draw/draw_lots.json', 'rb') as json_f:
        json_load = json.load(json_f)
        gua = json_load["六十四卦"][random.randint(0, 63)]
        payload = gua + "卦象解析如下:" + json_load[gua[-3:-1]][random.randint(
            0,
            len(json_load[gua[-3:-1]]) - 1)]
    return app.sendGroupMessage(group.id,
                                MessageChain.create([Plain(payload)]))
Esempio n. 15
0
def MakeaChoice(app: GraiaMiraiApplication, group: Group, member: Member,
                message: MessageChain):
    msg_argv = shlex.split(message.asDisplay())
    kw = ""
    try:
        kw = msg_argv[1]
    except:
        pass
    lst = kw.split(";")
    if "" in lst:
        lst.remove("")
    result = random.choice(lst)
    payload = "我的提议是" + str(result) + ",你看怎么样?"
    return app.sendGroupMessage(group.id,
                                MessageChain.create([Plain(payload)]))
Esempio n. 16
0
def ahelp(app: GraiaMiraiApplication, group: Group, member: Member,
          message: MessageChain):
    payload = '''乌理扬诺娃换库辣!代码重写中.....
    目前已开启的的命令:
    #help: 打开帮助面板
    #一言: 一句经典的话,
    #网抑云: 网抑云语录,
    #历史上的今天: 历史上的今天发生了什么?,
    #精神小伙: 精神小伙语录,
    #网易云 (要点的歌曲): 网易云点歌
    #来点二次元 :来个二次元图片
    #随机 (选项1);(选项2)... :选择困难症的好帮手!让机器人来帮你选了吧!
    '''
    return app.sendGroupMessage(group.id,
                                MessageChain.create([Plain(payload)]))
Esempio n. 17
0
    def __init__(self):

        host = Util.getConfig("mirai", "host")
        port = Util.getConfig("mirai", "port")
        authKey = Util.getConfig("mirai", "authKey")
        account = Util.getConfig("mirai", "account")
        url = "http://" + "{}:{}".format(host, port)
        self.app = GraiaMiraiApplication(
            broadcast=bcc,
            connect_info=Session(
                host=url,  # 填入 httpapi 服务运行的地址
                authKey=authKey,  # 填入 authKey
                account=account,  # 你的机器人的 qq 号
                websocket=False  # Graia `已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
            ))
Esempio n. 18
0
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
    )
)

# 复读判断
group_repeat = dict()
tasks = Queue()
lock=threading.Lock()


# async def group_message_sender(message_info: GroupMessage, message: list, group: Group,
#                                app: GraiaMiraiApplication) -> None:
#     message_send = await group_message_process(message, message_info, app)
#     await group_assist_process(message, message_info, message_send, group)
Esempio n. 19
0
# 超级管理员

start_baiDu_group = []
mast_manager_group = []
quick_find_question_list = {}
shutdown_all_group = []
loop = asyncio.get_event_loop()  # 获取bot运行的协程

json_config = {}

bcc = Broadcast(loop=loop)

app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host=API_ROOT,  # httpapi 服务运行的地址
        authKey=AuthKey,  # authKey
        account=BOTQQ,  # 机器人的 qq 号
        websocket=True  # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
    ))


async def ReadConfig():
    try:
        with open('config.json', 'r') as f:
            global json_config
            json_config = json.load(f).copy()
            if 'baiDu_group' in json_config.keys():
                for i in json_config['baiDu_group']:
                    start_baiDu_group.append(i)
            if 'shutdown_all_group' in json_config.keys():
                for i in json_config['shutdown_all_group']:
Esempio n. 20
0
from graia.application.friend import Friend
from graia.application.group import Group, Member
from graia.application.message.chain import MessageChain
from graia.application.message.elements.internal import Source, Plain, At, Image, Face
from graia.broadcast import Broadcast

from commands import std, easter_eggs
from config import host, auth_key, account, database_path, information_groups
from icu.decorator import command
from icu.database import Database

loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(host=host,
                                                 authKey=auth_key,
                                                 account=account,
                                                 websocket=True))

database = Database(database_path)
command.register(
    registers=(
        std.register_common_commands,
        std.register_database_commands,
        easter_eggs.register_common_commands,
    ),
    database=database,
)
# average_message_length,用于判断大喘气:member_id, length, count
aml = collections.defaultdict(lambda: [0, 0, 0])
Esempio n. 21
0
from graia.application import GraiaMiraiApplication, Session
from graia.application.event.lifecycle import ApplicationLaunched, ApplicationShutdowned
from graia.broadcast import Broadcast

from handler import *
from handler.handler_manager import HandlerManager
from pixiv import start_auto_auth, start_search_helper, start_illust_cacher, stop_illust_cacher, stop_search_helper
from utils import settings, start_reply_queue, stop_reply_queue, LoguruWarpper

loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host=
        f"""http://{settings["mirai"]["host"]}:{settings["mirai"]["port"]}""",  # 填入 httpapi 服务运行的地址
        authKey=settings["mirai"]["auth_key"],  # 填入 authKey
        account=int(settings["mirai"]["qq"]),  # 你的机器人的 qq 号
        # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
        websocket=settings["mirai"]["enable_websocket"]),
    logger=LoguruWarpper())

manager = HandlerManager(bcc)
manager.register(HelpQueryHandler(tag="help query", settings=settings["help"]),
                 priority=settings["function"]["priority"]["help"],
                 allow_friend=settings["function"]["friend"]["listen"]
                 if settings["function"]["friend"]["help"] else [],
                 allow_group=settings["function"]["group"]["listen"]
                 if settings["function"]["group"]["help"] else [])
manager.register(PixivRankingQueryHandler(tag="ranking query",
                                          settings=settings["ranking"]),
                 priority=settings["function"]["priority"]["ranking"],
Esempio n. 22
0
from graia.application import GraiaMiraiApplication, Session
from graia.application.entry import MemberJoinRequestEvent, MessageChain, Plain
from graia.broadcast import Broadcast
from graia.broadcast.builtin.decoraters import Depend
from graia.broadcast.exceptions import ExecutionStop

from chancechecker import chanceChecker
from verifyuid import verifyQmailUid

# Application & BCC 初始化
loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(
                                host=os.environ['graia-host'],
                                authKey=os.environ['graia-authkey'],
                                account=int(os.environ['graia-account']),
                                websocket=True),
                            enable_chat_log=False
                            )


class qqGroup(object):
    '''QQ 群号'''
    main = 586146922  # 主用户群
    cafe = 651672723  # 咖啡馆
    admins = 985317265  # 运营组


workInGroups = [qqGroup.main, qqGroup.cafe]  # 在这些群内工作

Esempio n. 23
0
import tenxun_voice
import huangli
import Tao

config = configparser.ConfigParser() # ini类实例化
loop = asyncio.get_event_loop()

config.read("tao.ini")
bcc = Broadcast(loop=loop)


app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host="{}:{}".format(config['connect_mirai']['host'],config['connect_mirai']['port']),  # 填入 httpapi 服务运行的地址
        authKey=config['connect_mirai']['authKey'],  # 填入 authKey
        account=config.getint('connect_mirai','account'),  # 机器人的 qq 号
        websocket=config.getboolean('connect_mirai','websocket')  # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
    ),
    logger=log.CustomLogger() #继承日志输出的抽象调用方法
)
inc =InterruptControl(bcc)

async def netease_cloud_music_hot(some,*member):
    send_message = MessageChain.create([Plain(wangyiyun.reping())])
    if member[0] == ():
        await app.sendFriendMessage(some, send_message)
    else:
        at = MessageChain.create([At(member[0][0].id)])
        await app.sendGroupMessage(some,MessageChain.join(at,send_message))

async def netease_cloud_music_get(some,rmsg,*member):
Esempio n. 24
0
    r = requests.post(url, params=payload, headers=headers)
    rr = r.json()
    return rr['trans_result'][0]['dst']


def ai(ms):
    r = requests.get(
        f'http://api.qingyunke.com/api.php?key=free&appid=0&msg={ms}').json()
    return re.sub('''{br}''', '\n', r['content'])


loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(host="http://*****:*****@bcc.receiver("FriendMessage")
async def deff(
    message: MessageChain,
    app: GraiaMiraiApplication,
    friend: Friend,
):
    fll = 0
    for mme in range(1, 10):
        if message.asDisplay().startswith('xx' + str(mme)):
            await app.sendFriendMessage(friend,
                                        MessageChain.create([Plain(kkb(mme))]))
Esempio n. 25
0
from function.danmaku import livewrite, entrance, get_info
from function.live import getlive, liveend, livechange

loop = asyncio.get_event_loop()
info = {}

ua = Faker()
headers = {'User-Agent': str(ua.user_agent)}
global null
null = ''
groups = [372733015, 875626950, 766517688, 862315052, 729801800]
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host="http://42.193.102.81:8080",  # 填入 httpapi 服务运行的地址
        authKey="myon759572692",  # 填入 authKey
        account=2157510360,  # 你的机器人的 qq 号
        websocket=True  # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
    ))
inc = InterruptControl(bcc)

bvpattern = re.compile(r'BV1[1-9A-NP-Za-km-z]{9}')


@bcc.receiver(GroupMessage)
async def group_message_handler(app: GraiaMiraiApplication,
                                message: MessageChain, group: Group,
                                member: Member):

    url = ""
    b23_url = ""  # 先申请好两种要用的url
Esempio n. 26
0
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())

if configs["highPerformance"]:
    from SAGIRIBOT.high_performances.porn_identification import porn_identification
    from SAGIRIBOT.basics.tools import save_img

app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(host=configs["miraiHost"],
                                                 authKey=configs["authKey"],
                                                 account=configs["BotQQ"],
                                                 websocket=True))

# 复读判断
group_repeat = dict()
tasks = Queue()
lock = threading.Lock()
frequency_limit_dict = {}
frequency_limit_instance = None
exception_resender_instance = None


# async def group_message_sender(message_info: GroupMessage, message: list, group: Group,
#                                app: GraiaMiraiApplication) -> None:
#     message_send = await group_message_process(message, message_info, app)
Esempio n. 27
0
# 从设置文件中读api的地址
if os.path.exists("config.ini"):
    conf = configparser.ConfigParser()
    conf.read("setting.ini")
    api_url = conf.get("API", "API", fallback='http://*****:*****@bcc.receiver("FriendMessage")
async def group_message_handler(message: MessageChain, friend: Friend,
                                graia_app: GraiaMiraiApplication):
    if message.has(Plain):
        request_text = message[Plain][0].text  # 获取传来的数据的要求
        request_parm = request_text.split()  # 将传来的数据split开
        if len(request_parm) > 1:  # 当传来的request可以分为多于一个值的时候
            if request_parm[0].lower() == "search":  # 如果第一个单词是search,则执行查询论文指令
                # 解析传入的查询信息
                search_flag = "query"
Esempio n. 28
0
import AutoUpdate
import logging
import json

logging.basicConfig(level=logging.INFO)

loop = asyncio.get_event_loop()

with open('./config.json', encoding='utf-8') as config_file:
    config = json.load(config_file)

bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(
                                host='http://localhost:{}'.format(
                                    config['Graia']['port']),
                                authKey=config['Graia']['authKey'],
                                account=config['Graia']['qq'],
                                websocket=True))

Bot = AutoUpdate.PCRBot()
Bot.initialize()

Global_group = config['Graia']['group']
boss_num, legal_begin = [], ['状态', '绑定', '总查刀', '查', '预约', '获取']

# for b in ['1', '2', '3', '4', '5.5', '5']:
#     legal_begin.append('查' + b)
#     legal_begin.append('预约' + b)

Esempio n. 29
0
import asyncio
from graia.broadcast import Broadcast
from graia.application import GraiaMiraiApplication
from graia.application.session import Session
from graia.application.message.chain import MessageChain
from graia.application.group import Group, Member

from devtools import debug

loop = asyncio.get_event_loop()

bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(broadcast=bcc,
                            connect_info=Session(host="http://*****:*****@bcc.receiver("GroupMessage")
async def group_message_handler(app: GraiaMiraiApplication,
                                message: MessageChain, group: Group,
                                member: Member):
    print(group.id, member.id)


app.launch_blocking()
Esempio n. 30
0
loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
saya = Saya(bcc)

config_path = Path("config.yaml")
if not config_path.is_file():
    config_path.write_text(Path("config.yaml.sample").read_text())
    sys.exit(1)
config = yaml.load(config_path.read_text(), Loader=SafeLoader)

saya.install_behaviours(BroadcastBehaviour(bcc))
app = GraiaMiraiApplication(
    broadcast=bcc,
    connect_info=Session(
        host=config["mirai"]["host"],
        authKey=config["mirai"]["authKey"],
        account=config["mirai"]["account"],
        websocket=config["mirai"]["websocket"],
    ),
)

with saya.module_context():
    for i in get_all_package_name("functions/"):
        saya.require("functions.{}".format(i), config)

try:
    app.launch_blocking()
except KeyboardInterrupt:
    sys.exit()