Deblan blog

Simon Vieille

DevOp animé par la culture du libre et du hacking

Le PDG de FaceBook, Mark Zuckerberg, malmené lors de son audition au Sénat américain (17/11/20)

Le PDG de FaceBook, Mark Zuckerberg, malmené lors de son audition au Sénat américain (17/11/20)

https://peertube.fr/videos/watch/b9880aae-a2fb-404c-9e56-b8f4d25d702e

Le PDG de FaceBook, Mark Zuckerberg, malmené par le sénateur Josh Hawley lors de son audition au Sénat américain. le 17 novembre 2020.

Lien permanent


Mail RSS : transformer des mails en flux RSS

J'essaye de plus en plus de réduire le volume de mails que je reçois. Du coup, quand une newsletter m'intéresse et que les auteurs ne fournissent pas de flux RSS, cela me donne un prétexte pour écrire un nouveau projet : Mail RSS.

Comment ça marche ?

L'idée est assez simple : en utilisant les alias de mail dans Postfix, on peut faire en sorte qu'un mail qui arrive sur le serveur soit traité par une commande. J'ai décidé de rediriger les mails dans un répertoire précis du serveur et je demande à Mail RSS de les lire et de les importer.

Prenons la newsletter de TechTrash comme exemple.

Configuration du serveur de mail

Il faut ajouter un alias qui va générer des fichiers.

techtrash: "| cat > /var/lib/mailrss/techtrash-$(date +%s) && chmod o+rw /var/lib/mailrss/techtrash-$(date +%s)"

Au préalable, j'ai créé le répertoire /var/lib/mailrss et je me suis assuré que mon application pouvait lire et écrire dedans, de même que Postfix (nobody:nogroup).

Configuration de l'application

On doit générer un mailing pour TechTrash. Quand on va importer les mails de TechTrash, on pourra les associer au mailing via son identifiant (ID). On pourra ensuite accéder au flux RSS via le lien généré à sa création. Évidement, on peut créer autant de mailing que l'on veut, les modifier et les supprimer.

$ php bin/console mailing:new "TechTrash"
$ php bin/console mailing:list
 ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- 
  Label        ID                                     Feed                                                                     Created at            Updated at           
 ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- 
  Tech Trash   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx   https://exemple.fr/mailing/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/rss      2020-11-12 13:37:00   2020-11-12 13:37:00  
 ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- --------------------- 

Enfin, il faut un script qui va traiter les fichiers de /var/lib/mailrss en les important dans le mailing correspondant et qui les supprime du serveur.

#!/bin/sh

cd "/path/to/exemple.fr"

import_mails() {
    LABEL="$1"
    MAILING_ID="$2"

    find /var/lib/mailrss -name "${LABEL}-*" | while read MAIL; do
        php bin/console mail:import "${MAILING_ID}" -f "$MAIL" && rm "$MAIL"
    done
}

import_mails "techtrash" "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Quand un mail est importé, les données récupérées sont :

  • Le sujet du mail
  • La date du mail
  • Le contenu HTML
  • Le contenu texte
  • Les pièces jointes

Toutes ces données seront accessibles à la consultation.

L'application s'appuie sur Symfony (en version de développement) et le code est totalement libre 😄


Cohabitation de Collabora Online et OnlyOffice sur Nextcloud

J'utilise énormément mon instance Nextcloud et dans certaines situations, j'ai besoin d'éditer soit des fichiers Open Document Format (format natif de LibreOffice) ou soit des fichiers Open XML (format natif de la suite office de Microsoft).

L'an passé, j'utilisais exclusivement OnlyOffice via son connecteur Nextcloud et une instance installée sur un serveur dédié. Puis, lors d'un déboire au sujet de l'édition depuis un terminal mobile, j'ai décidé de migrer vers Collabora Online via son connecteur Nextcloud et une instance installée sur un serveur (presque) dédié.

Le problème est que si Collabora Online sait très bien traiter les fichiers ODF, il galère un peu plus avec les fichiers Open XML. Aussi, force est de constater que OnlyOffice reste très performant pour jouer avec Open XML. J'ai donc décidé de les installer ensemble. Collabora Online est donc l'éditeur ouvert pour les documents ODF tandis que OnlyOffice le sera pour les fichiers Open XML.

Collabora Online et OnlyOffice

Afin de les discerner dans le menu pour créer un nouveau document, j'ai développé un bout de javascript que vous pouvez injecter via JSLoader. Je pense d'ailleurs que cela sera une bonne idée de forker cette application afin d'en reprendre la maintenance.

Cohabitation de Collabora Online et OnlyOffice sur Nextcloud

Alors ce n'est sans doute pas le code le plus élégant mais il fonctionne bien.

try {
    setInterval(function() {
        var elements = {
            'docx': 'onlyofficeDocx',
            'xlsx': 'onlyofficeXlsx',
            'pptx': 'onlyofficePpts',
        };

        for (var i in elements) {
            var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
            var span = document.querySelector(selector);

            if (!span) {
                return;
            }

            if (span.innerHTML.indexOf(i) !== -1) {
                continue;
            }

            span.innerHTML = (i !== 'docx' ? 'Nouvelle ' : 'Nouveau ') + span.innerHTML.toLowerCase() + ' (' + i + ')';
        }

        elements = {
            'odt': 'add-odt',
            'ods': 'add-ods',
            'odp': 'add-odp',
        };

        for (var i in elements) {
            var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
            var span = document.querySelector(selector);

            if (!span) {
                return;
            }

            if (span.innerHTML.indexOf(i) !== -1) {
                continue;
            }

            span.innerHTML = span.innerHTML + ' (' + i + ')';
        }
    }, 100);
} catch (e) {

}

La liberté d'expression encore menacée

La liberté d'expression encore menacée

https://youtu.be/RwXD_V2VS90

Ou comment instrumentaliser à des fins politiques un événement tragique qui n'a aucun rapport pour relancer une loi anticonstitutionnelle : La loi AVIA

Pourquoi la loi Avia est liberticide et inutile ?

L'appareil législatif contient déjà tous les outils pour lutter contre les contenus manifestement illicites tels que les incitations à la haine, les injures à caractère raciste ou anti-religieuses.

Les contenus terroristes ou pédopornographiques doit être considérés comme tel par un juge et non par l'appréciation de l'administration. Les plateformes privées ne doivent pas jouer le rôle d'organe de censure et encore moins l'automatiser.
Le conseil constitutionnel s'est déja prononcé en indiquant que « le législateur porte une atteinte à la liberté d'expression qui n'est ni adaptée, ni proportionnée au but poursuivi ». Il persiste « le risque que les opérateurs soient incités à retirer tous les contenus contestés, y compris ceux qui sont licites » [1].

Si un contenu devait être supprimé, cela veut donc dire qu'il a été nécessairement publié donc le mal est déjà fait. Mais sous couvert de la lutte contre l'anonyma sur Internet (qui n'est qu'une idée reçue), la loi Avia va permettre de museler les personnes qui dérangent, ceux qui ont des idées en marge, les mouvements contestataires, ceux qui militent pour un état de droit et non pas pour un état policier en imposant une suppression pure et dure de leurs contenus sans l'accord d'un juge.

Cette loi est la porte ouverte vers une énième derive totalitaire où l'état va nous imposer son idéologie.

Lien permanent


Menu personnalisé dans Nextcloud 🎨

Depuis avril dernier, l'application Custom menu (anciennement Side menu) a beaucoup évoluée et pas moins de 46 versions ont déjà été publiées. Custom menu est complet et très stable.

Nextcloud est une plateforme web qui se compose d'applications pour faire tout et n'importe quoi. On peut héberger et partager des documents, gérer ses calendriers et ses contacts, enregistrer ses marque-pages, lire des flux RSS, réaliser des sondages, etc.

Selon moi, quand on active beaucoup d'applications, un des problèmes principaux est le menu qui n'est pas du tout adapté.

Nextcloud

Pour résoudre ce problème, j'ai entrepris le développement d'une application dédiée à la gestion de ce menu et j'ai publiées les premières versions pendant le confinement du début d'année.

Custom menu est totalement personnalisable. On peut modifier l'emplacement du menu selon trois dispositions : dans un panneau latéral, affiché en permanance comme le menu d'Ubuntu ou via un panneau qui s'ouvre sur le dessus. Vous pouvez bien sur choisir les couleurs de tous les éléments, afficher votre logo, la photo de profil de l'utilisateur ou rien du tout, choisir la taille du texte celle des icônes, etc.

On peut aussi désigner des applications qui doivent rester affichées dans le menu original, choisir lesquelles doivent s'ouvrir dans un nouvel onglet et si l'administrateur le permet, alors chaque utilisateur pourra faire sa propre organisation.

Custom menu est compatible avec AppOrder de manière à pouvoir choisir l'ordre d'affichage des applications.

Custom menu

Si vous êtes curieux, n'hésitez pas à tester Custom menu et si vous avez des idées pour faire évoluer l'application ou que vous rencontrez un bug alors je vous invite à ouvrir un ticket sur le dépot du projet.

Enfin, si vous désirez soutenir mon travail, vous avez la possibilité de m'offrir un café 😀