var path = require('path') var ssbKeys = require('ssb-keys') var ref = require('ssb-ref') var config = require('ssb-config/inject')(process.env.ssb_appname) var keys = ssbKeys .loadSync(path.join(config.path, 'secret')) function unbox_value(msg) { var plaintext = ssbKeys.unbox(msg.content, keys) if(!plaintext) return null return { previous: msg.previous, author: msg.author, sequence: msg.sequence, timestamp: msg.timestamp, hash: msg.hash, content: plaintext, private: true } } exports.message_unbox = function (msg) { if(msg.value) { var value = unbox_value(msg.value) if(value) return { key: msg.key, value: value, timestamp: msg.timestamp } } else return unbox_value(msg) } exports.message_box = function (content) { return ssbKeys.box(content, content.recps.map(function (e) { return ref.isFeed(e) ? e : e.link })) } exports.message_meta = function (msg) { if(msg.value.private) return "PRIVATE" } exports.publish = function (content, id, sbot) { if(content.recps) content = exports.message_box(content) sbot.publish(content, function (err, msg) { if(err) throw err console.log('PUBLISHED', msg) }) }