예제 #1
0
파일: main.py 프로젝트: dannyXSC/mirai-talk
async def electricity(app: GraiaApp, message: MessageChain, group: Group):
    if not (group.id in TEST_GROUP_LIST
            and message.asDisplay().startswith("电费")):
        return

    async with aiohttp.ClientSession() as s:
        resp = await s.get("http://172.81.215.215/pi/electricity",
                           params={'room': message.asDisplay()[2:]})
        json = await resp.json()
    if json['success']:
        text = f"{json['name']} {json['type']}: {json['number']}{json['unit']}"
    else:
        text = f"查询失败,原因:{json['error']}"
    await app.sendGroupMessage(group, MessageChain.create([Plain(text)]))
예제 #2
0
async def command_csl(app: GraiaMiraiApplication, group: Group,
                      params: MessageChain):
    player_name = params.asDisplay()
    result = await apis.CustomSkinLoaderApi.get(
        'https://mcskin.littleservice.cn/csl', player_name)
    if not result.existed:
        await app.sendGroupMessage(
            group, MessageChain.create([Plain(f'「{player_name}」不存在')]))
    else:
        skin_hash = result.skins.slim or result.skins.default
        cape_hash = result.cape
        littleskin_root = 'https://mcskin.littleservice.cn'
        preview_images: List[Image] = list()
        for texture in [skin_hash, cape_hash]:
            if skin_hash:
                preview_images.append(
                    Image.fromUnsafeBytes(await apis.getTexturePreview(
                        littleskin_root, texture)))
    await app.sendGroupMessage(
        group,
        MessageChain.create([
            *preview_images,
            Plain(
                f'Skin: {skin_hash[:7] if skin_hash else None} [{result.skin_type}]\nCape: {cape_hash[:7] if cape_hash else None}'
            )
        ]))
예제 #3
0
async def command_handler(app: GraiaMiraiApplication, group: Group, params: MessageChain):
    player_name = params.asDisplay()
    result = await apis.CustomSkinLoaderApi.get('https://mcskin.littleservice.cn/csl', player_name)
    if not result.existed:
        _message = f'「{player_name}」不存在'
    else:
        _message = f'''「{player_name}」
Skin: {result.skins.slim[:7] or result.skins.default[:7]} [{result.skin_type}]
Cape: {result.cape[:7] if result.cape else None}'''
    await app.sendGroupMessage(group, MessageChain.create([Plain(_message)]))
예제 #4
0
async def set_auto_pix(app: GraiaMiraiApplication, friend: Friend,
                       code: MessageChain):
    if friend.id == master_id:
        commond = code.asDisplay().strip()
        if commond == "0":
            pix.auto = False
            await app.sendFriendMessage(
                friend, MessageChain.create([Plain("自动更新已关闭")]))
        if commond == "1":
            pix.auto = True
            await app.sendFriendMessage(
                friend, MessageChain.create([Plain("自动更新已开启")]))
예제 #5
0
async def command_handler(app: GraiaMiraiApplication, group: Group, params: MessageChain):
    player_name = params.asDisplay()
    littleskin_yggdrasil_root = 'https://mcskin.littleservice.cn/api/yggdrasil'
    player_uuid = await apis.YggdrasilPlayerUuidApi.get(littleskin_yggdrasil_root, player_name)
    if not player_uuid.existed:
        _message = f'「{player_name}」不存在'
    else:
        result: apis.YggdrasilGameProfileApi = await apis.YggdrasilGameProfileApi.get(littleskin_yggdrasil_root, player_uuid.id)
        textures: apis.YggdrasilTextures = result.properties.textures.textures
        _message = f'''「{result.name}」
Skin: {textures.SKIN.hash[:7] if textures.SKIN else None} [{textures.SKIN.metadata.model if textures.SKIN else None}]
Cape: {textures.CAPE.hash[:7] if textures.CAPE else None}
UUID: {UUID(player_uuid.id)}'''
    await app.sendGroupMessage(group, MessageChain.create([Plain(_message)]))
예제 #6
0
async def send_img(app: GraiaMiraiApplication, group: Group,
                   text: MessageChain):
    text_list = text.asDisplay().strip().split()
    logger.info(text_list)
    if len(text_list) == 2:
        logger.info(f"触发cy5:[{text_list[0]},{text_list[1]}]")
        url = f"https://api.dihe.moe/5000choyen/?upper={text_list[0]}&lower={text_list[1]}"
        async with aiohttp.request("GET", url) as res:
            img_bytes = await res.read()
        await app.sendGroupMessage(
            group.id, MessageChain.create([Image.fromUnsafeBytes(img_bytes)]))
    else:
        await app.sendGroupMessage(group.id,
                                   MessageChain.create([Plain("输入参数不合法")]))
예제 #7
0
async def friend_setu_handler(app: GraiaMiraiApplication, group: Group,
                              keyword: MessageChain):
    if keyword is None:
        keyword_str = ""
    else:
        keyword_str = keyword.asDisplay().strip()
    res = await setu.get_setu_with_keyword(False, keyword_str)
    if res is None:
        await app.sendGroupMessage(
            group, MessageChain.create([Plain("没有找到这个tag...")]))
    elif res is False:
        await app.sendGroupMessage(group,
                                   MessageChain.create([Plain("请求好像失败了QAQ")]))
    else:
        pid = "pid:" + res[0]
        out = res[1]
        await app.sendGroupMessage(
            group,
            MessageChain.create([Plain(pid),
                                 Image.fromUnsafeBytes(out)]))
예제 #8
0
async def wrong_usage_tips(app: GraiaMiraiApplication, group: Group, messagechain: MessageChain):
    msg_text = messagechain.asDisplay()
    if msg_text.startswith(('&mute ', '&unmute')) and msg_text.endswith(' '):
        await app.sendGroupMessage(group, MessageChain.create([Plain('请删除末尾空格后重试')]))
예제 #9
0
파일: main.py 프로젝트: dannyXSC/mirai-talk
async def echoer(app: GraiaApp, message: MessageChain, friend: Friend):
    if message.asDisplay().startswith("复读"):
        await app.sendFriendMessage(friend, message.asSendable())
예제 #10
0
async def friend_message_listener(app: GraiaMiraiApplication,
                                  message: MessageChain, friend: Friend):
    if friend.id in _MANAGER:
        if message.asDisplay() == "UpdateToday":
            await app.sendFriendMessage(
                friend, message.create([Plain("开始更新今日色图......")]))
            thread = threading.Thread(target=extraEvent.DayilyMission,
                                      args=(friend, 0))
            thread.start()
        elif message.asDisplay() == "Init":
            await app.sendFriendMessage(friend,
                                        message.create([Plain("初始化......")]))
            extraEvent.initNow(app, message, friend, loop)
        elif message.asDisplay() == "图裂了":
            await app.sendFriendMessage(
                friend, message.create([Plain("正在想办法处理......")]))
            extraEvent.fixPics(app, message, friend, loop)
        '''if message.asDisplay() == "今日色图":
            try:
                print(Universe.get_value("setuScan"))
                print(os.path.abspath(Universe.get_value("setuScan")))
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromUnsafePath("Pixiv/2020-09-12/day_r18_scan.jpg")]))
            except:
                extraEvent.initNow(app, message, friend, loop)
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromUnsafePath("Pixiv/2020-09-12/day_r18_scan.jpg")]))
        elif message.asDisplay() == "今日好图":
            try:
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromLocalFile(Universe.get_value("haotuScan"))]))
            except:
                extraEvent.initNow(app, message, friend, loop)
                await app.sendFriendMessage(friend,
                                            message.create([Image.fromLocalFile(Universe.get_value("haotuScan"))]))'''  # 错误待解决
        if re.search("色图$", message.asDisplay()):
            setuInd = Universe.get_value("setuInd")
            imgid = await app.sendFriendMessage(
                friend,
                message.create([
                    Image.fromLocalFile(
                        extraEvent.setuList[setuInd %
                                            len(extraEvent.setuList)])
                ]))
            print(imgid)
            await app.sendFriendMessage(
                friend, message.create([Plain("今日发送的第{}份色图".format(setuInd))]))
            setuInd += 1
            Universe.set_value("setuInd", setuInd)
        elif re.search("好图$", message.asDisplay()):
            haotuInd = Universe.get_value("haotuInd")
            await app.sendFriendMessage(
                friend,
                message.create([
                    Image.fromLocalFile(
                        extraEvent.haotuList[haotuInd %
                                             len(extraEvent.haotuList)])
                ]))
            await app.sendFriendMessage(
                friend,
                message.create([Plain("今日发送的第{}份好图".format(haotuInd))]))
            print(extraEvent.haotuList[haotuInd % len(extraEvent.haotuList)])
            haotuInd += 1
            Universe.set_value("haotuInd", haotuInd)
        if message.has(Image):
            savePicLs = message[Image]
            counter = len(savePicLs)
            await app.sendFriendMessage(
                friend, message.create([Plain("{}张".format(counter))]))
            threadPic = threading.Thread(target=extraEvent.savePic,
                                         args=(savePicLs, 3))
            threadPic.start()
예제 #11
0
async def group_message_handler(app: GraiaMiraiApplication,
                                message: MessageChain, group: Group,
                                member: Member):
    if message.asDisplay().startswith("复读"):
        await app.sendGroupMessage(
            group,
            message.create(
                [At(member.id),
                 Plain(message.exclude(Image).asDisplay())]),
            quote=message.__root__[0].id)

    if re.search(r"色图 \d", message.asDisplay()) and (group.id
                                                     in schedulepermission):
        setuInd = Universe.get_value("setuInd")
        setuId = message.asDisplay().split(" ")[1]
        setuId = eval(setuId) - 1
        await app.sendGroupMessage(
            group,
            message.create([
                Image.fromLocalFile(
                    extraEvent.setuList[setuId % len(extraEvent.setuList)])
            ]))
        await app.sendGroupMessage(
            group, message.create([Plain("今日发送的第{}份色图".format(setuInd))]))
        print(extraEvent.setuList[setuInd % len(extraEvent.setuList)])
        setuInd += 1
        Universe.set_value("setuInd", setuInd)
    elif re.search(r"好图 \d", message.asDisplay()) and (group.id
                                                       in schedulepermission):
        haotuInd = Universe.get_value("haotuInd")
        haotuId = message.asDisplay().split(" ")[1]
        haotuId = eval(haotuId) - 1
        await app.sendGroupMessage(
            group,
            message.create([
                Image.fromLocalFile(
                    extraEvent.haotuList[haotuId % len(extraEvent.haotuList)])
            ]))
        await app.sendGroupMessage(
            group, message.create([Plain("今日发送的第{}份好图".format(haotuInd))]))
        print(extraEvent.haotuList[haotuInd % len(extraEvent.haotuList)])
        haotuInd += 1
        Universe.set_value("haotuInd", haotuInd)

    if message.asDisplay() == "色图一览":
        print(Universe.get_value("setuScan"))
        print(os.path.abspath(Universe.get_value("setuScan")))
        await app.sendGroupMessage(
            group,
            message.create(
                [Image.fromLocalFile(Universe.get_value("setuScan"))]))
    elif message.asDisplay() == "好图一览":
        await app.sendGroupMessage(
            group,
            message.create(
                [Image.fromLocalFile(Universe.get_value("haotuScan"))]))

    if member.permission is MemberPerm.Owner:
        if message.asDisplay().startswith("Update"):
            await app.sendGroupMessage(
                group, message.create([Plain("开始更新今日色图......")]))
            threadDaily = threading.Thread(target=extraEvent.DayilyMission,
                                           args=(group, 0))
            threadDaily.start()
        elif message.asDisplay().startswith("Init"):
            await app.sendGroupMessage(group,
                                       message.create([Plain("初始化......")]))
            extraEvent.initNow(app, message, group, loop)
        elif message.asDisplay() == "图裂了":
            await app.sendFriendMessage(
                group, message.create([Plain("正在想办法处理......")]))
            extraEvent.fixPics(app, message, group, loop)

    if message.has(Image):  #图片保存
        # 日常收集图片
        savePicLs = message[Image]
        counter = len(savePicLs)
        sourceid = message.__root__[0].id
        #await app.sendGroupMessage(group, message.create([Plain("{}张".format(counter))]))
        threadPic = threading.Thread(target=extraEvent.savePic,
                                     args=(savePicLs, counter, app, sourceid,
                                           group, loop))
        threadPic.start()