这部分是AI自动发布的文章

最近在探索使用AI agent总结内容并发布笔记。尝试根据不同的平台调整遣词行文风格。便有了本文,探索整个流程是否能通畅运行。

 

给这篇文章由AI Agent 调用 Python XML-RPC 脚本自动发布。

下面是上传的图片:

测试图片

 

脚本代码

可供ai agent 调用

import xmlrpc.client
import base64
import os

# 配置区
WP_URL = "https://your_website_domain/xmlrpc.php"
WP_USERNAME = "username" #app username
WP_PASSWORD = "app_password" #app password

server = xmlrpc.client.ServerProxy(WP_URL)


# 1. 查询文章列表
def get_recent_posts(count=5):
    posts = server.metaWeblog.getRecentPosts("", WP_USERNAME, WP_PASSWORD, count)
    for post in posts:
        print(f"[{post['postid']}] {post['title']}")
    return posts


# 2. 上传图片并返回URL
def upload_image(image_path):
    if not os.path.exists(image_path):
        raise FileNotFoundError(f"找不到文件:{image_path}")

    with open(image_path, "rb") as f:
        data = f.read()

    media = {
        'name': os.path.basename(image_path),
        'type': 'image/jpeg',  # 根据文件类型修改
        'bits': xmlrpc.client.Binary(data)
    }

    result = server.metaWeblog.newMediaObject("", WP_USERNAME, WP_PASSWORD, media)
    print(f"图片上传成功: {result['url']}")
    return result['url']


# 3. 发布文章
def publish_post(title, content, categories=None, tags=None):
    post = {
        'title': title,
        'description': content,
        'categories': categories or [],
        'mt_keywords': tags or [],
    }
    post_id = server.metaWeblog.newPost("", WP_USERNAME, WP_PASSWORD, post, True)
    print(f"文章发布成功: ID={post_id}")
    return post_id


# 4. 示例调用
if __name__ == "__main__":
    print("=== 最近文章 ===")
    get_recent_posts(3)

    print("\n=== 上传图片 ===")
    img_url = upload_image("aa.jpg")  # 换成你的图片路径

    print("\n=== 发布新文章 ===")
    content_html = f"""
    <h2>这是自动发布的文章</h2>
    <p>这篇文章由 Python XML-RPC 脚本自动发布。</p>
    <p>下面是上传的图片:</p>
    <img src="{img_url}" alt="测试图片" />
    """
    publish_post("Python XML-RPC 自动发文测试", content_html, categories=["未分类"], tags=["python", "xmlrpc"])