From 1337070e3551186ee1eb7e1b4ef981b9431909e3 Mon Sep 17 00:00:00 2001 From: Reed <reed@plusreed.com> Date: Wed, 12 Oct 2022 13:43:49 -0400 Subject: [PATCH 1/6] start work on making the timing property do something --- index.js | 12 +++++++++--- util/addSeconds.js | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 util/addSeconds.js diff --git a/index.js b/index.js index f2df2e5..0169c2f 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,8 @@ const { Server } = require('socket.io') const path = require('path') const readline = require('readline') +const addSeconds = require('./util/addSeconds') + const app = express() const server = http.createServer(app) const io = new Server(server) @@ -48,7 +50,7 @@ const TABELLARIUS_STATE = { ascend: false, deleted: false, show: false, - timing: 0, + timing: 180, responded: false, responseMessage: '', potential: true, @@ -98,6 +100,9 @@ app.get('/twitch', async (_req, res) => { }) app.post('/merch-message', (req, res) => { + let currentDate = new Date() + let respondByDate = addSeconds(new Date(), 180) // adds 180 seconds to current date + const m = { number: TABELLARIUS_STATE.merch_messages.length + 1, id: +new Date(), @@ -113,7 +118,7 @@ app.post('/merch-message', (req, res) => { ascend: false, deleted: false, show: false, - timing: 0, + timing: Math.abs(currentDate.getTime() - respondByDate.getTime()) / 1000, responded: false, responseMessage: '', discount: false @@ -156,6 +161,7 @@ function wsl (...args) { const MessageHandler = { _emitTimingUpdate: function (_io) { + // TODO: Go through merch messages and decrement every timing by 1 _io.emit('updateTimings', { backlog: TABELLARIUS_STATE.merch_messages, queueLength: TABELLARIUS_STATE.merch_messages.length, @@ -306,7 +312,7 @@ const MessageHandler = { image: messageToToggle.image, number: messageToToggle.number, alertColour: messageToToggle.alertColour, - timing: messageToToggle.timing, + timing: 0, discount: messageToToggle.discount, deleted: messageToToggle.deleted, }) diff --git a/util/addSeconds.js b/util/addSeconds.js new file mode 100644 index 0000000..7d71ae7 --- /dev/null +++ b/util/addSeconds.js @@ -0,0 +1,7 @@ +module.exports = function (date, numSeconds) { + // TODO: Validate that this is a date + + date.setSeconds(date.getSeconds + numSeconds) + + return date +} \ No newline at end of file From 8f4ae9f42cb094fccb1e4201666134ea5750a320 Mon Sep 17 00:00:00 2001 From: Reed Davenport <reed@plusreed.com> Date: Wed, 12 Oct 2022 13:44:54 -0400 Subject: [PATCH 2/6] add config file --- .gitignore | 3 ++- config/config.example.json | 5 +++++ index.js | 8 +++++--- 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 config/config.example.json diff --git a/.gitignore b/.gitignore index 235d614..b288f9b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build_basedonsourcemaps/ build*/ -node_modules/ \ No newline at end of file +node_modules/ +config/config.json \ No newline at end of file diff --git a/config/config.example.json b/config/config.example.json new file mode 100644 index 0000000..5399e1b --- /dev/null +++ b/config/config.example.json @@ -0,0 +1,5 @@ +{ + "port": 3000, + "password": "lttstore.com", + "frontend_folder": "build" +} \ No newline at end of file diff --git a/index.js b/index.js index 0169c2f..a84f0cf 100644 --- a/index.js +++ b/index.js @@ -4,14 +4,16 @@ const { Server } = require('socket.io') const path = require('path') const readline = require('readline') +const config = require('./config/config.json') + const addSeconds = require('./util/addSeconds') const app = express() const server = http.createServer(app) const io = new Server(server) -const PASSWORD = 'lttstore.com' -const PORT = 3000 +const PASSWORD = config.password +const PORT = config.port /** All clients connected to socket.io */ let clients = [] @@ -65,7 +67,7 @@ const TABELLARIUS_STATE = { } let live = true; -const FRONTEND_FOLDER = "build" +const FRONTEND_FOLDER = config.frontend_folder app.use(express.json()) app.use('/', express.static(path.join(__dirname, FRONTEND_FOLDER))) From 0393658dc8fddc65ffe96ef741ec13cd8f1e9538 Mon Sep 17 00:00:00 2001 From: Reed <reed@plusreed.com> Date: Wed, 12 Oct 2022 13:43:49 -0400 Subject: [PATCH 3/6] start work on making the timing property do something --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index a84f0cf..276faa8 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,7 @@ const { Server } = require('socket.io') const path = require('path') const readline = require('readline') +const addSeconds = require('./util/addSeconds') const config = require('./config/config.json') const addSeconds = require('./util/addSeconds') From 4cf8d340a26644df439b120289db4561f5a57373 Mon Sep 17 00:00:00 2001 From: Reed Davenport <reed@plusreed.com> Date: Wed, 12 Oct 2022 13:52:56 -0400 Subject: [PATCH 4/6] squash Decrement timing on every timing update Decrement timing on every timing update --- index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 276faa8..78b0783 100644 --- a/index.js +++ b/index.js @@ -7,8 +7,6 @@ const readline = require('readline') const addSeconds = require('./util/addSeconds') const config = require('./config/config.json') -const addSeconds = require('./util/addSeconds') - const app = express() const server = http.createServer(app) const io = new Server(server) @@ -164,7 +162,11 @@ function wsl (...args) { const MessageHandler = { _emitTimingUpdate: function (_io) { - // TODO: Go through merch messages and decrement every timing by 1 + TABELLARIUS_STATE.merch_messages.forEach((m) => { + if (m.timing > 0) { + m.timing-- + } + }) _io.emit('updateTimings', { backlog: TABELLARIUS_STATE.merch_messages, queueLength: TABELLARIUS_STATE.merch_messages.length, From 4dba78ed875ba5c5c2d74c1ef97cae7de2a2f5d7 Mon Sep 17 00:00:00 2001 From: Reed Davenport <reed@plusreed.com> Date: Wed, 12 Oct 2022 14:03:39 -0400 Subject: [PATCH 5/6] use -= 1 instead of -- --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 78b0783..301ac79 100644 --- a/index.js +++ b/index.js @@ -54,7 +54,7 @@ const TABELLARIUS_STATE = { timing: 180, responded: false, responseMessage: '', - potential: true, + potential: false, potentialRejected: false } ], @@ -164,7 +164,7 @@ const MessageHandler = { _emitTimingUpdate: function (_io) { TABELLARIUS_STATE.merch_messages.forEach((m) => { if (m.timing > 0) { - m.timing-- + m.timing -= 1 } }) _io.emit('updateTimings', { From 7d27f4d79b6454d24ea08dae37c5d15bee1b3f8a Mon Sep 17 00:00:00 2001 From: Reed Davenport <reed@plusreed.com> Date: Thu, 13 Oct 2022 18:33:57 -0400 Subject: [PATCH 6/6] calculate queueDuration and nextMessageTiming --- index.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 301ac79..da9549a 100644 --- a/index.js +++ b/index.js @@ -167,6 +167,11 @@ const MessageHandler = { m.timing -= 1 } }) + + // sum up all timings + let totalTiming = 0 + TABELLARIUS_STATE.merch_messages.forEach(m => totalTiming += m.timing) + _io.emit('updateTimings', { backlog: TABELLARIUS_STATE.merch_messages, queueLength: TABELLARIUS_STATE.merch_messages.length, @@ -174,8 +179,8 @@ const MessageHandler = { isPaused: TABELLARIUS_STATE.queuePaused, displayMarquee: TABELLARIUS_STATE.marquee_show, marqueeText: TABELLARIUS_STATE.marquee_text, - queueDuration: 0, // ??? - nextMessageTiming: 0, // ??? + queueDuration: totalTiming, + nextMessageTiming: TABELLARIUS_STATE.merch_messages[TABELLARIUS_STATE.merch_messages.length - 1].timing, displayDiscount: TABELLARIUS_STATE.showDiscount, discountText: TABELLARIUS_STATE.discountText, messagesPotentiated: TABELLARIUS_STATE.merch_messages.filter(m => m.potential).length, @@ -317,7 +322,7 @@ const MessageHandler = { image: messageToToggle.image, number: messageToToggle.number, alertColour: messageToToggle.alertColour, - timing: 0, + timing: messageToToggle.timing, discount: messageToToggle.discount, deleted: messageToToggle.deleted, })