import types from '../types' import moment from 'moment' let FileSaver = require('file-saver') const systemInitialState = { loading: false, error: null, site: { name: 'Lens Cortex', }, server: { connected: false, status: "disconnected", error: null, }, relay: { connected: false, status: "unknown", error: null, }, rpc: { connected: false, status: "unknown", cpu_cmd: "unknown", gpu_cmd: "unknown", error: null, }, cmd: { loading: false, loaded: false, name: null, error: null, stdout: null, stderr: null, }, currentTask: { id: 1072, activity: 'train', library: 'pix2pix', dataset: 'video/woods_final', epoch: 87, epochs: 100, }, images: [ { url: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4282/woodscaled_4_true_20180521_2125.png', }, { url: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4282/woodscaled_4_true_20180521_2146%20(1).png', }, { url: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4282/woodscaled_4_true_20180521_2149.png', }, { url: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4282/woodscaled_4_true_20180521_2150.png', }, { url: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4282/woodscaled_4_true_20180521_2146%20(1).png', }, ], tasks: [ { id: 1073, activity: 'train', library: 'pix2pix', dataset: 'video/woods_green', epochs: 100, }, { id: 1073, activity: 'train', library: 'samplernn', dataset: 'bobby_brown_-_every_little_step', epochs: 6, }, { id: 1073, activity: 'train', library: 'pix2pix', checkpoint: 'lyra_voice_layers', dataset: 'audio/lyra_improv', epochs: 30, }, { id: 1073, activity: 'train', library: 'pix2pix', checkpoint: 'lyra_melody_lines', dataset: 'audio/lyra_improv', epochs: 30, }, { id: 1073, activity: 'train', library: 'pix2pix', checkpoint: 'ensemble_chords', dataset: 'audio/lyra_improv', epochs: 30, }, { id: 1073, activity: 'generate', library: 'samplernn', dataset: 'coccoglass3', opt: { time: 5, count: 6 }, }, { id: 1073, activity: 'train', library: 'pix2pix', dataset: 'video/woods_green', epochs: 100, }, { id: 1073, activity: 'train', library: 'samplernn', dataset: 'bobby_brown_-_every_little_step', epochs: 6, }, ], files: [ { id: 2, library: 'samplernn', checkpoint: 'jwcglassbeat', dataset: 'jwcglassbeat', epoch: 18, duration: 30, batch_size: 5, filename: 'jwcglassbeat-ep18.mp3', size: 3 * 1024 * 1024, date: Date.now(), opt: "{}", } ] } const systemReducer = (state = systemInitialState, action) => { switch(action.type) { case types.socket.connect: case types.socket.reconnecting: return { ...state, server: { status: 'connected', connected: true, error: null, }, } case types.socket.reconnect: return { ...state, server: { status: 'reconnecting (attempt ' + action.attempt + ')', connected: false, error: null, }, } case types.socket.connect_error: case types.socket.reconnect_error: case types.socket.disconnect: case types.socket.reconnect_failed: return { ...state, server: { status: 'disconnected', connected: false, error: action.error || null, }, } case types.socket.error: return { ...state, server: { ...state.socket, error: action.error, }, } case types.system.relay_connected: return { ...state, relay: { status: 'connected', connected: true, error: null, } } case types.system.relay_disconnected: return { ...state, relay: { status: 'disconnected', connected: false, error: null, }, rpc: { status: 'disconnected', connected: false, error: null, }, } case types.system.rpc_connected: return { ...state, rpc: { status: 'connected', connected: true, error: null, } } case types.system.rpc_connected: return { ...state, rpc: { status: 'disconnected', connected: false, error: null, } } case types.system.running_command: return { ...state, cmd: { loading: true, loaded: false, name: action.cmd, error: null, stdout: null, stderr: null, } } case types.system.command_output: return { ...state, cmd: { loading: false, loaded: true, name: action.data.cmd, error: action.data.error, stdout: action.data.stdout, stderr: action.data.stderr, } } default: return state } } export default systemReducer