sjehuda Author

Solved with .enable

- DarkReader.auto({brightness:100,contrast:90,sepia:10});
+ DarkReader.enable({brightness:100,contrast:90,sepia:10});
```

I've found a good solution at karmatics.com

Script

<script type="text/javascript">
    function toggle( targetId ){
         if (document.getElementById){
            target = document.getElementById( targetId );
                if (target.style.display == "none"){
                    target.style.display = "";
                } else {
                    target.style.display = "none";
                }
            }
        }
</script>

HTML

    <p id="install"><a href="aardvark.xpi" id="button"><span>Install Now</span></a> <a href="#" onclick="toggle('installing');return false;">Installation Notes</a></p>
    <div id="installing" style="display:none;">
        <div>
        <p><img src="/web/20050423235409im_/http://karmatics.com/aardvark/img/options.gif" alt="Extension options" class="floatl marl"/> If you get a prompt about installing software, click <em>Edit Options</em>, click <em>Allow</em>, then click <em>OK</em>. Click Install Now again and Aardvark should be installed just like any other extension.</p>
        <p>You will need to restart Firefox before using the extension. Once you have done so, you may right-click, and then select "Start Aardvark" from the menu (alternatively you can select "Start Aardvark" from the Tools menu at the top of the browser window).</p>
        <p><a href="#" onclick="toggle('installing');return false;" id="closer"> &times; close</a></p>
        </div>
    </div>

Hello,

I'd be glad to get help in porting Aardvark to a Userscript.

Currently, the bookmarklet is not usable in some web broswers due to new restricting policies.

Console

Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure script '<URL>'. This request has been blocked; the content must be served over HTTPS.
bookmarklet.js:71 Mixed Content: The page at 'https://www.karmatics.com/aardvark/' was loaded over HTTPS, but requested an insecure script 'http://karmatics.com/aardvark/aardvarkStrings.js'. This request has been blocked; the content must be served over HTTPS.
bookmarklet.js:71 Mixed Content: The page at 'https://www.karmatics.com/aardvark/' was loaded over HTTPS, but requested an insecure script 'http://karmatics.com/aardvark/aardvarkUtils.js'. This request has been blocked; the content must be served over HTTPS.
bookmarklet.js:71 Mixed Content: The page at 'https://www.karmatics.com/aardvark/' was loaded over HTTPS, but requested an insecure script 'http://karmatics.com/aardvark/aardvarkDBox.js'. This request has been blocked; the content must be served over HTTPS.
bookmarklet.js:71 Mixed Content: The page at 'https://www.karmatics.com/aardvark/' was loaded over HTTPS, but requested an insecure script 'http://karmatics.com/aardvark/aardvarkCommands.js'. This request has been blocked; the content must be served over HTTPS.
bookmarklet.js:71 Mixed Content: The page at 'https://www.karmatics.com/aardvark/' was loaded over HTTPS, but requested an insecure script 'http://karmatics.com/aardvark/aardvarkMain.js'. This request has been blocked; the content must be served over HTTPS.

I'm not sure where to begin.

Here's the [initial draft[(https://openuserjs.org/scripts/sjehuda/Aardvark) which is really a copy & paste of the bookmarklet advertised on the Aardvark homepage.


TrustedHTML error
Page won't transform.

lidel's stream of shared things
https://feeds.lidel.org/lidel-trashlog

VM6 Newspaper:174
This document requires 'TrustedHTML' assignment.
renderFeed	@	VM6 Newspaper:174

VM6 Newspaper:174
Uncaught TypeError: Failed to execute 'parseFromString' on 'DOMParser': This document requires 'TrustedHTML' assignment.
    at renderFeed (VM6 Newspaper:174)
    at checkMediaType (VM6 Newspaper:155)
    at XMLHttpRequest.xmlHTTPRequest.onreadystatechange (VM6 Newspaper:96)

Page turns dark

Anjan Momi Homepage
https://momi.ca/feed.xml

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="https://momi.ca/feed.xml" rel="self" type="application/rss+xml" />
<title>Anjan Momi Homepage</title>
<description>Anjandev Momi's Homepage</description>
<link>https://momi.ca/</link>
<managingEditor>anjan@momi.ca (Anjandev Momi)</managingEditor>
<lastBuildDate>Fri, 21 Oct 2022 03:34:18 -0700</lastBuildDate>

<item>
<guid>https://momi.ca/posts/2022-09-07-mainline.html</guid>
<link>https://momi.ca/posts/2022-09-07-mainline.html</link>
<pubDate>Wed, 07 Sep 2022 00:00:00 -0700</pubDate>
<title>The Pinephone Pro, PostmarketOS, and Why Mainlining Phones is Important</title>
<description><![CDATA[

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Anjan's Homepage</title>
        <link rel="icon" type="image/svg+xml" href="https://momi.ca/favicon.svg">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" type="text/css" href="https://momi.ca/css/base.css">
        <link rel="stylesheet" type="text/css" href="https://momi.ca/css/dark.css">
        <link rel="alternate" type="application/atom+xml" href="https://momi.ca/feed.xml">
    </head>
    <body>
        <div class="container">
            <div class="content">
<h1 class="page-title">The Pinephone Pro, PostmarketOS, and Why Mainlining Phones is Important</h1>
<p class="date">Published 2022-09-07 on <a href="https://momi.ca/">Anjan's Homepage</a></p>
<p>
In <code>#sxmo</code> on OFTC, users often ask why the pinephone pro is less functional on postmarketOS than other distros.
PostmarketOS uses a mainline pinephone pro kernel <sup><a id="fnr.1" class="footref" href="https://momi.ca/#fn.1" role="doc-backlink">1</a></sup>.

https://momi.ca/css/dark.css

/* Common theme */
html,
body,
:not([style*="background-color:"]) {
    background-color: rgb(16, 20, 23) !important;
}
html,
body,
:not([style*="color:"]) {
    color: rgb(167, 158, 139) !important;
}
h1:not([style*="color:"]),
h2:not([style*="color:"]),
h3:not([style*="color:"]),
h4:not([style*="color:"]),
h5:not([style*="color:"]),
h6:not([style*="color:"]) {
    color: rgb(209, 76, 51) !important;
}
cite:not([style*="color:"]) {
    color: rgb(128, 204, 148) !important;
}
input:not([style*="background-color:"]),
textarea:not([style*="background-color:"]),
button:not([style*="background-color:"]),
[role="button"] {
    background-color: rgb(32, 48, 64) !important;
}
input:not([style*="background-color:"]):hover,
textarea:not([style*="background-color:"]):hover,
button:not([style*="background-color:"]):hover,
[role="button"]:hover {
    background-color: rgb(30, 54, 78) !important;
}
input:not([style*="background-color:"]):active, input:not([style*="background-color:"]):focus,
textarea:not([style*="background-color:"]):active, textarea:not([style*="background-color:"]):focus,
button:not([style*="background-color:"]):active, button:not([style*="background-color:"]):focus,
[role="button"]:active, [role="button"]:focus {
    background-color: rgb(29, 56, 83) !important;
}
a:not([style*="color:"]) {
    color: rgb(128, 182, 204) !important;
}
a:not([style*="color:"]):hover {
    color: rgb(142, 193, 217) !important;
}
a:not([style*="color:"]):active, a:not([style*="color:"]):focus {
    color: rgb(155, 203, 230) !important;
}
:not([style*="border-color:"]),
::before,
::after {
    border-color: rgb(80, 115, 134) !important;
}
div:empty {
    background-color: rgb(16, 20, 23) !important;
}
input::placeholder,
textarea::placeholder {
    color: rgb(167, 158, 139) !important;
}
input:not([style*="background-image:"]),
textarea:not([style*="background-image:"]) {
    background-image: none !important;
}

.inline-block {
   display: inline-block;
}

https://momi.ca/css/base.css

.webring .articles {
  display: flex; }

.webring .title {
  margin: 0; }

.webring .article {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  margin: 0 0.5rem;
  padding: 0.5rem;
  background: #eee; }

.webring .article:first-child {
  margin-left: 0; }

.webring .article:last-child {
  margin-right: 0; }

.webring .summary {
  font-size: 0.8rem;
  flex: 1 1 0; }

.webring .attribution {
  text-align: right;
  font-size: 0.8rem;
  color: #555; }

.webring .date {
  color: black; }

pre {
  border: 1px #ddd solid;
  border-radius: 0;
  overflow-x: auto;
  background: transparent;
  line-height: 1.2;
  max-width: 100%;
  margin: 0 auto; }

pre code {
  white-space: pre;
  word-wrap: normal; }

code {
  font-family: monospace;
  color: #000;
  font-size: 9pt; }

html, body {
  overflow-x: hidden;
  font-family: sans-serif;
  font-size: 12pt; }

article p {
  line-height: 1.25;
  font-size: 12pt; }

body {
  background: #fff;
  padding-bottom: 2rem; }

iframe[src*="youtube"] {
  width: 100%;
  height: 400px;
  margin: 20px 0; }

.video-js {
  width: 100% !important;
  height: 0px !important;
  padding-top: 62.5%; }

video {
  max-width: 100%; }

.asciicast iframe {
  margin: 0 auto !important;
  display: block !important; }

img {
  max-width: 100%;
  margin: 0 auto;
  display: block; }

a {
  color: blue;
  text-decoration: underline; }

h1 {
  padding-top: 0;
  font-size: 16pt; }

h1, h2, h3, h4, h5 {
  text-align: left; }

h1 small {
  font-size: 14pt; }

.footnotes::before {
  content: "References:"; }

.footnotes {
  font-size: 8pt;
  margin-top: 50px; }

blockquote {
  padding-left: 10px;
  padding-top: 3px;
  padding-bottom: 3px;
  margin-left: 0;
  border-left: 4px #aaa solid;
  font-size: 11pt;
  color: #666; }

.sidebar {
  padding-top: 20px; }

.sidebar .fa {
  width: 18px;
  text-align: center; }

.sidebar, .sidebar a {
  color: #444; }

.sidebar a {
  text-decoration: underline; }

.sidebar h3 {
  font-size: 14pt;
  margin-top: 40px; }

.sidebar h4, h5 {
  margin: 5px 0; }

.sidebar h4 {
  font-weight: bold; }

.btn {
  display: inline-block;
  padding: .1rem .75rem;
  background: #e9ecef;
  border: #343a40 1px solid;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
  color: #000;
  text-decoration: none;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; }
  .btn:hover {
    text-decoration: none;
    background: #f8f9fa;
    color: #000; }
  .btn.btn-primary {
    border: #001933 1px solid;
    background: #0069d9;
    color: #fff; }
    .btn.btn-primary:hover {
      background: #0062cc;
      color: #fff; }

em {
  font-style: italic; }

.subtitle {
  text-align: center;
  margin-bottom: 1rem;
  margin-top: -10px;
  font-style: italic;
  font-size: 10pt; }

hr {
  border-color: #999; }

.post-stub h2 {
  font-size: 12pt;
  font-weight: bold; }

.post-stub .date {
  color: #999;
  display: inline-block;
  min-width: 6rem; }

.date {
  color: #999; }

.date a {
  color: #999;
  text-decoration: underline; }

.container {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr; }
  .container .page-title {
    grid-column-start: 1;
    grid-column-end: 3; }
  .container .content {
    max-width: 670px;
    grid-column-start: 1; }
  .container .sidebar {
    grid-column-start: 2;
    padding-left: 1rem; }
  @media (max-width: 768px) {
    .container {
      display: block; }
      .container .sidebar {
        padding-left: 0; } }
@media (min-width: 576px) {
  .visible-xs {
    display: none; } }

.page-title {
  margin-bottom: 0; }

.text-center {
  text-align: center; }

.text-muted {
  color: #444; }

pre {
  padding: 1rem;
  background: #efefef; }

.external-links {
  padding-top: 0.5rem; }
  .external-links > p {
    position: relative; }
  .external-links > p:not(:last-child) {
    padding-bottom: 0.5rem; }
  .external-links .context {
    position: absolute;
    top: -0.9rem;
    left: 0;
    font-size: 0.8rem;
    color: black; }

.pull-right {
  float: right; }

.pull-left {
  float: left; }

.icon {
  display: inline-block;
  line-height: .75em;
  width: 0.4em;
  vertical-align: -0.2em; }
  .icon path {
    fill: currentColor; }

.avatar {
  max-width: 50%;
  border-radius: 5px; }

/* Imported from bootstrap, for the donation fee calculator */
* {
  box-sizing: border-box; }

.form-control {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; }

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }

button, input, optgroup, select, textarea {
  color: inherit;
  font: inherit;
  margin: 0; }

.panel {
  margin-bottom: 20px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 4px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }

.panel-default {
  border-color: #ddd; }

.panel-default > .panel-heading {
  color: #333;
  background-color: #f5f5f5;
  border-color: #ddd; }

.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px; }

.panel-body {
  padding: 15px; }

.form-group {
  margin-bottom: 15px; }

label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: 700; }

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0; }

.checkbox-inline, .radio-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: 400;
  vertical-align: middle;
  cursor: pointer;
  margin-right: 1rem; }

.checkbox input[type=checkbox],
.checkbox-inline input[type=checkbox],
.radio input[type=radio],
.radio-inline input[type=radio] {
  position: absolute;
  margin-top: 4px\9;
  margin-left: -20px; }

input[type=checkbox],
input[type=radio] {
  margin: 4px 0 0;
  margin-top: 1px\9;
  line-height: normal;
  box-sizing: border-box;
  padding: 0; }

.input-group {
  position: relative;
  display: table;
  border-collapse: separate; }

.input-group-addon:first-child {
  border-right: 0; }

.input-group-addon:last-child {
  border-left: 0; }

.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0; }

.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0; }

.input-group .form-control:not(:first-child):not(:last-child),
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child) {
  border-radius: 0; }

.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0; }

.input-group-addon {
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  color: #555;
  text-align: center;
  background-color: #eee;
  border: 1px solid #ccc;
  border-radius: 4px; }

.input-group-addon, .input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle; }

.input-group .form-control,
.input-group-addon, .input-group-btn {
  display: table-cell; }

.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

th {
  text-align: left; }

.table > caption + thead > tr:first-child > td,
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > td,
.table > thead:first-child > tr:first-child > th {
  border-top: 0; }

.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd; }

.table > tbody > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > td,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > thead > tr > th {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd; }

.table > tbody > tr.active > td,
.table > tbody > tr.active > th,
.table > tbody > tr > td.active,
.table > tbody > tr > th.active,
.table > tfoot > tr.active > td,
.table > tfoot > tr.active > th,
.table > tfoot > tr > td.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > thead > tr.active > th,
.table > thead > tr > td.active,
.table > thead > tr > th.active {
  background-color: #f5f5f5; }



// @name        Dark Mode
// @namespace   darkreader.org
// @match       *://*/*
// @grant       none
// @icon        https://p.pstatp.com/origin/ff740000b3f19de1691e
// @version     1.0.0
// @author      wenhairu
// @require     https://cdn.jsdelivr.net/npm/darkreader/darkreader.min.js
// ==/UserScript==
 
/* globals DarkReader */

DarkReader.auto({brightness:100,contrast:90,sepia:10});








Conclusion: From my study, this is a deliberate attempt to eliminate the XSLT and XPath technologies.

Boycott Mozilla and it's counterparts that cooperating with it!


3.00MB
3.07MB

146.38KB
146.39KB
146.40KB
146.41KB
146.42KB
146.43KB
146.44KB
146.45KB
146.46KB
146.47KB
146.48KB


xsl

<xsl:value-of select='atom:link[contains(@rel,"alternate")]/@href'/>

xml

    <entry>
      <title>2.7.0 Maintenance and security release</title>
      <link href="http://www.freerdp.com/2022/04/25/2_7_0-release" />
      <updated>2022-04-25T00:00:00+00:00</updated>
      <id>http://www.freerdp.com/2022/04/25/2_7_0-release</id>
      <content type="html">&lt;p&gt;FreeRDP 2.7.0 has just been released and uploaded to&lt;/p&gt;


Dino. Communicating happiness
https://dino.im/index.xml
https://dino.im/toot/index.xml

Problem:
Dino.im Toot links don't appear because title is empty, therefor link is not displayed and isn't clickable/reachable to end-user.

Solution (XSLT):
When there's no title, set text to (No title) or *** No title *** (Liferea fashion)

Generated HTML code:

<section xmlns="http://www.w3.org/1999/xhtml" id="articles"><div class="entry">
<div class="title"><a href="https://dino.im/toot/107787204408646020/" title="" id="newspaper-oujs-1"></a></div>
<div class="published">Sat, 12 Feb 2022 21:43:35 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/106228549009869402/" title="" id="newspaper-oujs-2"></a></div>
<div class="published">Thu, 13 May 2021 15:17:01 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/105198712041391648/" title="" id="newspaper-oujs-3"></a></div>
<div class="published">Thu, 12 Nov 2020 18:15:56 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/104671894466537578/" title="" id="newspaper-oujs-4"></a></div>
<div class="published">Tue, 11 Aug 2020 17:19:18 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/104237036622834210/" title="" id="newspaper-oujs-5"></a></div>
<div class="published">Tue, 26 May 2020 22:09:14 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/103568619376380206/" title="" id="newspaper-oujs-6"></a></div>
<div class="published">Wed, 29 Jan 2020 21:01:56 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/103385843480659384/" title="" id="newspaper-oujs-7"></a></div>
<div class="published">Sat, 28 Dec 2019 14:19:37 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/103328905174441773/" title="" id="newspaper-oujs-8"></a></div>
<div class="published">Wed, 18 Dec 2019 12:59:28 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/103018769092949060/" title="" id="newspaper-oujs-9"></a></div>
<div class="published">Thu, 24 Oct 2019 18:27:47 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/102872465350824728/" title="" id="newspaper-oujs-10"></a></div>
<div class="published">Sat, 28 Sep 2019 22:20:49 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/102809054908406084/" title="" id="newspaper-oujs-11"></a></div>
<div class="published">Tue, 17 Sep 2019 17:34:42 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/102763956386246870/" title="" id="newspaper-oujs-12"></a></div>
<div class="published">Mon, 09 Sep 2019 18:25:33 +0000</div>
<div class="content"></div>
</div>
<div class="entry">
<div class="title"><a href="https://dino.im/toot/102700206576283877/" title="" id="newspaper-oujs-13"></a></div>
<div class="published">Thu, 29 Aug 2019 12:13:08 +0000</div>
<div class="content"></div>
</div></section>


Hello,

I'm developing a script that does the followings:

  1. Creates a new page (from HTML and CSS string)
  2. Extract media from page
  3. Embed the media and metadata inside the new page
  • Both media and metadata placements vary from site to site.
  1. Replace old page by new

The question is this:
**Should I allocate the script into sections of action or do a switch/case to any domain seperately?
**
First (allocate by action) may make the script shorter.
Second (allocate by domain) will make the script longer but easily manageable.

Is there another option?
What's best?