Add novel data extraction function to index

This commit is contained in:
Veronica K. B. Olsen
2021-01-02 22:22:05 +01:00
parent a57e8f3a5d
commit acb6f1fc87
3 changed files with 17 additions and 7 deletions
+8
View File
@@ -611,6 +611,14 @@ class NWIndex():
return theRefs
def getNovelData(self, tHandle, sTitle):
"""Return the novel data of a given handle and title.
"""
if tHandle in self.novelIndex:
if sTitle in self.novelIndex[tHandle]:
return self.novelIndex[tHandle][sTitle]
return None
def getBackReferenceList(self, tHandle):
"""Build a list of files referring back to our file, specified
by tHandle.
+4 -5
View File
@@ -271,11 +271,10 @@ class GuiOutlineDetails(QScrollArea):
"""Update the content of the tree with the given handle and line
number pointing to a header.
"""
try:
nwItem = self.theProject.projTree[tHandle]
novIdx = self.theIndex.novelIndex[tHandle][sTitle]
theRefs = self.theIndex.getReferences(tHandle, sTitle)
except Exception:
nwItem = self.theProject.projTree[tHandle]
novIdx = self.theIndex.getNovelData(tHandle, sTitle)
theRefs = self.theIndex.getReferences(tHandle, sTitle)
if nwItem is None or novIdx is None or theRefs == {}:
return False
if novIdx["level"] in self.LVL_MAP:
+5 -2
View File
@@ -218,7 +218,7 @@ def testCoreIndex_CheckThese(nwMinimal, dummyGUI):
"@pov: Jane"
))
assert theIndex.tagIndex == {"Jane": [2, cHandle, "CHARACTER", "T000001"]}
assert theIndex.novelIndex[nHandle]["T000001"]["title"] == "Hello World!"
assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!"
assert theIndex.novelChangedSince(0)
assert theIndex.notesChangedSince(0)
@@ -294,7 +294,7 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI):
"Well, not really.\n"
))
assert str(theIndex.tagIndex) == "{'Jane': [2, '%s', 'CHARACTER', 'T000001']}" % cHandle
assert theIndex.novelIndex[nHandle]["T000001"]["title"] == "Hello World!"
assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!"
# Check that title sections are indexed properly
assert theIndex.scanText(nHandle, (
@@ -427,6 +427,9 @@ def testCoreIndex_ExtractData(nwMinimal, dummyGUI):
nHandle = theProject.newFile("Hello", nwItemClass.NOVEL, "a508bb932959c")
cHandle = theProject.newFile("Jane", nwItemClass.CHARACTER, "afb3043c7b2b3")
assert theIndex.getNovelData("", "") is None
assert theIndex.getNovelData("a508bb932959c", "") is None
assert theIndex.scanText(cHandle, (
"# Jane Smith\n"
"@tag: Jane\n"