示例#1
0
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)
示例#2
0
    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
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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))
示例#7
0
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))
示例#8
0
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))
示例#9
0
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))
示例#10
0
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]  #查到绑定的数据直接赋值
示例#11
0
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())
                                              })))
示例#12
0
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())
示例#13
0
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)
示例#14
0
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])
示例#15
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)
#     )
示例#16
0
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
        )
示例#17
0
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))
示例#18
0
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("绑定成功")
示例#19
0
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
示例#20
0
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))
示例#21
0
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)
示例#22
0
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)
示例#23
0
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)
示例#24
0
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("已清空弹仓")
示例#25
0
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)
示例#26
0
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草你妈燃起来了!')
示例#27
0
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("请先开始游戏")
示例#28
0
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'
示例#29
0
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("请先开始游戏")
示例#30
0
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("弹匣已转动")