Typora-发布文章到博客园

技术杂谈54

Typora-发布文章到博客园

发布文件到博客园,需要先对博客园进行设置:

进入 帐户中心, 点击 博客设置

Typora-发布文章到博客园

滑动滚动条到最底部,点击 其它设置,开启"允许 MetaWeblog 博客客户端访问":

Typora-发布文章到博客园

注意上面的 MetaWeblog访问地址: https://rpc.cnblogs.com/metaweblog/yongdaimi, 可以先记录下来,这个我们后面会用到。

注意:看清自己的地址,不要把我的地址直接拷过去。

2. 准备上传脚本

cnblogsImage.py

import xmlrpc.client
import ssl
import os
import json
import sys
ssl._create_default_https_context = ssl._create_unverified_context

rootPath = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(rootPath,"cnblogs.json"),"rb") as f:
    config = json.loads(f.read())

def uploadImage(images):
    for image in images:
        with open(image,"rb") as f:
            imageData = f.read()

        baseName = os.path.basename(image)
        suffix = baseName.split(".")[-1]
        file = dict(
            bits = imageData,
            name = baseName,
            type = f"image/{suffix}"
        )
        proxy = xmlrpc.client.ServerProxy(config["url"])
        s = proxy.metaWeblog.newMediaObject('', config['username'], config['password'],file)
        print(s["url"])

if __name__ == '__main__':
    uploadImage(sys.argv[1:])

拷贝上述代码到一个单独的python文件,将文件重命名为: cnblogsImage.py

cnblogsArticle.py

import xmlrpc.client
import ssl
import os
import json
import sys
ssl._create_default_https_context = ssl._create_unverified_context

rootPath = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(rootPath,"cnblogs.json"),"rb") as f:
    config = json.loads(f.read())

def uploadArticle(articles):
    for article in articles:
        with open(article,"r",encoding="utf8") as f:
            data = f.read()

        title = os.path.basename(article)[:-3]
        post = dict(
            dateCreated = xmlrpc.client.DateTime(),
            description = data,
            title = title,
            categories = ['[Markdown]'],
        )
        proxy = xmlrpc.client.ServerProxy(config["url"])
        s = proxy.metaWeblog.newPost('', config['username'], config['password'],post,True)
        # 输出文章连接
        userName = config["url"].split("/")[-1]
        print(f"https://www.cnblogs.com/{userName}/p/{s}.html")

if __name__ == '__main__':
    uploadArticle(sys.argv[1:])

拷贝上述代码到一个单独的python文件,将文件重命名为: cnblogsArticle.py

cnblogs.json

{
    "url": "https://rpc.cnblogs.com/metaweblog/yongdaimi",
    "username": "zhangsan",
    "password": "123456"
}

拷贝上述代码到一个单独的json文件,将文件重命名为: cnblogs.json, 接着:

  • 修改url的内容为之前保存的 MetaWeblog访问地址;
  • 将username修改为你的博客园的用户名;
  • 将password修改为你的博客园的密码;

Original: https://www.cnblogs.com/yongdaimi/p/16386543.html
Author: 夜行过客
Title: Typora-发布文章到博客园