#!/usr/bin/env python3
"""
测试发布文章 - 狗狗侧躺蹬腿
"""
import requests
import json
import sys
def test_publish_dog_article():
"""测试发布狗狗文章"""
print("="*60)
print("测试发布文章:狗狗侧躺一直在蹬腿是怎么了")
print("="*60)
base_url = "http://localhost:18060"
# 文章内容
title = "狗狗侧躺一直在蹬腿是怎么了?🐕"
content = """狗狗侧躺一直在蹬腿,这一行为可能是由于神经亢奋、释放能量、模拟奔跑、环境不适、神经系统疾病、疼痛或不适等原因导致有关。
主人应根据具体情况进行判断,并注意观察狗狗是否有其他异常表现,以便及时采取措施保障其健康。
🔍 可能的原因:
1️⃣ 神经亢奋
狗狗的神经系统相对敏感,容易因为外界刺激或内部情感变化而兴奋。侧躺蹬腿有时只是神经亢奋的一种表现。
2️⃣ 释放能量
如果狗狗在白天没有充分消耗能量,晚上睡觉时可能会通过蹬腿等动作来释放多余的能量。
3️⃣ 模拟奔跑
狗狗在梦中可能会模拟奔跑、追逐等动作,蹬腿是其中的一部分。
4️⃣ 环境不适
狗狗的睡眠环境如果过于嘈杂、潮湿或不舒服,也可能导致其出现蹬腿等异常行为。
⚠️ 如果蹬腿行为频繁发生,或者伴随着其他不适症状,建议及时咨询兽医!"""
tags = ["宠物", "狗狗", "哈士奇", "宠物健康", "养狗知识"]
# 图片路径 - 需要提供实际路径
image_path = sys.argv[1] if len(sys.argv) > 1 else None
if not image_path:
print("\n⚠️ 请提供图片路径作为参数")
print("用法: python test_publish_dog.py /path/to/image.jpg")
return
# 步骤 1:检查服务状态
print("\n步骤 1:检查服务状态")
print("-" * 60)
try:
response = requests.get(f"{base_url}/health", timeout=5)
if response.status_code == 200:
print("✓ 服务正常运行")
else:
print(f"✗ 服务异常: {response.status_code}")
return
except Exception as e:
print(f"✗ 无法连接到服务: {e}")
return
# 步骤 2:检查创作中心登录状态
print("\n步骤 2:检查创作中心登录状态")
print("-" * 60)
response = requests.get(f"{base_url}/api/v1/login/creator/status")
result = response.json()
creator_logged_in = result.get('logged_in')
print(f"创作中心登录状态: {'✓ 已登录' if creator_logged_in else '✗ 未登录'}")
if not creator_logged_in:
print("\n⚠️ 创作中心未登录,正在初始化登录...")
print("请在浏览器窗口中完成登录(等待60秒)...")
try:
response = requests.post(f"{base_url}/api/v1/login/creator/init", timeout=90)
result = response.json()
print(f"\n结果: {result.get('message')}")
if not result.get('logged_in'):
print("\n✗ 登录失败,无法继续发布")
return
except Exception as e:
print(f"✗ 初始化登录失败: {e}")
return
# 步骤 3:准备发布数据
print("\n步骤 3:准备发布数据")
print("-" * 60)
print(f"标题: {title}")
print(f"内容长度: {len(content)} 字符")
print(f"标签: {', '.join(tags)}")
print(f"图片: {image_path}")
publish_data = {
"title": title,
"content": content,
"images": [image_path],
"tags": tags
}
# 步骤 4:调用发布 API
print("\n步骤 4:调用发布 API")
print("-" * 60)
print("正在发布...")
try:
response = requests.post(
f"{base_url}/api/v1/publish",
json=publish_data,
timeout=180
)
print(f"\nHTTP 状态码: {response.status_code}")
if response.status_code == 200:
result = response.json()
if result.get('success'):
print("\n" + "="*60)
print("✅ 发布成功!")
print("="*60)
print("\n请到小红书 APP 或网页版查看发布的内容")
else:
print("\n✗ 发布失败")
print(f"响应: {result}")
else:
print(f"\n✗ API 调用失败")
try:
error = response.json()
print(f"错误: {error}")
except:
print(f"错误: {response.text}")
except requests.exceptions.Timeout:
print("\n⚠️ 请求超时")
print("发布操作可能仍在进行中,请稍后检查小红书")
except Exception as e:
print(f"\n✗ 错误: {e}")
import traceback
traceback.print_exc()
print("\n" + "="*60)
if __name__ == "__main__":
test_publish_dog_article()