예제 #1
0
async def _echo(bot: Bot, event: MessageEvent):
    #print(bot.config.custom_config1,type(bot.config.custom_config1))
    if event.get_user_id() not in get_attr('SUPER'):
        text = "你暂无此权限"
    else:
        text = cancel("one", "南岸", get_attr('cookiedic')[event.get_user_id()])
    await bot.send(event, text, at_sender=True)
예제 #2
0
async def _echo(bot: Bot, event: MessageEvent):
    name = event.get_plaintext()[5:]
    if event.get_user_id() not in get_attr('SUPER') and name in get_attr(
            'SUPERNAME'):
        text = '你暂无此权限'
    else:
        try:
            conn = connsql()  #判断是否信息表存在  再更新
            if not sql_isempty(event.get_user_id(), conn):
                sql = '(' + event.get_user_id(
                ) + ',' + name + ',' + "'aaa'" + ')'
                conn.execute("insert into new values" + sql)
                conn.commit()
            else:
                #print("UPDATE new SET name ="+name+ "WHERE id="+ str(event.get_user_id()))
                conn.execute("UPDATE new SET name ='" + name + "'  WHERE id=" +
                             event.get_user_id())
                conn.commit()
            await get_class(bot, event, conn, name)
            text = '绑定成功'
        except Exception as e:
            text = '绑定失败,错误提示' + str(e)
        finally:
            closeconnsql(conn)
    await bot.send(event, text, at_sender=True)
예제 #3
0
async def _echo(bot: Bot, event: MessageEvent):

    if event.get_user_id() not in get_attr('SUPER'):
        text = "你暂无此权限"
    else:
        text = getrep("tmo", "南岸", get_attr('cookiedic')[event.get_user_id()])
    await bot.send(event, text, at_sender=True)
예제 #4
0
async def _(bot: Bot, event: MessageEvent):
    msg = str(event.get_message())
    if 'type=flash,' in msg:
        msg = msg.replace('type=flash,', '')
        await flashimg.finish(message=Message("不要发闪照,好东西就要分享。" + msg),
                              at_sender=True)
    else:  #复读
        if not randint(0, 99):
            await flashimg.send(event.get_message())
예제 #5
0
async def _echo(bot: Bot, event: MessageEvent):
    if event.get_plaintext() != '提示':
        return
    bot = nonebot.get_bots()[get_attr('botqq')]
    if event.get_user_id() not in get_attr('SUPER'):
        text = "你暂无此权限"
        await bot.send(event, text, at_sender=True)
    else:
        await send_moring()
예제 #6
0
async def handle(bot: Bot, event: MessageEvent, state: T_State):
    raw_args = str(event.get_message()).strip()
    argc = 0
    if raw_args:
        arg_list = raw_args.split()
        argc = len(arg_list)
        for i in range(argc):
            state[f"arg{i+1}"] = arg_list[i]

    if argc > 0 and state["arg1"] == "日榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="https://rakuen.thec.me/PixivRss/daily-10")
    elif argc > 0 and state["arg1"] == "周榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="http://rakuen.thec.me/PixivRss/weekly-10")
    elif argc > 0 and state["arg1"] == "月榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="https://rakuen.thec.me/PixivRss/monthly-10")
    elif argc > 0:
        keyword = unescape(state["arg1"])
        await pixiv.send(f"正在搜索[{keyword}]……")
        is_timeout, is_error, status, data = await get_image_data_v2(
            tag=keyword)
    else:
        is_timeout, is_error, status, data = await get_image_data_v2()

    uid = event.user_id
    session_id = event.get_session_id().split("_")
    # 消息来自群聊
    if len(session_id) == 3:
        at = MessageSegment.at(uid) + "\n"
    else:
        at = ""

    if is_timeout:
        await pixiv.finish(at + "苦しい……请求超时了(´。_。`)")
    if status != 200 and status != 0:
        await pixiv.finish(at + f"苦しい……连接出错了({status}),可以马上重试一下呢!")
    if is_error:
        await pixiv.finish(at + "苦しい……连接出错了(´。_。`)")
    elif len(data) == 0:
        await pixiv.finish(at + "寂しい……什么都没找到呢。试试范围更大的关键词哦!")
    else:
        chosen = choice(data)
        try:
            await pixiv.send(at + f"{chosen[0]}\nPixiv 链接:{chosen[1]}\n" +
                             MessageSegment.image(chosen[2]) +
                             "可能会发不出图片呜呜,复制下面链接到浏览器查看吧")
        except ActionFailed as e:
            await pixiv.send(
                at +
                f"{chosen[0]}\nPixiv 链接:{chosen[1]}\n大概是太涩了差点发不出来,复制下面链接到浏览器查看吧"
            )
            print(f"[pixiv.py]: {e}")
        finally:
            await pixiv.finish(await async_shorten_url(chosen[2]))
예제 #7
0
async def _eat_what(bot: Bot, event: MessageEvent):
    user_id = event.get_user_id()
    if not _eat_flmt.check(user_id):
        return

    msg = str(event.get_message())
    user_name = event.sender.nickname or "裙友"
    eat = await Funny().eat_what(user_name, msg)
    _eat_flmt.start_cd(user_id)
    await eat_what.finish(Message(eat))
예제 #8
0
async def _echo(
    bot: Bot,
    event: MessageEvent,
):
    try:
        if event.get_user_id() != get_attr('SUPER')[0]:
            text = "你暂无此权限"
        else:
            name = event.get_plaintext()[5:]
            text = get_info(name)
    except Exception as e:
        text = '错误提示' + str(e)
    await bot.send(event, text, at_sender=True)
예제 #9
0
async def _message(bot: Bot, event: MessageEvent):
    try:
        conn = connsql()
        if event.get_plaintext() != '本周课表':
            return
        if not sql_isempty(event.get_user_id(), conn):
            text = tishi2
        else:
            text = await weekclass(event.get_user_id(), conn, "this")
    except Exception as e:
        text = str(e)
    finally:
        closeconnsql(conn)
    await bot.send(event, text, at_sender=True)
예제 #10
0
async def handle_morning(bot: Bot, event: MessageEvent):
    session_id = event.get_session_id().split("_")
    gid = int(session_id[1])
    uid = int(event.get_user_id())
    time = datetime.now()
    date = time.date()

    # 起床时间储存到前一天的数据里
    date -= timedelta(days=1)

    # 0:00 ~ 3:00 及 14:00 ~ 24:00 拒绝命令
    if time.hour < 3 or time.hour >= 14:
        await good_morning.finish("早上好……诶!怎么想都不太对吧!")
        return

    # 存入起床时间
    if gid in data:
        if date in data[gid]:
            if uid in data[gid][date]:

                # 如果已有起床时间,不作理会
                if data[gid][date][uid][1] != -1:
                    await good_morning.finish(
                        "你已经跟小丛雨说过早上好啦!难道睡回笼觉了吗,要是这样小丛雨可要批评你了!")
                    return

                data[gid][date][uid][1] = time
            else:
                data[gid][date][uid] = [-1, time]
            data[gid][date][-1][1] += 1
        else:
            data[gid][date] = {-1: [0, 1], uid: [-1, time]}
    else:
        data[gid] = {date: {-1: [0, 1], uid: [-1, time]}}
    save_to_file(data)

    time_list = data[gid][date][uid]
    order = data[gid][date][-1][1]
    if time_list[0] != -1:
        delta = time_list[1] - time_list[0]
        hours, remains = divmod(delta.seconds, 3600)
        mins, secs = divmod(remains, 60)

        sleep_time_info = f"昨晚你睡了 {hours} 小时 {mins} 分,是本群起床第 {order} 人!"
    else:
        sleep_time_info = f"你是本群起床第 {order} 人!没有记录到你昨晚的入睡时间呢,今晚记得跟小丛雨说晚安哦!"

    await good_morning.finish(
        MessageSegment.at(uid) + "你醒啦!" + sleep_time_info)
예제 #11
0
async def _keyrepo(bot: Bot, event: MessageEvent) -> None:
    msg = str(event.get_message())
    data = load_key_data()

    for key in data.keys():
        if key in msg:
            await keyrepo.finish(choice(data[key]))
예제 #12
0
파일: essential.py 프로젝트: coolwindX/ATRI
async def _check_block(matcher: Matcher, bot: Bot, event: MessageEvent,
                       state: T_State) -> None:
    user_file = "block_user.json"
    path = MANEGE_DIR / user_file
    if not path.is_file():
        with open(path, "w", encoding="utf-8") as w:
            w.write(json.dumps({}))
        data = dict()

    data = json.loads(path.read_bytes())

    user_id = event.get_user_id()
    if user_id in data:
        raise IgnoredException(f"Block user: {user_id}")

    if isinstance(event, GroupMessageEvent):
        group_file = "block_group.json"
        path = MANEGE_DIR / group_file
        if not path.is_file():
            with open(path, "w", encoding="utf-8") as w:
                w.write(json.dumps({}))
            data = dict()

        data = json.loads(path.read_bytes())

        group_id = str(event.group_id)
        if group_id in data:
            raise IgnoredException(f"Block group: {user_id}")
예제 #13
0
async def say_unescape(bot: Bot, event: MessageEvent):
    def _unescape(message: Message, segment: MessageSegment):
        if segment.is_text():
            return message.append(unescape(str(segment)))
        return message.append(segment)

    message = reduce(_unescape, event.get_message(), Message())  # type: ignore
    await bot.send(message=message, event=event)
예제 #14
0
async def _echo(bot: Bot, event: MessageEvent):
    try:
        if re.match("绑定学号 [\d]{12}", event.get_plaintext()):
            return
        text = '绑定格式错误 请输入 绑定学号 631800000000 进行绑定'
    except Exception as e:
        text = e
    await bot.send(event, text, at_sender=True)
예제 #15
0
async def anime_res_handle(bot: Bot, event: MessageEvent, state: T_State):
    state["res"] = None
    text = event.get_plaintext()
    if text:
        state["res"], msg = await get_anime_res(anime_res, text)
        await anime_res.send(msg)
    else:
        await anime_res.send("请输入资源名称也可以添加关键字,注意名称与关键字空格分隔。\n例如:天气之子或天气之子 mkv")
예제 #16
0
async def _ready_sepi(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    if not _sepi_flmt.check(user_id):
        await sepi.finish(choice(_sepi_flmt_notice))

    msg = str(event.message).strip()
    if msg:
        state["sepi_text"] = msg
예제 #17
0
파일: __init__.py 프로젝트: coolwindX/ATRI
async def _ready_say(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    if not _chat_flmt.check(user_id):
        await say.finish(_chat_flmt_notice)

    msg = str(event.message)
    if msg:
        state["say"] = msg
예제 #18
0
파일: __init__.py 프로젝트: coolwindX/ATRI
async def _ready_search(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    if not _search_flmt.check(user_id):
        await saucenao.finish(_search_flmt_notice)

    msg = str(event.message).strip()
    if msg:
        state["img"] = msg
예제 #19
0
async def _ready_sear(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    if not _anime_flmt.check(user_id):
        await anime_search.finish(_anime_flmt_notice)

    msg = str(event.message).strip()
    if msg:
        state["anime"] = msg
예제 #20
0
파일: __init__.py 프로젝트: coolwindX/ATRI
async def _name(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    if not _chat_flmt.check(user_id):
        await my_name_is.finish(_chat_flmt_notice)

    msg = str(event.message).strip()
    if msg:
        state["name"] = msg
예제 #21
0
파일: curse.py 프로젝트: coolwindX/ATRI
async def _deal_s_curse(bot: Bot, event: MessageEvent):
    user_id = event.get_user_id()
    if not _curse_flmt.check(user_id):
        await normal_curse.finish(_curse_flmt_notice)

    result = await Curse().now()
    _curse_flmt.start_cd(user_id)
    await normal_curse.finish(result)
예제 #22
0
async def _deal_sepi(bot: Bot, event: MessageEvent, state: T_State):
    user_id = event.get_user_id()
    msg = state["sepi_text"]
    if len(msg) < 4:
        await sepi.finish("这么短?涩不起来!")

    result = Yinglish.deal(msg, random())
    _sepi_flmt.start_cd(user_id)
    await sepi.finish(result)
예제 #23
0
async def _echo(bot: Bot, event: MessageEvent):
    try:
        conn = connsql()
        if not sql_isempty(event.get_user_id(), conn):
            text = tishi2
        else:
            name = ''
            a = conn.execute('select name from new where id={}'.format(
                event.get_user_id()))
            for i in a:
                name = i[0]
            await get_class(bot, event, conn, str(name))
            text = '刷新课表成功'
    except Exception as e:
        text = '刷新课表失败,错误提示' + str(e)
    finally:
        closeconnsql(conn)
    await bot.send(event, text, at_sender=True)
예제 #24
0
파일: __init__.py 프로젝트: coolwindX/ATRI
async def _chat(bot: Bot, event: MessageEvent):
    user_id = event.get_user_id()
    if not _chat_flmt.check(user_id):
        await chat.finish(_chat_flmt_notice)

    msg = str(event.message)
    repo = await Chat().deal(msg, user_id)
    _chat_flmt.start_cd(user_id)
    await chat.finish(repo)
예제 #25
0
async def anime_res_got(bot: Bot, event: MessageEvent, state: T_State):
    text = event.get_plaintext()
    if state["res"]:
        await state["res"].reply_magnet(text)
    else:
        if text:
            state["res"], msg = await get_anime_res(anime_res, text)
            await anime_res.reject(msg)
        await anime_res.reject("请输入资源名称!")
예제 #26
0
async def handle_uid(bot: Bot, event: MessageEvent, state: T_State):
    uid = event.get_plaintext().strip()
    if not uid:
        return
    if uid.isdecimal():
        state['uid'] = uid
    else:
        await bot.send(event, "UID 必须为纯数字")
        raise FinishedException
예제 #27
0
async def _echo(bot: Bot, event: MessageEvent):
    #print(bot.config.custom_config1,type(bot.config.custom_config1))
    if event.get_user_id() not in get_attr('SUPER'):
        text = "你暂无此权限"
    else:
        text = cancel("tmo", "南岸", get_attr('cookiedic')[event.get_user_id()])
    await bot.send(event, text, at_sender=True)


# cookie = {}
# a = conn.execute("select * from new where name='cdh'")
# for i in a:
#     print(i[2], type(i[2]))
#     cookie = demjson.decode(i[2])
#
# print(cookie, type(cookie))
#
# conn.close()
예제 #28
0
async def handle(bot: Bot, event: MessageEvent, state: T_State):
    argc = 0
    raw_args = str(event.get_message()).strip()
    if raw_args:
        arg_list = raw_args.split()
        argc = len(arg_list)
        for i in range(argc):
            state[f"arg{i+1}"] = arg_list[i]

    # 摇点
    if argc <= 1:
        is_valid = True
        if "arg1" in state:
            try:
                max_num = int(state["arg1"])
            except ValueError:
                max_num = -1
            if max_num <= 0:
                is_valid = False
        else:
            max_num = 100

        if is_valid:
            r = randint(0, max_num)
            ending = "好耶!"
            if r <= round(max_num / 3):
                ending = "不会吧不会吧?"
            await roll.finish(
                MessageSegment.at(event.get_user_id()) + f"摇了 {r}!" + ending)
        else:
            await roll.finish("小丛雨只会摇正整数哦!")

    # 摇选项
    else:
        # 消去重复选项
        arg_list = list(set(arg_list))

        if len(arg_list) > 1:
            start = ["当然是", "必然", "这不得"]
            end = ["啦!", "。", "?"]
            r = randint(0, len(start) - 1)
            await roll.finish(f"{start[r]}{choice(arg_list)}{end[r]}")
        else:
            await roll.finish(f"只能是{arg_list[0]}了!你根本就没想让小丛雨帮你决定,哼!")
예제 #29
0
async def _echo(bot: Bot, event: MessageEvent):
    try:
        conn = connsql()  #判断是否信息表存在  再更新
        if not sql_isempty(event.get_user_id(), conn):
            text = tishi2
        else:
            conn.execute("delete from new WHERE id={}".format(
                event.get_user_id()))
            conn.commit()
            conn.execute("delete from class WHERE qq={}".format(
                event.get_user_id()))
            print("delete from class WHERE qq={}".format(event.get_user_id()))
            conn.commit()
            text = "解除绑定成功"
    except Exception as e:
        text = '解除绑定失败,错误提示' + str(e)
    finally:
        closeconnsql(conn)
    await bot.send(event, text, at_sender=True)
예제 #30
0
파일: __init__.py 프로젝트: coolwindX/ATRI
async def _deal_say(bot: Bot, event: MessageEvent, state: T_State):
    msg = state["say"]
    check = CoolqCodeChecker(msg).check
    if not check:
        repo = choice(["不要...", "这个咱不想复读!", "不可以", "不好!"])
        await say.finish(repo)

    user_id = event.get_user_id()
    _chat_flmt.start_cd(user_id)
    await say.finish(msg)