Typora实现cnblog文章的推送

Typora实现cnblog文章的推送#

要使用博客园的 MetaWeblog API, 要在设置中进行简单的设置

20211205170716894

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:])

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:])

#

cnblogs.json#

如果要使用上传文章到博客圆,或者使用博客园图床,首先要对 cnblogs.json 进行修改:

{
    "url": "https://rpc.cnblogs.com/metaweblog/user",
    "username": "user",
    "password": "12345678"
}

注意:cnblogs.json和cnblogsImage.py、cnblogsArticle.py处于同一目录下

配置使用typora图床:

20211205171748658

命令:

D:/Python36/python.exe D:/software/Typora/command/cnblogsImage.py

这里最好都使用绝对路径进行配置,否则可能会有找不到脚本的问题。

上传文章到博客园:

2021120517204161

命令:

D:/Python36/python.exe D:/software/Typora/command/cnblogsArticle.py "${currentPath}"

${currentPath} 表示的是完整的markdown文件路径。


2022/8/23
目前博客园取消了密码的登录,因此需要在下边自己创建一个令牌,用令牌把密码替换即可

作者:suehoo

出处:https://www.cnblogs.com/suehoo/p/16229031.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   suehoo  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu