async def message_receive(bot: Bot, event: Event, state: dict): # logger.info(event.dict()) replay = event.dict()["reply"] if replay and str(replay["sender"]["user_id"]) in hso_config.bot: await Setu( bot, event, state).get_text(message_id=event.dict()["reply"]["message_id"])
async def message_receive(bot: Bot, event: Event, state: dict): # logger.info(event.dict()) _reply = event.dict()["reply"] if _reply and str(_reply["sender"]["user_id"]) in ncm_config.bot: message: str = _reply["message"][0].data["text"] # logger.info(message) id = re.search("ID:([0-9]*)", message) # logger.info(id) info = setting.search(Q["group_id"] == event.dict()["group_id"]) if info: data = music.search(Q["id"] == int(id[1]))[0] if info[0]["song"]: params = { "group_id": event.dict()["group_id"], "file": data["file"], "name": data["filename"] } async with httpx.AsyncClient() as client: res = await client.post( "http://127.0.0.1:5700/upload_group_file", params=params) if res.status_code != 200: logger.error("文件上传错误") else: logger.error("数据库中未发现该ID")
async def set_receive(bot: Bot, event: Event, state: dict): # 功能设置接收 true = ["True", "T", "true", "t"] false = ["False", "F", "false", "f"] args = str(event.get_message()).strip().split() state["key"] = args # logger.info(bot.__dict__) # logger.info(event.dict()) # logger.info(state) mold = state["key"][0] info = setting.search(Q["group_id"] == event.dict()["group_id"]) if info: if mold in true: info[0]["song"] = True setting.update(info, Q["group_id"] == event.dict()["group_id"]) msg = "已开启自动下载功能" await bot.send(event=event, message=Message(MessageSegment.text(msg))) elif mold in false: info[0]["song"] = False setting.update(info, Q["group_id"] == event.dict()["group_id"]) msg = "已关闭自动下载功能" await bot.send(event=event, message=Message(MessageSegment.text(msg))) else: setting.insert({"group_id": event.dict()["group_id"], "song": True})
async def _(bot: Bot, event: Event, state: T_State): # 开关检测,开则复述 message = event.get_message() message_type = str(event.dict()["message_type"]) # 来源判断 if message_type == "group": id = str(event.dict()["group_id"]) # message_type = "on_group" switch = (Path(".") / "apeiria_network" / "config" / "repeat" / "group" / "switch.json") re = Path( "." ) / "apeiria_network" / "config" / "repeat" / "group" / "re.json" elif message_type == "private": id = event.get_user_id() # message_type = "on_user" switch = (Path(".") / "apeiria_network" / "config" / "repeat" / "private" / "switch.json") re = Path( "." ) / "apeiria_network" / "config" / "repeat" / "private" / "re.json" try: with open(switch, mode="r", encoding="utf-8") as switch_json: switch_reader = json.load(switch_json) except: switch_reader = {} if id in switch_reader: if switch_reader[id] == "on": await repeat_after_me.finish(message) # 检测相同信息是否发送三次,若是则复述一次,然后清空数据 i = 0 # strmsg = {id: ['', '', '', i, message_type]} strmsg = {id: ["", "", "", i]} message = str(message) try: with open(re, mode="r", encoding="utf-8") as re_json: strmsg = json.load(re_json) except: strmsg = {} if id not in strmsg: with open(re, mode="w", encoding="utf-8") as re_json_file_w: # strmsg.update({id: [message, '', '', i, message_type]}) strmsg.update({id: [message, "", "", i]}) json.dump(strmsg, re_json_file_w, ensure_ascii=False, indent=4) pos = strmsg[id][3] if pos >= 2: strmsg[id][pos] = message pos -= 3 else: strmsg[id][pos] = message pos += 1 strmsg[id][3] = pos if strmsg[id][0] == strmsg[id][1] == strmsg[id][2]: strmsg[id][0] = strmsg[id][1] = strmsg[id][2] = "" re_json_file_w1 = open(re, mode="w", encoding="utf-8") json.dump(strmsg, re_json_file_w1, ensure_ascii=False, indent=4) await repeat_after_me.finish(event.get_message()) re_json_file_w2 = open(re, mode="w", encoding="utf-8") json.dump(strmsg, re_json_file_w2, ensure_ascii=False, indent=4)
async def lssv_h(bot: Bot, event: Event, state: T_State): plus = '' for i in plugins: state = check_plugin(event.dict().get('group_id'), i) txt = '| {} | {}\n'.format('○' if state else '×', i) plus += txt await lssv.finish( '群%d的插件有:\n===========\n%s\n===========\n通过 “启用/禁用 插件名「复数个用","隔开开关插件」”' % (event.dict().get('group_id'), plus))
async def change(bot: Bot, event: Event, state: T_State): """修改配置\r\n type:\r\n group\r\n private\r\n order:\r\n "setu_level"\r\n "original"\r\n "setu"\r\n "r18"\r\n "max_num"\r\n "revoke"\r\n "at"\r\n """ key = state["key"] mold = event.dict()["message_type"] if mold == "group": config = group_config.search( Q["group_id"] == event.dict()['group_id'])[0] admins = config["admins"] admins.append(config["owner"]) if int(event.get_user_id()) in admins or event.get_user_id( ) in hso_config.superusers: data = config before = str(config["group"][key[1]]) if key[0] == "开启": data["group"][key[1]] = True after = "True" elif key[0] == "关闭": data["group"][key[1]] = False after = "False" else: try: data["group"][key[1]] = int(key[2]) except: data["group"][key[1]] = key[2] after = key[2] group_config.update(data, Q["group_id"] == event.dict()['group_id']) return await bot.send(event=event, message=Message( MessageSegment.text( '{}:{}-->{}'.format( key[1], before, after)))) else: return await bot.send(event=event, message=Message( MessageSegment.text('¿没权限还玩🐎¿'))) elif mold == 'private': pass # todo
async def db_update(bot: Bot, event: Event, state: dict): # 数据库 args = str(event.get_message()).strip().split() state["key"] = args await Power().change(bot, event, state) logger.info(bot.__dict__) logger.info(event.dict()) logger.info(state)
async def _(bot: Bot, event: Event, state: T_State): message_type = str(event.dict()["message_type"]) if message_type == "group": id = str(event.dict()["group_id"]) elif message_type == "private": id = event.get_user_id() try: strmsg = r.get("ru"+id).split(',') except: r.set("ru"+id, ','.join(['0','0','0','0'])) strmsg = r.get("ru"+id).split(',') strmsg[0] = strmsg[1] = strmsg[2] = strmsg[3] = '0' r.set("ru"+id, ','.join(strmsg)) r.set("death" + id, "") r.set("alive" + id, "") r.set("magazine" + id, "") await clearshoot.finish("已清空弹仓")
async def disable_g(bot: Bot, event: Event, state: T_State): p_name = state['p_name'].split(',') done_plugins = list() for i in p_name: if i in plugins: set_plugin(event.dict().get('group_id'), i, disable=True) done_plugins.append(i) await disable_.finish('成功禁用插件: {}'.format(' | '.join( p for p in done_plugins)))
async def music_receive(bot: Bot, event: Event, state: dict): # logger.info(event.get_type()) if event.dict()["message_type"] == "private": return await bot.send(event=event, message=Message( MessageSegment.text("私聊无法启用解析功能"))) # logger.info(bot.__dict__) # logger.info(event.dict()) # logger.info(state) info = setting.search(Q["group_id"] == event.dict()["group_id"]) id = list(filter(None, state["_matched_groups"])) # 去除None if info: if info[0]["song"]: msg = f"如需下载请回复该条消息\r\n歌曲ID:{id[0]}\r\n关闭解析请使用指令\r\n#ncm f" await bot.send(event=event, message=Message(MessageSegment.text(msg))) await Ncm().download(ids=id) else: setting.insert({"group_id": event.dict()["group_id"], "song": True})
async def _(bot: Bot, event: Event, state: T_State): message_type = str(event.dict()["message_type"]) if message_type == "group": id = str(event.dict()["group_id"]) elif message_type == "private": id = event.get_user_id() try: magazine = r.get("magazine" + id).split(",") except: await show_magazine.finish("还没有开始俄罗斯轮盘活动哦,请输入开枪来创建活动") show_result = MAGAZINE.format( t1=magazine[0], t2=magazine[1], t3=magazine[2], t4=magazine[3], t5=magazine[4], t6=magazine[5], ) await show_magazine.finish(show_result)
async def _(bot: Bot, event: Event, state: T_State): message_type = str(event.dict()["message_type"]) if message_type == "group": id = str(event.dict()["group_id"]) elif message_type == "private": id = event.get_user_id() magazine = r.get("magazine" + id).split(",") spin = randint(0,5) magazine2 = [] x = 0 for i in magazine: try: magazine2.insert(x, magazine[(x+spin)]) # 0 1 2 3 4 5 except: magazine2.insert(x, magazine[(x+spin-6)]) # spin = 1 # spin = 5 # 1 2 3 4 5 0 # 5 0 1 2 3 4 x+=1 r.set("magazine" + id, ",".join(magazine2)) await spin_magazine.finish("弹匣已转动")
def __init__(self, bot: Bot, event: Event, state: dict, **requests_kwargs): self.bot = bot self.event = event self.state = state self._REQUESTS_KWARGS = requests_kwargs # ----------------------------------- self.config = hso_config # 全局设置 self.message = event.dict() self.type = self.message["message_type"] self.setu_level = 1 # 默认涩图等级 self.current_config = None # 当前配置 self.power = Power() self.del_list = list() self.r18 = None self.num = None self.tag = None
def __init__(self, bot: Bot, event: Event, state: dict, **requests_kwargs): self.r18 = state["_matched_groups"][2] self.num = state["_matched_groups"][0] self._REQUESTS_KWARGS = requests_kwargs self.tag: list = [ i for i in list( set(re.split(r",|,|\.|-| |_|/|\\", state["_matched_groups"] [1]))) if i != "" ] # 分割tag+去重+去除空元素 # ----------------------------------- self.bot = bot self.event = event self.config = hso_config # 全局设置 self.message = event.dict() self.type = self.message["message_type"] self.setu_level = 1 # 默认涩图等级 self.current_config = None # 当前配置 self.power = Power() self.del_list = list()
async def _(bot: Bot, event: Event, state: T_State): msg = str(event.get_message()).strip() user_id = event.get_user_id() message_type = str(event.dict()["message_type"]) if message_type == "group": session_id = str(event.dict()["group_id"]) if session_id == "875857423": raise FinishedException elif message_type == "private": session_id = user_id else: await bot.send(event, "不支持的会话!") raise FinishedException chance = randint(1, 20) if 1 <= chance <= 18: start = time.perf_counter() values = {"apikey": apikey_LOLI, "r18": "0", "num": "1"} R18 = "false" picnum = 1 direc = Path('/mnt/dm-4/nextcloud/data/patchy/files/pixiv/Normal') if msg[0:3] == "r18": direc = Path('/mnt/dm-4/nextcloud/data/patchy/files/pixiv/R18') R18 = "true" values.update({"r18": 1}) if msg[3:4] == "*": # if user_id in master: picnum = int(msg[4:5]) if len(msg) > (msg.index("8") + 3): msg = msg[(msg.index("8") + 3):len(msg)] print(msg) values.update({"keyword": msg}) # else: # await bot.send(event, '呜,只有主人才能使用这个功能呢') elif len(msg) > (msg.index("8") + 1): msg = msg[(msg.index("8") + 1):len(msg)] print(msg) values.update({"keyword": msg}) elif msg[0:1] == "*": # if user_id in master: picnum = int(msg[1:2]) if len(msg) > (3): msg = msg[(3):len(msg)] print(msg) values.update({"keyword": msg}) # else: # await bot.send(event, '呜,只有主人才能使用这个功能呢') # raise FinishedException elif msg: values.update({"keyword": msg}) if picnum > 0: await bot.send(event, '别急!正在找图!') for x in range(picnum): try: dc = json.loads(request_api_params(url=URL, params=values)) if dc["msg"] == 429: await bot.send(event, '今天已经满300张啦!lsp,哼哒!!') raise FinishedException print("=========================================") print(dc) print("=========================================") title = dc["data"][0]["title"] author = dc["data"][0]["author"] setu = dc["data"][0][ "url"] # b64.b64_str_img_url(dc["data"][0]["url"]) except: await bot.send(event, '失败了失败了失败了失...') raise FinishedException end = time.perf_counter() await bot.send( event, SETU_REPLY.format(title=title, author=author, setu=setu, time=round(end - start, 3))) try: scheduler.add_job( func=getPic, trigger='date', args=[setu, direc, R18, message_type, session_id], next_run_time=datetime.datetime.now(), misfire_grace_time=60) pass except: await bot.send(event, '呜呜,图片获取失败了...') raise FinishedException elif chance == 19: img = choice(['SP.jpg', 'SP1.jpg', 'SP2.jpg']) img = Path('.') / 'apeiria_network' / 'data' / 'emoji' / f'{img}' img = img.resolve() await bot.send(event, Message(f'[CQ:image,file=file:///{img}]')) raise FinishedException elif chance == 20: img = choice([ 'GDZ.png', 'SHZY1.jpg', 'SHZY2.jpg', 'SHZY3.jpg', 'SHZY4.jpg', 'SHZY5.jpg', 'SHZY6.jpg' ]) img = Path( '.') / 'apeiria_network' / 'data' / 'img' / 'niceIMG' / f'{img}' img = img.resolve() await bot.send(event, Message(f'[CQ:image,file=file:///{img}]')) raise FinishedException
async def handle_city(bot: Bot, event: Event, state: T_State): startTime = time.perf_counter() cityname = state["city"] # 判断查询 if cityname[0:2] == "天气预报": cityname = str(cityname[2:len(cityname)]).strip().replace(" ", "") weatherinfo = weather_info(cityname, 1) responsecode = weatherinfo.status_code user_id = event.get_user_id() area_reader = getAreaJson() # 第一次查询绑定 if user_id not in area_reader: if responsecode == 555: await weather_pre_report.finish(randomNegative() + "查询失败,地名输入错误") elif responsecode == 403: await weather_pre_report.finish(randomNegative() + "API访问次数用完了,请续费API") _weather_bind(user=user_id, cityname=cityname) msg = "绑定成功,如果要更换绑定城市\n可使用[天气绑定 城市名]" await bot.send(event=event, message=msg) message_type = str(event.dict()["message_type"]) dc = json.loads(weatherinfo.text) if responsecode == 555: await weather_pre_report.finish(randomNegative() + "地名输入错误") elif responsecode == 403: await weather_pre_report.finish(randomNegative() + "API访问次数用完了,请续费API") if message_type == "group": group_id = str(event.dict()["group_id"]) member_info = await bot.call_api("get_group_member_info", group_id=group_id, user_id=user_id) card = member_info["card"] elif message_type == "private": member_info = await bot.call_api("get_stranger_info", user_id=user_id) card = "" args = answer_sexcall_akubi(member_info=member_info, user=user_id, master=master, card=card) answer = args[0] sexcall = args[1] akubi = args[2] msg = dc["showapi_res_body"] positive = randomPositive() # 获取完整天气信息测试 # FULL_WEATHER_PATH = Path(".") / "weather_full_info.json" # with open(FULL_WEATHER_PATH, mode="w", encoding="utf-8") as area_json_file_w: # json.dump(msg, area_json_file_w, ensure_ascii=False) msg0 = positive + answer + sexcall + ", 以下为" + cityname + "七日天气预报" + akubi + "\n" # msg0 += "" for i in range(1, 8): curwea = msg["f" + str(i)] dayweather = curwea["day_weather"] daytempt = curwea["day_air_temperature"] nightweather = curwea["night_weather"] nighttempt = curwea["night_air_temperature"] msg0 += ("Day" + str(i) + " 白天:" + dayweather + "," + daytempt + "°C 夜间:" + nightweather + "," + nighttempt + "°C\n") endTime = time.perf_counter() times = round(endTime - startTime, 3) msg0 += "------------------------\n" msg0 += "Complete time:" + str(times) + "s" await weather_pre_report.finish(msg0)
async def _(bot: Bot, event: Event, state: T_State): message_type = str(event.dict()["message_type"]) user_id = event.get_user_id() try: bullets_num = int(state["bullets_num"]) except: await shoot.finish(randomNegative() + "请输入1到6以内的数字重试") id = state["id"] strmsg = r.get("ru"+id).split(',') # 子弹数非法结束 if not (bullets_num >= 1 and bullets_num <= 6): await shoot.finish(randomNegative() + "请输入1到6以内的数字重试") if strmsg[0] == '0': # 初始化数据,初始化 子弹数量,开枪次数,命中数 strmsg[0] = '1' strmsg[1] = str(bullets_num) strmsg[2] = '0' strmsg[3] = '0' r.set("ru"+id, ','.join(strmsg)) r.set("death" + id, "") r.set("alive" + id, "") magazine = [] for i in range(0, 6 - int(strmsg[1])): magazine.append("0") for i in range(0, int(strmsg[1])): magazine.insert(randint(0, len(magazine)), "1") r.set("magazine" + id, ",".join(magazine)) bul = choice( [ "子弹装好了", "子弹填充完毕~", "LMG MOUNTED AND LOADED", "五十已到", ] ) await shoot.finish(bul) if r.get("death" + id) == None: r.set("death" + id, "") if r.get("alive" + id) == None: r.set("alive" + id, "") magazine = r.get("magazine" + id).split(",") # 1 、子弹填装数 2、枪击发数 3、子弹击中数 # 当前子弹数量 = 子弹填装数 - 子弹击中数 # 当前剩余枪数 = 6 - 枪击发数 if(int(strmsg[1]) >= 6): if((int(strmsg[1]) - int(strmsg[3])) == (6 - int(strmsg[2]))): chance = randint(1,10) if (chance==1): magazine[0] = "0" strmsg[3] = str((int(strmsg[3])+1)) else: magazine[0] = "1" if magazine[0] == "1": # 随机1到剩余开枪次数 小于等于子弹数量时命中 # 命中 开枪次数+1 击中+1 magazine.pop(0) magazine.append("-1") r.set("magazine" + id, ",".join(magazine)) strmsg[2] = str((int(strmsg[2])+1)) strmsg[3] = str((int(strmsg[3])+1)) r.set("ru"+id, ','.join(strmsg)) msg = [ ["很不幸,你死了"], ["砰!枪响人亡"], ["砰!枪响人亡", "你死了"], ["开完这枪,我就回家和老婆结婚\n——你如是宣言到", "汝之妻,吾养之\nYou Died...."], ["你是一个有故事的人,但是子弹并不想知道这些\n它只看见了白花花的脑浆", "你死了"], ["啦哒哒哒哒哒!啦哒哒哒哒哒!", "You Died...."], ["BOOOOOM HEADSHOT!!", "You Died...."], ["哒哒哒哒哒!", "啊,你死了"], ] if message_type == "group": group_id = str(event.dict()["group_id"]) member_info = await bot.call_api( "get_group_member_info", group_id=group_id, user_id=user_id ) card = member_info["card"] elif message_type == "private": member_info = await bot.call_api("get_stranger_info", user_id=user_id) card = "" nickname = member_info["nickname"] if card == "" or card == None: call = nickname else: call = card # 拼接字符串 等效 r.append("death" + id, call + ",") # r.set("death" + id, r.get("death" + id) + call + ",") for a in msg[randint(0, len(msg) - 1)]: await bot.send(event, a) else: # miss 开枪次数+1 magazine.pop(0) magazine.append("-1") r.set("magazine" + id, ",".join(magazine)) strmsg[2] = str((int(strmsg[2])+1)) r.set("ru"+id, ','.join(strmsg)) msg = [ ["哦?你侥幸活了下来呢~"], ["砰!\n随着一声清脆的枪响,你...", "不好意思,念错了"], ["你对此胸有成竹,你曾经在精神病院向一个老汉学习过用手指夹住射出子弹的功夫,在子弹射出的一瞬间,你把他塞了回去"], ["你向众神祈祷,众神仿佛听见了你的呼唤", "你自信的扣下了扳机,当然,枪没有响"], ["治疗感染,一次...什么?你没有感染?出去!!"], ["你颤抖的手写完了遗书上的最后一个字", "虽然很抱歉,但是这张纸可以留到以后再用了"], # ["冰冷的子弹击中了你的牛子\n你活了下来","但是你的牛子没了,你试问\n这一切都值得吗"], # ["你非常的确信,枪膛里下一发是有子弹的","但是这颗子弹火药貌似受潮了~\n恭喜你捡回了一条小命"], ] if message_type == "group": group_id = str(event.dict()["group_id"]) member_info = await bot.call_api( "get_group_member_info", group_id=group_id, user_id=user_id ) card = member_info["card"] elif message_type == "private": member_info = await bot.call_api("get_stranger_info", user_id=user_id) card = "" nickname = member_info["nickname"] if card == "" or card == None: call = nickname else: call = card # 拼接字符串 等效 r.append("alive" + id, call + ",") # r.set("alive" + id, r.get("alive" + id) + call + ",") for a in msg[randint(0, len(msg) - 1)]: await bot.send(event, a) if int(strmsg[3]) >= int(strmsg[1]): # 命中次数 == 子弹次数 结束会话 strmsg[0] = strmsg[1] = strmsg[2] = strmsg[3] = '0' r.set("ru"+id, ','.join(strmsg)) death = r.get("death" + id).strip(",").split(",") alive = r.get("alive" + id).strip(",").split(",") count = {} for de in death: count.update({de: [0, death.count(de)]}) if alive != [""]: for al in alive: try: a = count[al][1] except: a = 0 count.update({al: [alive.count(al), a]}) r.set("death" + id, "") r.set("alive" + id, "") r.set("magazine" + id, "") msg = "" i = 0 for c in count: i += 1 msg += c + ":胜利" + str(count[c][0]) + " 死亡" + str(count[c][1]) if i != len(count): msg += "\n" await bot.send(event, "感谢各位的参与,让我们看一下游戏结算:") await shoot.finish(msg) await bot.send( event, "欢迎下一位。已经开了" + strmsg[2] + "枪,还剩" + str(int(strmsg[1]) - int(strmsg[3])) + "发子弹。", )
async def change(bot: Bot, event: Event, state: T_State): """修改配置\r\n type:\r\n group\r\n private\r\n order:\r\n "setu_level"\r\n "original"\r\n "setu"\r\n "r18"\r\n "max_num"\r\n "revoke"\r\n "at"\r\n """ key = state["key"] mold = event.dict()["message_type"] if mold == "group": config = group_config.search( Q["group_id"] == event.dict()["group_id"])[0] admins = config["admins"] admins.append(config["owner"]) user_id = event.get_user_id() data = config key1 = key[0] before = str(config["group"][key1]) true = ["True", "T", "true", "t"] false = ["False", "F", "false", "f"] if key[1] in true: data["group"][key1] = True after = "True" if key1 == "r18": data["group"]["setu_level"] = 2 elif key[1] in false: data["group"][key1] = False after = "False" if key1 == "r18": data["group"]["setu_level"] = 1 else: after: str = key[1] try: data["group"][key1] = int(after) except: data["group"][key1] = after if int(user_id) in admins or user_id in hso_config.superusers: group_config.update(data, Q["group_id"] == event.dict()["group_id"]) return await bot.send(event=event, message=Message( MessageSegment.text( "{}:{}-->{}".format( key1, before, after)))) else: return await bot.send(event=event, message=Message( MessageSegment.text("¿没权限还玩🐎¿"))) elif mold == "private": user_id = event.get_user_id() config = group_config.search(Q["user_id"] == user_id)[0] data = config key1 = key[0] before = str(config[key1]) true = ["True", "T", "true", "t"] false = ["False", "F", "false", "f"] if key[1] in true: data[key1] = True after = "True" if key1 == "r18": data["setu_level"] = 2 elif key[1] in false: data[key1] = False after = "False" if key1 == "r18": data["setu_level"] = 1 else: after: str = key[1] try: data[key1] = int(after) except: data[key1] = after group_config.update(data, Q["user_id"] == user_id) return await bot.send(event=event, message=Message( MessageSegment.text("{}:{}-->{}".format( key1, before, after))))
async def handle_city(bot: Bot, event: Event, state: T_State): startTime = time.perf_counter() cityname = state["city"] # 判断是否二次查询 if cityname[0:2] == "天气": cityname = str(cityname[2:len(cityname)]).strip().replace(" ", "") weatherinfo = weather_info(cityname, 0) responsecode = weatherinfo.status_code user_id = event.get_user_id() area_reader = getAreaJson() if user_id not in area_reader: if responsecode == 555: await weather.finish(randomNegative() + "查询失败,地名输入错误") elif responsecode == 403: await weather.finish(randomNegative() + "API访问次数用完了,请续费API") _weather_bind(user=user_id, cityname=cityname) msg = "绑定成功,如果要更换绑定城市\n可使用[天气绑定 城市名]" await bot.send(event=event, message=msg) if responsecode == 555: await weather.finish(randomNegative() + "地名输入错误") elif responsecode == 403: await weather.finish(randomNegative() + "API访问次数用完了,请续费API") message_type = str(event.dict()["message_type"]) dc = json.loads(weatherinfo.text) if message_type == "group": group_id = str(event.dict()["group_id"]) member_info = await bot.call_api("get_group_member_info", group_id=group_id, user_id=user_id) card = member_info["card"] elif message_type == "private": member_info = await bot.call_api("get_stranger_info", user_id=user_id) card = "" args = answer_sexcall_akubi(member_info=member_info, user=user_id, master=master, card=card) answer = args[0] sexcall = args[1] akubi = args[2] msg = dc["showapi_res_body"] now = msg["now"] f1 = msg["f1"] city_weather = WEATHER_REPLY.format( positive=randomPositive(), answer=answer, sexcall=sexcall, area=now["aqiDetail"]["area"], akubi=akubi, realtime=now["temperature_time"], realweather=now["weather"], realtempt=now["temperature"], realwinddirect=now["wind_direction"], realwindpower=now["wind_power"], dayweather=f1["day_weather"], daytempt=f1["day_air_temperature"], daywinddirect=f1["day_wind_direction"], daywindpower=f1["day_wind_power"], nightweather=f1["night_weather"], nighttempt=f1["night_air_temperature"], nightwinddirect=f1["night_wind_direction"], nightwindpower=f1["night_wind_power"], clothrec=f1["index"]["clothes"]["desc"], ) endTime = time.perf_counter() times = round(endTime - startTime, 3) city_weather += "\n------------------------\n" city_weather += "Complete time:" + str(times) + "s" await weather.finish(city_weather)
def pingbi(event: Event) -> bool: goup_id = event.dict().get('group_id') if goup_id: if str(goup_id) in ['389410891']: return True return False
async def _is_enabled(bot: Bot, event: Event, state: T_State) -> bool: status = check_plugin(event.dict().get('group_id'), self.name) return status
async def _(bot: Bot, event: Event, state: T_State): message_type = str(event.dict()["message_type"]) # 来源判断 if message_type == "group": id = str(event.dict()["group_id"]) elif message_type == "private": id = event.get_user_id() # strmsg = [0, 0, 0, 0] # ru_status = strmsg[0] # bullets_num = strmsg[1] # shoot_times = strmsg[2] # hit_times = strmsg[3] # 为None或没有则初始化 try: strmsg = r.get("ru"+id).split(',') except: r.set("ru"+id, ','.join(['0','0','0','0'])) strmsg = r.get("ru"+id).split(',') args = str(event.get_message()).strip() if args: # 子弹数非法结束 try: int(args) except: await shoot.finish(randomNegative() + "请输入1到6以内的数字重试") if not (int(args) >= 1 and int(args) <= 6): await shoot.finish(randomNegative() + "请输入1到6以内的数字重试") # 判断会话状态是否为active if strmsg[0] == '0': # 否,则初始化数据,初始化 子弹数量,开枪次数,命中数。 strmsg[0] = '1' strmsg[1] = args strmsg[2] = '0' strmsg[3] = '0' # print(strmsg) r.set("ru"+id, ','.join(strmsg)) r.set("death" + id, "") r.set("alive" + id, "") magazine = [] for i in range(0, 6 - int(strmsg[1])): magazine.append("0") for i in range(0, int(strmsg[1])): magazine.insert(randint(0, len(magazine)), "1") r.set("magazine" + id, ",".join(magazine)) bul = choice( [ "子弹装好了", "子弹填充完毕~", "LMG MOUNTED AND LOADED", "五十已到", ] ) await shoot.finish(bul) else: # 是,则读取子弹数量。 await shoot.finish("之前的转盘活动并没有迎来结局,请完成上一场活动之后再开始新的活动") else: # 判断会话状态是否为active if strmsg[0] == '1': state["bullets_num"] = strmsg[1] state["id"] = id elif strmsg[0] == '0': state["id"] = id
async def message_receive(bot: Bot, event: Event, state: dict): # 涩图调用 logger.info(bot.__dict__) logger.info(event.dict()) logger.info(state) await Setu(bot, event, state).main()