"use strict"; const _ = require("lodash"); const constants = require("./constants"); const templates = require("../views"); module.exports = { updateText, getStoredTypes, }; function getStoredTypes(condensed) { const obj = {}; constants.condensedTypes.forEach((type) => { obj[type] = condensed.data(type) || 0; }); return obj; } function updateText(condensed, addedTypes) { const obj = getStoredTypes(condensed); _.forOwn(addedTypes, (count, type) => { obj[type] += count; condensed.data(type, obj[type]); }); const strings = []; constants.condensedTypes.forEach((type) => { if (obj[type]) { switch (type) { case "away": strings.push(obj[type] + (obj[type] > 1 ? " users have gone away" : " user has gone away")); break; case "back": strings.push(obj[type] + (obj[type] > 1 ? " users have come back" : " user has come back")); break; case "chghost": strings.push(obj[type] + (obj[type] > 1 ? " users have changed hostname" : " user has changed hostname")); break; case "join": strings.push(obj[type] + (obj[type] > 1 ? " users have joined the channel" : " user has joined the channel")); break; case "part": strings.push(obj[type] + (obj[type] > 1 ? " users have left the channel" : " user has left the channel")); break; case "quit": strings.push(obj[type] + (obj[type] > 1 ? " users have quit" : " user has quit")); break; case "nick": strings.push(obj[type] + (obj[type] > 1 ? " users have changed nick" : " user has changed nick")); break; case "kick": strings.push(obj[type] + (obj[type] > 1 ? " users were kicked" : " user was kicked")); break; case "mode": strings.push(obj[type] + (obj[type] > 1 ? " modes were set" : " mode was set")); break; } } }); let text = strings.pop(); if (strings.length) { text = strings.join(", ") + ", and " + text; } condensed.find(".condensed-summary .content") .html(text + templates.msg_condensed_toggle()); }