Move cleanIrcMessage to a separate file
This commit is contained in:
parent
8791a17fc4
commit
0402554563
@ -7,9 +7,10 @@
|
|||||||
!.lounge_home
|
!.lounge_home
|
||||||
|
|
||||||
# Ignore client folder as it's being built into public/ folder
|
# Ignore client folder as it's being built into public/ folder
|
||||||
# except for the findLinks.js file which is used by the server
|
# except for the specified files which are used by the server
|
||||||
client/**
|
client/**
|
||||||
!client/js/libs/handlebars/ircmessageparser/findLinks.js
|
!client/js/libs/handlebars/ircmessageparser/findLinks.js
|
||||||
|
!client/js/libs/handlebars/ircmessageparser/cleanIrcMessage.js
|
||||||
|
|
||||||
public/js/bundle.vendor.js.map
|
public/js/bundle.vendor.js.map
|
||||||
coverage/
|
coverage/
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
// TODO: This does not strip hex based colours - issue #1413
|
||||||
|
module.exports = (message) => message.replace(/\x02|\x1D|\x1F|\x16|\x0F|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?/g, "").trim();
|
@ -6,6 +6,7 @@ const render = require("../render");
|
|||||||
const utils = require("../utils");
|
const utils = require("../utils");
|
||||||
const options = require("../options");
|
const options = require("../options");
|
||||||
const helpers_roundBadgeNumber = require("../libs/handlebars/roundBadgeNumber");
|
const helpers_roundBadgeNumber = require("../libs/handlebars/roundBadgeNumber");
|
||||||
|
const cleanIrcMessage = require("../libs/handlebars/ircmessageparser/cleanIrcMessage");
|
||||||
const webpush = require("../webpush");
|
const webpush = require("../webpush");
|
||||||
const chat = $("#chat");
|
const chat = $("#chat");
|
||||||
const sidebar = $("#sidebar");
|
const sidebar = $("#sidebar");
|
||||||
@ -128,7 +129,7 @@ function notifyMessage(targetId, channel, msg) {
|
|||||||
if (msg.type === "message") {
|
if (msg.type === "message") {
|
||||||
title += " says:";
|
title += " says:";
|
||||||
}
|
}
|
||||||
body = msg.text.replace(/\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?|[\x00-\x1F]|\x7F/g, "").trim();
|
body = cleanIrcMessage(msg.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -21,7 +21,6 @@ var Helper = {
|
|||||||
getVersion: getVersion,
|
getVersion: getVersion,
|
||||||
getGitCommit: getGitCommit,
|
getGitCommit: getGitCommit,
|
||||||
ip2hex: ip2hex,
|
ip2hex: ip2hex,
|
||||||
cleanIrcMessage: cleanIrcMessage,
|
|
||||||
|
|
||||||
password: {
|
password: {
|
||||||
hash: passwordHash,
|
hash: passwordHash,
|
||||||
@ -140,11 +139,6 @@ function expandHome(shortenedPath) {
|
|||||||
return path.resolve(shortenedPath.replace(/^~($|\/|\\)/, home + "$1"));
|
return path.resolve(shortenedPath.replace(/^~($|\/|\\)/, home + "$1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanIrcMessage(message) {
|
|
||||||
// TODO: This does not strip hex based colours
|
|
||||||
return message.replace(/\x02|\x1D|\x1F|\x16|\x0F|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?/g, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
function passwordRequiresUpdate(password) {
|
function passwordRequiresUpdate(password) {
|
||||||
return bcrypt.getRounds(password) !== 11;
|
return bcrypt.getRounds(password) !== 11;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ const cheerio = require("cheerio");
|
|||||||
const request = require("request");
|
const request = require("request");
|
||||||
const url = require("url");
|
const url = require("url");
|
||||||
const Helper = require("../../helper");
|
const Helper = require("../../helper");
|
||||||
|
const cleanIrcMessage = require("../../../client/js/libs/handlebars/ircmessageparser/cleanIrcMessage");
|
||||||
const findLinks = require("../../../client/js/libs/handlebars/ircmessageparser/findLinks");
|
const findLinks = require("../../../client/js/libs/handlebars/ircmessageparser/findLinks");
|
||||||
const storage = require("../storage");
|
const storage = require("../storage");
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ module.exports = function(client, chan, msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove all IRC formatting characters before searching for links
|
// Remove all IRC formatting characters before searching for links
|
||||||
const cleanText = Helper.cleanIrcMessage(msg.text);
|
const cleanText = cleanIrcMessage(msg.text);
|
||||||
|
|
||||||
// We will only try to prefetch http(s) links
|
// We will only try to prefetch http(s) links
|
||||||
const links = findLinks(cleanText).filter((w) => /^https?:\/\//.test(w.link));
|
const links = findLinks(cleanText).filter((w) => /^https?:\/\//.test(w.link));
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
const Chan = require("../../models/chan");
|
const Chan = require("../../models/chan");
|
||||||
const Msg = require("../../models/msg");
|
const Msg = require("../../models/msg");
|
||||||
const LinkPrefetch = require("./link");
|
const LinkPrefetch = require("./link");
|
||||||
const Helper = require("../../helper");
|
const cleanIrcMessage = require("../../../client/js/libs/handlebars/ircmessageparser/cleanIrcMessage");
|
||||||
|
|
||||||
module.exports = function(irc, network) {
|
module.exports = function(irc, network) {
|
||||||
const client = this;
|
const client = this;
|
||||||
@ -107,7 +107,7 @@ module.exports = function(irc, network) {
|
|||||||
// Do not send notifications for messages older than 15 minutes (znc buffer for example)
|
// Do not send notifications for messages older than 15 minutes (znc buffer for example)
|
||||||
if (highlight && (!data.time || data.time > Date.now() - 900000)) {
|
if (highlight && (!data.time || data.time > Date.now() - 900000)) {
|
||||||
let title = chan.name;
|
let title = chan.name;
|
||||||
let body = Helper.cleanIrcMessage(data.message);
|
let body = cleanIrcMessage(data.message);
|
||||||
|
|
||||||
// In channels, prepend sender nickname to the message
|
// In channels, prepend sender nickname to the message
|
||||||
if (chan.type !== Chan.Type.QUERY) {
|
if (chan.type !== Chan.Type.QUERY) {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const expect = require("chai").expect;
|
const expect = require("chai").expect;
|
||||||
const Helper = require("../../src/helper");
|
const cleanIrcMessage = require("../../../../../../client/js/libs/handlebars/ircmessageparser/cleanIrcMessage");
|
||||||
|
|
||||||
describe("Clean IRC messages", function() {
|
describe("cleanIrcMessage", function() {
|
||||||
it("should remove all formatting", function() {
|
it("should remove all formatting", function() {
|
||||||
const testCases = [{
|
const testCases = [{
|
||||||
input: "\x0303",
|
input: "\x0303",
|
||||||
@ -40,7 +40,7 @@ describe("Clean IRC messages", function() {
|
|||||||
expected: "#thelounge",
|
expected: "#thelounge",
|
||||||
}];
|
}];
|
||||||
|
|
||||||
const actual = testCases.map((testCase) => Helper.cleanIrcMessage(testCase.input));
|
const actual = testCases.map((testCase) => cleanIrcMessage(testCase.input));
|
||||||
const expected = testCases.map((testCase) => testCase.expected);
|
const expected = testCases.map((testCase) => testCase.expected);
|
||||||
|
|
||||||
expect(actual).to.deep.equal(expected);
|
expect(actual).to.deep.equal(expected);
|
Loading…
Reference in New Issue
Block a user