Skip to content
This repository has been archived by the owner on Dec 30, 2020. It is now read-only.

Commit

Permalink
force filename to be correctly formatted on new playlist
Browse files Browse the repository at this point in the history
  • Loading branch information
Alaanor committed Jun 6, 2020
1 parent 97db776 commit ea1ef37
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
6 changes: 5 additions & 1 deletion src/libraries/os/beatSaber/installer/PlaylistInstaller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import PlaylistScanner from "@/libraries/scanner/playlist/PlaylistScanner";
import PlaylistFormatType from "@/libraries/playlist/PlaylistFormatType";
import store from "@/plugins/store";
import PlaylistFilenameExtension from "@/libraries/playlist/PlaylistFilenameExtension";
import PlaylistFilename from "@/libraries/playlist/PlaylistFilename";

declare const __static: string;
const defaultCoverPath = path.join(__static, "defaultCover.jpg");
Expand Down Expand Up @@ -38,7 +39,10 @@ export default class PlaylistInstaller {
] as PlaylistFormatType;
const extension = PlaylistFilenameExtension.GetFor(format);
const filepath = path
.join(await BeatSaber.getPlaylistFolder(), `${name}.${extension}`)
.join(
await BeatSaber.getPlaylistFolder(),
`${PlaylistFilename.computeFilenameFor(name)}.${extension}`
)
.toLowerCase();

const emptyPlaylist = {
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/playlist/PlaylistFilename.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export default class PlaylistFilename {
return newPlaylistPath;
}

private static computeFilenameFor(title: string) {
public static computeFilenameFor(title: string) {
return title.replace(/[^a-zA-Z0-9]+/g, "_").toLowerCase();
}
}
1 change: 0 additions & 1 deletion src/libraries/playlist/loader/serializer/JsonSerializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { PlaylistBase, PlaylistMap } from "@/libraries/playlist/PlaylistLocal";
import Base64SrcLoader from "@/libraries/os/utils/Base64SrcLoader";

export default class JsonSerializer extends PlaylistSerializer {
// eslint-disable-next-line class-methods-use-this
public async serialize(playlist: PlaylistBase): Promise<void> {
const data = JsonSerializer.format(playlist);
await fs.writeFile(this.filepath, JSON.stringify(data));
Expand Down

0 comments on commit ea1ef37

Please sign in to comment.