diff options
author | Yuchen Pei <hi@ypei.me> | 2022-04-07 12:17:38 +1000 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2022-04-07 12:17:38 +1000 |
commit | ae25ad78906179e1448ff7d97957810e2be40206 (patch) | |
tree | ca56b583f36ccd317900e6b51c4fcd86f161bc56 /content/contactFinder.js | |
parent | 52398eafaf99ebbba7ff5a28b832830be394bf1d (diff) |
nop whitespace formatting change.
- ran eglot-format using typescript-language-server on all js files in
the repo except those under /hash_script/
- verify only whitespace changed:
git diff --word-diff-regex=. 62d6a71 62d6a71~1
Diffstat (limited to 'content/contactFinder.js')
-rw-r--r-- | content/contactFinder.js | 312 |
1 files changed, 155 insertions, 157 deletions
diff --git a/content/contactFinder.js b/content/contactFinder.js index 22bf2fc..6b6cc44 100644 --- a/content/contactFinder.js +++ b/content/contactFinder.js @@ -25,7 +25,7 @@ // - add a comma after the closing bracket of the key "background" // - Copy and paste this after it: /* - "content_scripts": [{ + "content_scripts": [{ "matches": ["<all_urls>"], "js": ["/content/contactFinder.js"], "css": ["/content/contactFinder.css"] @@ -64,64 +64,64 @@ var reIdentiCa = /identi\.ca\/(?!notice\/)[a-z0-9]*/i; * and by degree of certainty. */ var contactStr = { - 'da': { - 'certain': [ - '^[\\s]*Kontakt os[\\s]*$', - '^[\\s]*Email Os[\\s]*$', - '^[\\s]*Kontakt[\\s]*$' - ], - 'probable': ['^[\\s]Kontakt', '^[\\s]*Email'], - 'uncertain': [ - '^[\\s]*Om Us', - '^[\\s]*Om', - 'Hvem vi er' - ] - }, - 'en': { - 'certain': [ - '^[\\s]*Contact Us[\\s]*$', - '^[\\s]*Email Us[\\s]*$', - '^[\\s]*Contact[\\s]*$', - '^[\\s]*Feedback[\\s]*$', - '^[\\s]*Web.?site Feedback[\\s]*$' - ], - 'probable': ['^[\\s]Contact', '^[\\s]*Email'], - 'uncertain': [ - '^[\\s]*About Us', - '^[\\s]*About', - 'Who we are', - 'Who I am', - 'Company Info', - 'Customer Service' - ] - }, - 'es': { - 'certain': [ - '^[\\s]*contáctenos[\\s]*$', - '^[\\s]*Email[\\s]*$' - ], - 'probable': ['^[\\s]contáctenos', '^[\\s]*Email'], - 'uncertain': [ - 'Acerca de nosotros' - ] - }, - 'fr': { - 'certain': [ - '^[\\s]*Contactez nous[\\s]*$', - '^[\\s]*(Nous )?contacter[\\s]*$', - '^[\\s]*Email[\\s]*$', - '^[\\s]*Contact[\\s]*$', - '^[\\s]*Commentaires[\\s]*$' - ], - 'probable': ['^[\\s]Contact', '^[\\s]*Email'], - 'uncertain': [ - '^[\\s]*(A|À) propos', - 'Qui nous sommes', - 'Qui suis(-| )?je', - 'Info', - 'Service Client(e|è)le' - ] - } + 'da': { + 'certain': [ + '^[\\s]*Kontakt os[\\s]*$', + '^[\\s]*Email Os[\\s]*$', + '^[\\s]*Kontakt[\\s]*$' + ], + 'probable': ['^[\\s]Kontakt', '^[\\s]*Email'], + 'uncertain': [ + '^[\\s]*Om Us', + '^[\\s]*Om', + 'Hvem vi er' + ] + }, + 'en': { + 'certain': [ + '^[\\s]*Contact Us[\\s]*$', + '^[\\s]*Email Us[\\s]*$', + '^[\\s]*Contact[\\s]*$', + '^[\\s]*Feedback[\\s]*$', + '^[\\s]*Web.?site Feedback[\\s]*$' + ], + 'probable': ['^[\\s]Contact', '^[\\s]*Email'], + 'uncertain': [ + '^[\\s]*About Us', + '^[\\s]*About', + 'Who we are', + 'Who I am', + 'Company Info', + 'Customer Service' + ] + }, + 'es': { + 'certain': [ + '^[\\s]*contáctenos[\\s]*$', + '^[\\s]*Email[\\s]*$' + ], + 'probable': ['^[\\s]contáctenos', '^[\\s]*Email'], + 'uncertain': [ + 'Acerca de nosotros' + ] + }, + 'fr': { + 'certain': [ + '^[\\s]*Contactez nous[\\s]*$', + '^[\\s]*(Nous )?contacter[\\s]*$', + '^[\\s]*Email[\\s]*$', + '^[\\s]*Contact[\\s]*$', + '^[\\s]*Commentaires[\\s]*$' + ], + 'probable': ['^[\\s]Contact', '^[\\s]*Email'], + 'uncertain': [ + '^[\\s]*(A|À) propos', + 'Qui nous sommes', + 'Qui suis(-| )?je', + 'Info', + 'Service Client(e|è)le' + ] + } }; var usaPhoneNumber = new RegExp(/(?:\+ ?1 ?)?\(?[2-9]{1}[0-9]{2}\)?(?:\-|\.| )?[0-9]{3}(?:\-|\.| )[0-9]{4}(?:[^0-9])/mg); @@ -134,14 +134,14 @@ var prefs; /** * returns input with all elements not of type string removed */ -function remove_not_str(a){ - var new_a = []; - for(var i in a){ - if(typeof(a[i]) == "string"){ - new_a.push(a[i]) - } - } - return new_a; +function remove_not_str(a) { + var new_a = []; + for (var i in a) { + if (typeof (a[i]) == "string") { + new_a.push(a[i]) + } + } + return new_a; } /** * Tests all links on the page for regexes under a certain certainty level. @@ -151,87 +151,87 @@ function remove_not_str(a){ * * certainty_lvl can be "certain" > "probable" > "uncertain" */ -function attempt(certainty_lvl, first=true){ - // There needs to be some kind of max so that people can't troll by for example leaving a comment with a bunch of emails - // to cause LibreJS users to slow down. - var fail_flag = true; - var flag; - var matches = []; - var result = []; - var str_under_test = ""; - for(var i in document.links){ - if( typeof(document.links[i].innerText) != "string" || typeof(document.links[i].href) != "string"){ - continue; - } - str_under_test = document.links[i].innerText + " " + document.links[i].href; - flag = true; - for(var j in contactStr){ - for(var k in contactStr[j][certainty_lvl]){ - if(flag){ - result = []; - result = str_under_test.match(new RegExp(contactStr[j][certainty_lvl][k],"g")); - result = remove_not_str(result); - if(result !== undefined && typeof(result[0]) == "string" ){ - if(first){ - return {"fail":false,"result":document.links[i]}; - } else{ - //console.log(document.links[i].href + " matched " + contactStr[j][certainty_lvl][k]); - matches.push(document.links[i]); - fail_flag = false; - flag = false; - } - } - } - } - } - } - return {"fail":fail_flag,"result":matches}; +function attempt(certainty_lvl, first = true) { + // There needs to be some kind of max so that people can't troll by for example leaving a comment with a bunch of emails + // to cause LibreJS users to slow down. + var fail_flag = true; + var flag; + var matches = []; + var result = []; + var str_under_test = ""; + for (var i in document.links) { + if (typeof (document.links[i].innerText) != "string" || typeof (document.links[i].href) != "string") { + continue; + } + str_under_test = document.links[i].innerText + " " + document.links[i].href; + flag = true; + for (var j in contactStr) { + for (var k in contactStr[j][certainty_lvl]) { + if (flag) { + result = []; + result = str_under_test.match(new RegExp(contactStr[j][certainty_lvl][k], "g")); + result = remove_not_str(result); + if (result !== undefined && typeof (result[0]) == "string") { + if (first) { + return { "fail": false, "result": document.links[i] }; + } else { + //console.log(document.links[i].href + " matched " + contactStr[j][certainty_lvl][k]); + matches.push(document.links[i]); + fail_flag = false; + flag = false; + } + } + } + } + } + } + return { "fail": fail_flag, "result": matches }; } /** * "LibreJS detects contact pages, email addresses that are likely to be owned by the * maintainer of the site, Twitter and identi.ca links, and phone numbers." */ -function find_contacts(){ - var all = document.documentElement.innerText; - var phone_num = []; - var twitlinks = []; - var identi = []; - var contact_pages = []; - var res = attempt("certain"); - var flag = true; - var type = ""; - if(res["fail"] == false){ - type = "certain"; - res = res["result"]; - flag = false; - } - if(flag){ - res = attempt("probable"); - if(res["fail"] == false){ - type = "probable"; - res = res["result"]; - flag = false; - } - } - if(flag){ - res = attempt("uncertain"); - if(res["fail"] == false){ - type = "uncertain"; - res = res["result"]; - flag = false; - } - } - if(flag){ - return res; - } - return [type,res]; +function find_contacts() { + var all = document.documentElement.innerText; + var phone_num = []; + var twitlinks = []; + var identi = []; + var contact_pages = []; + var res = attempt("certain"); + var flag = true; + var type = ""; + if (res["fail"] == false) { + type = "certain"; + res = res["result"]; + flag = false; + } + if (flag) { + res = attempt("probable"); + if (res["fail"] == false) { + type = "probable"; + res = res["result"]; + flag = false; + } + } + if (flag) { + res = attempt("uncertain"); + if (res["fail"] == false) { + type = "uncertain"; + res = res["result"]; + flag = false; + } + } + if (flag) { + return res; + } + return [type, res]; } function createWidget(id, tag, parent = document.body) { let widget = document.getElementById(id); - if (widget) widget.remove(); + if (widget) widget.remove(); widget = parent.appendChild(document.createElement(tag)); widget.id = id; return widget; @@ -272,7 +272,7 @@ function main() { debug("initFrame"); let res = find_contacts(); let contentDoc = frame.contentWindow.document; - let {body} = contentDoc; + let { body } = contentDoc; body.id = "_LibreJS_dialog"; body.innerHTML = `<h1>LibreJS Complaint</h1><button class='close'>x</button>`; contentDoc.documentElement.appendChild(contentDoc.createElement("base")).target = "_top"; @@ -281,35 +281,33 @@ function main() { let addHTML = s => content.insertAdjacentHTML("beforeend", s); if ("fail" in res) { content.classList.toggle("_LibreJS_fail", true) - addHTML("<div>Could not guess any contact page for this site.</div>"); - } else { + addHTML("<div>Could not guess any contact page for this site.</div>"); + } else { addHTML("<h3>Contact info guessed for this site</h3>"); - if(typeof(res[1]) === "string") { + if (typeof (res[1]) === "string") { let a = contentDoc.createElement("a"); a.href = a.textContent = res[1]; content.appendChild(a); - } else if (typeof(res[1]) === "object"){ - addHTML(`${res[0]}: ${res[1].outerHTML}`); - } - } + } else if (typeof (res[1]) === "object") { + addHTML(`${res[0]}: ${res[1].outerHTML}`); + } + } - let emails = document.documentElement.textContent.match(email_regex); - if (emails && (emails = Array.filter(emails, e => !!e)).length) { + let emails = document.documentElement.textContent.match(email_regex); + if (emails && (emails = Array.filter(emails, e => !!e)).length) { addHTML("<h5>Possible email addresses:</h5>"); let list = contentDoc.createElement("ul"); - for (let i = 0, max = Math.min(emails.length, 10); i < max; i++) { + for (let i = 0, max = Math.min(emails.length, 10); i < max; i++) { let recipient = emails[i]; let a = contentDoc.createElement("a"); - a.href = `mailto:${recipient}?subject${ - encodeURIComponent(prefs["pref_subject"]) - }&body=${ - encodeURIComponent(prefs["pref_body"]) + a.href = `mailto:${recipient}?subject${encodeURIComponent(prefs["pref_subject"]) + }&body=${encodeURIComponent(prefs["pref_body"]) }`; a.textContent = recipient; list.appendChild(contentDoc.createElement("li")).appendChild(a); - } + } content.appendChild(list); - } + } Array.forEach(contentDoc.querySelectorAll(".close, a"), makeCloser); debug("frame initialized"); } @@ -318,9 +316,9 @@ function main() { frame.addEventListener("load", e => { debug("frame loaded"); - myPort = browser.runtime.connect({name: "contact_finder"}).onMessage.addListener(m => { - prefs = m; - initFrame(); + myPort = browser.runtime.connect({ name: "contact_finder" }).onMessage.addListener(m => { + prefs = m; + initFrame(); }); }); } |