完整 AgentSkill:词库外部化 + 全部脚本/Skill 脱敏上传
- 高危词库从 process.py 抽到 config.toml [security] section - process.py 改为 _get_high_risk_words() 动态加载(配置优先) - 新增 15 个 QQ 操作脚本(已脱敏:QQ号/IP/Token → 占位符) - 新增 8 个 SKILL.md(qq-messenger/management/resolver/napcat-extras 等) - 新增 SKILL.md 入口(完整部署方案文档) - 保留 SDK 框架(plugin_modules.py, file_store_api.py, package.py 等)
This commit is contained in:
81
scripts/qq_send_like.py
Normal file
81
scripts/qq_send_like.py
Normal file
@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
QQ 好友点赞 — 通过 NapCat (OneBot) HTTP API
|
||||
|
||||
调用 NapCat 的 /send_like 端点给好友点赞。
|
||||
|
||||
用法:
|
||||
python3 qq_send_like.py <user_id> # 给指定 QQ 号点赞
|
||||
python3 qq_send_like.py <user_id> <times> # 点赞指定次数(最大20)
|
||||
|
||||
示例:
|
||||
python3 qq_send_like.py YOUR_ADMIN_QQ # 给老板点个赞
|
||||
python3 qq_send_like.py 12345678 10 # 给好友点10个赞
|
||||
|
||||
返回:
|
||||
JSON: {"status": "ok", "retcode": 0, ...} 或错误信息
|
||||
"""
|
||||
|
||||
import json
|
||||
import sys
|
||||
import argparse
|
||||
import requests
|
||||
|
||||
CQHTTP_URL = "http://YOUR_NAP CAT_HOST:25570"
|
||||
|
||||
|
||||
def send_like(user_id: int, times: int = 1) -> dict:
|
||||
"""
|
||||
给好友点赞
|
||||
|
||||
Args:
|
||||
user_id: 目标 QQ 号
|
||||
times: 点赞次数,1-20,默认为1
|
||||
|
||||
Returns:
|
||||
API 响应 JSON
|
||||
"""
|
||||
resp = requests.post(
|
||||
f"{CQHTTP_URL}/send_like",
|
||||
json={"user_id": user_id, "times": times},
|
||||
timeout=10
|
||||
)
|
||||
return resp.json()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="给 QQ 好友点赞")
|
||||
parser.add_argument("user_id", type=int, help="目标 QQ 号")
|
||||
parser.add_argument("times", type=int, nargs="?", default=1,
|
||||
help="点赞次数 (1-20, 默认1)")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.times < 1 or args.times > 20:
|
||||
print(json.dumps({
|
||||
"status": "failed",
|
||||
"message": f"点赞次数必须在 1-20 之间, 当前: {args.times}"
|
||||
}))
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
result = send_like(args.user_id, args.times)
|
||||
print(json.dumps(result, ensure_ascii=False))
|
||||
if result.get("status") != "ok":
|
||||
sys.exit(1)
|
||||
except requests.exceptions.Timeout:
|
||||
print(json.dumps({
|
||||
"status": "failed",
|
||||
"message": "请求超时,NapCat 可能未运行"
|
||||
}))
|
||||
sys.exit(1)
|
||||
except requests.exceptions.ConnectionError as e:
|
||||
print(json.dumps({
|
||||
"status": "failed",
|
||||
"message": f"无法连接到 NapCat: {e}"
|
||||
}))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user