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