NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Bitcointalk Message Symbols Count
// @version 1.0
// @description Count of the number of symbols in a message
// @author DimNS
// @match https://bitcointalk.org/index.php?topic=*
// @match https://bitcointalk.org/index.php?action=post;topic=*
// @grant none
// @require https://code.jquery.com/jquery-2.2.4.min.js
// @updateURL https://openuserjs.org/meta/DimNS/bitcointalk_message_symbols_count.user.js
// @copyright 2018+, DimNS
// @license MIT
// ==/UserScript==
(function () {
function addButton() {
var previewButton = $('input[type="submit"][name="preview"][value="Preview"]');
if (previewButton.length > 0) {
var countButton = $('<button type="button">Count Symbols</button>');
countButton.click(function () {
var string = $('textarea[name="message"]').val();
var prepared = string.replace(/\[quote/g, '▫').replace(/\[\/quote]/g, '▪');
var message = '';
var lt = 0;
for (var i in prepared) {
var symbol = prepared[i];
if (lt <= 0 && symbol !== '▫' && symbol !== '▪' && symbol !== '') {
message += symbol;
} else if (symbol === '▫') {
lt++;
} else if (symbol === '▪') {
lt--;
}
}
message = message.replace(/^\s+/g, '');
message = message.replace(/\s+$/g, '');
message = message.replace(/\s+/g, ' ');
var lengthWithSpace = message.length;
var lengthWithoutSpace = message.replace(/\s+/g, '').length;
alert(
'My Message: "' + message + '"\n' +
'\n' +
lengthWithSpace + ': Length with whitespace' + '\n' +
lengthWithoutSpace + ': Length without whitespace'
);
});
previewButton.after(countButton).after(' ');
}
}
addButton();
})();