Merge pull request #1749 from thelounge/astorije/avoid-escape-quotes

Avoid escaping quotes whenever possible
This commit is contained in:
Jérémie Astori 2017-11-27 12:57:55 -05:00 committed by GitHub
commit b53f1719eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 57 additions and 57 deletions

View file

@ -39,7 +39,7 @@ function createFragment(fragment) {
attributes += `;background-color:#${fragment.hexBgColor}`; attributes += `;background-color:#${fragment.hexBgColor}`;
} }
attributes += "\""; attributes += '"';
} }
if (attributes.length) { if (attributes.length) {

View file

@ -90,11 +90,11 @@ class Identification {
let file = "# Warning: file generated by The Lounge: changes will be overwritten!\n"; let file = "# Warning: file generated by The Lounge: changes will be overwritten!\n";
this.connections.forEach((connection) => { this.connections.forEach((connection) => {
file += "to " + connection.socket.remoteAddress file += `to ${connection.socket.remoteAddress}`
+ " lport " + connection.socket.localPort + ` lport ${connection.socket.localPort}`
+ " from " + connection.socket.localAddress + ` from ${connection.socket.localAddress}`
+ " fport " + connection.socket.remotePort + ` fport ${connection.socket.remotePort}`
+ " { reply \"" + connection.user + "\" }\n"; + ` { reply "${connection.user}" }\n`;
}); });
fs.writeFile(this.oidentdFile, file, {flag: "w+"}, function(err) { fs.writeFile(this.oidentdFile, file, {flag: "w+"}, function(err) {

View file

@ -53,17 +53,17 @@ function parse(msg, preview, res, client) {
var $ = cheerio.load(res.data); var $ = cheerio.load(res.data);
preview.type = "link"; preview.type = "link";
preview.head = preview.head =
$("meta[property=\"og:title\"]").attr("content") $('meta[property="og:title"]').attr("content")
|| $("title").text() || $("title").text()
|| ""; || "";
preview.body = preview.body =
$("meta[property=\"og:description\"]").attr("content") $('meta[property="og:description"]').attr("content")
|| $("meta[name=\"description\"]").attr("content") || $('meta[name="description"]').attr("content")
|| ""; || "";
preview.thumb = preview.thumb =
$("meta[property=\"og:image\"]").attr("content") $('meta[property="og:image"]').attr("content")
|| $("meta[name=\"twitter:image:src\"]").attr("content") || $('meta[name="twitter:image:src"]').attr("content")
|| $("link[rel=\"image_src\"]").attr("href") || $('link[rel="image_src"]').attr("href")
|| ""; || "";
if (preview.thumb.length) { if (preview.thumb.length) {

View file

@ -9,8 +9,8 @@ describe("parse Handlebars helper", () => {
input: "<img onerror='location.href=\"//youtube.com\"'>", input: "<img onerror='location.href=\"//youtube.com\"'>",
expected: "&lt;img onerror&#x3D;&#x27;location.href&#x3D;&quot;//youtube.com&quot;&#x27;&gt;", expected: "&lt;img onerror&#x3D;&#x27;location.href&#x3D;&quot;//youtube.com&quot;&#x27;&gt;",
}, { }, {
input: "#&\">bug", input: '#&">bug',
expected: "<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#&amp;&quot;&gt;bug\">#&amp;&quot;&gt;bug</span>", expected: '<span class="inline-channel" role="button" tabindex="0" data-chan="#&amp;&quot;&gt;bug">#&amp;&quot;&gt;bug</span>',
}]; }];
const actual = testCases.map((testCase) => parse(testCase.input)); const actual = testCases.map((testCase) => parse(testCase.input));
@ -35,20 +35,20 @@ describe("parse Handlebars helper", () => {
const testCases = [{ const testCases = [{
input: "irc://freenode.net/thelounge", input: "irc://freenode.net/thelounge",
expected: expected:
"<a href=\"irc://freenode.net/thelounge\" target=\"_blank\" rel=\"noopener\">" + '<a href="irc://freenode.net/thelounge" target="_blank" rel="noopener">' +
"irc://freenode.net/thelounge" + "irc://freenode.net/thelounge" +
"</a>", "</a>",
}, { }, {
input: "www.nooooooooooooooo.com", input: "www.nooooooooooooooo.com",
expected: expected:
"<a href=\"http://www.nooooooooooooooo.com\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://www.nooooooooooooooo.com" target="_blank" rel="noopener">' +
"www.nooooooooooooooo.com" + "www.nooooooooooooooo.com" +
"</a>", "</a>",
}, { }, {
input: "look at https://thelounge.github.io/ for more information", input: "look at https://thelounge.github.io/ for more information",
expected: expected:
"look at " + "look at " +
"<a href=\"https://thelounge.github.io/\" target=\"_blank\" rel=\"noopener\">" + '<a href="https://thelounge.github.io/" target="_blank" rel="noopener">' +
"https://thelounge.github.io/" + "https://thelounge.github.io/" +
"</a>" + "</a>" +
" for more information", " for more information",
@ -56,14 +56,14 @@ describe("parse Handlebars helper", () => {
input: "use www.duckduckgo.com for privacy reasons", input: "use www.duckduckgo.com for privacy reasons",
expected: expected:
"use " + "use " +
"<a href=\"http://www.duckduckgo.com\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://www.duckduckgo.com" target="_blank" rel="noopener">' +
"www.duckduckgo.com" + "www.duckduckgo.com" +
"</a>" + "</a>" +
" for privacy reasons", " for privacy reasons",
}, { }, {
input: "svn+ssh://example.org", input: "svn+ssh://example.org",
expected: expected:
"<a href=\"svn+ssh://example.org\" target=\"_blank\" rel=\"noopener\">" + '<a href="svn+ssh://example.org" target="_blank" rel="noopener">' +
"svn+ssh://example.org" + "svn+ssh://example.org" +
"</a>", "</a>",
}]; }];
@ -79,7 +79,7 @@ describe("parse Handlebars helper", () => {
"bonuspunkt: your URL parser misparses this URL: https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v=vs.85).aspx"; "bonuspunkt: your URL parser misparses this URL: https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v=vs.85).aspx";
const correctResult = const correctResult =
"bonuspunkt: your URL parser misparses this URL: " + "bonuspunkt: your URL parser misparses this URL: " +
"<a href=\"https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v&#x3D;vs.85).aspx\" target=\"_blank\" rel=\"noopener\">" + '<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v&#x3D;vs.85).aspx" target="_blank" rel="noopener">' +
"https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v&#x3D;vs.85).aspx" + "https://msdn.microsoft.com/en-us/library/windows/desktop/ms644989(v&#x3D;vs.85).aspx" +
"</a>"; "</a>";
@ -93,7 +93,7 @@ describe("parse Handlebars helper", () => {
input: "<https://theos.kyriasis.com/~kyrias/stats/archlinux.html>", input: "<https://theos.kyriasis.com/~kyrias/stats/archlinux.html>",
expected: expected:
"&lt;" + "&lt;" +
"<a href=\"https://theos.kyriasis.com/~kyrias/stats/archlinux.html\" target=\"_blank\" rel=\"noopener\">" + '<a href="https://theos.kyriasis.com/~kyrias/stats/archlinux.html" target="_blank" rel="noopener">' +
"https://theos.kyriasis.com/~kyrias/stats/archlinux.html" + "https://theos.kyriasis.com/~kyrias/stats/archlinux.html" +
"</a>" + "</a>" +
"&gt;", "&gt;",
@ -101,20 +101,20 @@ describe("parse Handlebars helper", () => {
input: "abc (www.example.com)", input: "abc (www.example.com)",
expected: expected:
"abc (" + "abc (" +
"<a href=\"http://www.example.com\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://www.example.com" target="_blank" rel="noopener">' +
"www.example.com" + "www.example.com" +
"</a>" + "</a>" +
")", ")",
}, { }, {
input: "http://example.com/Test_(Page)", input: "http://example.com/Test_(Page)",
expected: expected:
"<a href=\"http://example.com/Test_(Page)\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://example.com/Test_(Page)" target="_blank" rel="noopener">' +
"http://example.com/Test_(Page)" + "http://example.com/Test_(Page)" +
"</a>", "</a>",
}, { }, {
input: "www.example.com/Test_(Page)", input: "www.example.com/Test_(Page)",
expected: expected:
"<a href=\"http://www.example.com/Test_(Page)\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://www.example.com/Test_(Page)" target="_blank" rel="noopener">' +
"www.example.com/Test_(Page)" + "www.example.com/Test_(Page)" +
"</a>", "</a>",
}]; }];
@ -144,40 +144,40 @@ describe("parse Handlebars helper", () => {
const testCases = [{ const testCases = [{
input: "#a", input: "#a",
expected: expected:
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#a\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#a">' +
"#a" + "#a" +
"</span>", "</span>",
}, { }, {
input: "#test", input: "#test",
expected: expected:
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#test\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#test">' +
"#test" + "#test" +
"</span>", "</span>",
}, { }, {
input: "#äöü", input: "#äöü",
expected: expected:
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#äöü\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#äöü">' +
"#äöü" + "#äöü" +
"</span>", "</span>",
}, { }, {
input: "inline #channel text", input: "inline #channel text",
expected: expected:
"inline " + "inline " +
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#channel\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#channel">' +
"#channel" + "#channel" +
"</span>" + "</span>" +
" text", " text",
}, { }, {
input: "#1,000", input: "#1,000",
expected: expected:
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#1,000\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#1,000">' +
"#1,000" + "#1,000" +
"</span>", "</span>",
}, { }, {
input: "@#a", input: "@#a",
expected: expected:
"@" + "@" +
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#a\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#a">' +
"#a" + "#a" +
"</span>", "</span>",
}]; }];
@ -206,35 +206,35 @@ describe("parse Handlebars helper", () => {
it("should style like mirc", () => { it("should style like mirc", () => {
const testCases = [{ const testCases = [{
input: "\x02bold", input: "\x02bold",
expected: "<span class=\"irc-bold\">bold</span>", expected: '<span class="irc-bold">bold</span>',
}, { }, {
input: "\x038yellowText", input: "\x038yellowText",
expected: "<span class=\"irc-fg8\">yellowText</span>", expected: '<span class="irc-fg8">yellowText</span>',
}, { }, {
input: "\x030,0white,white", input: "\x030,0white,white",
expected: "<span class=\"irc-fg0 irc-bg0\">white,white</span>", expected: '<span class="irc-fg0 irc-bg0">white,white</span>',
}, { }, {
input: "\x034,8yellowBGredText", input: "\x034,8yellowBGredText",
expected: "<span class=\"irc-fg4 irc-bg8\">yellowBGredText</span>", expected: '<span class="irc-fg4 irc-bg8">yellowBGredText</span>',
}, { }, {
input: "\x1ditalic", input: "\x1ditalic",
expected: "<span class=\"irc-italic\">italic</span>", expected: '<span class="irc-italic">italic</span>',
}, { }, {
input: "\x1funderline", input: "\x1funderline",
expected: "<span class=\"irc-underline\">underline</span>", expected: '<span class="irc-underline">underline</span>',
}, { }, {
input: "\x02bold\x038yellow\x02nonBold\x03default", input: "\x02bold\x038yellow\x02nonBold\x03default",
expected: expected:
"<span class=\"irc-bold\">bold</span>" + '<span class="irc-bold">bold</span>' +
"<span class=\"irc-bold irc-fg8\">yellow</span>" + '<span class="irc-bold irc-fg8">yellow</span>' +
"<span class=\"irc-fg8\">nonBold</span>" + '<span class="irc-fg8">nonBold</span>' +
"default", "default",
}, { }, {
input: "\x02bold\x02 \x02bold\x02", input: "\x02bold\x02 \x02bold\x02",
expected: expected:
"<span class=\"irc-bold\">bold</span>" + '<span class="irc-bold">bold</span>' +
" " + " " +
"<span class=\"irc-bold\">bold</span>", '<span class="irc-bold">bold</span>',
}]; }];
const actual = testCases.map((testCase) => parse(testCase.input)); const actual = testCases.map((testCase) => parse(testCase.input));
@ -290,19 +290,19 @@ describe("parse Handlebars helper", () => {
const testCases = [{ const testCases = [{
input: "\x02irc\x0f://\x1dfreenode.net\x0f/\x034,8thelounge", input: "\x02irc\x0f://\x1dfreenode.net\x0f/\x034,8thelounge",
expected: expected:
"<a href=\"irc://freenode.net/thelounge\" target=\"_blank\" rel=\"noopener\">" + '<a href="irc://freenode.net/thelounge" target="_blank" rel="noopener">' +
"<span class=\"irc-bold\">irc</span>" + '<span class="irc-bold">irc</span>' +
"://" + "://" +
"<span class=\"irc-italic\">freenode.net</span>" + '<span class="irc-italic">freenode.net</span>' +
"/" + "/" +
"<span class=\"irc-fg4 irc-bg8\">thelounge</span>" + '<span class="irc-fg4 irc-bg8">thelounge</span>' +
"</a>", "</a>",
}, { }, {
input: "\x02#\x038,9thelounge", input: "\x02#\x038,9thelounge",
expected: expected:
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#thelounge\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#thelounge">' +
"<span class=\"irc-bold\">#</span>" + '<span class="irc-bold">#</span>' +
"<span class=\"irc-bold irc-fg8 irc-bg9\">thelounge</span>" + '<span class="irc-bold irc-fg8 irc-bg9">thelounge</span>' +
"</span>", "</span>",
}]; }];
@ -314,11 +314,11 @@ describe("parse Handlebars helper", () => {
it("should optimize generated html", () => { it("should optimize generated html", () => {
const testCases = [{ const testCases = [{
input: "test \x0312#\x0312\x0312\"te\x0312st\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312a", input: 'test \x0312#\x0312\x0312"te\x0312st\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312\x0312a',
expected: expected:
"test " + "test " +
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#&quot;testa\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#&quot;testa">' +
"<span class=\"irc-fg12\">#&quot;testa</span>" + '<span class="irc-fg12">#&quot;testa</span>' +
"</span>", "</span>",
}]; }];
@ -333,14 +333,14 @@ describe("parse Handlebars helper", () => {
input: "like..http://example.com", input: "like..http://example.com",
expected: expected:
"like.." + "like.." +
"<a href=\"http://example.com\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://example.com" target="_blank" rel="noopener">' +
"http://example.com" + "http://example.com" +
"</a>", "</a>",
}, { }, {
input: "like..HTTP://example.com", input: "like..HTTP://example.com",
expected: expected:
"like.." + "like.." +
"<a href=\"HTTP://example.com\" target=\"_blank\" rel=\"noopener\">" + '<a href="HTTP://example.com" target="_blank" rel="noopener">' +
"HTTP://example.com" + "HTTP://example.com" +
"</a>", "</a>",
}]; }];
@ -355,7 +355,7 @@ describe("parse Handlebars helper", () => {
const testCases = [{ const testCases = [{
input: "http://example.com/#hash", input: "http://example.com/#hash",
expected: expected:
"<a href=\"http://example.com/#hash\" target=\"_blank\" rel=\"noopener\">" + '<a href="http://example.com/#hash" target="_blank" rel="noopener">' +
"http://example.com/#hash" + "http://example.com/#hash" +
"</a>", "</a>",
}]; }];
@ -371,8 +371,8 @@ describe("parse Handlebars helper", () => {
const actual = parse(input); const actual = parse(input);
expect(actual).to.equal( expect(actual).to.equal(
"Url: <a href=\"http://example.com/path\" target=\"_blank\" rel=\"noopener\">http://example.com/path</a> " + 'Url: <a href="http://example.com/path" target="_blank" rel="noopener">http://example.com/path</a> ' +
"Channel: <span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"##channel\">##channel</span>" 'Channel: <span class="inline-channel" role="button" tabindex="0" data-chan="##channel">##channel</span>'
); );
}); });
@ -381,7 +381,7 @@ describe("parse Handlebars helper", () => {
const actual = parse(input); const actual = parse(input);
expect(actual).to.equal( expect(actual).to.equal(
"<span class=\"inline-channel\" role=\"button\" tabindex=\"0\" data-chan=\"#test-https://example.com\">" + '<span class="inline-channel" role="button" tabindex="0" data-chan="#test-https://example.com">' +
"#test-https://example.com" + "#test-https://example.com" +
"</span>" "</span>"
); );