mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-10-30 04:53:21 +00:00
Ensure logging.
This commit is contained in:
1 parent
fad9fed5ca
commit
e6025b92d8
1 file changed
+39
-10
+39
-10
@@ -1920,10 +1920,25 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
await this.syncAllFiles(showingNotice);
|
await this.syncAllFiles(showingNotice);
|
||||||
}
|
}
|
||||||
if (this.settings.syncInternalFiles) {
|
if (this.settings.syncInternalFiles) {
|
||||||
|
try {
|
||||||
|
Logger("Synchronizing hidden files...");
|
||||||
await this.syncInternalFilesAndDatabase("push", showingNotice);
|
await this.syncInternalFilesAndDatabase("push", showingNotice);
|
||||||
|
Logger("Synchronizing hidden files done");
|
||||||
|
} catch (ex) {
|
||||||
|
Logger("Synchronizing hidden files failed");
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.settings.usePluginSync) {
|
if (this.settings.usePluginSync) {
|
||||||
|
try {
|
||||||
|
Logger("Scanning plugins...");
|
||||||
await this.sweepPlugin(showingNotice);
|
await this.sweepPlugin(showingNotice);
|
||||||
|
Logger("Scanning plugins done");
|
||||||
|
} catch (ex) {
|
||||||
|
Logger("Scanning plugins failed");
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
this.isReady = true;
|
this.isReady = true;
|
||||||
// run queued event once.
|
// run queued event once.
|
||||||
@@ -2990,6 +3005,7 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
const content = await arrayBufferToBase64(contentBin);
|
const content = await arrayBufferToBase64(contentBin);
|
||||||
const mtime = file.mtime;
|
const mtime = file.mtime;
|
||||||
return await runWithLock("file-" + id, false, async () => {
|
return await runWithLock("file-" + id, false, async () => {
|
||||||
|
try {
|
||||||
const old = await this.localDatabase.getDBEntry(id, null, false, false);
|
const old = await this.localDatabase.getDBEntry(id, null, false, false);
|
||||||
let saveData: LoadedEntry;
|
let saveData: LoadedEntry;
|
||||||
if (old === false) {
|
if (old === false) {
|
||||||
@@ -3025,6 +3041,11 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
const ret = await this.localDatabase.putDBEntry(saveData, true);
|
const ret = await this.localDatabase.putDBEntry(saveData, true);
|
||||||
Logger(`STORAGE --> DB:${file.path}: (hidden) Done`);
|
Logger(`STORAGE --> DB:${file.path}: (hidden) Done`);
|
||||||
return ret;
|
return ret;
|
||||||
|
} catch (ex) {
|
||||||
|
Logger(`STORAGE --> DB:${file.path}: (hidden) Failed`);
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3032,6 +3053,7 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
const id = filename2idInternalMetadata(path2id(filename));
|
const id = filename2idInternalMetadata(path2id(filename));
|
||||||
const mtime = new Date().getTime();
|
const mtime = new Date().getTime();
|
||||||
await runWithLock("file-" + id, false, async () => {
|
await runWithLock("file-" + id, false, async () => {
|
||||||
|
try {
|
||||||
const old = await this.localDatabase.getDBEntry(id, null, false, false) as InternalFileEntry | false;
|
const old = await this.localDatabase.getDBEntry(id, null, false, false) as InternalFileEntry | false;
|
||||||
let saveData: InternalFileEntry;
|
let saveData: InternalFileEntry;
|
||||||
if (old === false) {
|
if (old === false) {
|
||||||
@@ -3061,7 +3083,11 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
}
|
}
|
||||||
await this.localDatabase.localDatabase.put(saveData);
|
await this.localDatabase.localDatabase.put(saveData);
|
||||||
Logger(`STORAGE -x> DB:${filename}: (hidden) Done`);
|
Logger(`STORAGE -x> DB:${filename}: (hidden) Done`);
|
||||||
|
} catch (ex) {
|
||||||
|
Logger(`STORAGE -x> DB:${filename}: (hidden) Failed`);
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async ensureDirectoryEx(fullPath: string) {
|
async ensureDirectoryEx(fullPath: string) {
|
||||||
@@ -3089,6 +3115,7 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
const id = filename2idInternalMetadata(path2id(filename));
|
const id = filename2idInternalMetadata(path2id(filename));
|
||||||
|
|
||||||
return await runWithLock("file-" + id, false, async () => {
|
return await runWithLock("file-" + id, false, async () => {
|
||||||
|
try {
|
||||||
const fileOnDB = await this.localDatabase.getDBEntry(id, null, false, false) as false | LoadedEntry;
|
const fileOnDB = await this.localDatabase.getDBEntry(id, null, false, false) as false | LoadedEntry;
|
||||||
if (fileOnDB === false) throw new Error(`File not found on database.:${id}`);
|
if (fileOnDB === false) throw new Error(`File not found on database.:${id}`);
|
||||||
const deleted = "deleted" in fileOnDB ? fileOnDB.deleted : false;
|
const deleted = "deleted" in fileOnDB ? fileOnDB.deleted : false;
|
||||||
@@ -3107,10 +3134,6 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
Logger(`STORAGE <-- DB:${filename}: written (hidden,new${force ? ", force" : ""})`);
|
Logger(`STORAGE <-- DB:${filename}: written (hidden,new${force ? ", force" : ""})`);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
try {
|
|
||||||
// const stat = await this.app.vault.adapter.stat(filename);
|
|
||||||
// const fileMTime = ~~(stat.mtime/1000);
|
|
||||||
// const docMtime = ~~(old.mtime/1000);
|
|
||||||
const contentBin = await this.app.vault.adapter.readBinary(filename);
|
const contentBin = await this.app.vault.adapter.readBinary(filename);
|
||||||
const content = await arrayBufferToBase64(contentBin);
|
const content = await arrayBufferToBase64(contentBin);
|
||||||
if (content == fileOnDB.data && !force) {
|
if (content == fileOnDB.data && !force) {
|
||||||
@@ -3120,10 +3143,12 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
await this.app.vault.adapter.writeBinary(filename, base64ToArrayBuffer(fileOnDB.data), { mtime: fileOnDB.mtime, ctime: fileOnDB.ctime });
|
await this.app.vault.adapter.writeBinary(filename, base64ToArrayBuffer(fileOnDB.data), { mtime: fileOnDB.mtime, ctime: fileOnDB.ctime });
|
||||||
Logger(`STORAGE <-- DB:${filename}: written (hidden, overwrite${force ? ", force" : ""})`);
|
Logger(`STORAGE <-- DB:${filename}: written (hidden, overwrite${force ? ", force" : ""})`);
|
||||||
return true;
|
return true;
|
||||||
} catch (ex) {
|
|
||||||
Logger(ex);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
} catch (ex) {
|
||||||
|
Logger(`STORAGE <-- DB:${filename}: written (hidden, overwrite${force ? ", force" : ""}) Failed`);
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -3154,7 +3179,7 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async resolveConflictOnInternalFile(id: string): Promise<boolean> {
|
async resolveConflictOnInternalFile(id: string): Promise<boolean> {
|
||||||
// Retrieve data
|
try {// Retrieve data
|
||||||
const doc = await this.localDatabase.localDatabase.get(id, { conflicts: true });
|
const doc = await this.localDatabase.localDatabase.get(id, { conflicts: true });
|
||||||
// If there is no conflict, return with false.
|
// If there is no conflict, return with false.
|
||||||
if (!("_conflicts" in doc)) return false;
|
if (!("_conflicts" in doc)) return false;
|
||||||
@@ -3201,7 +3226,11 @@ export default class ObsidianLiveSyncPlugin extends Plugin {
|
|||||||
Logger(`Older one has been deleted:${id2filenameInternalMetadata(id)}`);
|
Logger(`Older one has been deleted:${id2filenameInternalMetadata(id)}`);
|
||||||
// check the file again
|
// check the file again
|
||||||
return this.resolveConflictOnInternalFile(id);
|
return this.resolveConflictOnInternalFile(id);
|
||||||
|
} catch (ex) {
|
||||||
|
Logger("Failed to resolve conflict (Hidden)")
|
||||||
|
Logger(ex, LOG_LEVEL.VERBOSE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//TODO: Tidy up. Even though it is experimental feature, So dirty...
|
//TODO: Tidy up. Even though it is experimental feature, So dirty...
|
||||||
async syncInternalFilesAndDatabase(direction: "push" | "pull" | "safe", showMessage: boolean, files: InternalFileInfo[] | false = false, targetFiles: string[] | false = false) {
|
async syncInternalFilesAndDatabase(direction: "push" | "pull" | "safe", showMessage: boolean, files: InternalFileInfo[] | false = false, targetFiles: string[] | false = false) {
|
||||||
|
|||||||
Reference in new issue
Block a user