From bb7c356b397f2769f05351238faaf0bb218a4c72 Mon Sep 17 00:00:00 2001 From: David Huh <38101884+qt1337@users.noreply.github.com> Date: Tue, 20 Apr 2021 09:30:47 +0200 Subject: [PATCH] :memo: Writing docs... --- bot.js | 66 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/bot.js b/bot.js index d693d99..be8c3a4 100644 --- a/bot.js +++ b/bot.js @@ -55,29 +55,36 @@ function onMessageHandler(target, context, msg, self) { let stream; let stream_time; + + // Send request to Twitch API with client-id and oauth token const req = https.request(options, res => { let data = []; res.on('data', chunk => { + // Saving data of response to variable data data.push(chunk); }); res.on('end', () => { + // Parse data as JSON to variable stream stream = JSON.parse(Buffer.concat(data).toString()); + + // Check if stream is online or not if (!stream || !stream['stream'] || !stream['stream']['created_at']) { client.say(target, `Uptime: not available`); return; } + stream_time = stream['stream']['created_at']; const dateStart = new Date(stream_time); const dateEnd = new Date(); const timeDifference = Math.abs(dateEnd - dateStart); - client.say(target, `Uptime: ${getTimeInFormat(timeDifference)}`); - console.log(`* Executed ${commandName} command`); + + client.say(target, `Uptime: ${getTimeInFormat(timeDifference, true)}`); }); }) req.end(); - } else if (commandName.startsWith('!mark')) { + } else if (commandName.startsWith('!mark')) { // Description comes after a whitespace e.g.: "!mark DESCRIPTION" console.log(`* Executed ${commandName} command`); let streamer; @@ -89,32 +96,40 @@ function onMessageHandler(target, context, msg, self) { let timestamp; + // Send request to Twitch API with client-id and oauth token const req = https.request(options, res => { let data = []; res.on('data', chunk => { + // Saving data of response to variable data data.push(chunk); }); res.on('end', () => { + // Parse data as JSON to variable stream stream = JSON.parse(Buffer.concat(data).toString()); + + // Check if stream is online or not if (!stream || !stream['stream'] || !stream['stream']['created_at']) { client.say(target, `You can't do that now!`); return; } + const stream_time = stream['stream']['created_at']; const dateStart = new Date(stream_time); const dateEnd = new Date(); const timeDifference = Math.abs(dateEnd - dateStart); - - // streamer | stream_id | game | description | timestamp | username - streamer = "yiggalow"; stream_id = stream['stream']['_id']; stream_game = stream['stream']['game']; - timestamp = getTimeInHHMMSS(timeDifference); - description = commandName.substr(6,commandName.length-1); + timestamp = getTimeInFormat(timeDifference, false); + description = commandName.substr(6, commandName.length - 1); + + if (description.trim().length < 3) { + description = "No Description"; + } + username = context["username"]; const json_for_sql = { @@ -127,9 +142,10 @@ function onMessageHandler(target, context, msg, self) { username: username }; + // TODO send API request to database - - client.say(target, `Mark has been tracked for the next highlight video! Thank you for your submission ${username}. `); + // ENGLISH: client.say(target, `Mark has been tracked for the next highlight video. Thank you for your submission ${username}! `); + client.say(target, `Die Markierung wurde für das nächste Highlight Video gespeichert. Danke für deine Hilfe ${username}! `); }); }) req.end(); @@ -138,24 +154,20 @@ function onMessageHandler(target, context, msg, self) { } } -function getTimeInHHMMSS(timeInMillis) { - let hours = Math.floor(timeInMillis/1000/60/60); - timeInMillis -= hours*1000*60*60 - let minutes = Math.floor((timeInMillis)/1000/60); - timeInMillis -= minutes*1000*60 - let seconds = Math.floor((timeInMillis)/1000); +// Function for formatting time from millis to normal +// readable decides if the words "hours", "minutes" and "seconds" should be added +function getTimeInFormat(timeInMillis, readable) { + let hours = Math.floor(timeInMillis / 1000 / 60 / 60); + timeInMillis -= hours * 1000 * 60 * 60 + let minutes = Math.floor((timeInMillis) / 1000 / 60); + timeInMillis -= minutes * 1000 * 60 + let seconds = Math.floor((timeInMillis) / 1000); - return hours+":"+minutes+":"+seconds; -} - -function getTimeInFormat(timeInMillis) { - let hours = Math.floor(timeInMillis/1000/60/60); - timeInMillis -= hours*1000*60*60 - let minutes = Math.floor((timeInMillis)/1000/60); - timeInMillis -= minutes*1000*60 - let seconds = Math.floor((timeInMillis)/1000); - - return hours + " Stunde/n " + minutes + " Minute/n " + seconds + " Sekunde/n" + if (readable) { + return hours + " Stunde/n " + minutes + " Minute/n " + seconds + " Sekunde/n" + } else { + return hours + ":" + minutes + ":" + seconds; + } } // Function called when the "dice" command is issued