|
@ -21,6 +21,14 @@ endingPunctuations = [ |
|
|
':', # special: letter beginning |
|
|
':', # special: letter beginning |
|
|
] |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
# '…', |
|
|
|
|
|
# '—', |
|
|
|
|
|
|
|
|
|
|
|
warningPunctuations = [ |
|
|
|
|
|
# ' ', |
|
|
|
|
|
'-', '·', '.', ';', |
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
defaultPath = os.path.join( |
|
|
defaultPath = os.path.join( |
|
|
os.path.dirname(os.path.realpath(__file__)), '../../release/' |
|
|
os.path.dirname(os.path.realpath(__file__)), '../../release/' |
|
|
) |
|
|
) |
|
@ -39,6 +47,10 @@ def loadContent(filename: str) -> list: # load json content |
|
|
return combine |
|
|
return combine |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def isCaption(content: str) -> bool: |
|
|
|
|
|
return re.search(r'^第\d+章 \S*$', content) is not None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def pairsCheck(sentence: str) -> bool: |
|
|
def pairsCheck(sentence: str) -> bool: |
|
|
errorFlag = False |
|
|
errorFlag = False |
|
|
punctuationStack = [] |
|
|
punctuationStack = [] |
|
@ -70,15 +82,26 @@ def pairsCheck(sentence: str) -> bool: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def endingCheck(sentence: str) -> bool: |
|
|
def endingCheck(sentence: str) -> bool: |
|
|
if re.search(r'^第\d+章 \S*$', sentence) is not None: # skip caption |
|
|
if isCaption(sentence): # skip caption |
|
|
return True |
|
|
return True |
|
|
for endingPunctuation in endingPunctuations: |
|
|
for endingPunctuation in endingPunctuations: |
|
|
if sentence.endswith(endingPunctuation): # match ending punctuation |
|
|
if sentence.endswith(endingPunctuation): # match ending punctuation |
|
|
return True |
|
|
return True |
|
|
print('%s\033[0;31m_\033[0;39m' % sentence) |
|
|
print('%s\n%s\033[0;31m_\033[0;39m' % ('-' * 128, sentence)) |
|
|
return False |
|
|
return False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def existCheck(sentence: str) -> bool: |
|
|
|
|
|
flag = False |
|
|
|
|
|
for warningPunctuation in warningPunctuations: |
|
|
|
|
|
if warningPunctuation in sentence: |
|
|
|
|
|
flag = True |
|
|
|
|
|
sentence = sentence.replace(warningPunctuation, '\033[0;31m%s\033[0;39m' % warningPunctuation) |
|
|
|
|
|
if flag: |
|
|
|
|
|
print('%s\n%s' % ('-' * 128, sentence)) |
|
|
|
|
|
return not flag |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def contentCheck(content: list) -> None: |
|
|
def contentCheck(content: list) -> None: |
|
|
flag = True |
|
|
flag = True |
|
|
for row in content: # pairs check |
|
|
for row in content: # pairs check |
|
@ -92,7 +115,12 @@ def contentCheck(content: list) -> None: |
|
|
if not flag: |
|
|
if not flag: |
|
|
print('-' * 128) # split line |
|
|
print('-' * 128) # split line |
|
|
|
|
|
|
|
|
# other check process |
|
|
flag = True |
|
|
|
|
|
for row in content: # ending check |
|
|
|
|
|
flag &= existCheck(row) |
|
|
|
|
|
if not flag: |
|
|
|
|
|
print('-' * 128) # split line |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contentCheck(loadContent(sys.argv[1])) |
|
|
contentCheck(loadContent(sys.argv[1])) |
|
|