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)