你回来了?
我们一直在隔壁!

python发布本地图片文章到wordpress并生成缩略图的代码

# -*- coding: utf-8 -*-

import os
import shutil
import urllib2
import xmlrpclib

# 图片文件夹
IMAGE_DIR = 'images'
# 缩略图文件夹
THUMB_DIR = 'thumbs'
# 图片最大宽度
MAX_WIDTH = 600
# 图片最大高度
MAX_HEIGHT = 800
# 缩略图最大宽度
THUMB_MAX_WIDTH = 200
# 缩略图最大高度
THUMB_MAX_HEIGHT = 200
# wordpress xmlrpc地址
XMLRPC_URL = 'http://localhost/xmlrpc.php'
# wordpress用户名
USERNAME = 'admin'
# wordpress密码
PASSWORD = '123456'
# wordpress发布文章分类
CATEGORY = '1'

# 获取图片文件列表
def get_image_list():
    image_list = []
    for root, dirs, files in os.walk(IMAGE_DIR):
        for file in files:
            if os.path.splitext(file)[1] == '.jpg':
                image_list.append(os.path.join(root, file))
    return image_list

# 生成缩略图
def make_thumb(image_path):
    thumb_path = os.path.join(THUMB_DIR, os.path.basename(image_path))
    cmd = 'convert -resize %dx%d %s %s' % (THUMB_MAX_WIDTH, THUMB_MAX_HEIGHT, image_path, thumb_path)
    os.system(cmd)
    return thumb_path

# 上传图片
def upload_image(image_path):
    server = xmlrpclib.ServerProxy(XMLRPC_URL)
    data = {
        'name': os.path.basename(image_path),
        'type': 'image/jpg',
    }
    with open(image_path, 'rb') as f:
        data['bits'] = xmlrpclib.Binary(f.read())
    response = server.wp.uploadFile(0, USERNAME, PASSWORD, data)
    return response['url']

# 发布文章
def post_article(title, content, image_url, thumb_url):
    server = xmlrpclib.ServerProxy(XMLRPC_URL)
    data = {
        'title': title,
        'description': content,
        'categories': [CATEGORY],
        'custom_fields': [
            {'key': 'thumb', 'value': thumb_url},
            {'key': 'image', 'value': image_url},
        ],
    }
    response = server.wp.newPost(0, USERNAME, PASSWORD, data, True)
    return response

# 主函数
def main():
    # 创建缩略图文件夹
    if not os.path.exists(THUMB_DIR):
        os.mkdir(THUMB_DIR)
    # 获取图片文件列表
    image_list = get_image_list()
    # 遍历图片文件列表
    for image_path in image_list:
        # 生成缩略图
        thumb_path = make_thumb(image_path)
        # 上传图片
        image_url = upload_image(image_path)
        # 上传缩略图
        thumb_url = upload_image(thumb_path)
        # 发布文章
        post_article(os.path.basename(image_path), '', image_url, thumb_url)

if __name__ == '__main__':
    main()

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《python发布本地图片文章到wordpress并生成缩略图的代码》
文章链接:https://www.gebizhan.com/1712.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

隔壁评论 抢沙发

快来看啊,隔壁站!

我们就是隔壁站的老王

隔壁邮箱隔壁TG

登录

找回密码

注册