mirror of
https://github.com/TeamPGM/PagerMaid_Plugins.git
synced 2024-11-29 02:57:29 +00:00
parent
fe1782dab0
commit
8efa4cdc21
31
README.md
31
README.md
@ -56,22 +56,35 @@
|
|||||||
- `denyu` : 在某群中强制禁言某用户。
|
- `denyu` : 在某群中强制禁言某用户。
|
||||||
- `nthmsg` : 获取你发送的第 n 条消息。
|
- `nthmsg` : 获取你发送的第 n 条消息。
|
||||||
- `portball` : 回复你要临时禁言的人的消息来实现XX秒的禁言。
|
- `portball` : 回复你要临时禁言的人的消息来实现XX秒的禁言。
|
||||||
|
- `da` : 删除所有信息。
|
||||||
|
- `diss` : 祖安对线语录。
|
||||||
|
- `shangliu` : 上流对话工具。
|
||||||
|
- `killallmembers` : 一键扬了群。
|
||||||
|
- `aff` : 光速发Aff信息。
|
||||||
|
- `stickertopic` : 贴纸转图片。
|
||||||
|
- `vip` : vip 捐赠用户功能。
|
||||||
|
- `calculator` : 小型计算器。
|
||||||
|
- `paolu` : 一键跑路(删所有消息并禁言)。
|
||||||
|
- `keyword` : 群组关键词自动回复插件。
|
||||||
|
- `msgst` : 每天定时发送消息。
|
||||||
- profile (资料类)
|
- profile (资料类)
|
||||||
- `autochangename` : 自动更新 last_name 为时间等。
|
- `autochangename` : 自动更新 last_name 为时间等。
|
||||||
- `throwit` : 生成一张 扔头像 图片。
|
- `throwit` : 生成一张 扔头像 图片。
|
||||||
|
- `mjx` : 随机带评价买家秀,随机涩气买家秀。
|
||||||
- `eat` : 生成一张 吃头像 图片。
|
- `eat` : 生成一张 吃头像 图片。
|
||||||
- `mjx` : 随机发一张淘宝买家秀
|
|
||||||
- daily (便民类)
|
- daily (便民类)
|
||||||
- `weather` : 查询天气。
|
- `weather` : 查询天气。
|
||||||
- `xtao-some` : 一大堆便民功能。
|
- `xtao-some` : 一大堆便民功能。
|
||||||
- `yb-dl` : 上传 Youtube、Bilibili 视频到 telegram。
|
- `yb-dl` : 上传 Youtube、Bilibili 视频到 telegram。
|
||||||
- `rate` : 汇率转换。
|
- `rate` : 汇率转换。
|
||||||
- `netease` : 网易云热评。
|
- `netease` : 随机一条网易云音乐热评。
|
||||||
- `hyperlink` : 生成隐藏链接。
|
- `hyperlink` : 生成隐藏链接。
|
||||||
- `whois` : 查询域名信息
|
- `resou` : 微博,知乎,抖音实时热搜,B站实时排行榜。
|
||||||
- `resou` : 知乎,抖音,微博实时热搜
|
- `tel` : 查询手机号码归属地等信息。
|
||||||
- `tel` : 查询手机号码归属地等信息
|
- `whois` : 查询域名whois信息。
|
||||||
- `neteaseshuffle` : 随即一首网易云热门曲目
|
- `cosplay-multi` : 多网站随机获取Cos图。
|
||||||
- `neteasemusic` : 发送一首来自网易云的音乐
|
- `meizi` : 多网站随机获取写真。
|
||||||
- `shangliu` : 彩虹屁生成器,毒鸡汤生成器,营销号生成器
|
- `acg-multi` : 多网站随机获取ACG图。
|
||||||
- `diss` : 祖安语言生成器
|
- `neteaseshuffle` : 随机网抑热歌。
|
||||||
|
- `neteasemusic` : 网易云搜歌/随机热歌/点歌。
|
||||||
|
- `videodl` : 下载YTB/B站视频。
|
||||||
|
108
keyword.py
108
keyword.py
@ -145,58 +145,62 @@ async def send_reply(chat_id, reply_msg, context):
|
|||||||
update_last_time = False
|
update_last_time = False
|
||||||
could_send_msg = valid_time(chat_id)
|
could_send_msg = valid_time(chat_id)
|
||||||
for re_type, re_msg in reply_msg:
|
for re_type, re_msg in reply_msg:
|
||||||
catch_pattern = r"\$\{func_(?P<str>((?!\}).)+)\}"
|
try:
|
||||||
count = 0
|
catch_pattern = r"\$\{func_(?P<str>((?!\}).)+)\}"
|
||||||
while re.search(catch_pattern, re_msg) and count < 20:
|
count = 0
|
||||||
func_name = re.search(catch_pattern, re_msg).group("str")
|
while re.search(catch_pattern, re_msg) and count < 20:
|
||||||
try:
|
func_name = re.search(catch_pattern, re_msg).group("str")
|
||||||
module = import_module(f"plugins.keyword_func.{func_name}")
|
try:
|
||||||
func_data = await module.main(context)
|
module = import_module(f"plugins.keyword_func.{func_name}")
|
||||||
except:
|
func_data = await module.main(context)
|
||||||
func_data = "[RE]"
|
except:
|
||||||
re_msg = re_msg.replace("${func_%s}" % func_name, str(func_data))
|
func_data = "[RE]"
|
||||||
count += 1
|
re_msg = re_msg.replace("${func_%s}" % func_name, str(func_data))
|
||||||
for k, v in replace_data.items():
|
count += 1
|
||||||
re_msg = re_msg.replace(f"${k}", str(v))
|
for k, v in replace_data.items():
|
||||||
type_parse = re_type.split(",")
|
re_type = re_type.replace(f"${k}", str(v))
|
||||||
for s in type_parse:
|
re_msg = re_msg.replace(f"${k}", str(v))
|
||||||
if len(s) >= 5 and "ext_" == s[0:4] and is_num(s[4:]):
|
type_parse = re_type.split(",")
|
||||||
chat_id = int(s[4:])
|
for s in type_parse:
|
||||||
break
|
if len(s) >= 5 and "ext_" == s[0:4] and is_num(s[4:]):
|
||||||
if "plain" in type_parse:
|
chat_id = int(s[4:])
|
||||||
if could_send_msg:
|
break
|
||||||
update_last_time = True
|
if "plain" in type_parse:
|
||||||
await bot.send_message(chat_id, re_msg, reply_to = None)
|
if could_send_msg:
|
||||||
elif "reply" in type_parse and chat_id == real_chat_id:
|
update_last_time = True
|
||||||
if could_send_msg:
|
await bot.send_message(chat_id, re_msg, reply_to = None)
|
||||||
update_last_time = True
|
elif "reply" in type_parse and chat_id == real_chat_id:
|
||||||
await bot.send_message(chat_id, re_msg, reply_to = context.id)
|
if could_send_msg:
|
||||||
elif "file" in type_parse and len(re_msg.split()) >= 2:
|
update_last_time = True
|
||||||
if could_send_msg:
|
await bot.send_message(chat_id, re_msg, reply_to = context.id)
|
||||||
update_last_time = True
|
elif "file" in type_parse and len(re_msg.split()) >= 2:
|
||||||
if not path.exists("/tmp"):
|
if could_send_msg:
|
||||||
mkdir("/tmp")
|
update_last_time = True
|
||||||
re_data = re_msg.split()
|
if not path.exists("/tmp"):
|
||||||
file_name = "/tmp/" + re_data[0]
|
mkdir("/tmp")
|
||||||
if re_data[1][0:7] == "file://":
|
re_data = re_msg.split()
|
||||||
copyfile(re_data[1][7:], file_name)
|
file_name = "/tmp/" + re_data[0]
|
||||||
else:
|
if re_data[1][0:7] == "file://":
|
||||||
file_get = requests.get(" ".join(re_data[1:]))
|
copyfile(re_data[1][7:], file_name)
|
||||||
with open(file_name, "wb") as f:
|
else:
|
||||||
f.write(file_get.content)
|
file_get = requests.get(" ".join(re_data[1:]))
|
||||||
reply_to = None
|
with open(file_name, "wb") as f:
|
||||||
if "reply" in re_type.split(","):
|
f.write(file_get.content)
|
||||||
reply_to = context.id
|
reply_to = None
|
||||||
await bot.send_file(chat_id, file_name, reply_to = reply_to, force_document = True)
|
if "reply" in re_type.split(","):
|
||||||
remove(file_name)
|
reply_to = context.id
|
||||||
elif "op" in type_parse:
|
await bot.send_file(chat_id, file_name, reply_to = reply_to, force_document = True)
|
||||||
if re_msg == "delete":
|
remove(file_name)
|
||||||
await context.delete()
|
elif "op" in type_parse:
|
||||||
elif re_msg.split()[0] == "sleep" and len(re_msg.split()) == 2:
|
if re_msg == "delete":
|
||||||
sleep_time = re_msg.split()[1]
|
await context.delete()
|
||||||
if is_num(sleep_time):
|
elif re_msg.split()[0] == "sleep" and len(re_msg.split()) == 2:
|
||||||
await asyncio.sleep(int(sleep_time))
|
sleep_time = re_msg.split()[1]
|
||||||
chat_id = real_chat_id
|
if is_num(sleep_time):
|
||||||
|
await asyncio.sleep(int(sleep_time))
|
||||||
|
chat_id = real_chat_id
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if update_last_time:
|
if update_last_time:
|
||||||
global group_last_time
|
global group_last_time
|
||||||
group_last_time[int(chat_id)] = time.time()
|
group_last_time[int(chat_id)] = time.time()
|
||||||
|
@ -362,10 +362,10 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "keyword",
|
"name": "keyword",
|
||||||
"version": "2.21",
|
"version": "2.22",
|
||||||
"section": "chat",
|
"section": "chat",
|
||||||
"maintainer": "c3b2a",
|
"maintainer": "c3b2a",
|
||||||
"size": "24.5 kb",
|
"size": "24.8 kb",
|
||||||
"supported": true,
|
"supported": true,
|
||||||
"des-short": "群组关键词自动回复插件",
|
"des-short": "群组关键词自动回复插件",
|
||||||
"des": "命令: keyword, replyset, funcset。"
|
"des": "命令: keyword, replyset, funcset。"
|
||||||
|
Loading…
Reference in New Issue
Block a user