From 061ce8eea6b8f71d055db0e2a5ecf9d549d463f5 Mon Sep 17 00:00:00 2001 From: Blake Warner Date: Thu, 7 Nov 2019 18:55:16 -0500 Subject: [PATCH] fixed more gdrive conflicting name bugs --- Server/Controller/Api.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Server/Controller/Api.py b/Server/Controller/Api.py index bab90832c..6402bf58b 100644 --- a/Server/Controller/Api.py +++ b/Server/Controller/Api.py @@ -569,7 +569,7 @@ def gdriveSearchTree(pathBits, nameIdMap, children, id = None, roots = None): if id is None: for name, id in roots.items(): if name == pathBits[0]: - r = gdriveSearchTree(pathBits[1:], nameIdMap, children, id, roots) + r = gdriveSearchTree(pathBits[1:], nameIdMap, children[id] if id in children else [], id, roots) if r is not None: return r return None @@ -577,13 +577,18 @@ def gdriveSearchTree(pathBits, nameIdMap, children, id = None, roots = None): if len(pathBits) <= 0: return id - for folderId in nameIdMap[pathBits[0]]: + for entry in children: + if entry['name'] != pathBits[0]: + continue + + folderId = entry['id'] + if len(pathBits) == 1: return folderId if folderId in children: - for item in children[folderId]: - r = gdriveSearchTree(pathBits[1:], nameIdMap, children, folderId, roots) + for newChildren in children[folderId]: + r = gdriveSearchTree(pathBits[1:], nameIdMap, newChildren, folderId, roots) if r is not None: return r