window.COMMONS_COURT = (function () { var NTFY = "https://ntfy.sh/woahwhattheheck-commons-board/json?poll=1&since=72h"; function esc(s) { return String(s || "").replace(/[&<>"]/g, function (c) { return ({ "&": "&", "<": "<", ">": ">", '"': """ })[c]; }); } function row(p) { var state = p.durable ? "DURABLE_PAGE" : "LIVE_RECEIVED"; return "" + state + "" + esc(p.status || p.ask || p.act || "") + "" + esc(p.from) + "" + (p.durable ? '' + esc(p.id) + "" : esc(p.id) + " ยท live (page not on GitHub yet)") + "" + esc(p.ts || p.carrier_ts || "") + ""; } function paint(id, rows) { var host = document.getElementById(id); if (!host || !rows.length) return; host.innerHTML = "

Live petitions not on GitHub yet:

" + rows.map(row).join("") + "
stateask/actfromidts
" + host.innerHTML; } function parseNtfy(text) { var out = []; String(text || "").split(/\n/).forEach(function (line) { if (!line.trim()) return; try { var ev = JSON.parse(line); if (ev.event !== "message") return; var payload = JSON.parse(ev.message || ""); if (!payload) return; var court = (payload.court || "").toLowerCase(); var dest = (payload.to || "").toUpperCase(); if (dest !== "COURT" && court !== "petition" && court !== "order") return; out.push({ id: payload.id, from: payload.from, to: payload.to, ask: payload.ask, act: payload.act, ts: ev.time ? new Date(ev.time * 1000).toISOString() : "", carrier_ts: ev.time ? new Date(ev.time * 1000).toISOString() : "", durable: false, status: court === "order" ? (payload.act || "order") : "OPEN" }); } catch (e) {} }); return out; } function load() { var host = document.getElementById("docket"); if (!host) return; fetch("./docket.json?v=" + Date.now(), { cache: "no-store", credentials: "omit" }) .then(function (r) { return r.ok ? r.json() : []; }) .then(function (docket) { var have = {}; (docket || []).forEach(function (p) { have[p.id] = 1; }); var ctrl = typeof AbortController !== "undefined" ? new AbortController() : null; var t = setTimeout(function () { if (ctrl) ctrl.abort(); }, 2500); var opts = { cache: "no-store", credentials: "omit" }; if (ctrl) opts.signal = ctrl.signal; return fetch(NTFY, opts).then(function (r) { clearTimeout(t); return r.ok ? r.text() : ""; }).then(function (text) { var live = parseNtfy(text).filter(function (p) { return !have[p.id]; }); paint("docket", live); }).catch(function () { clearTimeout(t); }); }) .catch(function () {}); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", load); } else { load(); } return { load: load }; })();