Dnomd343
2 years ago
8 changed files with 122 additions and 128 deletions
@ -1,30 +0,0 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import sys |
|||
from common import loadData |
|||
from common import saveFile |
|||
from common import releaseInfo |
|||
|
|||
|
|||
def formatMetadata(metadata: dict) -> str: |
|||
return '<h1>%s</h1>\n' % metadata['name'] + '\n'.join( |
|||
['<p>%s</p>' % x for x in metadata['desc']] |
|||
) |
|||
|
|||
|
|||
def htmlRelease(metadata: dict, content: dict) -> str: |
|||
result = [formatMetadata(metadata)] |
|||
for (title, chapter) in content.items(): |
|||
result.append( |
|||
'<h2>%s</h2>\n' % title + '\n'.join(['<p>%s</p>' % x for x in chapter]) |
|||
) |
|||
return '\n\n'.join(result) + '\n' |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
data = loadData(sys.argv[1]) |
|||
saveFile( |
|||
releaseInfo['htmlFile'], |
|||
htmlRelease(data['metadata'], data['content']) |
|||
) |
@ -1,45 +0,0 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import os |
|||
import sys |
|||
import json |
|||
|
|||
rootPath = os.path.join( |
|||
os.path.dirname(os.path.realpath(__file__)), '../../' |
|||
) |
|||
dataPath = os.path.join(rootPath, './release/') |
|||
releasePath = os.path.join(dataPath, './output/') |
|||
metadataFile = os.path.join(rootPath, './assets/metadata.json') |
|||
|
|||
releaseInfo = { |
|||
'htmlFile': 'xxrs.html', |
|||
'jsonFile': 'XXRS.json', |
|||
'txtFile': '栩栩若生.txt', |
|||
'gitbookDir': 'xxrs-online', |
|||
} |
|||
releaseInfo = {x: os.path.join(releasePath, y) for (x, y) in releaseInfo.items()} |
|||
|
|||
|
|||
def loadData(jsonName: str) -> dict: # load book data from json file |
|||
content = json.loads(open( |
|||
os.path.join(dataPath, '%s.json' % jsonName) |
|||
).read()) |
|||
metadata = json.loads(open(metadataFile).read()) |
|||
return { |
|||
'metadata': metadata, |
|||
'content': content, |
|||
} |
|||
|
|||
|
|||
def saveFile(fileName: str, content: str) -> None: # save into file |
|||
with open(fileName, 'w') as fileObj: |
|||
fileObj.write(content) |
|||
|
|||
|
|||
def createFolder(folderName: str) -> None: # create folder |
|||
if not os.path.exists(folderName): |
|||
os.mkdir(folderName) |
|||
|
|||
|
|||
createFolder(releasePath) |
@ -0,0 +1,23 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from utils import loadBook |
|||
from utils import saveFile |
|||
from utils import txtRelease |
|||
from utils import jsonRelease |
|||
from utils import htmlRelease |
|||
from utils import releaseInfo |
|||
|
|||
metadata, content = loadBook('rc-5') |
|||
|
|||
saveFile( |
|||
releaseInfo['txt'], txtRelease(metadata, content) |
|||
) |
|||
|
|||
saveFile( |
|||
releaseInfo['json'], jsonRelease(metadata, content) |
|||
) |
|||
|
|||
saveFile( |
|||
releaseInfo['calibre'], htmlRelease(metadata, content) |
|||
) |
@ -1,23 +0,0 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import sys |
|||
import json |
|||
from common import loadData |
|||
from common import saveFile |
|||
from common import releaseInfo |
|||
|
|||
|
|||
def jsonRelease(metadata: dict, content: dict) -> str: |
|||
return json.dumps({ |
|||
'metadata': metadata, |
|||
'content': content, |
|||
}, separators = (',', ':')) # without space |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
data = loadData(sys.argv[1]) |
|||
saveFile( |
|||
releaseInfo['jsonFile'], |
|||
jsonRelease(data['metadata'], data['content']) |
|||
) |
@ -1,30 +0,0 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import sys |
|||
from common import loadData |
|||
from common import saveFile |
|||
from common import releaseInfo |
|||
|
|||
|
|||
def formatMetadata(metadata: dict) -> str: |
|||
return '%s\n\n作者:%s\n\n\n%s' % ( |
|||
metadata['name'], |
|||
metadata['author'], |
|||
'\n\n'.join(metadata['desc']), |
|||
) |
|||
|
|||
|
|||
def txtRelease(metadata: dict, content: dict) -> str: |
|||
result = [formatMetadata(metadata)] |
|||
for (title, chapter) in content.items(): |
|||
result.append('\n\n'.join([title] + chapter)) |
|||
return '\n\n\n'.join(result) + '\n' |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
data = loadData(sys.argv[1]) |
|||
saveFile( |
|||
releaseInfo['txtFile'], |
|||
txtRelease(data['metadata'], data['content']) |
|||
) |
@ -0,0 +1,10 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from .common import loadBook |
|||
from .common import saveFile |
|||
from .common import releaseInfo |
|||
|
|||
from .sequence import txtRelease |
|||
from .sequence import jsonRelease |
|||
from .sequence import htmlRelease |
@ -0,0 +1,46 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import os |
|||
import json |
|||
|
|||
rootPath = os.path.join( # project root directory |
|||
os.path.dirname(os.path.realpath(__file__)), '../../../' |
|||
) |
|||
dataPath = os.path.join(rootPath, './release/') |
|||
releasePath = os.path.join(dataPath, './output/') |
|||
metadataFile = os.path.join(rootPath, './assets/metadata.json') |
|||
|
|||
releaseInfo = { # release file name |
|||
'json': 'XXRS.json', |
|||
'txt': '栩栩若生.txt', |
|||
'epub': '栩栩若生.epub', |
|||
'mobi': '栩栩若生.mobi', |
|||
'static': 'XXRS.tar.xz', |
|||
'calibre': 'xxrs.html', |
|||
'gitbook': 'xxrs-online/', |
|||
} |
|||
releaseInfo = { # convert to absolute path |
|||
key: os.path.join(releasePath, file) for (key, file) in releaseInfo.items() |
|||
} |
|||
|
|||
|
|||
def createFolder(folderName: str) -> None: # create folder |
|||
if not os.path.exists(folderName): |
|||
os.mkdir(folderName) |
|||
|
|||
|
|||
def saveFile(fileName: str, content: str) -> None: # save into file |
|||
with open(fileName, 'w') as fileObj: |
|||
fileObj.write(content) |
|||
|
|||
|
|||
def loadBook(jsonName: str) -> tuple[dict, dict]: # load book data from json file |
|||
content = json.loads(open( |
|||
os.path.join(dataPath, '%s.json' % jsonName) # book content |
|||
).read()) |
|||
metadata = json.loads(open(metadataFile).read()) # book metadata |
|||
return metadata, content |
|||
|
|||
|
|||
createFolder(releasePath) # create output folder |
@ -0,0 +1,43 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import json |
|||
|
|||
|
|||
def jsonRelease(metadata: dict, content: dict) -> str: |
|||
return json.dumps({ |
|||
'metadata': metadata, |
|||
'content': content, |
|||
}, separators = (',', ':')) # without space |
|||
|
|||
|
|||
def txtMetadata(metadata: dict) -> str: # txt metadata |
|||
return '%s\n\n作者:%s\n\n\n%s' % ( |
|||
metadata['name'], |
|||
metadata['author'], |
|||
'\n\n'.join(metadata['desc']), |
|||
) |
|||
|
|||
|
|||
def txtRelease(metadata: dict, content: dict) -> str: |
|||
result = [txtMetadata(metadata)] |
|||
for (title, chapter) in content.items(): |
|||
result.append('\n\n'.join([title] + chapter)) # combine txt content |
|||
return '\n\n\n'.join(result) + '\n' |
|||
|
|||
|
|||
def htmlMetadata(metadata: dict) -> str: # html metadata |
|||
return '<h1>%s</h1>\n' % metadata['name'] + '\n'.join( |
|||
['<p>%s</p>' % x for x in metadata['desc']] |
|||
) |
|||
|
|||
|
|||
def htmlRelease(metadata: dict, content: dict) -> str: |
|||
result = [htmlMetadata(metadata)] |
|||
for (title, chapter) in content.items(): |
|||
result.append( |
|||
'<h2>%s</h2>\n' % title + '\n'.join( |
|||
['<p>%s</p>' % x for x in chapter] |
|||
) |
|||
) |
|||
return '\n\n'.join(result) + '\n' |
Loading…
Reference in new issue