script/updateMD.py (76 lines of code) (raw):

## --------------------------------------------------------------------------- ## Licensed to the Apache Software Foundation (ASF) under one or more ## contributor license agreements. See the NOTICE file distributed with ## this work for additional information regarding copyright ownership. ## The ASF licenses this file to You under the Apache License, Version 2.0 ## (the "License"); you may not use this file except in compliance with ## the License. You may obtain a copy of the License at ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Unless required by applicable law or agreed to in writing, software ## distributed under the License is distributed on an "AS IS" BASIS, ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## See the License for the specific language governing permissions and ## limitations under the License. ## --------------------------------------------------------------------------- from io import UnsupportedOperation import json import openpyxl import csv import os def update(path,url): with open(path,'r+',encoding='utf-8') as u: lines=u.readlines() lines[5]=lines[5]+'speechLink: "'+url+'"\n' u.seek(0) u.truncate() u.writelines("".join(lines)) u.flush u.close with open('json/bilibili_data.json','r+',encoding='utf-8') as rf: bili_data=json.load(rf) fileList=os.listdir("content/sessions/") for data in bili_data: url=data['url'] url = "//player.bilibili.com/player.html?bvid=" + url.split("video/")[1] titles=data['title'].split(':') if len(titles)==0 : titles=data['title'].split(':') name=titles[1].split('-')[0].strip() title=titles[1].split('-')[1].strip() for file in fileList: fileName="content/sessions/"+file #print(fileName) with open(fileName,'r+',encoding='utf-8') as md: lines=md.readlines() mdTitle=lines[1].split(':')[1].split('"')[1] flag=False if title == mdTitle : mdNum=fileName flag=True urlSplit=file.split('.',) if len(urlSplit)==3: update(fileName,url) if len(urlSplit)==2: file=urlSplit[0]+".zh."+urlSplit[1] fileName="content/sessions/"+file update(fileName,url) break if flag==False: for file in fileList: fileName="content/sessions/"+file #print(fileName) with open(fileName,'r+',encoding='utf-8') as md: lines=md.readlines() nameOrRoom=lines[4].split(':')[0] if nameOrRoom=="room": mdName=lines[5].split(':')[1].split('"')[1] else : mdName=lines[4].split(':')[1].split('"')[1] if name == mdName : mdNum=fileName flag=True urlSplit=file.split('.',) if len(urlSplit)==3: update(fileName,url) if len(urlSplit)==2: file=urlSplit[0]+".zh."+urlSplit[1] fileName="content/sessions/"+file update(fileName,url) break # Open the EXECL file collect=openpyxl.load_workbook("./已完成修改部分-fix-all.xlsx") # Gets the active table object collect_active=collect.active for cell in collect_active['A']: url=cell.value if url != None and url != "页面地址" : hugo_url=url.split("sessions/")[1].split(".")[0] +".md" youtube_url=collect_active.cell(cell.row,5).value if len(youtube_url) > 30 : youtube_url = "https://www.youtube.com/embed/" + youtube_url.split("=")[1] else : youtube_url = "https://www.youtube.com/embed/" + youtube_url.split("be/")[1] hugo_url = "content/sessions/" + hugo_url update(hugo_url, youtube_url)