Correctly cache paths
This commit is contained in:
		
							parent
							
								
									bf4bceea00
								
							
						
					
					
						commit
						5df63a7828
					
				
							
								
								
									
										12
									
								
								index.js
								
								
								
								
							
							
						
						
									
										12
									
								
								index.js
								
								
								
								
							|  | @ -152,15 +152,17 @@ async function pathToId(path, drive) { | ||||||
|     let paths = path.split("/"); |     let paths = path.split("/"); | ||||||
|     let id = drive.folderId; |     let id = drive.folderId; | ||||||
|     let mimeType = null; |     let mimeType = null; | ||||||
|  |     let buildingPath = []; | ||||||
|     for (let i=0; i < paths.length; i++) { |     for (let i=0; i < paths.length; i++) { | ||||||
|         path = paths[i]; |         path = paths[i]; | ||||||
|         if (path === "") { |         if (path === "") { | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|         path = unescapeURL(path).replaceAll("\\", "\\\\").replaceAll("'", "\\'"); |         path = unescapeURL(path).replaceAll("\\", "\\\\").replaceAll("'", "\\'"); | ||||||
|         if (drive.useCache && drive.pathCache.exists(path)) { |         buildingPath.push(path); | ||||||
|             id = drive.pathCache[path].id; |         if (drive.useCache && drive.pathCache.exists(buildingPath.join("/"))) { | ||||||
|             mimeType = drive.pathCache[path].mimeType; |             id = drive.pathCache[buildingPath.join("/")].id; | ||||||
|  |             mimeType = drive.pathCache[buildingPath.join("/")].mimeType; | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|         let query = `driveId=${drive.teamDriveId}&q=${escapeURL("name = '" + path + "' and '" + id + "' in parents")}&corpora=drive`; |         let query = `driveId=${drive.teamDriveId}&q=${escapeURL("name = '" + path + "' and '" + id + "' in parents")}&corpora=drive`; | ||||||
|  | @ -173,13 +175,13 @@ async function pathToId(path, drive) { | ||||||
|         } |         } | ||||||
|         let url = `https://www.googleapis.com/drive/v3/files?${query}&includeItemsFromAllDrives=true&pageSize=1&supportsAllDrives=true&fields=files(id,mimeType)`; |         let url = `https://www.googleapis.com/drive/v3/files?${query}&includeItemsFromAllDrives=true&pageSize=1&supportsAllDrives=true&fields=files(id,mimeType)`; | ||||||
|         let resp = await (await fetch(url, {"headers": {"Authorization": "Bearer " + saBearer}})).json(); |         let resp = await (await fetch(url, {"headers": {"Authorization": "Bearer " + saBearer}})).json(); | ||||||
|         if (resp.files.length < 1) { |         if (typeof resp.files !== "object" || resp.files.length < 1) { | ||||||
|             return null, null; |             return null, null; | ||||||
|         } |         } | ||||||
|         id = resp.files[0].id; |         id = resp.files[0].id; | ||||||
|         mimeType = resp.files[0].mimeType; |         mimeType = resp.files[0].mimeType; | ||||||
|         if (drive.useCache) { |         if (drive.useCache) { | ||||||
|             drive.pathCache[path] = {"id": id, "mimeType": mimeType}; |             drive.pathCache[buildingPath.join("/")] = {"id": id, "mimeType": mimeType}; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     return {"id": id, "mimeType": mimeType}; |     return {"id": id, "mimeType": mimeType}; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue