async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None arg = session.current_arg_text.strip().lower() if not arg: await session.send("使用方法:素性测试 [待测整数]") return else: try: n = int(arg) except BaseException: await session.send("爬爬爬") return if n < 0: n = -n answer = is_prime(n) if not answer: await session.send( "不是素数") else: if n < 3317044064679887385961981: await session.send( "是素数") else: await session.send( "很可能是素数") return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None split_flag = False if session.ctx.get('group_id') is None: split_flag = True # split_flag = False split_flag = True arg = session.current_arg_text.strip().lower() if not arg: arg = session.get('arg', prompt='请输入查询内容') mylist = get_by_id(arg) if mylist: if split_flag: listToSend = split_array(mylist) for myArray in listToSend: await session.send("\n".join( (i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in myArray)) else: await session.send("\n".join((i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in mylist)) else: await session.send("本次查询无结果") return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None mybot = session.bot NationalAwardTuple = (【数据删除】, 【数据删除】, 【数据删除】, 【数据删除】, 【数据删除】) if session.ctx.get('user_id') in NationalAwardTuple: tmp_info = await mybot.get_group_member_info(group_id=【数据删除】, user_id=session.ctx.get('user_id'), no_cache=True) else: random.seed() chosen_id = NationalAwardTuple[int( random.uniform(0, len(NationalAwardTuple) - 0.001))] tmp_info = await mybot.get_group_member_info(group_id=【数据删除】, user_id=chosen_id, no_cache=True) MyText = session.state.get('message').strip() Mylist = ["国奖人"] for keyword in Mylist: if MyText.find(keyword) != -1: answer = MyText.find(keyword) text0 = MyText[0:answer] if text0 != "": text0 = text0 + " " text1 = MyText[(answer + len(keyword)):] if text1 != "": text1 = " " + text1 await session.send(text0 + "@" + tmp_info["nickname"] + text1) return None return None
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None global _can_zhihu _can_zhihu = False await session.send('收到') return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None global _can_zhihu if (_can_zhihu == False): await session.send("爬嘞您喽") return arg = session.current_arg_text.strip().lower() if not arg: mylist = get_zhihu_hot(n=10) elif arg.find("-") != -1: try: start = int(arg[:arg.find("-")]) n = int(arg[arg.find("-") + 1:]) except BaseException: pass else: mylist = get_zhihu_hot(n=n, start=start - 1) else: try: n = int(arg) except BaseException: mylist = get_zhihu_hot(search=arg) else: mylist = get_zhihu_hot(n=n) if mylist == []: await session.send("似乎什么都没有找到。") else: await session.send('知乎热榜:\n' + '\n'.join(i for i in mylist)) return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None split_flag = False if session.ctx.get('group_id') is None: split_flag = True # split_flag = False # split_flag = True arg = session.current_arg_text.strip().lower() if not arg: arg = session.get('arg', prompt='请输入查询内容') mylist = get_by_name(arg) if mylist: if split_flag: listToSend = split_array(mylist) for myArray in listToSend: await session.send("\n".join( (i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in myArray)) else: await session.send("\n".join((i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in mylist)) else: if arg.encode('UTF-8').isalnum() == False and len(arg) > 2: mylist = get_by_name_fuzzy(arg) if mylist and len(mylist) <= 10: await session.send("本次查询无结果。但你是否在找:\n" + "\n".join( (i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in mylist)) return await session.send("本次查询无结果") return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None arg = session.current_arg_text.strip().lower() if not arg: await session.send( "使用方法:离散对数 [模数 m] [原根 a] [幂 b],亦即求解 b = a ** i (mod m),输出指数 i") return else: tmp_list = arg.split() if len(tmp_list) != 3: await session.send("爬爬爬") return try: mod_number, integer, root = (int(i) for i in tmp_list) if mod_number <= 0 or root <= 0 or integer <= 0: await session.send("爬爬爬") return except BaseException: await session.send("爬爬爬") return await session.send("在求了在求了") answer = find_discrete_log(mod_number, root, integer) await session.send(answer) return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None global _can_repeat _can_repeat = False await session.send( '学习时间不要复读') return
async def _(session: NLPSession): if check_blacklist(session.ctx.get('user_id') ) or session.msg.strip()[0] == ".": return None if not check_whitelist(session.ctx.get('group_id')): return None result = NLPResult(70.0, 'DoNothing', {'message': session.msg}) return result
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None arg = session.current_arg_text.strip().lower() if len(arg.split()) != 2: await session.send("使用方法:绝绝子 [动词] [名词]") return await session.send(generate(arg)) return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None arg = session.current_arg_text.strip().lower() if not arg: await session.send("使用方法:抽象话 [正常的话]") return answer = chouxiang_process(arg) await session.send(answer) return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None else: await session.send( "命令已弃用。当前可用命令为 1)查询本科/查询硕博/查询教师,可以相应范围内精确查找姓名,学(工)号或拼音首字母。2)查询姓名/查询学号,可以在全部范围内精确查找姓名/学(工)号。" ) return
async def _(session: NLPSession): if check_blacklist(session.ctx.get('user_id') ) or session.msg.strip()[0] == ".": return None if session.ctx.get('group_id') == 【数据删除】: return None if not check_whitelist(session.ctx.get('group_id')): return None result = NLPResult(75.0, 'TheStrongOne', {'message': session.msg}) return result
async def _(session: NLPSession): if check_blacklist(session.ctx.get('user_id') ) or session.msg.strip()[0] == ".": return None if not check_whitelist(session.ctx.get('group_id')): return None if session.ctx.get('group_id') == 【数据删除】: return None if not check_whitelist(session.event.group_id): return None result = NLPResult(85.0, 'Zhangyuwang', {'message': session.msg}) return result
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None global _can_break global _can_repeat if not _can_repeat: _can_break = True await session.send( '收到') return else: await session.send( '无法在复读的同时打断') return
async def shenwei(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None if session.ctx.get('group_id') == 【数据删除】: return None arg = session.current_arg_text.strip().lower() if arg == "阴": profile = get_yinyang_list(mode='yin').strip().split("\n") elif arg == "阳": profile = get_yinyang_list(mode='yang').strip().split("\n") else: profile = get_yinyang_list().strip().split("\n") for text in profile: await session.send(text)
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None plugins = list(filter(lambda p: p.name, nonebot.get_loaded_plugins())) arg = session.current_arg_text.strip().lower() if not check_whitelist(session.ctx.get('group_id')): temp_plugins = ["离散对数", "抽象话", "知乎热榜", "打断复读", "素性测试"] await session.send('我现在支持的功能有:\n' + '\n'.join(p for p in temp_plugins) + '\n\n' + '另外,此bot还缝合了跑团掷骰功能。请输入.dicehelp以查看该功能的使用说明。') return if not arg: await session.send('我现在支持的功能有:\n' + '\n'.join(p.name for p in plugins) + '\n\n' + '输入help [功能名] 可以查看具体使用方法。\n' + '另外,此bot还缝合了跑团掷骰功能。请输入.dicehelp以查看该功能的使用说明。') return for p in plugins: if p.name.lower() == arg: await session.send(p.usage)
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None mybot = session.bot tmp_info = await mybot.get_group_member_info(group_id=【数据删除】, user_id=【数据删除】, no_cache=True) MyText = session.state.get('message').strip() Mylist = ["强者", "全栈人"] for keyword in Mylist: if MyText.find(keyword) != -1: answer = MyText.find(keyword) text0 = MyText[0:answer] if text0 != "": text0 = text0 + " " text1 = MyText[(answer + len(keyword)):] if text1 != "": text1 = " " + text1 await session.send(text0 + "@" + tmp_info["nickname"] + text1) return None return None
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if not check_whitelist(session.ctx.get('group_id')): return None split_flag = False if session.ctx.get('group_id') is None: split_flag = True # split_flag = False # split_flag = True arg = session.current_arg_text.strip().lower() if not arg: arg = session.get('arg', prompt='请输入查询内容') mylist = get_teacher(arg) if mylist: base_str_list = [] for i in mylist: base_str = i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[5] if i[6]: base_str += "\n" + "办公电话:" + i[6] if i[7]: base_str += "\n" + "手机:" + i[7] if i[8]: base_str += "\n" + "邮箱:" + i[8] if i[9]: base_str += "\n" + "简介:" + i[9] base_str_list.append(base_str) await session.send("\n".join(k for k in base_str_list)) else: if arg.encode('UTF-8').isalnum() == False: mylist = get_by_name(arg) if mylist: await session.send("本次查询无结果。但你是否在找:\n" + "\n".join( (i[0] + " " + i[1] + " " + i[2] + " " + i[3] + " " + i[4] + " " + i[5]) for i in mylist)) return await session.send("本次查询无结果") return
async def _(session: NLPSession): if check_blacklist(session.ctx.get('user_id') ) or session.msg.strip()[0] == ".": return None group_id = session.ctx.get('group_id') global group_list global group_dict if group_id not in group_list: group_list.append(group_id) group_dict[group_id] = [None, None] global _can_break global _can_repeat result = None if group_dict[group_id][0] is None: group_dict[group_id][0] = session return None if group_dict[group_id][1] is None: group_dict[group_id][1] = session return None if group_dict[group_id][1] and \ group_dict[group_id][1].msg == session.msg and \ group_dict[group_id][1].ctx['user_id'] != session.ctx['user_id'] and \ group_dict[group_id][1].ctx['user_id'] != group_dict[group_id][0].ctx['user_id'] and \ group_dict[group_id][1].msg == group_dict[group_id][0].msg: if _can_break: result = NLPResult( 100.0, '说打断', { 'message': group_dict[group_id][1].msg}) if _can_repeat: result = NLPResult( 100.0, '复读', { 'message': group_dict[group_id][1].msg}) group_dict[group_id][1] = None group_dict[group_id][0] = None else: group_dict[group_id][0] = group_dict[group_id][1] group_dict[group_id][1] = session return result
async def _(session: CommandSession): global grand_data_dict RETROSPECTION_LENGTH = 20 user_id = session.ctx.get('user_id') if check_blacklist(user_id): return None group_id = session.ctx.get('group_id') arg = session.current_arg_text.strip() if not arg: arg = session.get('arg', prompt='请问要做什么?') if arg.startswith("彩云小梦"): arg = arg[4:].strip() if arg.startswith("拉取模型"): pull_models() await session.send("拉取完成") with open("models.pickle", "wb") as pickleFile: pickle.dump(model_dict, pickleFile) return if arg.startswith("列出模型"): await session.send("当前可用模型包括:" + '、'.join(model_dict.keys())) return if user_id not in grand_data_dict.keys(): grand_data_dict[user_id] = {} if group_id not in grand_data_dict[user_id].keys(): grand_data_dict[user_id][group_id] = { "title": "", "content": "", "currentOptions": [""], "model": "小梦0号", "nid": None} if arg.startswith("切换模型"): grand_data_dict[user_id][group_id]["model"] = arg.split()[1] await session.send("您使用的模型已切换为" + arg.split()[1]) with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("续写"): try: mid = model_dict[grand_data_dict[user_id][group_id]["model"]] except(KeyError): await session.send("写作模型不存在,请切换为正确的模型") return if len(arg.split()) != 1: grand_data_dict[user_id][group_id]["content"] += arg[2:].strip() else: grand_data_dict[user_id][group_id]["content"] += grand_data_dict[user_id][group_id]["currentOptions"][0] if grand_data_dict[user_id][group_id]["title"] == "" and grand_data_dict[user_id][group_id]["content"] == "": await session.send("标题和内容不能全空,请先“彩云小梦 设置标题 [标题]”或“彩云小梦 设置内容 [内容]”") return if grand_data_dict[user_id][group_id]["nid"] is None: grand_data_dict[user_id][group_id]["nid"] = get_nid( grand_data_dict[user_id][group_id]["title"], grand_data_dict[user_id][group_id]["content"]) novel_text_list = await get_novel(grand_data_dict[user_id][group_id]["title"], grand_data_dict[user_id][group_id]["content"], mid, grand_data_dict[user_id][group_id]["nid"]) if novel_text_list: grand_data_dict[user_id][group_id]["currentOptions"] = novel_text_list else: await session.send("彩云小梦似乎出了些故障,请重新尝试续写") return grand_data_dict[user_id][group_id]["currentOptions"] = novel_text_list result = grand_data_dict[user_id][group_id]["currentOptions"][0] if len(grand_data_dict[user_id][group_id]["content"]) >= RETROSPECTION_LENGTH: result = "[" + grand_data_dict[user_id][group_id]["content"][-RETROSPECTION_LENGTH:] + "]" + result await session.send(result) with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("切换结果"): if grand_data_dict[user_id][group_id]["currentOptions"][0] == "": await session.send("尚未进行过续写") return del grand_data_dict[user_id][group_id]["currentOptions"][0] if len(grand_data_dict[user_id][group_id]["currentOptions"]) == 0: try: mid = model_dict[grand_data_dict[user_id][group_id]["model"]] except(KeyError): await session.send("写作模型不存在,请切换为正确的模型") return novel_text_list = await get_novel(grand_data_dict[user_id][group_id]["title"], grand_data_dict[user_id][group_id]["content"], mid, grand_data_dict[user_id][group_id]["nid"]) if novel_text_list: grand_data_dict[user_id][group_id]["currentOptions"] = novel_text_list else: await session.send("彩云小梦似乎出了些故障,请重新尝试切换结果") return result = grand_data_dict[user_id][group_id]["currentOptions"][0] if len(grand_data_dict[user_id][group_id]["content"]) >= RETROSPECTION_LENGTH: result = "[" + grand_data_dict[user_id][group_id]["content"][-RETROSPECTION_LENGTH:] + "]" + result await session.send(result) with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("全文"): await session.send(grand_data_dict[user_id][group_id]["title"] + "\n" + grand_data_dict[user_id][group_id]["content"]) return if arg == "重置": del grand_data_dict[user_id][group_id] await session.send("已重置") with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("设置标题"): if len(arg.split()) != 1: grand_data_dict[user_id][group_id]["title"] = arg[4:].strip() await session.send("标题设置成功") with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) else: await session.send("已将内容清空") with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("设置内容"): if len(arg.split()) != 1: grand_data_dict[user_id][group_id]["content"] = arg[4:].strip() grand_data_dict[user_id][group_id]["currentOptions"][0] = "" await session.send("内容设置成功") else: await session.send("已将内容清空") with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return if arg.startswith("复制"): if len(arg.split()) != 1: objectiveUserId = arg[2:].strip() try: objectiveUserId = int(objectiveUserId) except(ValueError, TypeError): await session.send("复制失败。目标QQ号必须是纯数字。") return if objectiveUserId in grand_data_dict.keys(): if group_id in grand_data_dict[objectiveUserId].keys(): grand_data_dict[user_id][group_id] = grand_data_dict[objectiveUserId][group_id] await session.send("复制成功。") with open("contents.pickle", "wb") as pickleFile: pickle.dump(grand_data_dict, pickleFile) return else: await session.send("复制失败。目标QQ号未在当前群聊进行过续写。") return else: await session.send("复制失败。目标QQ号未进行过续写。") return await session.send("复制失败。目标QQ号必须是纯数字。") return await session.send("未知命令,请输入“@[bot] help 彩云小梦”查看说明。") return
async def _(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None await session.send("也会梦见电子🐻") return None
async def pleasebanit(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None await session.send("打断")
async def echo(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None if session.ctx.get('group_id') == 【数据删除】: return None await session.send(session.state.get('message') or session.current_arg)
prompt = pronoun + random.choice(prompts) print('prompt: %s' % prompt) api = TwitterAPI(settings.API_KEY, settings.API_SECRET, settings.ACCESS_TOKEN, settings.ACCESS_SECRET) # get tweets tweets = api.request('search/tweets', {'q': '"%s"' % prompt}) fact = 'The %s (%s) %s' % (bird, scientific, re.sub(pronoun, '', prompt)) # look through tweets for tweet in tweets: if not 'text' in tweet: continue text = tweet['text'] if blacklist.check_blacklist(text): continue # lowercase just the prompt text = re.sub(prompt, prompt, text, flags=re.IGNORECASE) # put loose "sentences" on separate lines text = re.sub(r'([\.\?!\n\r]+)', r'\g<1>\n', text) # separate out usable string search = re.findall( r'^.*(%s(?!.*(?:\bhim\b|\bher\b|\bthem\b|\bme\b|@|http|…)).{10,200})' % prompt, text, re.M) try: text = search[0] text = re.sub(prompt, '', text) except IndexError:
async def _(session: NLPSession): if check_blacklist(session.ctx.get('user_id') ) or session.msg.strip()[0] == ".": return None return IntentCommand(80.0, '学习!')
async def getpcip(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None await session.send("我会成为摸鱼时代最后的守望者") sleep(1) await session.send("永不背弃")
async def getpcip(session: CommandSession): if check_blacklist(session.ctx.get('user_id')): return None await session.send("那你学吧")