Browse Source

feat: command line parameters of release script

master
Dnomd343 2 years ago
parent
commit
a2e2f46426
  1. 15
      src/release/release.py
  2. 5
      src/release/utils/common.py
  3. 11
      src/release/utils/release.py

15
src/release/release.py

@ -1,6 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys
import multiprocessing
from copy import deepcopy from copy import deepcopy
from concurrent import futures from concurrent import futures
@ -14,17 +16,17 @@ from utils import staticRelease
from utils import calibreRelease from utils import calibreRelease
from utils import gitbookRelease from utils import gitbookRelease
# TODO: update gitbook links
''' '''
In order to avoid unintentional modification of the content, In order to avoid unintentional modification of the content,
using deepcopy function here. using deepcopy function here.
''' '''
def allRelease(metadata: dict, content: dict) -> None: def allRelease(metadata: dict, content: dict) -> None:
cpuCount = multiprocessing.cpu_count()
txtRelease(deepcopy(metadata), deepcopy(content)) txtRelease(deepcopy(metadata), deepcopy(content))
jsonRelease(deepcopy(metadata), deepcopy(content)) jsonRelease(deepcopy(metadata), deepcopy(content))
gitbookRelease(deepcopy(metadata), deepcopy(content)) gitbookRelease(deepcopy(metadata), deepcopy(content))
threadPool = futures.ThreadPoolExecutor(max_workers = 4) threadPool = futures.ThreadPoolExecutor(max_workers = cpuCount)
azw3Task = threadPool.submit(azw3Release, deepcopy(metadata), deepcopy(content)) azw3Task = threadPool.submit(azw3Release, deepcopy(metadata), deepcopy(content))
epubTask = threadPool.submit(epubRelease, deepcopy(metadata), deepcopy(content)) epubTask = threadPool.submit(epubRelease, deepcopy(metadata), deepcopy(content))
mobiTask = threadPool.submit(mobiRelease, deepcopy(metadata), deepcopy(content)) mobiTask = threadPool.submit(mobiRelease, deepcopy(metadata), deepcopy(content))
@ -33,7 +35,7 @@ def allRelease(metadata: dict, content: dict) -> None:
print('All build complete') print('All build complete')
releaseEntry = { releaseEntry = { # release functions
'all': allRelease, 'all': allRelease,
'txt': txtRelease, 'txt': txtRelease,
'json': jsonRelease, 'json': jsonRelease,
@ -46,6 +48,7 @@ releaseEntry = {
} }
releaseSrc = 'rc-5' if sys.argv[1] not in releaseEntry:
bookMetadata, bookContent = loadBook(releaseSrc) print('Unknown target `%s` in %s' % (sys.argv[1], [x for x in releaseEntry]))
releaseEntry['all'](bookMetadata, bookContent) bookMetadata, bookContent = loadBook(sys.argv[2])
releaseEntry[sys.argv[1]](bookMetadata, bookContent)

5
src/release/utils/common.py

@ -4,7 +4,6 @@
import os import os
import json import json
projectDesc = '《栩栩若生》电子书'
projectUrl = 'https://github.com/dnomd343/xxrs-crawler' projectUrl = 'https://github.com/dnomd343/xxrs-crawler'
rootPath = os.path.join( # project root directory rootPath = os.path.join( # project root directory
@ -33,6 +32,10 @@ resourceInfo = { # resource download links
'https://res.343.re/Share/XXRS/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.txt', 'https://res.343.re/Share/XXRS/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.txt',
'https://cdn.dnomd343.top/xxrs/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.txt', 'https://cdn.dnomd343.top/xxrs/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.txt',
], ],
'AZW3 下载': [
'https://res.343.re/Share/XXRS/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.azw3',
'https://cdn.dnomd343.top/xxrs/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.azw3',
],
'EPUB 下载': [ 'EPUB 下载': [
'https://res.343.re/Share/XXRS/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.epub', 'https://res.343.re/Share/XXRS/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.epub',
'https://cdn.dnomd343.top/xxrs/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.epub', 'https://cdn.dnomd343.top/xxrs/%E6%A0%A9%E6%A0%A9%E8%8B%A5%E7%94%9F.epub',

11
src/release/utils/release.py

@ -11,7 +11,6 @@ from .common import isRoot
from .common import rootPath from .common import rootPath
from .common import saveFile from .common import saveFile
from .common import projectUrl from .common import projectUrl
from .common import projectDesc
from .common import releaseInfo from .common import releaseInfo
from .common import createFolder from .common import createFolder
from .common import resourceInfo from .common import resourceInfo
@ -40,7 +39,7 @@ def gitbookRelease(metadata: dict, content: dict) -> None:
cover = gitbookMetadata(metadata) cover = gitbookMetadata(metadata)
for (resName, resUrls) in resourceInfo.items(): for (resName, resUrls) in resourceInfo.items():
cover += '{% hint style="success" %}\n' \ cover += '{% hint style="success" %}\n' \
+ '### >>> [%s](%s) <<<\n' % (resName, resUrls[0]) \ + '### [%s](%s)([备用地址](%s))\n' % (resName, resUrls[1], resUrls[0]) \
+ '{% endhint %}\n\n' + '{% endhint %}\n\n'
cover += '{%% embed url="%s" %%}\n项目地址\n{%% endembed %%}\n' % projectUrl cover += '{%% embed url="%s" %%}\n项目地址\n{%% endembed %%}\n' % projectUrl
@ -60,14 +59,14 @@ def staticDepends(workDir: str, metadata: dict, content: dict) -> None:
cover = gitbookMetadata(metadata) + '<hr/>\n' cover = gitbookMetadata(metadata) + '<hr/>\n'
for (resName, resUrls) in resourceInfo.items(): for (resName, resUrls) in resourceInfo.items():
cover += '\n{% hint style="tip" %}\n' \ cover += '\n{% hint style="none" %}\n' \
+ '#### [%s](%s)([备用地址](%s))\n' % (resName, resUrls[0], resUrls[1]) \ + '#### [%s](%s)([备用地址](%s))\n' % (resName, resUrls[1], resUrls[0]) \
+ '{% endhint %}\n' + '{% endhint %}\n'
bookInfo = json.dumps({ bookInfo = json.dumps({
'title': metadata['name'], 'title': metadata['name'],
'author': metadata['author'], 'author': metadata['author'],
'description': projectDesc, 'description': '%s》在线阅读' % metadata['name'],
"language": "zh-hans", "language": "zh-hans",
'plugins': [ 'plugins': [
'-lunr', '-search', '-sharing', 'hints', 'github', '-lunr', '-search', '-sharing', 'hints', 'github',
@ -174,7 +173,7 @@ def calibreRelease(metadata: dict, content: dict) -> None:
def calibreBuild(workDir: str, suffix: str, extOption: list, metadata: dict, content: dict) -> None: def calibreBuild(workDir: str, suffix: str, extOption: list, metadata: dict, content: dict) -> None:
buildDir = '/xxrs/' buildDir = '/xxrs/'
calibreImage = 'linuxserver/calibre' calibreImage = 'linuxserver/calibre:6.14.1'
calibreCommand = [ calibreCommand = [
'ebook-convert', 'ebook-convert',
'xxrs.zip', 'xxrs%s' % suffix, 'xxrs.zip', 'xxrs%s' % suffix,

Loading…
Cancel
Save