diff options
Diffstat (limited to 'app/client')
| -rw-r--r-- | app/client/api/crud.upload.js | 2 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.actions.js | 30 | ||||
| -rw-r--r-- | app/client/socket/socket.actions.js | 4 |
3 files changed, 32 insertions, 4 deletions
diff --git a/app/client/api/crud.upload.js b/app/client/api/crud.upload.js index 01c3e18..29216df 100644 --- a/app/client/api/crud.upload.js +++ b/app/client/api/crud.upload.js @@ -15,7 +15,7 @@ export function crud_upload(type, fd, data, dispatch) { xhr.addEventListener("load", uploadComplete, false) xhr.addEventListener("error", uploadFailed, false) xhr.addEventListener("abort", uploadCancelled, false) - xhr.open("POST", '/' + type + '/' + id + '/upload/') + xhr.open("POST", '/api/' + type + '/' + id + '/upload/') xhr.send(fd) dispatch && dispatch({ type: as_type(type, 'upload_loading')}) diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js index e6fd5b5..30620a7 100644 --- a/app/client/modules/samplernn/samplernn.actions.js +++ b/app/client/modules/samplernn/samplernn.actions.js @@ -28,7 +28,7 @@ export const load_directories = (id) => (dispatch) => { const get_dataset = (name, folder=unsortedFolder, date) => { const dataset = datasetLookup[name] || empty_dataset(name, folder) if (date) { - dataset.date = dataset.date ? Math.max(+new Date(date), dataset.date) : +new Date(date) + dataset.date = (dataset.date && ! isNaN(dataset.date)) ? Math.max(+new Date(date), dataset.date) : +new Date(date) } return dataset } @@ -44,6 +44,7 @@ export const load_directories = (id) => (dispatch) => { folder.datasets.push(dataset) return dataset } + // take all of the folders and put them in a lookup const folderLookup = folders.reduce((folderLookup, folder) => { folderLookup[folder.id] = { id: folder.id, name: folder.name, folder, datasets: [] } @@ -63,7 +64,8 @@ export const load_directories = (id) => (dispatch) => { file.name = (file.opt || {}).token || file.url } const name = (file.name || 'unsorted').split('.')[0] - const dataset = get_dataset(name, folderLookup[file.folder_id], unsortedFolder, file.date) + const dataset = get_dataset(name, folderLookup[file.folder_id] || unsortedFolder, file.date || file.created_at) + if (file.url.match(file.name)) file.persisted = true dataset.input.push(file) return datasetLookup }, datasetLookup) @@ -71,7 +73,7 @@ export const load_directories = (id) => (dispatch) => { // go over the generated files and add addl datasets (if the files were deleted) generatedFiles.map(file => { const pair = file.name.split('.')[0].split('-') - const dataset = get_dataset(pair[0], folderLookup[file.folder_id], unsortedFolder, file.date) + const dataset = get_dataset(pair[0], folderLookup[file.folder_id] || unsortedFolder, file.date || file.created_at) dataset.output.push(file) file.epoch = file.epoch || pair[1] }) @@ -210,10 +212,32 @@ export const import_files = (state, datasetLookup) => (dispatch) => { }, []) break case 'Upload': + promises = names.reduce((a,name) => { + console.log(datasetLookup[name]) + return datasetLookup[name].input.map(file => { + if (file.persisted) return null + const partz = file.name.split('.') + const ext = partz.pop() + if (ext === 'wav' || ext === 'flac') return + console.log(file) + return actions.socket.upload_file({ + folder_id: folder, + module: 'samplernn', + activity: 'train', + path: 'datasets', + filename: file.name, + generated: false, + processed: false, + datatype: 'audio', + ttl: 60000, + }) + }).concat(a) + }, []).filter(a => !! a) break default: break } + console.log(promises) return Promise.all(promises).then(data => { console.log(data) }).catch(e => { diff --git a/app/client/socket/socket.actions.js b/app/client/socket/socket.actions.js index e787f1a..ffe1cfe 100644 --- a/app/client/socket/socket.actions.js +++ b/app/client/socket/socket.actions.js @@ -10,7 +10,11 @@ export function list_directory(opt) { export function run_script(opt) { return syscall_async('run_script', opt) } +export function upload_file(opt) { + return syscall_async('upload_file', opt) +} export const syscall_async = (tag, payload, ttl=10000) => { + ttl = payload.ttl || ttl return new Promise( (resolve, reject) => { const uuid = uuidv1() const timeout = setTimeout(() => { |
