mirror of
https://github.com/TeamPGM/PagerMaid_Plugins.git
synced 2024-11-25 12:51:04 +00:00
添加不常用功能
This commit is contained in:
parent
08f478f4dc
commit
2269990bb4
71
keyword.py
71
keyword.py
@ -160,6 +160,28 @@ def cache_opened(chat_id, mode, trigger):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def getsetting(chat_id, mode, trigger, name, default):
|
||||||
|
g_settings = get_redis("keyword.settings")
|
||||||
|
n_settings = get_redis(f"keyword.{chat_id}.settings")
|
||||||
|
s_settings = get_redis(f"keyword.{chat_id}.single.{mode}.{encode(trigger)}")
|
||||||
|
final = default
|
||||||
|
if s_settings.get(name, None):
|
||||||
|
final = s_settings[name]
|
||||||
|
elif n_settings.get(name, None):
|
||||||
|
final = n_settings[name]
|
||||||
|
elif g_settings.get(name, None):
|
||||||
|
final = g_settings[name]
|
||||||
|
return final
|
||||||
|
|
||||||
|
|
||||||
|
async def aexec(code, *args, **kwargs):
|
||||||
|
exec(
|
||||||
|
f"async def func(*args, **kwargs):" +
|
||||||
|
"".join(f"\n {p}" for p in code.split("\n"))
|
||||||
|
)
|
||||||
|
return await locals()["func"](*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
async def del_msg(context, t_lim):
|
async def del_msg(context, t_lim):
|
||||||
await asyncio.sleep(t_lim)
|
await asyncio.sleep(t_lim)
|
||||||
try:
|
try:
|
||||||
@ -259,6 +281,10 @@ async def send_reply(chat_id, trigger, mode, reply_msg, context):
|
|||||||
reply_to = None
|
reply_to = None
|
||||||
if "reply" in type_parse:
|
if "reply" in type_parse:
|
||||||
reply_to = context.id
|
reply_to = context.id
|
||||||
|
redir = getsetting(chat_id, mode, trigger, "redir", "0")
|
||||||
|
reply = await context.get_reply_message()
|
||||||
|
if redir == "1" and reply:
|
||||||
|
reply_to = reply.id
|
||||||
if edit_id == -1:
|
if edit_id == -1:
|
||||||
message_list.append(await bot.send_file(
|
message_list.append(await bot.send_file(
|
||||||
chat_id,
|
chat_id,
|
||||||
@ -311,6 +337,10 @@ async def send_reply(chat_id, trigger, mode, reply_msg, context):
|
|||||||
reply_to = None
|
reply_to = None
|
||||||
if "reply" in type_parse:
|
if "reply" in type_parse:
|
||||||
reply_to = context.id
|
reply_to = context.id
|
||||||
|
redir = getsetting(chat_id, mode, trigger, "redir", "0")
|
||||||
|
reply = await context.get_reply_message()
|
||||||
|
if redir == "1" and reply:
|
||||||
|
reply_to = reply.id
|
||||||
if edit_id == -1:
|
if edit_id == -1:
|
||||||
message_list.append(await bot.send_file(
|
message_list.append(await bot.send_file(
|
||||||
chat_id,
|
chat_id,
|
||||||
@ -344,10 +374,15 @@ async def send_reply(chat_id, trigger, mode, reply_msg, context):
|
|||||||
if could_send_msg:
|
if could_send_msg:
|
||||||
update_last_time = True
|
update_last_time = True
|
||||||
if edit_id == -1:
|
if edit_id == -1:
|
||||||
|
reply_to = context.id
|
||||||
|
redir = getsetting(chat_id, mode, trigger, "redir", "0")
|
||||||
|
reply = await context.get_reply_message()
|
||||||
|
if redir == "1" and reply:
|
||||||
|
reply_to = reply.id
|
||||||
message_list.append(await bot.send_message(
|
message_list.append(await bot.send_message(
|
||||||
chat_id,
|
chat_id,
|
||||||
re_msg,
|
re_msg,
|
||||||
reply_to=context.id,
|
reply_to=reply_to,
|
||||||
link_preview=("nopreview" not in type_parse)
|
link_preview=("nopreview" not in type_parse)
|
||||||
))
|
))
|
||||||
else:
|
else:
|
||||||
@ -365,6 +400,12 @@ async def send_reply(chat_id, trigger, mode, reply_msg, context):
|
|||||||
await message_list[int(re_msg.split()[1])].delete()
|
await message_list[int(re_msg.split()[1])].delete()
|
||||||
elif re_msg.split()[0] == "trigger" and len(re_msg.split()) == 2:
|
elif re_msg.split()[0] == "trigger" and len(re_msg.split()) == 2:
|
||||||
await auto_reply(message_list[int(re_msg.split()[1])])
|
await auto_reply(message_list[int(re_msg.split()[1])])
|
||||||
|
elif re_msg.split("\n")[0].startswith("exec") and len(re_msg.split("\n")) >= 2:
|
||||||
|
args = [
|
||||||
|
"\n".join(re_msg.split("\n")[1:]),
|
||||||
|
" ".join(re_msg.split("\n")[0].split(" ")[1:])
|
||||||
|
]
|
||||||
|
await eval(f"aexec(args[0]{f', {args[1]}' if args[1] else ''})")
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
chat_id = real_chat_id
|
chat_id = real_chat_id
|
||||||
@ -515,6 +556,7 @@ async def reply_set(context):
|
|||||||
"trig": (2,),
|
"trig": (2,),
|
||||||
"show": (1,),
|
"show": (1,),
|
||||||
"cache": (2,),
|
"cache": (2,),
|
||||||
|
"redir": (2,),
|
||||||
"status": (2,),
|
"status": (2,),
|
||||||
"clear": (1,)
|
"clear": (1,)
|
||||||
}
|
}
|
||||||
@ -542,8 +584,9 @@ async def reply_set(context):
|
|||||||
"mode": "未设置 (默认黑名单)",
|
"mode": "未设置 (默认黑名单)",
|
||||||
"list": "未设置 (默认为空)",
|
"list": "未设置 (默认为空)",
|
||||||
"freq": "未设置 (默认为 1)",
|
"freq": "未设置 (默认为 1)",
|
||||||
"trig": "未设置 (默认为 0)",
|
"trig": "未设置 (默认关闭)",
|
||||||
"cache": "未设置 (默认关闭)",
|
"cache": "未设置 (默认关闭)",
|
||||||
|
"redir": "未设置 (默认关闭)",
|
||||||
"status": "未设置 (默认开启)"
|
"status": "未设置 (默认开启)"
|
||||||
}
|
}
|
||||||
msg = "Settings: \n"
|
msg = "Settings: \n"
|
||||||
@ -723,6 +766,30 @@ async def reply_set(context):
|
|||||||
await context.edit("参数错误")
|
await context.edit("参数错误")
|
||||||
await del_msg(context, 5)
|
await del_msg(context, 5)
|
||||||
return
|
return
|
||||||
|
elif params[0] == "redir":
|
||||||
|
if params[1] == "0":
|
||||||
|
settings_dict["redir"] = "0"
|
||||||
|
redis.set(redis_data, save_rules(settings_dict, None))
|
||||||
|
await context.edit("已关闭回复穿透")
|
||||||
|
await del_msg(context, 5)
|
||||||
|
return
|
||||||
|
elif params[1] == "1":
|
||||||
|
settings_dict["redir"] = "1"
|
||||||
|
redis.set(redis_data, save_rules(settings_dict, None))
|
||||||
|
await context.edit("已开启回复穿透")
|
||||||
|
await del_msg(context, 5)
|
||||||
|
return
|
||||||
|
elif params[1] == "clear":
|
||||||
|
if "redir" in settings_dict:
|
||||||
|
del settings_dict["redir"]
|
||||||
|
redis.set(redis_data, save_rules(settings_dict, None))
|
||||||
|
await context.edit("已清除回复穿透设置")
|
||||||
|
await del_msg(context, 5)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
await context.edit("参数错误")
|
||||||
|
await del_msg(context, 5)
|
||||||
|
return
|
||||||
elif params[0] == "status":
|
elif params[0] == "status":
|
||||||
if redis_data == f"keyword.{chat_id}.settings":
|
if redis_data == f"keyword.{chat_id}.settings":
|
||||||
if params[1] == "0":
|
if params[1] == "0":
|
||||||
|
@ -362,10 +362,10 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "keyword",
|
"name": "keyword",
|
||||||
"version": "2.6",
|
"version": "2.61",
|
||||||
"section": "chat",
|
"section": "chat",
|
||||||
"maintainer": "c3b2a,xtaodada",
|
"maintainer": "c3b2a,xtaodada",
|
||||||
"size": "41.0 kb",
|
"size": "44.0 kb",
|
||||||
"supported": true,
|
"supported": true,
|
||||||
"des-short": "关键词自动回复插件。",
|
"des-short": "关键词自动回复插件。",
|
||||||
"des": "命令: keyword, keydata, replyset, funcset。"
|
"des": "命令: keyword, keydata, replyset, funcset。"
|
||||||
|
Loading…
Reference in New Issue
Block a user