Hattrick skim series feed

Filter some sentences from the series feed

// ==UserScript==
// @name         Hattrick skim series feed
// @version      2024-03-19
// @description  Filter some sentences from the series feed
// @author       shotgunshine
// @license      MIT
// @match        https://*.hattrick.org/World/Series/*
// @match        https://*.hattrick.org/*/World/Series/*
// @grant        none
// @namespace https://greasyfork.org/users/1381786
// ==/UserScript==

function skimSeriesFeed() {
    let filter = new RegExp([
        // italiano

        ' ha scritto un messaggio sui social dove rende noto ai suoi fan di essere',
        ' Pochi minuti dopo, l\'ufficio stampa della squadra ha confermato la notizia pubblicando un comunicato ufficiale[.]',
        'La notizia era nell\'aria già da diversi giorni, tuttavia ora è stata battuta in via ufficiale da diverse agenzie stampa: ',
        ' considerato',
        ' da diversi addetti ai lavori',
        ' indetto una conferenza stampa per presentare ai propri tifosi',
        'Brutte notizie dall\'infermeria di ',
        'Brutta tegola per l\'allenatore di ',
        '[.] Questo giocatore è',

        ' altrimenti le loro possibilità di promozione svaniranno[.] Riusciranno a rimanere lucidi[?]',
        'Non c\'è più speranza per ',
        '[!.] La squadra',
        ' indipendentemente da quello che accadrà nel turno [0-9]+[.]',
        ' indipendentemente da quello che accadrà negli ultimi  [0-9]+ turni',
        ' indipendentemente da quello che accadrà nell\'ultimo turno[.]',
        'è arrivato il momento della verità: ',
        'è il momento della verità: ',
        ' se vogliono evitare la retrocessione diretta',
        'Nessuna ulteriore chiamata a disposizione per ',
        ' se vogliono evitare lo spareggio per non retrocedere[.]',
        ' se vuole mantenere viva la speranza di promozione[.] Riusciranno a rimanere lucidi[?]',

        'I tifosi di ',
        'stanno vivendo un vero e proprio psicodramma da quando ',
        ' continuerà a partecipare a tutte le competizioni, ma l\'incertezza che circonda il club si ripercuoterà inevitabilmente su giocatori e staff',
        'Nonostante rimanga(no)? (una|[0-9]+) giornat(a|e) ancora da giocare, ',
        ' Congratulazioni, campioni[!]',
        'Congratulazioni a ',
        ' e la prossima stagione giocherà nella serie superiore',
        'subisce le conseguenze di una stagione a dir poco complicata: ',
        ' è purtroppo diventata realtà',
        'deve voltare pagina dopo il triste epilogo dello scorso campionato[.] A seguito della retrocessione, la squadra ',
        'Fresca di promozione, ',

        // english

        ' has announced to social media networks that he',
        'announced on social media that he ',
        ' Minutes later, the move was confirmed by the club[.]',
        ', a big name on the squad[.] It will be interesting to see what other changes this may lead to',
        'often described as ',
        ' the team hopes will become a key player for the team',
        ' an essential player',
        '[.] The player is',

        ', otherwise their promotion chances will evaporate into thin air[.] Can they deliver[?]',
        'There is no hope left for ',
        '[!.] The team',
        ' no matter what they do in the (last|final [0-9]+) round(s)?[.]',
        'to get real[.] They ',
        'It\'s time for ',
        ' to avoid direct demotion',
        'There are no margins left for ',
        ' to avoid the horror of a demotion qualifier match[.]',

        'Following weeks of rumors, it has been confirmed that ',
        ' The team will continue to participate in all competitions, but the uncertainty surrounding the club will likely affect players and staff.',
        'Despite there being [0-9]+ round(s)? left to play, ',
        ' Congratulations, champions[!]',
        'Having just been promoted, ',
        ' for the upcoming season',
        'is coming off a bad season, which ended in demotion[.] They ',
        'Congratulations to ',
        ' and will play in a higher division next season',
        'is seeing the consequences of their weak season and ',
    ].join('|'), 'gi');

    let feed = document.getElementById('ctl00_ctl00_CPContent_CPMain_repLLUEvents');
    feed.innerHTML = feed.innerHTML.replaceAll(filter, '');
}

(function() {
    'use strict';

    skimSeriesFeed();

    let observerTarget = document.getElementById('ctl00_ctl00_CPContent_CPMain_updLLUEvents');
    let observerOptions = {subtree: true, childList: true};
    const observer = new MutationObserver(() => {
        observer.disconnect();
        skimSeriesFeed();
        observer.observe(observerTarget, observerOptions);
    });
    observer.observe(observerTarget, observerOptions);
})();