Files
chat_rebot-connect-with-one…/scripts/qq_send_like.py

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_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()