Skip to content

Commit 2748a16

Browse files
committed
fix(meta): Fix meta file position error.
1 parent 629cef5 commit 2748a16

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,7 @@ export default class InvioPlugin extends Plugin {
445445
this.app.vault,
446446
plan,
447447
sortedKeys,
448+
this.settings.localWatchDir, // Or use hosting
448449
metadataFile,
449450
origMetadataOnRemote,
450451
sizesGoWrong,

src/misc.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as path from "path";
44
import { base32, base64url } from "rfc4648";
55
import XRegExp from "xregexp";
66
import emojiRegex from "emoji-regex";
7-
7+
import { DEFAULT_FILE_NAME_FOR_METADATAONREMOTE } from './metadataOnRemote';
88
import { log } from "./moreOnLog";
99

1010
declare global {
@@ -53,6 +53,16 @@ export const isHiddenPath = (
5353
return false;
5454
};
5555

56+
57+
58+
export const isMetaPath = (
59+
item: string
60+
) => {
61+
const k = normalizePath(item); // TODO: only unix path now
62+
const k2 = k.split("/").slice(-1)[0]; // TODO: only unix path now
63+
return k2 === DEFAULT_FILE_NAME_FOR_METADATAONREMOTE;
64+
};
65+
5666
/**
5767
* Util func for mkdir -p based on the "path" of original file or folder
5868
* "a/b/c/" => ["a", "a/b", "a/b/c"]

src/sync.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
} from "./localdb";
3333
import {
3434
isHiddenPath,
35+
isMetaPath,
3536
isVaildText,
3637
mkdirpInVault,
3738
getFolderLevels,
@@ -276,8 +277,8 @@ export const parseRemoteItems = async (
276277
changeRemoteMtimeUsingMapping: false,
277278
};
278279
}
279-
if (r.key === DEFAULT_FILE_NAME_FOR_METADATAONREMOTE) {
280-
metadataFile = Object.assign({}, r);
280+
if (isMetaPath(r.key)) {
281+
metadataFile = Object.assign({}, r);
281282
}
282283
if (r.key === DEFAULT_FILE_NAME_FOR_METADATAONREMOTE2) {
283284
throw Error(
@@ -380,7 +381,7 @@ const isSkipItem = (
380381
return (
381382
isHiddenPath(key, true, false) ||
382383
(!syncUnderscoreItems && isHiddenPath(key, false, true)) ||
383-
key === DEFAULT_FILE_NAME_FOR_METADATAONREMOTE ||
384+
isMetaPath(key) ||
384385
key === DEFAULT_FILE_NAME_FOR_METADATAONREMOTE2
385386
);
386387
};
@@ -1152,6 +1153,7 @@ export const getSyncPlan = async (
11521153
};
11531154

11541155
const uploadExtraMeta = async (
1156+
slug: string,
11551157
client: RemoteClient,
11561158
metadataFile: FileOrFolderMixedState | undefined,
11571159
origMetadata: MetadataOnRemote | undefined,
@@ -1192,7 +1194,7 @@ const uploadExtraMeta = async (
11921194
const resultText = serializeMetadataOnRemote(newMetadata);
11931195

11941196
await client.uploadToRemote(
1195-
key,
1197+
metadataFile?.key || `${slug}/${key}`,
11961198
RemoteSrcPrefix,
11971199
undefined,
11981200
false,
@@ -1466,6 +1468,7 @@ export const doActualSync = async (
14661468
vault: Vault,
14671469
syncPlan: SyncPlanType,
14681470
sortedKeys: string[],
1471+
slug: string, // For targeting dir
14691472
metadataFile: FileOrFolderMixedState,
14701473
origMetadata: MetadataOnRemote,
14711474
sizesGoWrong: FileOrFolderMixedState[],
@@ -1489,6 +1492,7 @@ export const doActualSync = async (
14891492

14901493
log.debug(`start syncing extra data firstly`);
14911494
await uploadExtraMeta(
1495+
slug,
14921496
client,
14931497
metadataFile,
14941498
origMetadata,

0 commit comments

Comments
 (0)