Changed look of song loading, fix custom game assets and song skins, fix auth error

- Change the way a selected song appears while it is loading the metadata
- Fix custom taikowebskin
- Fix importing custom game assets (local only)
- Get the oauth token again on auth error
This commit is contained in:
LoveEevee
2020-10-31 14:47:42 +03:00
parent c5ce5104f1
commit 180ec58adb
10 changed files with 103 additions and 59 deletions

View File

@@ -1,3 +1,9 @@
function readFile(file, arrayBuffer, encoding){
var reader = new FileReader()
var promise = pageEvents.load(reader).then(event => event.target.result)
reader[arrayBuffer ? "readAsArrayBuffer" : "readAsText"](file, encoding)
return promise
}
class RemoteFile{
constructor(url){
this.url = url
@@ -22,13 +28,14 @@ class RemoteFile{
}
read(encoding){
if(encoding){
return this.arrayBuffer().then(response =>
new TextDecoder(encoding).decode(response)
)
return this.blob().then(blob => readFile(blob, false, encoding))
}else{
return loader.ajax(this.url)
}
}
blob(){
return this.arrayBuffer().then(response => new Blob([response]))
}
}
class LocalFile{
constructor(file){
@@ -38,16 +45,13 @@ class LocalFile{
this.name = file.name
}
arrayBuffer(){
var reader = new FileReader()
var promise = pageEvents.load(reader).then(event => event.target.result)
reader.readAsArrayBuffer(this.file)
return promise
return readFile(this.file, true)
}
read(encoding){
var reader = new FileReader()
var promise = pageEvents.load(reader).then(event => event.target.result)
reader.readAsText(this.file, encoding)
return promise
return readFile(this.file, false, encoding)
}
blob(){
return Promise.resolve(this.file)
}
}
class GdriveFile{
@@ -62,16 +66,14 @@ class GdriveFile{
}
read(encoding){
if(encoding){
return this.arrayBuffer().then(response => {
var reader = new FileReader()
var promise = pageEvents.load(reader).then(event => event.target.result)
reader.readAsText(new Blob([response]), encoding)
return promise
})
return this.blob().then(blob => readFile(blob, false, encoding))
}else{
return gpicker.downloadFile(this.id)
}
}
blob(){
return this.arrayBuffer().then(response => new Blob([response]))
}
}
class CachedFile{
constructor(contents, oldFile){
@@ -87,4 +89,7 @@ class CachedFile{
read(encoding){
return this.arrayBuffer()
}
blob(){
return this.arrayBuffer().then(response => new Blob([response]))
}
}