var fs = require('fs'); var lbryApi = require('../helpers/lbryApi.js'); function handlePublishError(error) { if (error.code === "ECONNREFUSED"){ return "Connection refused. The daemon may not be running."; } else if (error.response.data.error) { return error.response.data.error; } else { return error; }; } function createPublishParams(name, filepath, license, nsfw) { var publishParams = { "name": name, "file_path": filepath, "bid": 0.1, "metadata": { "description": name + " published via spee.ch", "title": name, "author": "spee.ch", "language": "en", "license": license, "nsfw": (nsfw.toLowerCase() === "true") } }; return publishParams; } function deleteTemporaryFile(filepath) { fs.unlink(filepath, function(err) { if (err) throw err; console.log('successfully deleted ' + filepath); }); } module.exports = { publish: function(name, filepath, license, nsfw, socket) { // update the client socket.emit("publish-status", "Your image is being published (this might take a second)..."); // create the publish object var publishParams = createPublishParams(name, filepath, license, nsfw); // get a promise to publish lbryApi.publishClaim(publishParams) .then(function(data){ console.log("publish promise success. Tx info:", data) socket.emit("publish-complete", {name: name, result: data.result}); deleteTemporaryFile(filepath); }) .catch(function(error){ console.log("error:", error); socket.emit("publish-failure", handlePublishError(error)); deleteTemporaryFile(filepath); }); } }