Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ! function() {
- "use strict";
- var e = {
- apiUrl: "",
- pollingTimes: {
- jitter: 100,
- visible: 2e3,
- metered: 1e4,
- hidden: 6e4,
- meteredHidden: 3e5,
- error: 6e4,
- errorMetered: 12e4,
- errorHidden: 6e5,
- errorMeteredHidden: 18e5
- },
- smileys: {
- "\ud83d\ude0e": ["8)", "B)", "B-)", "8-)"],
- "\ud83d\ude22": [":'(", ";'(", ":*(", ";*("],
- "\ud83d\ude33": [":-$", ":$"],
- "\ud83d\ude1e": [":-(", ":(", ":c", ":<", ":["],
- "\ud83d\ude07": ["O:-)", "O:)", "0:-)", "0:)", "(A)", "(a)"],
- "\ud83d\ude17": ["(K)", "(k)", ":-*", ":*"],
- "\ud83d\ude00": [":-D", ":D", ":-d", ":d", "8D"],
- "\ud83d\ude05": [";-D", ";D"],
- "\ud83d\ude06": ["XD", "xD"],
- "\ud83e\udd10": [":-X", ":X", ":-#", ":#", ":x"],
- "\ud83d\ude03": [":-)", ":)", ":o)", ":]", ":3", ":>", "=]", "=)"],
- "\ud83d\ude2e": [":-O", ":O", ":-o", ":o", "O_O", "o_o", "O-O", "0_o", "O_o", ";o"],
- "\ud83d\ude1b": [":-P", ":P", ":-p", ":p", "=p", ":-b", ":b"],
- "\ud83d\ude1c": [";-P", ";P", ";-p", ";p"],
- "\ud83d\ude1d": ["xP"],
- "\ud83e\udd14": [":^)"],
- "\ud83d\ude09": ["!-)", "!)", ";-)", ";)", "*)", ";]"],
- "\ud83d\ude21": [":-@", ":@", "D:<", " >:(", "D-:<", ">:-(", ";("]
- },
- dateFormat: function(e) {
- return e.getFullYear() + "-" + ("0" + (e.getMonth() + 1)).slice(-2) + "-" + ("0" + e.getDate()).slice(-2) + " " + ("0" + e.getHours()).slice(-2) + ":" + ("0" + e.getMinutes()).slice(-2)
- },
- loaderOffset: 150,
- linkShortLength: 30,
- linkText: "[link]",
- linkForceHttps: ["www.nsenschede.nl", "nsenschede.nl"]
- },
- t = {};
- void 0 !== document.hidden ? (t.hidden = "hidden", t.visibilityChange = "visibilitychange") : void 0 !== document.mozHidden ? (t.hidden = "mozHidden", t.visibilityChange = "mozvisibilitychange") : void 0 !== document.msHidden ? (t.hidden = "msHidden", t.visibilityChange = "msvisibilitychange") : void 0 !== document.webkitHidden && (t.hidden = "webkitHidden", t.visibilityChange = "webkitvisibilitychange"), void 0 !== navigator.connection ? t.connection = "connection" : void 0 !== navigator.mozConnection ? t.connection = "mozConnection" : void 0 !== navigator.webkitConnection && (t.connection = "webkitConnection");
- var n = function(n) {
- var i = t.hidden && document[t.hidden],
- o = t.connection && "cellular" === navigator[t.connection].type;
- return (n ? o ? i ? e.pollingTimes.meteredHidden : e.pollingTimes.metered : i ? e.pollingTimes.hidden : e.pollingTimes.visible : o ? i ? e.pollingTimes.errorMeteredHidden : e.pollingTimes.errorMetered : i ? e.pollingTimes.errorHidden : e.pollingTimes.error) + (2 * Math.random() - 1) * e.pollingTimes.jitter
- },
- i = document.getElementById("shout-list"),
- o = null;
- document.getElementById("admin-login").addEventListener("click", function() {
- if ((o = window.prompt("Beheerderswachtwoord:")) && i.childElementCount > 0) {
- var e = i.cloneNode(!1);
- i.parentNode.replaceChild(e, i), i = e
- }
- setTimeout(v, 0)
- });
- var a = new RegExp("http:\\/\\/(" + e.linkForceHttps.reduce(function(e, t) {
- return (e ? e + "|" : "") + t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
- }, null) + ")(\\/|$)", "i"),
- d = [],
- r = document.getElementById("linkify-element").onload = function() {
- if ("function" == typeof linkifyElement)
- for (var t; t = d.shift();) linkifyElement(t, {
- format: function(t, n) {
- return "url" === n && ((t = t.replace(/^https?:\/\//i, "").replace(/\/$/, "")).match(/\/.*\//i) || t.length > e.linkShortLength) && (t = e.linkText), t
- },
- formatHref: function(e, t) {
- return "url" === t && e.match(a) && (e = e.replace(/^http:\/\//i, "https://")), e
- },
- linkAttributes: {
- rel: "nofollow noopener noreferrer"
- },
- linkClass: null
- }, document)
- },
- s = {};
- for (var l in e.smileys) s[l] = new RegExp("(?:((?:^|\\s)[a-zA-Z]*\\.?)(?:" + e.smileys[l].map(function(e) {
- return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
- }).join("|") + ")([\\.,;!\\)]?(?:\\s|$)))");
- var c, u = function(t, n) {
- var i = document.createElement("li");
- i.setAttribute("data-shout-id", t);
- var l = document.createTextNode(n.name),
- c = document.createElement(n.website ? "a" : "span");
- if (c.className = "name", n.website) {
- var u = n.website;
- u.match(a) && (u = u.replace(/^http:\/\//i, "https://")), c.setAttribute("href", u), c.setAttribute("target", "_blank"), c.setAttribute("rel", "nofollow noopener noreferrer")
- }
- c.appendChild(l), i.appendChild(c);
- var m = document.createElement("p");
- m.className = "message";
- var p = n.message;
- for (var h in s) p = p.replace(s[h], "$1" + h + "$2");
- m.appendChild(document.createTextNode(p)), m.innerHTML = m.innerHTML.replace(new RegExp(["\ud83c[\udf00-\udfff]", "\ud83d[\udc00-\ude4f]", "\ud83d[\ude80-\udeff]"].join("|"), "g"), '<span class="emoji">$&</span>'), d.push(m), r(), i.appendChild(m);
- var f = document.createElement("span");
- f.classList.add("meta"), i.appendChild(f);
- var g = document.createElement("time"),
- w = new Date(1e3 * n.time);
- if (g.setAttribute("datetime", w.toISOString()), g.appendChild(document.createTextNode(e.dateFormat(w))), f.appendChild(g), o) {
- var b = document.createElement("a");
- b.appendChild(document.createTextNode("Verwijderen")), b.addEventListener("click", function() {
- if (window.confirm('Shout "' + p + '" verwijderen?')) {
- var n = function() {
- window.alert('Verwijderen van shout "' + p + '" mislukt!')
- },
- i = "secret=" + encodeURIComponent(o) + "&id=" + encodeURIComponent(t),
- a = new XMLHttpRequest;
- a.addEventListener("load", function() {
- "success" === a.responseText ? setTimeout(v, 0) : n()
- }, !1), a.addEventListener("error", n, !1), a.addEventListener("abort", n, !1), a.open("POST", e.apiUrl + "/api/v1/delete", !0), a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), a.send(i)
- }
- }), f.appendChild(b)
- }
- if (n.ip) {
- var E = document.createElement("span");
- E.appendChild(document.createTextNode("IP: " + n.ip)), f.appendChild(E)
- }
- return i
- },
- m = !1,
- p = null,
- v = function() {
- if (!m) {
- m = !0, clearTimeout(c);
- var t = !1,
- a = function(e) {
- c = setTimeout(v, t ? 0 : n(e)), m = !1, w()
- },
- d = new XMLHttpRequest;
- d.addEventListener("load", function() {
- var e;
- try {
- e = JSON.parse(d.responseText)
- } catch (e) {
- return void a()
- }
- if (null !== e && "object" == typeof e) {
- var n = Object.keys(e).map(function(e) {
- return parseInt(e)
- });
- n.sort(function(e, t) {
- return e - t
- });
- var o = !1;
- if (i.childElementCount > 0 && n.length > 0) {
- var r = parseInt(i.firstElementChild.getAttribute("data-shout-id"));
- if (n[0] > r + 1) {
- var s = i.cloneNode(!1);
- i.parentNode.replaceChild(s, i), i = s, o = !0
- }
- }
- for (var l = 0; l < n.length; l++) {
- if (e[n[l]].type && "message" == e[n[l]].type && e[n[l]].name && e[n[l]].message && e[n[l]].time) {
- var c = u(n[l], e[n[l]]);
- i.insertBefore(c, i.firstElementChild)
- } else if (e[n[l]].type && "deletion" == e[n[l]].type && e[n[l]].id) {
- var m = i.querySelector('[data-shout-id="' + e[n[l]].id + '"]');
- m && m.parentNode.removeChild(m)
- }
- n[l] > p && (p = n[l])
- }
- o && 0 == i.childElementCount && (t = !0), a(!0)
- } else a()
- }, !1), d.addEventListener("error", a, !1), d.addEventListener("abort", a, !1), d.open(o ? "POST" : "GET", e.apiUrl + "/api/v1/get" + (i.childElementCount > 0 ? "?since=" + p : ""), !0);
- var r = null;
- o && (d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), r = "secret=" + encodeURIComponent(o)), d.send(r)
- }
- };
- t.visibilityChange && document.addEventListener(t.visibilityChange, v, !1);
- var h = document.getElementById("shout-container"),
- f = document.getElementById("shout-container").querySelector(".nse-loader"),
- g = !1,
- w = function() {
- if (!g)
- if (g = !0, i.childElementCount > 0)
- if (f.getBoundingClientRect().top <= h.getBoundingClientRect().height + e.loaderOffset) {
- var t = new XMLHttpRequest;
- t.addEventListener("load", function() {
- var e;
- try {
- e = JSON.parse(t.responseText)
- } catch (e) {
- return g = !1, void setTimeout(w, n(!1))
- }
- if (null === e || "object" != typeof e) return g = !1, void setTimeout(w, n(!1));
- var o = Object.keys(e).map(function(e) {
- return parseInt(e)
- });
- if (o.sort(function(e, t) {
- return t - e
- }), o.length > 0) {
- for (var a = 0; a < o.length; a++) e[o[a]].type && "message" == e[o[a]].type && e[o[a]].name && e[o[a]].message && e[o[a]].time && i.appendChild(u(o[a], e[o[a]]));
- g = !1, w()
- } else f.style.display = "none"
- }, !1), t.addEventListener("error", function() {
- g = !1
- }, !1), t.addEventListener("abort", function() {
- g = !1
- }, !1), t.open(o ? "POST" : "GET", e.apiUrl + "/api/v1/get?before=" + i.lastChild.getAttribute("data-shout-id"), !0);
- var a = null;
- o && (t.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), a = "secret=" + encodeURIComponent(o)), t.send(a)
- } else g = !1;
- else g = !1, setTimeout(w, 100)
- };
- h.addEventListener("scroll", w, !1), window.addEventListener("resize", w, !1);
- var b = document.getElementById("shout-form");
- ["name", "website", "message"].forEach(function(e) {
- ["input", "keyup", "change", "blur"].forEach(function(t) {
- b[e].addEventListener(t, function(e) {
- window.localStorage.setItem(e.target.name, e.target.value)
- })
- })
- }), b.addEventListener("submit", function(t) {
- t.preventDefault(), b.name.disabled = !0, b.website.disabled = !0, b.message.disabled = !0, b.submit.disabled = !0, window.localStorage.setItem("name", b.name.value), window.localStorage.setItem("website", b.website.value), window.localStorage.setItem("message", b.message.value);
- var n = "name=" + encodeURIComponent(b.name.value) + "&website=" + encodeURIComponent(b.website.value) + "&message=" + encodeURIComponent(b.message.value),
- i = function() {
- window.localStorage.setItem("message", b.message.value = ""), b.name.disabled = !1, b.website.disabled = !1, b.message.disabled = !1, b.submit.disabled = !1, v()
- },
- o = function() {
- window.alert("Versturen mislukt: Je shout is niet geplaatst."), b.name.disabled = !1, b.website.disabled = !1, b.message.disabled = !1, b.submit.disabled = !1
- },
- a = new XMLHttpRequest;
- a.addEventListener("load", function() {
- "success" === a.responseText ? i() : o()
- }, !1), a.addEventListener("error", o, !1), a.addEventListener("abort", o, !1), a.open("POST", e.apiUrl + "/api/v1/post?ajax", !0), a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), a.send(n)
- }), b.name.disabled = !1, b.website.disabled = !1, b.message.disabled = !1, b.submit.disabled = !1, b.name.value = window.localStorage.getItem("name") || b.name.value, b.website.value = window.localStorage.getItem("website") || b.website.value, b.message.value = window.localStorage.getItem("message") || b.message.value, v(), w(), window.location.href.match(/^https?:/i) && window.location.href.match(/index.html/i) && window.history.replaceState(null, null, window.location.href.replace(/index.html.*/i, ""))
- }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement