Projects/Revue de presse 2

From La Quadrature du Net
< Projects
Revision as of 10:42, 3 July 2017 by Okhin (talk | contribs) (Page créée avec « == État des lieux et buts == 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 d... »)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

État des lieux et buts

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

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

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 raccourcisseur 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

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 droide de publier l'article. A minima il devient disponible sur la home de la RP. Des droides en charge de la publication sur drupal, twitter, ou autre peuvent être ajoutés avec une planification possible. Les choix des droides qui publient se fait à partir de la page d'édition de l'article.

Comptes et autorisations

Chaque compte est associé à un privilège: jedi, rpadawan ou droide. Les droides 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 insensible à la force et resteront des droides à vie.

Seuls les jedis peuvent configurer les droides, les détruires ou les créer.

Un article publié peut toujours être modifié ou dépublié soit par un droide soit par un jedi.

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

Seuls les droides peuvent ajouter un article à la RP (mais généralement parce que quelqu'un leur a demandé)

API & Flux

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 certaines problématique) dans le but de les inclures.

L'API devrai contenir toutes les informations nécessaires à la publication d'un article, car c'est laAPI qu'utiliseront les droides 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

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

Parsers

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érertitre, contenu, nom du média, si on est derrière un paywall ou non.