Sending channel and link together generates duplicate text

This commit is contained in:
Bonuspunkt 2017-11-21 23:54:20 +01:00 committed by Pavel Djundik
parent d9efaef369
commit 0e52b133af

View File

@ -2,6 +2,7 @@
const Handlebars = require("handlebars/runtime");
const parseStyle = require("./ircmessageparser/parseStyle");
const anyIntersection = require("./ircmessageparser/anyIntersection");
const findChannels = require("./ircmessageparser/findChannels");
const findLinks = require("./ircmessageparser/findLinks");
const findEmoji = require("./ircmessageparser/findEmoji");
@ -66,7 +67,15 @@ module.exports = function parse(text) {
const parts = channelParts
.concat(linkParts)
.concat(emojiParts)
.sort((a, b) => a.start - b.start);
.sort((a, b) => a.start - b.start || b.end - a.end)
.reduce((prev, curr) => {
const intersection = prev.some((p) => anyIntersection(p, curr));
if (intersection) {
return prev;
}
return prev.concat([curr]);
}, []);
// Merge the styling information with the channels / URLs / text objects and
// generate HTML strings with the resulting fragments