diff options
-rw-r--r-- | ads.js | 32 | ||||
-rw-r--r-- | render.js | 2 | ||||
-rw-r--r-- | server.js | 39 |
3 files changed, 59 insertions, 14 deletions
@@ -0,0 +1,32 @@ +var fs = require('fs') +var nacl = require('tweetnacl') + nacl.util = require('tweetnacl-util') + +var homedir = require('os').homedir() +var addir = homedir + '/.bogbook/ads/' + +if (!fs.existsSync(homedir + '/.bogbook/')) {fs.mkdirSync(homedir + '/.bogbook/')} +if (!fs.existsSync(addir)){fs.mkdirSync(addir)} + +function makeAd (ad) { + console.log(ad) + + var hex = Buffer.from(nacl.hash(nacl.util.decodeUTF8(ad))).toString('hex') + + var obj = { + hash: hex, + ad: ad, + views: 0 + } + + fs.writeFile(addir + hex, JSON.stringify(obj), 'UTF-8', function () { + console.log('Saved as ' + hex) + }) +} + +if (process.argv[2]) { + var ad = process.argv[2] + makeAd(ad) +} else { + console.log('Please write an ad. Ex: `node ads.js "Hello World"') +} @@ -7,7 +7,7 @@ function renderAd (ad) { } newAd = h('div', {id: 'ad'}, [ - h('span', {classList: 'right'}, [h('pre', ['Ad'])]), + h('span', {classList: 'right'}, [h('pre', [ad.views + ' views'])]), h('p', {innerHTML: marked(ad.content)}), h('button', {classList: 'right', onclick: function () { @@ -91,6 +91,7 @@ var nacl = require('tweetnacl') var homedir = require('os').homedir() var bogdir = homedir + '/.bogbook/bogs/' +var addir = homedir + '/.bogbook/ads/' if (!fs.existsSync(homedir + '/.bogbook/')) {fs.mkdirSync(homedir + '/.bogbook/')} if (!fs.existsSync(bogdir)){fs.mkdirSync(bogdir)} @@ -118,19 +119,31 @@ bog.keys().then(key => { printFeedIdentical(msg, req) if (ADVERTISEMENTS) { if (Math.floor(Math.random() * 4) == 2) { - var ad = { - author: key.publicKey, - name: fullURL, - content: adContents[Math.floor(Math.random() * adContents.length)], - timestamp: Date.now() - } - printSendAd(ad, req) - bog.box(JSON.stringify(ad), req.requester, key).then(boxed => { - obj = { - requester: key.publicKey, - box: boxed - } - ws.send(JSON.stringify(obj)) + fs.readdir(addir, function (err, adfiles) { + var num = Math.floor(Math.random() * (adfiles.length)) + console.log(num) + fs.readFile(addir + adfiles[num], 'UTF-8', function (err, adFile) { + console.log(adFile) + var obj = JSON.parse(adFile) + console.log(obj) + var ad = { + author: key.publicKey, + name: fullURL, + content: obj.ad, + timestamp: Date.now(), + views: obj.views + } + obj.views++ + fs.writeFileSync(addir + obj.hash, JSON.stringify(obj), 'UTF-8') + printSendAd(ad, req) + bog.box(JSON.stringify(ad), req.requester, key).then(boxed => { + sendobj = { + requester: key.publicKey, + box: boxed + } + ws.send(JSON.stringify(sendobj)) + }) + }) }) } } |