const fs = require('fs') const lbryApi = require('../helpers/libraries/lbryApi.js') const config = require('config') const errorHandlers = require('../helpers/libraries/errorHandlers.js') const walledAddress = config.get('WalletConfig.lbryAddress') function createPublishParams (claim, filePath, license, nsfw) { console.log('nsfw:', nsfw, typeof nsfw) const publishParams = { name : claim, file_path: filePath, bid : 0.01, metadata : { description: `${claim} published via spee.ch`, title : claim, author : 'spee.ch', language : 'en', license, nsfw : nsfw.toLowerCase() === 'on', }, claim_address : walledAddress, change_address: walledAddress, } return publishParams } function deleteTemporaryFile (filePath) { fs.unlink(filePath, err => { if (err) throw err console.log(`successfully deleted ${filePath}`) }) } module.exports = { publish (claim, fileName, filePath, fileType, license, nsfw, socket, visitor) { // update the client socket.emit('publish-status', 'Your image is being published (this might take a second)...') // send to analytics visitor.event('Publish Route', 'Publish Request', filePath).send() // create the publish object const publishParams = createPublishParams(claim, filePath, license, nsfw) // get a promise to publish lbryApi .publishClaim(publishParams, fileName, fileType) .then(result => { visitor.event('Publish Route', 'Publish Success', filePath).send() console.log('publish promise success. Tx info:', result) socket.emit('publish-complete', { name: claim, result }) }) .catch(error => { visitor.event('Publish Route', 'Publish Failure', filePath).send() console.log('error:', error) socket.emit('publish-failure', errorHandlers.handlePublishError(error)) deleteTemporaryFile(filePath) }) }, }