NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
"use strict"; // ==UserScript== // @namespace https://github.com/avalenti89/march-of-history/ // @exclude * // ==UserLibrary== // @name March of History - utilities // @version 0.1.5 // @description Many usefull scripts used to run UserScripts // @copyright 2021, avalenti89 (https://openuserjs.org/users/avalenti89) // @author avalenti89 // @grant none // @license MIT // @run-at document-start // ==/UserScript== // ==/UserLibrary== /* jshint esversion: 6 */ var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var isProxy = Symbol("isProxy"); var MoH_Utils = /** @class */ (function () { function MoH_Utils() { } MoH_Utils.cleanText = function (text) { return text .toLowerCase() .normalize("NFD") .replace(/[\u0300-\u036f]/g, ""); }; MoH_Utils.checkChildMutation = function (target, needle, callback) { console.log("Looking for child", needle); var _target = typeof target === "string" ? document.querySelector(target) : target; if (!_target) { console.log("Not found", target); return void 0; } var needleEl = document.querySelector(needle); if (needleEl) { console.log("Found child", needle); callback(needleEl); } var observer = new MutationObserver(function (mutationsList) { var e_1, _a; var _b, _c; try { for (var mutationsList_1 = __values(mutationsList), mutationsList_1_1 = mutationsList_1.next(); !mutationsList_1_1.done; mutationsList_1_1 = mutationsList_1.next()) { var mutation = mutationsList_1_1.value; if (mutation.type == "childList") { if ((_c = (_b = mutation.target).matches) === null || _c === void 0 ? void 0 : _c.call(_b, needle)) { console.log("Found child", needle); callback(mutation.target); } } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (mutationsList_1_1 && !mutationsList_1_1.done && (_a = mutationsList_1.return)) _a.call(mutationsList_1); } finally { if (e_1) throw e_1.error; } } }); observer.observe(_target, { childList: true, subtree: true }); return observer; }; MoH_Utils.checkPageChange = function (needle, callback) { var observer = new MutationObserver(function (mutationsList) { var e_2, _a, e_3, _b; var _c, _d; try { for (var mutationsList_2 = __values(mutationsList), mutationsList_2_1 = mutationsList_2.next(); !mutationsList_2_1.done; mutationsList_2_1 = mutationsList_2.next()) { var mutation = mutationsList_2_1.value; try { for (var _e = (e_3 = void 0, __values(mutation.addedNodes)), _f = _e.next(); !_f.done; _f = _e.next()) { var node = _f.value; if ((_d = (_c = node).matches) === null || _d === void 0 ? void 0 : _d.call(_c, needle)) { console.log("Found page", needle); callback(mutation.target); } } } catch (e_3_1) { e_3 = { error: e_3_1 }; } finally { try { if (_f && !_f.done && (_b = _e.return)) _b.call(_e); } finally { if (e_3) throw e_3.error; } } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (mutationsList_2_1 && !mutationsList_2_1.done && (_a = mutationsList_2.return)) _a.call(mutationsList_2); } finally { if (e_2) throw e_2.error; } } }); var bodyObserver = MoH_Utils.checkChildMutation("body", "#contenu", function () { console.log("Looking for page", needle); var _target = document.querySelector("#contenu"); if (_target) { bodyObserver === null || bodyObserver === void 0 ? void 0 : bodyObserver.disconnect(); var needleEl = document.querySelector(needle); if (needleEl) { console.log("Found page", needle); callback(needleEl); } observer.observe(_target, { childList: true }); } }); return observer; }; MoH_Utils.checkAttributeMutation = function (target, needle, callback) { console.log("Looking for attribute", needle); var _target = typeof target === "string" ? document.querySelector(target) : target; if (!_target) { console.log("Not Found", target); return void 0; } else { console.log("Found attribute", needle); callback(_target.getAttribute(needle)); } var observer = new MutationObserver(function (mutationsList) { var e_4, _a; try { for (var mutationsList_3 = __values(mutationsList), mutationsList_3_1 = mutationsList_3.next(); !mutationsList_3_1.done; mutationsList_3_1 = mutationsList_3.next()) { var mutation = mutationsList_3_1.value; if (mutation.type == "attributes" && mutation.attributeName === needle) { console.log("Found attribute", needle); callback(mutation.target.getAttribute(needle)); } } } catch (e_4_1) { e_4 = { error: e_4_1 }; } finally { try { if (mutationsList_3_1 && !mutationsList_3_1.done && (_a = mutationsList_3.return)) _a.call(mutationsList_3); } finally { if (e_4) throw e_4.error; } } }); observer.observe(_target, { attributes: true }); return observer; }; MoH_Utils.setListenerVille = function (callback) { var _a; window.ville._listeners = (_a = window.ville._listeners) !== null && _a !== void 0 ? _a : []; window.ville._on = function (callback) { window.ville._listeners.push(callback); return function () { return window.ville._listeners.filter(function (_, index) { return index === window.ville._listeners.indexOf(callback); }); }; }; window.ville._notify = function (ville) { window.ville._listeners.forEach(function (callback) { return callback(ville); }); }; window.ville._on(callback); if (window.ville.isProxy) { return; } else { window.ville.isProxy = isProxy; window.ville = new Proxy(window.ville, { get: function (target, prop, receiver) { if (prop === isProxy) { return true; } return Reflect.get(target, prop, receiver); }, set: function (target, prop, val, receiver) { if (prop !== "_listeners" && prop !== "_on" && prop !== "_notify") { window.ville._notify(target); } return Reflect.set(target, prop, val, receiver); }, }); } }; return MoH_Utils; }()); window.moh_utils = MoH_Utils;