Add web/static/js/source-validator.v1.js

This commit is contained in:
Joshua Laymon 2025-09-02 03:01:11 +00:00
parent 0daa7acc63
commit ca7a3543a0

View File

@ -0,0 +1,31 @@
/* source-validator.v1.js
Centralizes logic for deciding if a "Source" string should link to WOL.
Exposes:
- SourceValidator.isWOLSource(text) -> boolean
- SourceValidator.buildWOLSearchURL(text) -> string
*/
window.SourceValidator = (function () {
// Publications / codes that produce valid WOL links (from your template list)
const PUB_CODES = [
"wp","ws","yb","mwb","w","g","ap","apf","be","bh","br","bt","btg","cf","cl","ct","dp",
"fg","fy","gt","hb","im","ip","it","jv","ka","kj","kl","lf","lff","ll","ly","my","od",
"pe","po","pt","rr","rs","sg","sh","si","td","tp","tr","ts","un","jy"
];
function normalize(s) { return (s || "").trim().toLowerCase(); }
function isWOLSource(text) {
const t = normalize(text);
if (!t) return false;
// Keep this simple: if the string starts with any known code, treat it as WOL-capable.
return PUB_CODES.some(code => t.startsWith(code));
}
function buildWOLSearchURL(text) {
const q = encodeURIComponent(text || "");
// Same search endpoint youre already using
return `https://wol.jw.org/en/wol/l/r1/lp-e?q=${q}`;
}
return { isWOLSource, buildWOLSearchURL };
})();