summaryrefslogtreecommitdiff
path: root/app/client/modules/pix2wav/pix2wav.actions.js
blob: 48d04962fb5498b591b2d5686f6a8cecdaab87da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import uuidv1 from 'uuid/v1'

import socket from '../../socket'
import types from '../../types'

import * as datasetLoader from '../../dataset/dataset.loader'

import actions from '../../actions'

import util from '../../util'

import pix2wavModule from './pix2wav.module'

export const load_directories = (id) => (dispatch) => {
  const module = pix2wavModule.name
  util.allProgress([
    datasetLoader.load(module),
    actions.socket.list_directory({ module: 'pix2pix', dir: 'sequences/pix2wav/' }),
    actions.socket.list_directory({ module: 'pix2pix', dir: 'datasets/pix2wav/' }),
    actions.socket.list_directory({ module: 'pix2pix', dir: 'checkpoints/pix2wav/' }),
    actions.socket.list_directory({ module: 'pix2pix', dir: 'checkpoints/pix2pix/' }),
    // actions.socket.list_directory({ module, dir: 'datasets' }),
    // actions.socket.list_directory({ module, dir: 'results' }),
    // actions.socket.list_directory({ module, dir: 'output' }),
    // actions.socket.disk_usage({ module, dir: 'datasets' }),
  ], (percent, i, n) => {
    console.log('progress', i, n)
    dispatch({ type: types.app.load_progress, progress: { i, n }})
  }).then(res => {
    const [datasetApiReport, sequences, datasets, checkpoints, pix2pixCheckpoints] = res
    const {
      folderLookup,
      fileLookup,
      datasetLookup,
      folders,
      files,
      unsortedFolder,
    } = datasetApiReport

    const sequenceDirectories = sequences.filter(s => s.dir)
    sequenceDirectories.forEach(dir => {
      const dataset = datasetLoader.getDataset(module, datasetLookup, dir.name)
      dataset.isBuilt = true
    })

    datasets.filter(s => s.dir).forEach(dir => {
      const dataset = datasetLoader.getDataset(module, datasetLookup, dir.name)
      dataset.hasDataset = true
    })

    const checkpointDirectories = checkpoints.filter(s => s.dir)
    checkpointDirectories.forEach(dir => {
      const dataset = datasetLoader.getDataset(module, datasetLookup, dir.name)
      dataset.hasCheckpoints = true
      dir.module = 'pix2wav'
    })

    const pix2pixCheckpointDirectories = pix2pixCheckpoints.filter(s => s.dir)
    pix2pixCheckpointDirectories.forEach(dir => {
      const dataset = datasetLoader.getDataset(module, datasetLookup, dir.name)
      dataset.hasCheckpoints = true
      dir.module = 'pix2pix'
    })

    console.log(res)
    console.log(checkpointDirectories)
    console.log(pix2pixCheckpointDirectories)

    dispatch({
      type: types.dataset.load,
      data: {
        module,
        folderLookup,
        fileLookup,
        datasetLookup,
        folders, files,
        sequences: sequenceDirectories,
        datasets,
        checkpoints: checkpointDirectories.concat(pix2pixCheckpointDirectories),
      },
    })

    if (id) {
      console.log('folder id', id)
      dispatch({
        type: types.dataset.set_folder,
        data: {
          folder_id: id,
          module
        },
      })
    }
  }).catch(e => {
    console.error(e)
  })
}