|
|
@ -20,11 +20,26 @@ weechat.factory('handlers', ['$rootScope', '$log', 'models', 'plugins', 'notific |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// inject a fake buffer line for date change
|
|
|
|
// inject a fake buffer line for date change
|
|
|
|
var injectDateChangeMessage = function(message, buffer, date) { |
|
|
|
var injectDateChangeMessage = function(message, buffer, d1, d2) { |
|
|
|
var content = "\u001943Date changed to " + date.toDateString(); |
|
|
|
var d1_plus_one = d1; |
|
|
|
|
|
|
|
d1_plus_one.setDate(d1_plus_one.getDate() + 1); |
|
|
|
|
|
|
|
d1.setHours(0, 0, 0, 0); |
|
|
|
|
|
|
|
d2.setHours(0, 0, 0, 0); |
|
|
|
|
|
|
|
// it's not always true that a date with time 00:00:00
|
|
|
|
|
|
|
|
// plus one day will be time 00:00:00
|
|
|
|
|
|
|
|
d1_plus_one.setHours(0, 0, 0, 0); |
|
|
|
|
|
|
|
var content = ""; |
|
|
|
|
|
|
|
if (d1_plus_one.valueOf() === d2.valueOf()) { |
|
|
|
|
|
|
|
content = "\u001943Date changed to " + d2.toDateString(); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
var date_diff = Math.round((d2 - d1)/(24*60*60*1000)); |
|
|
|
|
|
|
|
date_diff = date_diff >= 0 ? date_diff : date_diff + 1; |
|
|
|
|
|
|
|
content = "\u001943Date changed to " + d2.toDateString(); |
|
|
|
|
|
|
|
content += " (" + date_diff + " days from " + d1.toDateString() + ")"; |
|
|
|
|
|
|
|
} |
|
|
|
var line = { |
|
|
|
var line = { |
|
|
|
buffer: buffer, |
|
|
|
buffer: buffer, |
|
|
|
date: date, |
|
|
|
date: d2, |
|
|
|
prefix: '\u001943\u2500\u2500', |
|
|
|
prefix: '\u001943\u2500\u2500', |
|
|
|
tags_array: [], |
|
|
|
tags_array: [], |
|
|
|
displayed: true, |
|
|
|
displayed: true, |
|
|
@ -47,24 +62,8 @@ weechat.factory('handlers', ['$rootScope', '$log', 'models', 'plugins', 'notific |
|
|
|
current_date = new Date(message.date); |
|
|
|
current_date = new Date(message.date); |
|
|
|
previous_date.setHours(0, 0, 0, 0); |
|
|
|
previous_date.setHours(0, 0, 0, 0); |
|
|
|
current_date.setHours(0, 0, 0, 0); |
|
|
|
current_date.setHours(0, 0, 0, 0); |
|
|
|
var dateDifference = |
|
|
|
if (previous_date.valueOf() !== current_date.valueOf()) { |
|
|
|
Math.round((current_date - previous_date)/(24*60*60*1000)); |
|
|
|
injectDateChangeMessage(message, buffer, previous_date, current_date); |
|
|
|
if (dateDifference !== 0) { |
|
|
|
|
|
|
|
console.log(dateDifference); |
|
|
|
|
|
|
|
// if it's a small, positive number display a message
|
|
|
|
|
|
|
|
// for each one. Otherwise, just display one big
|
|
|
|
|
|
|
|
// date change message
|
|
|
|
|
|
|
|
// The range [1,5] was chosen arbitrarily
|
|
|
|
|
|
|
|
if (dateDifference >= 1 && dateDifference <= 5) { |
|
|
|
|
|
|
|
var prev_date_clone = previous_date; |
|
|
|
|
|
|
|
for (var i = 1; i <= dateDifference; ++i) { |
|
|
|
|
|
|
|
prev_date_clone.setDate(prev_date_clone.getDate()+1); |
|
|
|
|
|
|
|
injectDateChangeMessage(message, buffer, |
|
|
|
|
|
|
|
prev_date_clone); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
injectDateChangeMessage(message, buffer, current_date); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|