aboutsummaryrefslogtreecommitdiff
path: root/src/drmcdougall-com-fix/mcdougall.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-09-17 21:54:01 +0200
committerWojtek Kosior <koszko@koszko.org>2022-09-17 21:54:27 +0200
commitbaf6db0bd5761a9ac1fb877a633564b7c542c34a (patch)
tree6afff0a1847e81482392134281f15b5a736f1345 /src/drmcdougall-com-fix/mcdougall.js
parent00efff9f14d4159b3eee213bd4aa578e56fb7849 (diff)
downloadhydrilla-fixes-bundle-master.tar.gz
hydrilla-fixes-bundle-master.zip
[McDougall] complete the fix for drmcdougall.com; fix imagesHEADmaster
Diffstat (limited to 'src/drmcdougall-com-fix/mcdougall.js')
-rw-r--r--src/drmcdougall-com-fix/mcdougall.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/drmcdougall-com-fix/mcdougall.js b/src/drmcdougall-com-fix/mcdougall.js
new file mode 100644
index 0000000..1e632db
--- /dev/null
+++ b/src/drmcdougall-com-fix/mcdougall.js
@@ -0,0 +1,43 @@
+/**
+ * SPDX-License-Identifier: CC0-1.0
+ *
+ * View OpenCores projects list without nonfree js
+ *
+ * Copyright (C) 2021 Wojtek Kosior <koszko@koszko.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the CC0 1.0 Universal License as published by
+ * the Creative Commons Corporation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * CC0 1.0 Universal License for more details.
+ */
+
+/* Use with https://www.drmcdougall.com/*** */
+
+const banner_class = "floating-action-button-container";
+for (const banner of document.getElementsByClassName(banner_class))
+ banner.remove()
+
+for (const element of document.body.querySelectorAll("noscript")) {
+ const replacement = document.createElement('haketilo-noscript');
+
+ /*
+ * Make sure only images get added. For maximum security make sure they
+ * are using https:// scheme instead of dangerous data:.
+ */
+ for (const subelem of [...replacement.querySelectorAll("*")]) {
+ if (subelem.tagName !== "IMG")
+ subelem.remove();
+
+ const best_src = subelem.getAttribute('data-src');
+ if (best_src.startsWith("https://"))
+ subelem.src = best_src;
+ else
+ subelem.remove();
+ }
+
+ element.replaceWith(replacement);
+}