Add "Tools" tab with chart issue scanner

This commit is contained in:
Geomitron
2024-12-22 18:35:43 -06:00
parent d2e40b7c24
commit a7113384e8
15 changed files with 866 additions and 13 deletions

View File

@@ -207,6 +207,27 @@ export function hasChartExtension(fileName: string) {
return ['chart', 'mid'].includes(getExtension(fileName).toLowerCase())
}
/**
* @returns `true` if `fileName` is a valid album fileName.
*/
export function hasAlbumName(fileName: string) {
return ['album.jpg', 'album.jpeg', 'album.png'].includes(fileName)
}
/**
* @returns `true` if `name` has a valid sng file extension.
*/
export function hasSngExtension(name: string) {
return 'sng' === getExtension(name).toLowerCase()
}
/**
* @returns `true` if `fileName` has a valid ini file extension.
*/
export function hasIniExtension(fileName: string) {
return 'ini' === getExtension(fileName).toLowerCase()
}
/**
* @returns `true` if `fileName` is a valid chart fileName.
*/
@@ -246,6 +267,16 @@ export function hasAudioName(fileName: string) {
)
}
/**
* @returns true if the list of filename `extensions` appears to be intended as a chart folder.
*/
export function appearsToBeChartFolder(extensions: string[]) {
const ext = extensions.map(extension => extension.toLowerCase())
const containsNotes = ext.includes('chart') || ext.includes('mid')
const containsAudio = ext.includes('ogg') || ext.includes('mp3') || ext.includes('wav') || ext.includes('opus')
return containsNotes || containsAudio
}
export function resolveChartFolderName(
chartFolderName: string,
chart: { name: string; artist: string; album: string; genre: string; year: string; charter: string },