diff --git a/src/routes/(app)/+page.svelte b/src/routes/(app)/+page.svelte
index 026a0c4..d73b78e 100644
--- a/src/routes/(app)/+page.svelte
+++ b/src/routes/(app)/+page.svelte
@@ -220,6 +220,19 @@
let automate = checkParam('automate', ['1', 'true']);
+ let overrideTitle: string | undefined;
+ let overrideLevel: string | undefined;
+
+ const applyMetadataOverrides = (bundle: ChartBundle) => {
+ if (overrideTitle !== undefined) {
+ bundle.metadata.title = overrideTitle;
+ }
+ if (overrideLevel !== undefined) {
+ bundle.metadata.level = overrideLevel;
+ bundle.metadata.levelType = inferLevelType(overrideLevel);
+ }
+ };
+
const unlistens: UnlistenFn[] = [];
onMount(async () => {
@@ -392,6 +405,8 @@
if (args['toggles']) tgs = args['toggles'];
if (args['mediaOptions']) mopts = args['mediaOptions'];
automate = args['automate'] === 'true';
+ if (args['title']) overrideTitle = args['title'];
+ if (args['level']) overrideLevel = args['level'];
}
pref ??= localStorage.getItem('preferences');
@@ -829,15 +844,20 @@
illustration: illustrationFile.id,
metadata: metadataEntry
? {
- title: metadataEntry.name,
+ title: overrideTitle ?? metadataEntry.name,
composer: metadataEntry.composer,
charter: metadataEntry.charter,
illustrator: metadataEntry.illustration ?? null,
- level: metadataEntry.level,
- levelType: inferLevelType(metadataEntry.level),
+ level: overrideLevel ?? metadataEntry.level,
+ levelType: inferLevelType(overrideLevel ?? metadataEntry.level),
difficulty: null,
}
- : metadata!,
+ : {
+ ...metadata!,
+ title: overrideTitle ?? metadata!.title,
+ level: overrideLevel ?? metadata!.level,
+ levelType: overrideLevel ? inferLevelType(overrideLevel) : metadata!.levelType,
+ },
};
chartBundles.push(bundle);
chartBundles = chartBundles;
@@ -1297,6 +1317,7 @@
}
if (chartBundles.length > 0 && selectedBundle === -1) {
currentBundle = chartBundles[0];
+ applyMetadataOverrides(currentBundle);
selectedBundle = currentBundle.id;
selectedSong = currentBundle.song;
selectedChart = currentBundle.chart;
@@ -1777,6 +1798,7 @@
class="transition hover:brightness-75"
onclick={() => {
currentBundle = bundle;
+ applyMetadataOverrides(currentBundle);
selectedBundle = bundle.id;
selectedChart = bundle.chart;
selectedSong = bundle.song;
@@ -1805,8 +1827,9 @@
aria-label="Delete"
onclick={() => {
chartBundles = chartBundles.filter((b) => b.id !== bundle.id);
- if (selectedBundle === bundle.id) {
+ if (selectedBundle === bundle.id && chartBundles.length > 0) {
currentBundle = chartBundles[0];
+ applyMetadataOverrides(currentBundle);
selectedBundle = chartBundles[0].id;
selectedChart = chartBundles[0].chart;
selectedSong = chartBundles[0].song;
@@ -1878,6 +1901,7 @@
@@ -1943,6 +1967,7 @@