// import socket from '../socket' import types from '../types' import actions from '../actions' import { parser } from '../api' export const createFolder = (module, name) => dispatch => { return actions.folder.create({ // username... should get added inside the API module: module.name, datatype: module.datatype, activity: 'dataset', name }) } export const updateFolder = (module, folder, name, opt={}) => dispatch => { if (! folder || ! folder.id) { return null } return actions.folder.update({ id: folder.id, module: module.name, datatype: module.datatype, activity: 'dataset', name, opt, }) } export const uploadFile = (module, folder, file, filename) => dispatch => { const fd = new FormData() fd.append('file', file, filename) return actions.folder.upload(fd, { id: folder.id, module: module.name, activity: 'file', epoch: 0, processed: false, generated: false, }) } export const fetchURL = (module, folder, url) => dispatch => { // name url // mime datatype // duration analysis // size activity // opt created_at updated_at console.log(module, folder, url) const seenURL = folder.files.some(file => { return file.url === url }) console.log(seenURL) if (seenURL) { console.log('already seen this url') return } parser.parse(url, media => { if (!media) return media.title = media.title.replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '').trim() // strip emoji console.log('media', media) actions.file.create({ folder_id: folder.id, name: (media.title || "") .replace(/\.[^.]+$/g, '') .replace(/[^a-zA-Z0-9_]/g, '_') .replace(/_+/g, '_'), module: module.name, dataset: media.token, activity: 'url', duration: parseInt(media.duration) || 0, epoch: 0, processed: false, generated: false, opt: media, url }) }) } export const uploadFiles = (files) => { return { type: types.dataset.upload_files } } // export const uploadFiles = (files) => { // return dispatch => { // // return { type: types.dataset.upload_files } // } // } // export const fetchURL = (url) => { type: types.dataset.fetch_url }