Printen bij de buren

Door WeeJeWel op zaterdag 19 december 2020 13:05 - Reacties (28)
Categorie: -, Views: 8.035

Ik heb dus geen printer meer, en af en toe moet je toch iets printen.

Business plan:
  • Ga naar printenbijdeburen.nl
  • Upload een .pdf (of installeer een virtuele printer driver)
  • Selecteer op een kaart de dichtstbijzijnde locatie
  • Betaal een euro ofzo
  • Haal je printje op bij de buren
Iemand steel dit idee en maak het alsjeblieft.

Jammer

Door WeeJeWel op maandag 23 maart 2020 20:00 - Reacties (12)
Categorie: -, Views: 3.897

Hét voordeel van Tweakers.net, is dat er altijd een community voor je klaarstaat die trouw reageert op al het nieuws. Zij klimmen dag en nacht in het toetsenbord om piekfijn aan de lezers uiteen te zetten waarom de keuzes van grote, succesvolle bedrijven toch altijd nét verkeerd genomen zijn.

De beste stuurlui staan natuurlijk aan wal, maar bij Tweakers vind je ze gelukkig onder het nieuwsbericht!

Toch heerst er heel af en toe een klein beetje negativiteit. Soms zou je ook gewoon blij kunnen zijn dat een bedrijf iets moois maakt. En om weer een beetje positiviteit terug te brengen, kun je met mijn UserScript goed in de gaten houden welke nieuwsberichten gewoon... jammer zijn!

https://i.imgur.com/CgR7NDS.png

Dit wil je ook! Installeer dit user script door eerst een plugin zoals TamperMonkey te installeren en dan hier te klikken. Lukt 't niet? Jammer voor je.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// ==UserScript==
// @name         Jammerlijk
// @version      1.0
// @description  Beetje jammer userscript
// @author       WeeJeWel
// @match        https://tweakers.net/
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const width = '72px';

    const $tables = document.querySelectorAll('table.headlines');
    [].forEach.call($tables, $table => {
        const $colgroups = $table.querySelector('colgroup');
        const $colgroupJammer = document.createElement('col');
        $colgroupJammer.classList.add('jammers');
        $colgroupJammer.style.width = width;
        $colgroups.appendChild($colgroupJammer);

        const $headlines = $table.querySelectorAll('.headline');
        [].forEach.call($headlines, $headline => {
            const $replies = $headline.querySelector(':scope > .replies');
            const $jammers = document.createElement('td');
            $jammers.classList.add('jammers');
            $headline.insertBefore($jammers, $replies);

            if( $replies.childElementCount === 0 ) return;
            const $repliesLink = $replies.querySelector(':scope > a');

            const url = new URL($repliesLink.href);
            const qs = new URLSearchParams();
            qs.set('mode', 'flat');
            qs.set('niv', '-1');

            const $jammersLink = document.createElement('a');
            $jammersLink.classList.add('commentCount');
            $jammersLink.href = $repliesLink.href;
            $jammersLink.textContent = '-';
            $jammersLink.style.backgroundImage = 'url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNzJweCIgaGVpZ2h0PSIyM3B4IiB2aWV3Qm94PSIwIDAgNzIgMjMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDYzLjEgKDkyNDUyKSAtIGh0dHBzOi8vc2tldGNoLmNvbSAtLT4KICAgIDx0aXRsZT5qYW1tZXI8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iamFtbWVyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMS4wMDAwMDApIiBzdHJva2U9IiNCM0IzQjMiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTEuODU1LDE2LjAxODYgTDYuNTQyOSwyMC44NzEyIEw2LjUyMjksMTYuMDE4NiBMMi40OTk3LDE2LjAxODYgQzEuMzk0NywxNi4wMTg2IDAuNDk5NywxNS4xNTA1IDAuNDk5NywxNC4wNzg3IEwwLjQ5OTcsMi40Mzk1IEMwLjQ5OTcsMS4zNjc3IDEuMzk0NywwLjQ5OTYgMi40OTk3LDAuNDk5NiBMNjcuNTQ0ODYzNywwLjQ5OTYgQzY4LjY0OTg2MzcsMC40OTk2IDY5LjU0NDg2MzcsMS4zNjc3IDY5LjU0NDg2MzcsMi40Mzk1IEw2OS41NDQ4NjM3LDE0LjA3ODcgQzY5LjU0NDg2MzcsMTUuMTUwNSA2OC42NDk4NjM3LDE2LjAxODYgNjcuNTQ0ODYzNywxNi4wMTg2IEwxMS44NTUsMTYuMDE4NiBaIiBpZD0iUGF0aCI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+)';
            $jammersLink.style.width = width;
            $jammersLink.addEventListener('mouseover', () => {
                fetch(`${url.pathname}?${qs.toString()}`)
                    .then(res => res.text())
                    .then(html => {
                    const jammers = html.match(/jammer/gi);
                    $jammersLink.textContent = (jammers ? jammers.length : 0) + ' jammers';
                });
            });
            $jammers.appendChild($jammersLink);
        });
    });
})();