Files
chat_rebot-connect-with-one…/scripts/qq_send_like.py
Claw 4068869217 feat(plugin): 集成 OpenClaw Bridge + QQ 操作技能套件
新增 openclaw_bridge 插件,实现 QQ ↔ OpenClaw Gateway 桥接:

src/process.py:
  - QQ 消息自动转发 OpenClaw Gateway
  - 内置安全检测(高危词、管理员白名单、MC指令过滤)
  - 高危词库外部化到 config.toml [security] section
  - 群昵称自动解析
  - Session 隔离(按群×用户)

config/openclawbridge/config.toml:
  - 插件配置模板(已脱敏:占位符替代个人信息)

scripts/qq_*.py (×15):
  - 消息发送/文件传输/群管理/好友管理
  - 信息查询/历史回溯/OCR/点赞
  - 全部脱敏(QQ号→YOUR_ADMIN_QQ, IP→YOUR_NAPCAT_HOST等)

skills/*/SKILL.md (×8):
  - AgentSkills 使用指导
  - qq-messenger / qq-management / qq-resolver / qq-napcat-extras
  - browser / file-process / mc-query / nix-helper

SKILL.md:
  - AgentSkill 入口,完整架构说明和部署步骤
2026-05-04 16:28:12 +08:00

82 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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()