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