diff --git a/pyOneNote/FileNode.py b/pyOneNote/FileNode.py index a5f04d0..c91f537 100644 --- a/pyOneNote/FileNode.py +++ b/pyOneNote/FileNode.py @@ -173,11 +173,19 @@ def __init__(self, file, document): elif self.file_node_header.file_node_type in ["RevisionManifestEndFND", "ObjectGroupEndFND"]: # no data part self.data = None + elif self.file_node_header.file_node_type == "GlobalIdTableStartFNDX": + self.data = GlobalIdTableStartFNDX(file) + elif self.file_node_header.file_node_type == "GlobalIdTableEntry2FNDX": + self.data = GlobalIdTableEntry2FNDX(file) + elif self.file_node_header.file_node_type == "GlobalIdTableEntry3FNDX": + self.data = GlobalIdTableEntry3FNDX(file) else: + # ensure self.data is initialized + self.data = None p = 1 current_offset = file.tell() - if self.file_node_header.baseType == 2: + if self.file_node_header.baseType == 2 and self.data is not None: self.children.append(FileNodeList(file, self.document, self.data.ref)) file.seek(current_offset) @@ -324,6 +332,21 @@ def __init__(self, file): self.guid = uuid.UUID(bytes_le=self.guid) +class GlobalIdTableEntry2FNDX: + def __init__(self, file): + self.iIndexMapFrom, self.iIndexMapTo = struct.unpack('