touhou-tagger
Version:
从 THBWiki 自动填写东方 Project CD 曲目信息.
39 lines (38 loc) • 1.14 kB
JavaScript
import { basename, resolve } from 'path';
import { log } from '../core/debug.js';
import { getAlbumOptions } from './album-options.js';
const specialFormats = [
{
name: 'TlmcWithDiscId',
regex: /\[.+?\]$/,
resolve: match => match[1],
},
{
name: 'Tlmc',
regex: /^[\d]{4}\.[\d]{2}\.[\d]{2} (.+?) \[.+?\]$/,
resolve: match => match[1],
},
{
name: 'Default',
regex: /.+/,
resolve: match => match[0],
},
];
export const getDefaultAlbumName = async (workingDir = process.cwd()) => {
const albumOptions = await getAlbumOptions(workingDir);
if (albumOptions.defaultAlbumHint) {
log('defaultAlbumHint:', albumOptions.defaultAlbumHint);
return albumOptions.defaultAlbumHint;
}
const currentFolder = basename(resolve(workingDir));
const [formatMatch] = specialFormats
.map(f => {
const match = currentFolder.match(f.regex);
if (match) {
return f.resolve(match);
}
return null;
})
.filter((it) => it !== null);
return formatMatch || currentFolder;
};