Story 3.3 done
This commit is contained in:
@@ -106,10 +106,11 @@ export class PresetImportExportManager {
|
||||
* @returns {string} Generated filename.
|
||||
*/
|
||||
generateExportFilename(worldName, includeTimestamp = true) {
|
||||
const name = worldName ?? this._adapter.scenes.current?.()?.name ?? 'world';
|
||||
const currentScene = this._adapter.scenes.current?.();
|
||||
const name = worldName ?? currentScene?.parent?.name ?? currentScene?.name ?? 'world';
|
||||
// Sanitize name: replace any non-alphanumeric, dash, or underscore with underscore
|
||||
// Also handle empty string by using 'world' as fallback
|
||||
const safeName = name.replace(/[^a-zA-Z0-9-_]/g, '_').toLowerCase() || 'world';
|
||||
const safeName = name.replace(/[^a-zA-Z0-9\-_]/g, '_').toLowerCase() || 'world';
|
||||
const timestamp = includeTimestamp ? `_${Date.now()}` : '';
|
||||
return `scrying-pool-presets-${safeName}${timestamp}.json`;
|
||||
}
|
||||
@@ -235,7 +236,7 @@ export class PresetImportExportManager {
|
||||
}
|
||||
|
||||
// Validate preset name characters (alphanumeric, dash, underscore, space, dot)
|
||||
if (!/^[a-zA-Z0-9\s._-]+$/.test(name)) {
|
||||
if (!/^[a-zA-Z0-9 ._-]+$/.test(name)) {
|
||||
results.push({ name, preset: null, error: `Preset "${name}": name contains invalid characters (only alphanumeric, space, dot, dash, underscore allowed)` });
|
||||
continue;
|
||||
}
|
||||
@@ -339,11 +340,13 @@ export class PresetImportExportManager {
|
||||
const result = await this._replacePresets(data, validPresets, existingCount);
|
||||
// Merge extraction errors with replace errors
|
||||
result.errors = [...errors, ...result.errors];
|
||||
result.success = result.errors.length === 0;
|
||||
return result;
|
||||
}
|
||||
const result = await this._mergePresets(data, validPresets, existingPresetNames);
|
||||
// Merge extraction errors with merge errors
|
||||
result.errors = [...errors, ...result.errors];
|
||||
result.success = result.errors.length === 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user