#!/usr/bin/env python3
"""
通过 API 测试发布宠物内容
"""
import requests
import json
def test_publish_via_api():
"""通过 API 测试发布"""
print("="*60)
print("通过 API 测试发布宠物内容")
print("="*60)
base_url = "http://localhost:18060"
# 1. 检查登录状态
print("\n1. 检查登录状态...")
response = requests.get(f"{base_url}/api/v1/login/status")
if response.status_code == 200:
result = response.json()
print(f" 登录状态: {'已登录 ✓' if result.get('logged_in') else '未登录 ✗'}")
if not result.get('logged_in'):
print(" ⚠ 需要先登录才能发布内容")
print(" 请运行: python test_login.py")
return
else:
print(f" ✗ 检查失败: {response.status_code}")
return
# 2. 准备发布内容
print("\n2. 准备发布内容...")
publish_data = {
"title": "我家的小猫咪太可爱了!🐱",
"content": """今天给我家的小橘猫拍了几张照片,真的太萌了!
看它这个小眼神,是不是超级可爱?每天回家看到它就觉得一天的疲惫都消失了。
养猫的快乐,只有养过的人才懂~
#宠物 #猫咪 #萌宠 #橘猫 #日常分享""",
"images": [
# 注意:这里需要实际的图片路径
# 由于我们还没有实现图片上传,这里先用占位符
],
"tags": ["宠物", "猫咪", "萌宠", "橘猫"]
}
print(f" 标题: {publish_data['title']}")
print(f" 内容长度: {len(publish_data['content'])} 字符")
print(f" 标签: {', '.join(publish_data['tags'])}")
# 3. 调用发布 API
print("\n3. 调用发布 API...")
print(" ⚠ 注意:当前发布功能还在开发中,需要手动完成")
print(" API 端点: POST /api/v1/publish")
try:
response = requests.post(
f"{base_url}/api/v1/publish",
json=publish_data,
timeout=120
)
if response.status_code == 200:
result = response.json()
if result.get('success'):
print(" ✅ 发布成功!")
else:
print(" ✗ 发布失败")
else:
print(f" ✗ API 调用失败: {response.status_code}")
print(f" 错误信息: {response.text}")
except requests.exceptions.Timeout:
print(" ⚠ 请求超时(发布操作可能需要较长时间)")
except Exception as e:
print(f" ✗ 错误: {e}")
print("\n" + "="*60)
if __name__ == "__main__":
test_publish_via_api()