예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
async def _(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    global _can_zhihu
    _can_zhihu = False
    await session.send('收到')
    return
예제 #5
0
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
예제 #6
0
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
예제 #7
0
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
예제 #8
0
async def _(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    global _can_repeat
    _can_repeat = False
    await session.send(
        '学习时间不要复读')
    return
예제 #9
0
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
예제 #10
0
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
예제 #11
0
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
예제 #12
0
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
예제 #13
0
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
예제 #14
0
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
예제 #15
0
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
예제 #16
0
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)
예제 #17
0
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)
예제 #18
0
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
예제 #19
0
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
예제 #20
0
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
예제 #21
0
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
예제 #22
0
async def _(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    await session.send("也会梦见电子🐻")
    return None
예제 #23
0
async def pleasebanit(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    await session.send("打断")
예제 #24
0
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)
예제 #25
0
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:
예제 #26
0
async def _(session: NLPSession):
    if check_blacklist(session.ctx.get('user_id')
                       ) or session.msg.strip()[0] == ".":
        return None
    return IntentCommand(80.0, '学习!')
예제 #27
0
async def getpcip(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    await session.send("我会成为摸鱼时代最后的守望者")
    sleep(1)
    await session.send("永不背弃")
예제 #28
0
async def getpcip(session: CommandSession):
    if check_blacklist(session.ctx.get('user_id')):
        return None
    await session.send("那你学吧")