Fix categories for imported songs
This commit is contained in:
@@ -38,18 +38,22 @@
|
||||
"oni": 3,
|
||||
"ura": 4
|
||||
}
|
||||
|
||||
|
||||
this.categoryAliases = {}
|
||||
|
||||
assets.categories.forEach(cat => {
|
||||
this.categoryAliases[cat.title.toLowerCase()] = cat.title
|
||||
if(cat.aliases != null){
|
||||
this.categoryAliases[cat.title.toLowerCase()] = cat.id
|
||||
if(cat.aliases){
|
||||
cat.aliases.forEach(alias => {
|
||||
this.categoryAliases[alias.toLowerCase()] = cat.title
|
||||
});
|
||||
this.categoryAliases[alias.toLowerCase()] = cat.id
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
if(cat.title_lang){
|
||||
for(var i in cat.title_lang){
|
||||
this.categoryAliases[cat.title_lang[i].toLowerCase()] = cat.id
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
this.assetSelectors = {
|
||||
"bg-pattern-1": ".pattern-bg",
|
||||
"bg_genre_0": "#song-select",
|
||||
@@ -130,7 +134,11 @@
|
||||
var equalsPos = line.indexOf("=")
|
||||
if(equalsPos !== -1 && line.slice(0, equalsPos).trim() === "genrename"){
|
||||
var value = line.slice(equalsPos + 1).trim()
|
||||
category = this.categoryAliases[value] || data[i].trim().slice(equalsPos + 1).trim()
|
||||
if(value.toLowerCase() in this.categoryAliases){
|
||||
category = value
|
||||
}else{
|
||||
category = data[i].trim().slice(equalsPos + 1).trim()
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -140,12 +148,16 @@
|
||||
var line = data[i].trim().toLowerCase()
|
||||
if(line.startsWith("#title:")){
|
||||
var value = line.slice(7).trim()
|
||||
if(value in this.categoryAliases){
|
||||
category = this.categoryAliases[value]
|
||||
if(value.toLowerCase() in this.categoryAliases){
|
||||
category = value
|
||||
}
|
||||
}else if(line.startsWith("#genre:")){
|
||||
var value = line.slice(7).trim()
|
||||
category = this.categoryAliases[value] || data[i].trim().slice(7).trim()
|
||||
if(value.toLowerCase() in this.categoryAliases){
|
||||
category = value
|
||||
}else{
|
||||
category = data[i].trim().slice(7).trim()
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -169,7 +181,11 @@
|
||||
var filesLoop = fileObj => {
|
||||
var tjaPath = fileObj.file.webkitRelativePath.toLowerCase().slice(0, fileObj.file.name.length * -1)
|
||||
if(tjaPath.startsWith(metaPath) && (!("categoryLevel" in fileObj) || fileObj.categoryLevel < level)){
|
||||
fileObj.category = category
|
||||
if(category.toLowerCase() in this.categoryAliases){
|
||||
fileObj.category_id = this.categoryAliases[category.toLowerCase()]
|
||||
}else{
|
||||
fileObj.category = category
|
||||
}
|
||||
fileObj.categoryLevel = level
|
||||
}
|
||||
}
|
||||
@@ -189,6 +205,7 @@
|
||||
var file = fileObj.file
|
||||
var index = fileObj.index
|
||||
var category = fileObj.category
|
||||
var category_id = fileObj.category_id
|
||||
var reader = new FileReader()
|
||||
var promise = pageEvents.load(reader).then(event => {
|
||||
var data = event.target.result.replace(/\0/g, "").split("\n")
|
||||
@@ -226,7 +243,11 @@
|
||||
songObj.music = this.otherFiles[dir + meta.wave.toLowerCase()] || songObj.music
|
||||
}
|
||||
if(meta.genre){
|
||||
songObj.category = this.categoryAliases[meta.genre.toLowerCase()] || meta.genre
|
||||
if(meta.genre.toLowerCase() in this.categoryAliases){
|
||||
songObj.category_id = this.categoryAliases[meta.genre.toLowerCase()]
|
||||
}else{
|
||||
songObj.category = meta.genre
|
||||
}
|
||||
}
|
||||
if(meta.taikowebskin){
|
||||
songObj.song_skin = this.getSkin(dir, meta.taikowebskin)
|
||||
@@ -290,8 +311,15 @@
|
||||
if(subtitleLangAdded){
|
||||
songObj.subtitle_lang = subtitleLang
|
||||
}
|
||||
if(!songObj.category){
|
||||
songObj.category = category || this.getCategory(file, [songTitle || songObj.title, file.name.slice(0, file.name.lastIndexOf("."))])
|
||||
if(!songObj.category_id && !songObj.category){
|
||||
if(!category && category_id === undefined){
|
||||
songObj.category_id = this.getCategory(file, [songTitle || songObj.title, file.name.slice(0, file.name.lastIndexOf("."))])
|
||||
}else if(category){
|
||||
songObj.category = category
|
||||
songObj.orginalCategory = category
|
||||
}else{
|
||||
songObj.category_id = category_id
|
||||
}
|
||||
}
|
||||
if(coursesAdded){
|
||||
this.songs[index] = songObj
|
||||
@@ -312,6 +340,7 @@
|
||||
var file = fileObj.file
|
||||
var index = fileObj.index
|
||||
var category = fileObj.category
|
||||
var category_id = fileObj.category_id
|
||||
var reader = new FileReader()
|
||||
var promise = pageEvents.load(reader).then(event => {
|
||||
var data = event.target.result.replace(/\0/g, "").split("\n")
|
||||
@@ -352,7 +381,14 @@
|
||||
songObj.title = filename
|
||||
}
|
||||
this.songs[index] = songObj
|
||||
songObj.category = category || this.getCategory(file, [osu.metadata.TitleUnicode, osu.metadata.Title, file.name.slice(0, file.name.lastIndexOf("."))])
|
||||
if(!category && category_id === undefined){
|
||||
songObj.category_id = this.getCategory(file, [osu.metadata.TitleUnicode, osu.metadata.Title, file.name.slice(0, file.name.lastIndexOf("."))])
|
||||
}else if(category){
|
||||
songObj.category = category
|
||||
songObj.orginalCategory = category
|
||||
}else{
|
||||
songObj.category_id = category_id
|
||||
}
|
||||
var hash = md5.base64(event.target.result).slice(0, -2)
|
||||
songObj.hash = hash
|
||||
scoreStorage.songTitles[songObj.title] = hash
|
||||
|
||||
Reference in New Issue
Block a user