markdown文件中的外链图片上传到GitHub图床
import os
import re
import requests
from github import Github
TOKEN = ""
REPO_NAME = ""
REPO_OWNER = ""
g = Github(TOKEN)
repo = g.get_user(REPO_OWNER).get_repo(REPO_NAME)
path = "."
file_names = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]
for name in file_names:if ".md" not in name:continueif path == '.':file = nameelse:file = path + nameprint("文件: " + file)with open(file, "r", encoding='utf-8') as f:content = f.read()img_tags = re.findall(r"!\[.*?\]\((.*?)\)", content) + re.findall(r'<img.*?src="(.*?)".*?>', content)for img_tag in img_tags:print(img_tag)if "https://raw.githubusercontent.com" in img_tag:print("跳过")continueimg_url = img_tagresponse = requests.get(img_url)img_data = response.contentimg_name = os.path.basename(img_url)if img_name[0:3] == "%20":img_name = img_name[3:]img_path = f"img13/{img_name}"img_file = repo.create_file(img_path, f"Upload image {img_name}", img_data)img_url = "https://raw.githubusercontent.com/yijunquan-afk/img-bed-1/main/" + img_pathprint("替换为:"+ img_url)content = content.replace(img_tag, img_url)with open(file, "w", encoding='utf-8') as f:f.write(content)