mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-03 06:22:18 +02:00
fix path handling of direct children of the root
This commit is contained in:
parent
dd3e1b2861
commit
b250214577
|
@ -1,4 +1,5 @@
|
||||||
import std.algorithm;
|
import std.algorithm;
|
||||||
|
import std.array: array;
|
||||||
import std.net.curl: CurlTimeoutException;
|
import std.net.curl: CurlTimeoutException;
|
||||||
import std.exception: ErrnoException;
|
import std.exception: ErrnoException;
|
||||||
import std.datetime, std.file, std.json, std.path;
|
import std.datetime, std.file, std.json, std.path;
|
||||||
|
@ -50,7 +51,7 @@ private Item makeItem(const ref JSONValue jsonItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
Item item = {
|
Item item = {
|
||||||
driveId: defaultDriveId, // HACK
|
driveId: "parentReference" in jsonItem ? jsonItem["parentReference"]["driveId"].str : defaultDriveId, // HACK
|
||||||
id: jsonItem["id"].str,
|
id: jsonItem["id"].str,
|
||||||
name: "name" in jsonItem ? jsonItem["name"].str : null, // name may be missing for deleted files in OneDrive Biz
|
name: "name" in jsonItem ? jsonItem["name"].str : null, // name may be missing for deleted files in OneDrive Biz
|
||||||
type: type,
|
type: type,
|
||||||
|
@ -218,6 +219,8 @@ final class SyncEngine
|
||||||
if (!unwanted && !isItemRoot(jsonItem)) {
|
if (!unwanted && !isItemRoot(jsonItem)) {
|
||||||
// delay path computation after assuring the item parent is not excluded
|
// delay path computation after assuring the item parent is not excluded
|
||||||
path = itemdb.computePath(item.parentDriveId, item.parentId) ~ "/" ~ item.name;
|
path = itemdb.computePath(item.parentDriveId, item.parentId) ~ "/" ~ item.name;
|
||||||
|
// ensure path matches the path generated by itemdb.computePath()
|
||||||
|
path = asNormalizedPath(path).array;
|
||||||
// selective sync
|
// selective sync
|
||||||
unwanted |= selectiveSync.isPathExcluded(path);
|
unwanted |= selectiveSync.isPathExcluded(path);
|
||||||
}
|
}
|
||||||
|
@ -347,6 +350,8 @@ final class SyncEngine
|
||||||
// nothing to do
|
// nothing to do
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.vlog("The item content has not changed");
|
||||||
}
|
}
|
||||||
// handle changed time
|
// handle changed time
|
||||||
if (newItem.type == ItemType.file) {
|
if (newItem.type == ItemType.file) {
|
||||||
|
|
Loading…
Reference in a new issue