From b883a52b0953e44a20020cac090456bc6a505b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenz=20H=C3=BCbschle-Schneider?= Date: Sun, 15 Nov 2015 21:50:29 +0100 Subject: [PATCH] Date change message prototype --- js/handlers.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/js/handlers.js b/js/handlers.js index 98f088c..25ba797 100644 --- a/js/handlers.js +++ b/js/handlers.js @@ -19,12 +19,39 @@ weechat.factory('handlers', ['$rootScope', '$log', 'models', 'plugins', 'notific models.closeBuffer(bufferId); }; + // inject a fake buffer line for date change + var injectDateChangeMessage = function(message, buffer, date) { + var content = "Date changed to " + date.toDateString(); + var line = { + buffer: buffer, + date: date, + prefix: '—', + tags_array: [], + displayed: true, + highlight: 0, + message: content + }; + var new_message = new models.BufferLine(line); + buffer.addLine(new_message); + }; + var handleLine = function(line, manually) { var message = new models.BufferLine(line); var buffer = models.getBuffer(message.buffer); buffer.requestedLines++; // Only react to line if its displayed if (message.displayed) { + // Check for date change + if (buffer.lines.length > 0) { + var previous_date = new Date(buffer.lines[buffer.lines.length - 1].date), + current_date = new Date(message.date); + previous_date.setHours(0, 0, 0, 0); + current_date.setHours(0, 0, 0, 0); + if (previous_date.valueOf() !== current_date.valueOf()) { + injectDateChangeMessage(message, buffer, current_date); + } + } + message = plugins.PluginManager.contentForMessage(message); buffer.addLine(message);