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)]))
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}' ) ]))
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)]))
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("自动更新已开启")]))
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)]))
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("输入参数不合法")]))
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)]))
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('请删除末尾空格后重试')]))
async def echoer(app: GraiaApp, message: MessageChain, friend: Friend): if message.asDisplay().startswith("复读"): await app.sendFriendMessage(friend, message.asSendable())
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()
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()