Remove the ToC.json file and change the format of the ToC.txt file a little
This commit is contained in:
@@ -59,7 +59,6 @@ class nwFiles():
|
||||
PROJ_DICT = "wordlist.txt"
|
||||
PROJ_LOCK = "nwProject.lock"
|
||||
TOC_TXT = "ToC.txt"
|
||||
TOC_JSON = "ToC.json"
|
||||
SESS_STATS = "sessionStats.log"
|
||||
INDEX_FILE = "tagsIndex.json"
|
||||
OPTS_FILE = "guiOptions.json"
|
||||
|
||||
+2
-1
@@ -743,7 +743,7 @@ class NWProject():
|
||||
"""Close the current project and clear all meta data.
|
||||
"""
|
||||
self.optState.saveSettings()
|
||||
self.projTree.writeToCFiles()
|
||||
self.projTree.writeToCFile()
|
||||
self._appendSessionStats()
|
||||
self._clearLockFile()
|
||||
self.clearProject()
|
||||
@@ -1480,6 +1480,7 @@ class NWProject():
|
||||
os.path.join(self.projMeta, "timelineOptions.json"),
|
||||
os.path.join(self.projMeta, "docMergeOptions.json"),
|
||||
os.path.join(self.projMeta, "sessionLogOptions.json"),
|
||||
os.path.join(self.projPath, "ToC.json"),
|
||||
]
|
||||
|
||||
for rmFile in rmList:
|
||||
|
||||
+28
-31
@@ -139,46 +139,43 @@ class NWTree():
|
||||
|
||||
return True
|
||||
|
||||
def writeToCFiles(self):
|
||||
"""Write the convenience table of contents files in the root of
|
||||
the project directory. These files are there to assist the user
|
||||
if they wish to browse the stored files.
|
||||
def writeToCFile(self):
|
||||
"""Write the convenience table of contents file in the root of
|
||||
the project directory.
|
||||
"""
|
||||
tocText = os.path.join(self.theProject.projPath, nwFiles.TOC_TXT)
|
||||
tocJson = os.path.join(self.theProject.projPath, nwFiles.TOC_JSON)
|
||||
tocList = []
|
||||
tocLen = 0
|
||||
# for tHandle in sorted(self._treeOrder):
|
||||
for tHandle in self._treeOrder:
|
||||
tItem = self.__getitem__(tHandle)
|
||||
if tItem is None:
|
||||
continue
|
||||
tFile = tHandle+".nwd"
|
||||
if os.path.isfile(os.path.join(self.theProject.projContent, tFile)):
|
||||
tocLine = "%-25s %-9s %-10s %s" % (
|
||||
os.path.join("content", tFile),
|
||||
tItem.itemClass.name,
|
||||
tItem.itemLayout.name,
|
||||
tItem.itemName,
|
||||
)
|
||||
tocList.append(tocLine)
|
||||
tocLen = max(tocLen, len(tocLine))
|
||||
|
||||
jsonData = []
|
||||
try:
|
||||
# Dump the text
|
||||
tocText = os.path.join(self.theProject.projPath, nwFiles.TOC_TXT)
|
||||
with open(tocText, mode="w", encoding="utf8") as outFile:
|
||||
outFile.write("\n")
|
||||
outFile.write(" Table of Contents\n")
|
||||
outFile.write("===================\n")
|
||||
outFile.write("Table of Contents\n")
|
||||
outFile.write("=================\n")
|
||||
outFile.write("\n")
|
||||
outFile.write(" %-25s %-9s %s\n" % ("File Name", "Class", "Document Label"))
|
||||
outFile.write("-"*80+"\n")
|
||||
for tHandle in sorted(self._treeOrder):
|
||||
tItem = self.__getitem__(tHandle)
|
||||
if tItem is None:
|
||||
continue
|
||||
tFile = tHandle+".nwd"
|
||||
if os.path.isfile(os.path.join(self.theProject.projContent, tFile)):
|
||||
outFile.write(" %-25s %-9s %s\n" % (
|
||||
os.path.join("content", tFile),
|
||||
tItem.itemClass.name,
|
||||
tItem.itemName,
|
||||
))
|
||||
jsonData.append([
|
||||
os.path.join("content", tFile),
|
||||
tItem.itemClass.name,
|
||||
tItem.itemName,
|
||||
])
|
||||
outFile.write("%-25s %-9s %-10s %s\n" % (
|
||||
"File Name", "Class", "Layout", "Document Label"
|
||||
))
|
||||
outFile.write("-"*tocLen + "\n")
|
||||
outFile.write("\n".join(tocList))
|
||||
outFile.write("\n")
|
||||
|
||||
# Dump the JSON
|
||||
with open(tocJson, mode="w+", encoding="utf8") as outFile:
|
||||
json.dump(jsonData, outFile, indent=2)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(str(e))
|
||||
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
[
|
||||
[
|
||||
"content/14298de4d9524.nwd",
|
||||
"CHARACTER",
|
||||
"John Smith"
|
||||
],
|
||||
[
|
||||
"content/53b69b83cdafc.nwd",
|
||||
"NOVEL",
|
||||
"Title Page"
|
||||
],
|
||||
[
|
||||
"content/5eaea4e8cdee8.nwd",
|
||||
"WORLD",
|
||||
"Mars"
|
||||
],
|
||||
[
|
||||
"content/636b6aa9b697b.nwd",
|
||||
"NOVEL",
|
||||
"Making a Scene"
|
||||
],
|
||||
[
|
||||
"content/6a2d6d5f4f401.nwd",
|
||||
"NOVEL",
|
||||
"Chapter One"
|
||||
],
|
||||
[
|
||||
"content/88706ddc78b1b.nwd",
|
||||
"NOVEL",
|
||||
"Chapter Two"
|
||||
],
|
||||
[
|
||||
"content/8a5deb88c0e97.nwd",
|
||||
"NOVEL",
|
||||
"Old File"
|
||||
],
|
||||
[
|
||||
"content/96b68994dfa3d.nwd",
|
||||
"NOVEL",
|
||||
"A Note on Structure"
|
||||
],
|
||||
[
|
||||
"content/974e400180a99.nwd",
|
||||
"NOVEL",
|
||||
"Page"
|
||||
],
|
||||
[
|
||||
"content/ae7339df26ded.nwd",
|
||||
"NOVEL",
|
||||
"We Found John!"
|
||||
],
|
||||
[
|
||||
"content/b3e74dbc1f584.nwd",
|
||||
"WORLD",
|
||||
"Earth"
|
||||
],
|
||||
[
|
||||
"content/b8136a5a774a0.nwd",
|
||||
"NOVEL",
|
||||
"Delete Me!"
|
||||
],
|
||||
[
|
||||
"content/ba8a28a246524.nwd",
|
||||
"NOVEL",
|
||||
"Interlude"
|
||||
],
|
||||
[
|
||||
"content/bb2c23b3c42cc.nwd",
|
||||
"CHARACTER",
|
||||
"Jane Smith"
|
||||
],
|
||||
[
|
||||
"content/bc0cbd2a407f3.nwd",
|
||||
"NOVEL",
|
||||
"Another Scene"
|
||||
],
|
||||
[
|
||||
"content/edca4be2fcaf8.nwd",
|
||||
"NOVEL",
|
||||
"Part One"
|
||||
],
|
||||
[
|
||||
"content/f1471bef9f2ae.nwd",
|
||||
"WORLD",
|
||||
"Space"
|
||||
]
|
||||
]
|
||||
+21
-22
@@ -1,24 +1,23 @@
|
||||
|
||||
Table of Contents
|
||||
===================
|
||||
|
||||
File Name Class Document Label
|
||||
--------------------------------------------------------------------------------
|
||||
content/14298de4d9524.nwd CHARACTER John Smith
|
||||
content/53b69b83cdafc.nwd NOVEL Title Page
|
||||
content/5eaea4e8cdee8.nwd WORLD Mars
|
||||
content/636b6aa9b697b.nwd NOVEL Making a Scene
|
||||
content/6a2d6d5f4f401.nwd NOVEL Chapter One
|
||||
content/88706ddc78b1b.nwd NOVEL Chapter Two
|
||||
content/8a5deb88c0e97.nwd NOVEL Old File
|
||||
content/96b68994dfa3d.nwd NOVEL A Note on Structure
|
||||
content/974e400180a99.nwd NOVEL Page
|
||||
content/ae7339df26ded.nwd NOVEL We Found John!
|
||||
content/b3e74dbc1f584.nwd WORLD Earth
|
||||
content/b8136a5a774a0.nwd NOVEL Delete Me!
|
||||
content/ba8a28a246524.nwd NOVEL Interlude
|
||||
content/bb2c23b3c42cc.nwd CHARACTER Jane Smith
|
||||
content/bc0cbd2a407f3.nwd NOVEL Another Scene
|
||||
content/edca4be2fcaf8.nwd NOVEL Part One
|
||||
content/f1471bef9f2ae.nwd WORLD Space
|
||||
Table of Contents
|
||||
=================
|
||||
|
||||
File Name Class Layout Document Label
|
||||
---------------------------------------------------------------------
|
||||
content/53b69b83cdafc.nwd NOVEL TITLE Title Page
|
||||
content/974e400180a99.nwd NOVEL PAGE Page
|
||||
content/edca4be2fcaf8.nwd NOVEL PARTITION Part One
|
||||
content/6a2d6d5f4f401.nwd NOVEL CHAPTER Chapter One
|
||||
content/636b6aa9b697b.nwd NOVEL SCENE Making a Scene
|
||||
content/bc0cbd2a407f3.nwd NOVEL SCENE Another Scene
|
||||
content/ba8a28a246524.nwd NOVEL UNNUMBERED Interlude
|
||||
content/96b68994dfa3d.nwd NOVEL NOTE A Note on Structure
|
||||
content/88706ddc78b1b.nwd NOVEL CHAPTER Chapter Two
|
||||
content/ae7339df26ded.nwd NOVEL SCENE We Found John!
|
||||
content/14298de4d9524.nwd CHARACTER NOTE John Smith
|
||||
content/bb2c23b3c42cc.nwd CHARACTER NOTE Jane Smith
|
||||
content/b3e74dbc1f584.nwd WORLD NOTE Earth
|
||||
content/f1471bef9f2ae.nwd WORLD NOTE Space
|
||||
content/5eaea4e8cdee8.nwd WORLD NOTE Mars
|
||||
content/8a5deb88c0e97.nwd NOVEL SCENE Old File
|
||||
content/b8136a5a774a0.nwd NOVEL SCENE Delete Me!
|
||||
|
||||
@@ -627,7 +627,6 @@ def testProjectOldFormat(nwDummy, nwOldProj):
|
||||
# Check that new files have been created
|
||||
assert os.path.isfile(os.path.join(nwOldProj, "meta", "guiOptions.json"))
|
||||
assert os.path.isfile(os.path.join(nwOldProj, "meta", "sessionStats.log"))
|
||||
assert os.path.isfile(os.path.join(nwOldProj, "ToC.json"))
|
||||
assert os.path.isfile(os.path.join(nwOldProj, "ToC.txt"))
|
||||
|
||||
@pytest.mark.project
|
||||
|
||||
Reference in New Issue
Block a user