Projects/Revue de presse 2

De La Quadrature du Net
Revue de Presse
Dépôt Git https://git.laquadrature.net/la-quadrature-du-net/rpteam/rp
Liste de mail dev@laquadrature.netinfo
Canal IRC #lqdn-rp@irc.freenode.org
Documentation https://git.laquadrature.net/la-quadrature-du-net/rpteam/rp/blob/rp2/README.md
Description La revue de presse permet de gérer collaborativement un état de la presse sur les thématiques de LQDN.
Status
Status
Couverture des tests
Licence
AGPL v3.0 AGPL v3.0



État des lieux et buts[modifier]

Le but de la refonte est d’améliorer le code actuel de la RP pour en faire un outil utilisable par d’autres organisations et n’ayant plus de dépendance forte à Drupal 6 (publication des nœuds et comptes).

Il faut préserver les fonctions [actuelles](home), tout en ajoutant les fonctionnalités discutées en 2014 et partiellement implémentée par @Mindiell, notamment le travail d’unification des bots est fait, et le code est sur le repository de wantzel. Il faut aussi faciliter le travail des rpadawans et autres jedis, en ne fournissant qu’une seule identification possible.

Le processus actuel de la RP est décrit dans la page Projects/Revue_de_presse de ce wiki.

Pour référence, le pad de la RP2.

Pages[modifier]

La rp actuelle tiens sur une seule page, ne servant qu’aux rpadawan, les publications sont des nœuds drupals spécifiques. Dans le but de rendre indépendante la RP, il faut qu’elle dispose de sa propre page affichant le contenu publié, avec une fonction de recherche/filtre du contenu par mots clefs.

Une autre page sera utilisée pour les jedis et rpadawan pour classer, scorer et préparer le contenu pour la publication. Elle correspond à la page actuelle de la rp.

Enfin une page permettant d’afficher les détails d’un article et de le modifier sera utilisée par les rpadawan et les jedis.

Accueil[modifier]

La page d’accueil de la revue de presse pourra servir à voir l’entièreté de ce qui est publié par la revue de presse, et éventuellement de la trier par thème/tags. L’URL d’origine, nettoyée des trackers (principalement les utm d’analytics mais pas uniquement) et directe vers la page (passée par-delà les raccourcisseurs d’URL) est affichée, avec les métadonnées opengraph (si disponible) ainsi que les extraits retenus et les mots clefs associés.

Cette page permettra aussi de se connecter. Soit en ayant un compte local, soit en passant par un fournisseur d’identité tierce (type OAuth).

Interne[modifier]

Une fois connecté, l’utilisateur arrive sur la page interne qui affiche les articles en attente de publication (si l’utilisateur est un jedi), puis les articles à traiter (URL nettoyée et données opengraph) en premier, ceux n’ayant pas assez de votes et enfin ceux qui sont publiés.

Un clic sur un des articles ayant un score suffisant amène à la page de modification. Il est possible depuis cette page de modifier l’URL (pour la nettoyer notamment), de taguer l’article et de créer un bloc de contenus reprenant les extraits pertinents de l’article à l’aide d’un éditeur WYSIWYG simplifié (graisse, italique principalement).

Une fois cela fait, un jedi peut demander à un ou plusieurs droïdes de publier l’article. À minima il devient disponible sur la home de la RP. Des droïdes en charge de la publication sur drupal, twitter, ou autre peuvent être ajoutés avec une planification possible. Les choix des droïdes qui publient se fait à partir de la page d’édition de l’article.

Comptes et autorisations[modifier]

Chaque compte est associé à un privilège : jedi, rpadawan ou droïde. Les droïdes sont des comptes réservés aux bots (et permettant de les distinguer des jedis ou rpadawan, et ne pouvant donc pas se connecter via l’interface normale).

Les comptes peuvent être fournit par un système d’authentification externe, mais reçoivent un id et un niveau de droits gérés localement.

Tous les rpadawans et jedis peuvent communiquer avec tous les droides.

Seul un jedi peut ajouter des comptes ou promouvoir un rpadawan au rang de jedi. Les droides sont insensibles à la force et resteront des droïdes à vie.

Seuls les jedis peuvent configurer les droïdes, les détruire ou les créer.

Un article publié peut toujours être modifié ou dé-publié soit par un droïde soit par un jedi.

Un article non publié peut être modifié par un jedi, un padawan ou un droide.

Seuls les droïdes peuvent ajouter un article à la RP (mais généralement parce que quelqu’un leur a demandé)

API & Flux[modifier]

Le contenu de la rp devra être accessible par une API, fournissant le contenu de la rp. Cette API est utilisée pour effectuer des requêtes spécifiques (par exemple, pour extraire le contenu de la RP concernant une certaine problématique) dans le but de les inclure.

L’API devra contenir toutes les informations nécessaires à la publication d’un article, car c’est l’API qu’utiliseront les droïdes pour publier.

Des Flux (RSS, Atom, autres ?) sont à prévoir, par thèmes, par tag ou général, afin de permettre à quiconque de s’abonner et de suivre la RP.

Modules[modifier]

Le code doit fonctionner de manière modulaire, quitte à préciser quels modules charger dans le fichier de configuration. Chaque droïde est attaché à un module différent, soit pour ajouter des articles, soit pour publier. Par exemple, un module to_drupal permet à un droïde de publier un article sur un site drupal, et un module from_irc permet à un droïde (wantzel par exemple) de récupérer les entrées d’IRC vers la rp.

Parsers[modifier]

Comme les sites de presse n'ont pas du tout de forme commune, il est nécessaire de les parser pour extraire le contenu de l’article. Cela peut inclure devoir se connecter avec un compte pour passer outre les paywalls.

Un parser générique devra permettre de faire le plus gros du taff (notamment pour tous les sites n’ayant pas de parsers spécifiques), et servira de base aux autres. Un parser est associé à un motif d’URL, et fournit, notamment, tout ce qui sert à récupérer titre, contenu, nom du média, si on est derrière un paywall ou non.