|
@@ -19,7 +19,7 @@ from . import api
|
|
|
class YuQue(object):
|
|
|
''' 语雀知识库下载 '''
|
|
|
|
|
|
- def __init__(self):
|
|
|
+ def __init__(self, args):
|
|
|
self.sess=requests.Session()
|
|
|
|
|
|
self.logger = logging.getLogger(__name__)
|
|
@@ -30,10 +30,10 @@ class YuQue(object):
|
|
|
self.ch.setFormatter(self.formatter)
|
|
|
self.logger.addHandler(self.ch)
|
|
|
|
|
|
- self.args = None
|
|
|
- self.parser = argparse.ArgumentParser(description='yuque download')
|
|
|
- self.parser.add_argument('-url', '--url', help='url', default='')
|
|
|
- self.args = self.parser.parse_args()
|
|
|
+ # self.args = None
|
|
|
+ # self.parser = argparse.ArgumentParser(description='yuque download')
|
|
|
+ # self.parser.add_argument('-url', '--url', help='url', default='')
|
|
|
+ self.args = args
|
|
|
|
|
|
def save_page(self, book_id, sulg, path):
|
|
|
''' 保存文档 '''
|
|
@@ -48,6 +48,7 @@ class YuQue(object):
|
|
|
|
|
|
def get_book(self, url):
|
|
|
''' 获取知识库 '''
|
|
|
+ print("获取知识库 " + url + " download.........")
|
|
|
try:
|
|
|
docsdata = requests.get(url)
|
|
|
data = re.findall(r"decodeURIComponent\(\"(.+)\"\)\);", docsdata.content.decode('utf-8'))
|
|
@@ -60,8 +61,9 @@ class YuQue(object):
|
|
|
md = ""
|
|
|
table = str.maketrans('\/:*?"<>|' + "\n\r", "___________")
|
|
|
prename = ""
|
|
|
- if (os.path.exists("download/" + str(docsjson['book']['id'])) == False):
|
|
|
- os.makedirs("download/" + str(docsjson['book']['id']))
|
|
|
+ download_dir= os.path.join(self.args["app_path"], "download", str(docsjson['book']['id']))
|
|
|
+ if (os.path.exists(download_dir) == False):
|
|
|
+ os.makedirs(download_dir)
|
|
|
# 遍历文档
|
|
|
for doc in docsjson['book']['toc']:
|
|
|
# 创建目录
|
|
@@ -80,8 +82,8 @@ class YuQue(object):
|
|
|
else:
|
|
|
temp[doc['uuid']] = list[uuid]['0'].translate(table) + '/' + temp[doc['uuid']]
|
|
|
break
|
|
|
- if ((os.path.exists("download/" + str(docsjson['book']['id']) + '/' + temp[doc['uuid']])) == False):
|
|
|
- os.makedirs("download/" + str(docsjson['book']['id']) + '/' + temp[doc['uuid']])
|
|
|
+ if ((os.path.exists(f"{download_dir}/" + temp[doc['uuid']])) == False):
|
|
|
+ os.makedirs(f"{download_dir}/" + temp[doc['uuid']])
|
|
|
if (temp[doc['uuid']].endswith("/")):
|
|
|
md += "## " + temp[doc['uuid']][:-1] + "\n"
|
|
|
else:
|
|
@@ -96,22 +98,18 @@ class YuQue(object):
|
|
|
md += " " * temp[doc['parent_uuid']].count("/") + "* [" + doc['title'] + "](" + urllib.parse.quote(
|
|
|
temp[doc['parent_uuid']] + "/" + doc['title'].translate(table) + '.md') + ")" + "\n"
|
|
|
self.save_page(str(docsjson['book']['id']), doc['url'],
|
|
|
- "download/" + str(docsjson['book']['id']) + '/' + temp[doc['parent_uuid']] + "/" + doc[
|
|
|
+ f"{download_dir}/" + temp[doc['parent_uuid']] + "/" + doc[
|
|
|
'title'].translate(table) + '.md')
|
|
|
else:
|
|
|
md += " " + "* [" + doc['title'] + "](" + urllib.parse.quote(
|
|
|
doc['title'].translate(table) + '.md') + ")" + "\n"
|
|
|
self.save_page(str(docsjson['book']['id']), doc['url'],
|
|
|
- "download/" + str(docsjson['book']['id']) + "/" + doc[
|
|
|
+ f"{download_dir}/" + doc[
|
|
|
'title'].translate(table) + '.md')
|
|
|
- with open("download/" + str(docsjson['book']['id']) + '/' + "/SUMMARY.md", 'w', encoding='utf-8') as f:
|
|
|
+ with open(f"{download_dir}" + "/SUMMARY.md", 'w', encoding='utf-8') as f:
|
|
|
f.write(md)
|
|
|
+ print("finish.....")
|
|
|
|
|
|
- def run(self):
|
|
|
- ''' 获取文档 '''
|
|
|
- if(self.args.url != ''):
|
|
|
- url = self.args.url
|
|
|
- self.get_book(url)
|
|
|
- else:
|
|
|
- url = input("请输入语雀文档链接:")
|
|
|
- self.get_book(url=url)
|
|
|
+ def pdf(self):
|
|
|
+ """ 生成pdf """
|
|
|
+ pass
|