Jammer

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

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);
        });
    });
})();

Volgende: Vacature Smart Home Content Marketeer 09-'19 Vacature Smart Home Content Marketeer

Reacties



Door Tweakers user NotoriousBAS, dinsdag 24 maart 2020 10:46

Pff, zonde van je tijd ;)


Door Tweakers user naarden 4ever, dinsdag 24 maart 2020 12:51

Geweldige humor :P

Ik heb het trouwens even uitgeprobeerd, maar ik moet wel eerst met mijn muis over het vakje met de jammer-counter heen voordat 'ie aangeeft hoe jammer een artikel is. Klopt dit of is dit een bug?

Door Tweakers user diabolofan, dinsdag 24 maart 2020 14:26

Wellicht mooier om een jammer icoontje te gebruiken (deze bijvoorbeeld :| ), en dan het aantal erop, zodat je geen ruimte kwijt bent aan het tekstje jammer

Door Tweakers user WeeJeWel, dinsdag 24 maart 2020 17:36

naarden 4ever schreef op dinsdag 24 maart 2020 @ 12:51:
Geweldige humor :P

Ik heb het trouwens even uitgeprobeerd, maar ik moet wel eerst met mijn muis over het vakje met de jammer-counter heen voordat 'ie aangeeft hoe jammer een artikel is. Klopt dit of is dit een bug?
Het is natuurlijk een beetje jammer dat dit zo is, maar het alternatief is álle artikelen op de achtergrond downloaden. Dat kost veel bandbreedte, en dat is jammer.

Of tweakers.net maakt dit een officiële feature natuurlijk.

Door Tweakers user OverSoft, woensdag 25 maart 2020 14:45

Ik weet niet hoe blij Tweakers.net er van wordt als iedere keer als de voorpagina wordt geladen, alle artikelen geladen worden. Maar ik vermoed dat dit niet breed gedraaid gaat worden. ;)

Door Tweakers user WeeJeWel, woensdag 25 maart 2020 15:29

OverSoft schreef op woensdag 25 maart 2020 @ 14:45:
Ik weet niet hoe blij Tweakers.net er van wordt als iedere keer als de voorpagina wordt geladen, alle artikelen geladen worden. Maar ik vermoed dat dit niet breed gedraaid gaat worden. ;)
Beetje jammer dat je de comments niet leest. Dit gebeurt alleen bij een mouse-over natuurlijk.

Door Tweakers user OverSoft, donderdag 26 maart 2020 17:29

WeeJeWel schreef op woensdag 25 maart 2020 @ 15:29:
[...]


Beetje jammer dat je de comments niet leest. Dit gebeurt alleen bij een mouse-over natuurlijk.
Dat is inderdaad wel jammer ja.

Door Tweakers user RoestVrijStaal, vrijdag 27 maart 2020 13:41

Jammer dat je in je userscript voor alle variabelen $ ervoor zet.

Ik dat even dat je met jQuery aan het rommelen was, totdat ik inzag dat je PHP gewend bent.

Door Tweakers user RoestVrijStaal, vrijdag 27 maart 2020 13:41

Jammer dat je in je userscript voor alle variabelen $ ervoor zet.

Ik dat even heel kort dat je met jQuery aan het rommelen was, totdat ik inzag dat je PHP gewend bent.

Door Tweakers user WeeJeWel, vrijdag 27 maart 2020 16:44

RoestVrijStaal schreef op vrijdag 27 maart 2020 @ 13:41:
Jammer dat je in je userscript voor alle variabelen $ ervoor zet.

Ik dat even heel kort dat je met jQuery aan het rommelen was, totdat ik inzag dat je PHP gewend bent.
Jammer dat je die conclusie trekt. Ik heb mezelf gewoon ooit aangeleerd om alle DOM-nodes met een $ te prefixen.

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.