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)
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)
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)
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())
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()
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]))
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))
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)
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)
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)
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]))
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}")
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)
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)
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")
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
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
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
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
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
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)
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)
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)
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)
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("请输入资源名称!")
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
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()
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]}了!你根本就没想让小丛雨帮你决定,哼!")
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)
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)