NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name poets.org but public domain only
// @version 1.1
// @grant none
// @include https://poets.org/poems
// @include https://poets.org/poems?*
// @license MIT
// @copyright 2021, ptrharmonic (https://openuserjs.org/users/ptrharmonic)
// @updateURL https://openuserjs.org/meta/ptrharmonic/poets.org_but_public_domain_only.meta.js
// @downloadURL https://openuserjs.org/install/ptrharmonic/poets.org_but_public_domain_only.user.js
// ==/UserScript==
var counter = 0;
var observable;
var observer;
const PUBLIC_DOMAIN_CUTOFF = (new Date()).getFullYear() - 96;
function filter() {
let t = document.getElementById("poems");
let tbody = t.children[1];
for (let i = 0; i < tbody.children.length; i++) {
let year = tbody.children[i].children[2].innerText;
if (year.length > 0) {
if (parseInt(year) >= PUBLIC_DOMAIN_CUTOFF) {
tbody.children[i].style.display = "none";
}
else {
tbody.children[i].style.display = null;
}
}
else {
tbody.children[i].style.display = null;
}
}
}
function observe() {
let t = document.getElementById("poems");
var tbody = t.children[1];
let fun;
if (counter < 2) {
observable = t.parentElement.parentElement.parentElement;
fun = observeCaller;
counter++;
}
else {
observable = t;
fun = filter;
}
if (observer) {
observer.disconnect();
}
observer = new MutationObserver(function (mutations) {
fun();
});
observer.observe(observable, {
childList: true,
subtree: true,
characterData: true
});
}
function observeCaller() {
observe();
}
observe();