async def _(bot: Bot, event: Event, state: T_State): yml_path = "src/shared_data/jrrp.yml" # if not event.is_tome(): sender = event.get_user_id() if os.path.exists(yml_path): with open(yml_path, 'r', encoding="utf-8") as fi: jrrp_log = yaml.load(fi, Loader=yaml.FullLoader) today = date.today() if not jrrp_log['date'] == today: jrrp_log = {'date': today} else: jrrp_log = {'date': date.today()} if sender in jrrp_log.keys(): rp = jrrp_log[sender] else: rp = await get_normal_random(qq=int(event.get_user_id())) jrrp_log[sender] = rp with open(yml_path, 'w', encoding="utf-8") as fi: yaml.safe_dump(jrrp_log, fi, encoding='utf-8', allow_unicode=True) msg = Message([{ 'type': 'at', 'data': { 'qq': sender } }, { 'type': 'text', 'data': { 'text': f'你今天的人品是 {rp}%' } }]) await jrrp.send(msg)
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 cheatt_(bot: Bot, event: Event): if event.is_tome(): print("YES") if event.is_tome() and int(event.get_user_id()) != event.self_id: mysay = event.get_message() mysay = await get_n(str(mysay)) await bot.send(event=event, message=mysay)
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)
def get_message(event: Event, url: str): at_segment = {"type": "at", "data": {"qq": event.get_user_id()}} image_segment = {"type": "image", "data": {"file": url}} if isinstance(event, GroupMessageEvent): return Message([image_segment, at_segment]) return Message(image_segment)
async def help_(bot: Bot, event: Event, state: dict): if int(event.get_user_id()) != event.self_id: path_ = os.getcwd() path_ = path_ + '\help.png' mypath = 'file:///' + path_ print(mypath) await bot.send(event=event, message=MessageSegment.image(mypath))
async def cmd6_(bot: Bot, event: Event): if int(event.get_user_id()) != event.self_id: path_ = os.getcwd() path_ = path_ + '\yuyinbao\。哎呀好的啦 小哥哥不要生气了嘛.mp3' mypath = 'file:///' + path_ print(mypath) sst = MessageSegment.record(file=str(mypath)) await bot.send(event=event, message=Message(sst))
async def cmd50_(bot: Bot, event: Event): if int(event.get_user_id()) != event.self_id: path_ = os.getcwd() path_ = path_ + '\yuyinbao\你个大叔,怎么那么坏,老是要看这看那的.mp3' mypath = 'file:///' + path_ print(mypath) sst = MessageSegment.record(file=str(mypath)) await bot.send(event=event, message=Message(sst))
async def cmd27_(bot: Bot, event: Event): if int(event.get_user_id()) != event.self_id: path_ = os.getcwd() path_ = path_ + '\yuyinbao\就算搞基我也只做攻 就是把你压在身下那种。.mp3' mypath = 'file:///' + path_ print(mypath) sst = MessageSegment.record(file=str(mypath)) await bot.send(event=event, message=Message(sst))
async def handle_first_receive(bot: Bot, event: Event, state: T_State): args = str(event.get_message()).strip() # 首次发送命令时跟随的参数,例:/天气 上海,则args为上海 user_id = event.get_user_id() area_reader = getAreaJson() # 从area.json读取绑定的天气数据 if args: state["city"] = args # 如果用户发送了参数则直接赋值 elif user_id in area_reader: state["city"] = area_reader[user_id] #查到绑定的数据直接赋值
async def WZ_(bot: Bot, event: Event, state: dict): if int(event.get_user_id()) != event.self_id: await bot.send(event=event, message=MessageSegment(type_='video', data=({ 'file': str(await get_DSP()) })))
def set_usr_args(state: T_State, event: Event): args = str(event.get_message()).strip() if args: state["username"] = args else: with open(_cachepath, "r", encoding="utf-8") as f: data: dict = json.load(f) state["username"] = data.get(event.get_user_id())
async def r6s_set_handler(bot: Bot, event: Event): args = str(event.get_message()).strip() if args: with open(_cachepath, "r", encoding="utf-8") as f: data = json.load(f) data[event.get_user_id()] = args with open(_cachepath, "w", encoding="utf-8") as f: json.dump(data, f) await r6s_set.finish("已设置ID:%s" % args)
async def rdcommandhandler(bot: Bot, event: Event): args = str(event.get_message())[2:].strip() uid = int(event.get_user_id()) if args and not ("." in args): rrd = rd(args) if type(rrd) == str: await rdcommand.finish(rrd) elif type(rrd) == list: await bot.send_private_msg(user_id=uid, message=rrd[0])
async def zhibo_(bot: Bot, event: Event, state: dict): print(event.get_user_id()) print(event.self_id) if int(event.get_user_id()) != event.self_id: str1 = '主人,您订阅的直播间开播辣,快来看看叭\n地址:https://live.bilibili.com/22864638' await bot.send(event=event, group_id=913088980, message=str1) # test = on_command('test',priority=2) # @test.handle() # async def test_(bot:Bot,event:Event,state: dict): # url = 'https://api.iyk0.com/60s' # r = requests.get(url) # result = json.loads(r.content) # message = result['imageUrl'] # print(message) # await bot.send( # event=event, # message=MessageSegment.image(message) # )
async def slove(bot: Bot, event: Event, state: dict): if int(event.get_user_id())!= event.self_id: str1='' if(random.randint(0,1)): str1=get_new2() else: str1=get_news() await bot.send( event=event, message=str1, at_sender=True )
async def handle_tuling(bot: Bot, event: Event, state: dict): message = str(event.get_message()) reply = await get_data( message, event.get_user_id(), event.group_id if isinstance(event, GroupMessageEvent) else None) if reply: await tuling.finish(escape(reply)) else: # 如果调用失败,或者它返回的内容我们目前处理不了,发送无法获取图灵回复时的「表达」 # 这里的 render_expression() 函数会将一个「表达」渲染成一个字符串消息 await tuling.reject(render_expression(EXPR_DONT_UNDERSTAND))
async def handle_city(bot: Bot, event: Event, state: T_State): user = event.get_user_id() cityname = state["city"] weatherinfo = weather_info(cityname, 0) responsecode = weatherinfo.status_code if responsecode == 555: await weather_bind.finish(randomNegative() + "绑定失败,地名输入错误") elif responsecode == 403: await weather_bind.finish(randomNegative() + "API访问次数用完了,请续费API") _weather_bind(user=user, cityname=cityname) await weather_bind.finish("绑定成功")
async def _get_march(bot: Bot, event: Event): try: return_msg_pub = studylib['public']['all_users'][str( event.get_message())][0] await get_march.finish(Message(return_msg_pub)) except: pass try: return_msg_pri = studylib['private'][event.get_user_id()][str( event.get_message())] await get_march.finish(Message(return_msg_pri)) except: pass
async def h_r(bot: Bot, event: Event, state: T_State): id = str(event.get_user_id()) # mes = str() chuo = f"[CQ:poke,qq={id}]" await test.send(Message(chuo)) # ceshi=on_keyword({'测试'}) # @ceshi.handle() # async def h(bot: Bot, event: Event, state: T_State): # shi='http://cdn.video.picasso.dandanjiang.tv/59a7b0d30422084ff04896f1.mp4?sign=c83dd6238ff6fadf01b16e2b7a9e2e8a&t=60782bff' # pin= f"[CQ:video,file={shi}]" # await ceshi.send(Message(pin))
async def _(bot: Bot, event: Event): global mid qid = event.get_user_id() data = readJson() try: cd = event.time - data[qid][0] except: cd = cdTime + 1 print(cd) key = str(event.get_message()).strip() pic = await ghs_pic3(key) try: if cd > cdTime or event.get_user_id() in nonebot.get_driver().config.superusers: await setu.send('给大佬递图', at_sender=True) mid = await setu.send(message=Message(pic)) print(mid) writeJson(qid, event.time, mid['message_id'], data) else: await setu.send(f'不要发的太快,冲多了对身体不好,你的CD还有{cdTime - cd}秒', at_sender=True) except Exception as e: print(e) await setu.send(message=Message('消息被风控,或者api调用达到上限,派蒙不背锅'), at_sender=True)
async def _(bot: Bot, event: Event): global mid qid = event.get_user_id() data = readJson() key = str(event.get_message()).strip() pic, pid = await ghs_pic3(key, 0) try: await setu.send(f'给大佬递图,pixiv的pid={pid}', at_sender=True) mid = await setu.send(message=Message(pic)) print(mid) writeJson(qid, event.time, mid['message_id'], data) except Exception as e: print(e) await setu.send(message=Message('前面的涩图,以后再来探索吧'), at_sender=True)
async def handle1(bot: Bot,event: Event,state:T_State): args = str(event.message).split(" ") if 1<len(args): if args[0]=="": state["code"] = args[1] state["quantity"] = args[2] state["price"] = args[3] else: state["code"] = args[0] state["quantity"] = args[1] state["price"] = args[2] userid = event.get_user_id() state["userid"] = str(userid)
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 _(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 got_study(bot: Bot, event: Event, state: T_State): result = state['result'] if result not in ['Y', 'y', 'N', 'n']: await study.reject('输入不合规范呐.......\nY为覆盖原条例\nN为保留原条例') if result.lower() == 'y': if state['class'] == 'M': studylib['private'][str(event.get_user_id()) ][state['key']] = state['value'] with open(StudyPath, 'w', encoding="utf-8") as f: json.dump(studylib, f, indent=2, sort_keys=True, ensure_ascii=False) elif state['class'] == 'A': studylib['public']['all_users'][state['key']] = state['value'] with open(StudyPath, 'w', encoding="utf-8") as f: json.dump(studylib, f, indent=2, sort_keys=True, ensure_ascii=False) await study.finish('好耶!已经覆盖了原条例!') elif result.lower() == 'n': await study.finish('已保留原条例!Senrin又白忙活了......\n草你妈燃起来了!')
async def _(bot: Bot, event: Event, state: T_State): global game_flag, players, identities if game_flag: num = await check_num(str(event.get_message())) if num != -1: qq_number = event.get_user_id() # print(qq_number) if num - 1 in players.keys() and qq_number not in players.keys(): players[qq_number] = players.pop(num - 1) await give_cards.finish(user_id=int(qq_number), message=" ".join( players[qq_number].identity), message_type="private") else: await give_cards.finish("有人选了哦") else: await give_cards.finish("序号错误") else: await give_cards.finish("请先开始游戏")
async def handle_study(bot: Bot, event: Event, state: T_State): arg = str(event.get_message()).split() """ study写入传参 #study module(str) key(str) value(str) 至于<similar(int)>就先咕咕咕吧(别打我) 这次用dict写,可以用更多的符号 """ if len(arg) != 3: await study.finish('[传参错误]:参数数量不足或过多') if arg: if arg[0] not in ['a', 'm', 'A', 'M']: await study.finish('[传参错误]:参数表达错误') else: if arg[0].lower() == 'a': # to_all 全员响应 if arg[1] not in studylib['public']['all_users'].keys(): studylib['public']['all_users'][arg[1]] = ( arg[2], event.get_user_id()) msg = ( '好耶!学会了新东西!' ) with open(StudyPath, 'w', encoding="utf-8") as f: json.dump(studylib, f, indent=2, sort_keys=True, ensure_ascii=False) await study.finish(msg) else: if event.get_user_id() not in masterList: msg = ( "芜湖~词库里有这条条例咯......" ) await study.finish(msg) else: state['key'], state['value'] = arg[1], arg[2] state['class'] = 'A' elif arg[0].lower() == 'm': if event.get_user_id() not in studylib['private'].keys(): studylib['private'][str(event.get_user_id())] = {} else: pass state['key'], state['value'] = arg[1], arg[2] if arg[1] not in studylib['private'][str(event.get_user_id())].keys(): studylib['private'][str( event.get_user_id())][arg[1]] = arg[2] msg = ( '好耶!学会了新东西!' ) with open(StudyPath, 'w', encoding="utf-8") as f: json.dump(studylib, f, indent=2, sort_keys=True, ensure_ascii=False) await study.finish(msg) else: state['class'] = 'M'
async def _(bot: Bot, event: Event, state: T_State): global game_flag, players, identities if game_flag: num = await check_num(str(event.get_message())) qq_number = event.get_user_id() if num != -1: if len(players[qq_number].identity) != 0: identities.append(players[qq_number].identity.pop(num - 1)) players[qq_number].identity.append(identities.pop()) shuffle(identities) await change_cards.finish(user_id=int(qq_number), message=" ".join( players[qq_number].identity), message_type="private") else: await change_cards.finish("你已经没有手牌了诶") else: await change_cards.finish("序号错误") else: await change_cards.finish("请先开始游戏")
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("弹匣已转动")