|
|
@@ -45,6 +45,9 @@ const CLIPBOARD_API_SUPPORTED = IS_NOT_SAFARI;
|
|
|
const NATIVE_API_API_SUPPORTED = IS_NOT_SAFARI;
|
|
|
const WEB_BLOCKING_API_SUPPORTED = IS_NOT_SAFARI;
|
|
|
const SHARE_API_SUPPORTED = navigator.canShare && navigator.canShare({ files: [new File([new Blob([""], { type: "text/html" })], "test.html")] });
|
|
|
+const LEGACY_FILENAME_REPLACED_CHARACTERS = ["~", "+", "\\\\\\\\", "?", "%", "*", ":", "|", "\"", "<", ">", "\u0000-\u001f", "\u007f"];
|
|
|
+const DEFAULT_FILENAME_REPLACED_CHARACTERS = ["~", "+", "?", "%", "*", ":", "|", "\"", "<", ">", "\\\\", "\x00-\x1f", "\x7F"];
|
|
|
+const DEFAULT_FILENAME_REPLACEMENT_CHARACTERS = ["~", "+", "?", "%", "*", ":", "|", """, "<", ">", "\"];
|
|
|
|
|
|
const DEFAULT_CONFIG = {
|
|
|
removeHiddenElements: true,
|
|
|
@@ -70,9 +73,9 @@ const DEFAULT_CONFIG = {
|
|
|
filenameConflictAction: "uniquify",
|
|
|
filenameMaxLength: 192,
|
|
|
filenameMaxLengthUnit: "bytes",
|
|
|
- filenameReplacedCharacters: ["~", "+", "?", "%", "*", ":", "|", "\"", "<", ">", "\\\\", "\x00-\x1f", "\x7F"],
|
|
|
+ filenameReplacedCharacters: DEFAULT_FILENAME_REPLACED_CHARACTERS,
|
|
|
filenameReplacementCharacter: "_",
|
|
|
- filenameReplacementCharacters: ["~", "+", "?", "%", "*", ":", "|", """, "<", ">", "\"],
|
|
|
+ filenameReplacementCharacters: DEFAULT_FILENAME_REPLACEMENT_CHARACTERS,
|
|
|
replaceEmojisInFilename: false,
|
|
|
saveFilenameTemplateData: false,
|
|
|
contextMenuEnabled: true,
|
|
|
@@ -292,6 +295,10 @@ async function upgrade() {
|
|
|
profile[key] = DEFAULT_CONFIG[key];
|
|
|
}
|
|
|
}
|
|
|
+ if (isSameArray(profile.filenameReplacedCharacters, LEGACY_FILENAME_REPLACED_CHARACTERS)
|
|
|
+ && isSameArray(profile.filenameReplacementCharacters, DEFAULT_FILENAME_REPLACEMENT_CHARACTERS)) {
|
|
|
+ profile.filenameReplacedCharacters = DEFAULT_FILENAME_REPLACED_CHARACTERS;
|
|
|
+ }
|
|
|
await setProfile(profileName, profile);
|
|
|
});
|
|
|
}
|
|
|
@@ -690,3 +697,7 @@ async function importConfig(config) {
|
|
|
await configStorage.set(newConfig);
|
|
|
await upgrade();
|
|
|
}
|
|
|
+
|
|
|
+function isSameArray(arrayLeft, arrayRight) {
|
|
|
+ return arrayLeft.length == arrayRight.length && arrayLeft.every((value, index) => value == arrayRight[index]);
|
|
|
+}
|