#!/usr/bin/env python3 """ QQ 好友点赞 — 通过 NapCat (OneBot) HTTP API 调用 NapCat 的 /send_like 端点给好友点赞。 用法: python3 qq_send_like.py # 给指定 QQ 号点赞 python3 qq_send_like.py # 点赞指定次数(最大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_NAPCAT_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()