From 82c5fceb3b9f30bfc53d7699cfbe2f4b3f09b3c9 Mon Sep 17 00:00:00 2001 From: Jacob Daniel Bennett Date: Wed, 16 Sep 2020 17:27:31 -0400 Subject: [PATCH] Full section parsing for initial message --- api/ECNQueue.py | 57 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 05e3d4f..88c7e0b 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -198,7 +198,7 @@ def __parseSections(self) -> list: " User ECNDB: ", " Host ECNDB: ", " Subject: "] - directoryInfo = ["\n"] + directoryInfo = [] endInitialMessage = False for lineNumber in range(contentStart, contentEnd + 1): @@ -212,27 +212,49 @@ def __parseSections(self) -> list: lineCounter = 0 linesToRemove = [] + initialMessageParsed = False for lineContents in initialMessageContent: for itemsindirectory in directoryInfoPattern: - if lineContents.startswith(itemsindirectory): - directoryInfo.append(lineContents) - linesToRemove.append(lineCounter) - lineCounter = lineCounter + 1 + if lineContents.startswith(itemsindirectory): + directoryInfo.append(lineContents) + linesToRemove.append(lineCounter) + lineCounter = lineCounter + 1 + for stuff in sorted(linesToRemove, reverse=True): initialMessageContent.pop(stuff) + initialMessageDateStr = self.__getMostRecentHeaderByType("Date") + initialMessageFormattedDate = "" + initialMessageFormattedTime = "" + try: + dateObject = parse(initialMessageDateStr) + initialMessageFormattedDate = dateObject.strftime("%Y-%m-%dT%H:%M:%S%z") + initialMessageFormattedTime = dateObject.strftime("%H:%M:%S%z") + except: + initialMessageFormattedDate = "invalid" + initialMessageFormattedTime = "Invalid" + + initialMessageCCMasterList =[] + initialMessageCCList = email.utils.getaddresses([self.__getMostRecentHeaderByType("CC")]) + for ccRecipients in initialMessageCCList: + initialMessageCCMasterList.append( + {"name": ccRecipients[0], + "email": ccRecipients[1]} + ) + sections.append( {"type": "initialMessage", - "date": "", - "time": "", - "userName": "", - "ccRecipients": "", + "date": initialMessageFormattedDate, + "time": initialMessageFormattedTime, + "userName": self.__parseFromData(data="userName"), + "userEmail": self.__parseFromData(data="userEmail"), + "ccRecipients": initialMessageCCMasterList, "content": initialMessageContent} ) - if len(directoryInfo) > 1: + if len(directoryInfo) > 0: sections.append( {"type": "directoryInformation", "content": directoryInfo @@ -257,6 +279,7 @@ def __parseSections(self) -> list: {"name": "replyFromUser", "pattern": "=== "}, ] + for boundary in sectionBoundaries: line = self.__rawItem[boundary["start"]] sectionType = None @@ -270,10 +293,10 @@ def __parseSections(self) -> list: - if sectionType is None: - sectionType = "initialMessage" + #if sectionType is None: + #sectionType = "initialMessage" - elif sectionType == "edit": + if sectionType == "edit": formattedDate = "" formattedTime = "" editedBy = "" @@ -446,12 +469,6 @@ def __parseSections(self) -> list: "ccRecipients": ccRecipientsList} ) - else: - sections.append( - {"type": sectionType, - "content": sectionContent} - ) - return sections def __isLocked(self) -> Union[str, bool]: @@ -628,5 +645,5 @@ def getQueues() -> list: return queues if __name__ == "__main__": - item = Item("ce", 11) + item = Item("aae", 7) print()