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); }); }, };