返回
顶部

前言

刚才在弄CDN的时候因为忘记密码,所以用google邮箱收了一下邮件,意外的发现自己的GoogleAdSense竟然通过了!

image-20210620104943456

Yes!!!!

以前的都被驳回了,这次竟然成功了,而且是在1月份就通过了,我本来以为都没戏了,所以很久没看,辛亏今天发现了,不然再过几天就被重置了

赶紧发篇文章,希望网站点击量能蒸蒸日上!!!!

正文

之前在公众号上发过csdn图床的脚本

后来发现服务器的空间越来越少了,其中占用空间最大的莫过于图片了,因此就想着把这个脚本利用起来,而碰巧最新版本的typora支持自定义图片上传脚本

image-20210620101316162

我填的命令是

python C:\Users\x\tools\csdn_image_upload_api.py

这个脚本就是根据之前的脚本进行了一下修改,首先我们需要修改让其支持多参数,因为Typora有一个上传全部本地图片的选项,该选项会将当前文档中所有的图片路径作为参数传递给我们的脚本

image-20210620102523032

参数的处理

for item in sys.argv[1:]:
    pic_path= item
    pic_path = pic_path.replace("\\\\", "\\")
    pic_path = urllib.parse.unquote(pic_path)

从第二个参数开始(第一个是脚本本身)逐个进行上传,由于typora传过来的参数中\进行过转义,因此需要将\\替换成\,另外中文字符进行了URL编码,因此还需要再进行一次解码

另外,windows命令行下接受的参数个数是有限制的,因此在使用Typora进行文档编辑时最好是时不时地上传一下本地图片

本地文件路径和图片url的映射

为了预防csdn哪天把我给ban了,或者官方对这个图片上传API进行了更严格的限制,我在上传文件的同时将本地文件和上传之后获得的URL进行了一个映射,并保存在对应文件的assets目录中的map.map文件中

图片上传完成后生成的map文件内容如下:

image-20210620103113667

我单独写了一个脚本进行URL至本地文件的转换脚本,可以一次性的处理所有的md文档

import sys
import os

# f = open("c:\\1.txt","r", encoding="utf-8")
# lines = f.readlines()      
# for line in lines 

mylisadict = {}
for root,dirs,files in os.walk(r"C:\Users\x\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\x\wochinijiamile\content"):
    for dir in dirs:
        # print(dir)
        pathhdir = os.path.join(root,dir)
        my_file = pathhdir +'\\map.map'
        if os.path.isfile(my_file):
            f = open(my_file,"r", encoding="utf-8")
            lines = f.readlines()    

            for line in lines:
                mylist = line.strip().split(',')
                mylisadict[mylist[1]] = mylist[0]
            f.close()
for root,dirs,files in os.walk(r"C:\Users\x\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\x\wochinijiamile\content"):
    for file in files:

        if ".md"  in file:
            fuckfaile = os.path.join(root,file)
            print(fuckfaile)
            fff = open(fuckfaile,"r", encoding="utf-8")
            lines = fff.readlines()
            data = 'biaojizifuchuasssssssssssssssngiuqeryguisdgfjks'.join([line.replace('\n', '') for line in lines])

            for key,values in mylisadict.items():
                data = data.replace(key, values)
            data = data.replace('biaojizifuchuasssssssssssssssngiuqeryguisdgfjks', '\n')
            fff.close()
            fisssn = open(fuckfaile, "wt", encoding="utf-8")
            fisssn.write(data)
            fisssn.close()

将第9行和第22行的路径修改为md文件的路径即可

当然,不出意外的话,这个脚本是用不着的,最好永远都不要用上

图床脚本

除了上面提到的修改,最后对返回的json字符串的正则匹配也进行了小的改动,因为我发现gif文件回来的路径有点不太一样,因此单独匹配了一下

完整脚本下载地址:

安装依赖:

python.exe -m pip install requests
python.exe -m pip install filetype
python.exe -m pip install requests-toolbelt

大家在使用的时候需要根据自己的环境手动进行一些修改,比如第92行的代码就有我硬编码进去的字符串,XDM在用的时候需要进行更改

如果有任何问题,请在下方评论或者联系我邮箱