Pour ma veille je suis 281 flux RSS (après avoir fait du ménage ce matin), or il existe quelques sites qui ne proposent qu’une version tronquée des articles, par exemple Numérama :

 

Je comprends leurs motivations mais ça m’enquiquine (pour être poli).

Je me suis donc mis en quête d’un service permettant d’avoir le flux complet à partir d’un flux tronqué.

J’ai tout d’abord trouvé le service Full Text RSS Feed Builder, le premier test n’a pas été concluant le jour même mais semble avoir fonctionné les jours suivants (une histoire de cache dans Google Reader ?)

Mais qu’importe puisqu’entre temps je me suis souvenu que j’avais bookmarké un article décrivant un script remplissant le même rôle et pouvant être auto-hébergéfivefilters : RSS avec les articles complets

Le service s’appelle Create Full-Text Feeds de fivefilters.org

Par contre depuis que Tom@mplius à publié son article (Mai 2010) les conditions de distributions semblent avoir changées, le site fivefilters.org ne propose plus que son service en ligne gratuit mais limité (3 articles max par flux) et il faut payer (20 €) pour avoir les sources et l’auto-héberger.

En cherchant un peu j’ai trouvé le site sur lequel les sources de l’ancienne version sont distribués : http://code.fivefilters.org/p/full-text-rss/

Il s’agit de la version 2.7 et en payant on a la version 2.9, à vous de voir si les changements entre ces 2 versions vous sont nécessaires, en ce qui me me concerne la 2.7 me convient.

Pour l’installation, c’est un peu comme tous les services web :

  • Téléchargement des sources
  • Décompression dans un répertoire de votre serveur web
  • Fixer les droits sur les fichiers pour s’assurer que c’est l’utilisateur faisant  tourner votre serveur web (www-data) qui est propriétaire des fichiers
  • Paramétrage de votre serveur web pour prendre en compte ce nouveau site

Et on peut tester en allant sur l’URL de votre serveur web :

Un peu comme service gratuit fivefilters.org on entre l’URL du flux compléter et on valide.

Par contre à la différence du service gratuit hébergé, on a accès aux options notamment le nombre d’article par flux.

Un petit test avec le flux de Numérama, résultat de la page :

 

On copie l’URL résultante et hop on ajoute le flux dans Google Reader, ça marche parfaitement….

 

J’ai ensuite effectué quelques configurations supplémentaires.

En premier lieu il faut copier le fichier config.php en custom_config.php et éditer ce dernier.

Activation du cache :

Cela se fait simplement en positionnant la variable suivante :

$options->caching = true;

Il faut ensuite créer le répertoire paramétré dans $options->cache_dir et 2 sous répertoires rss et rss-with-key en effet les sources 2.7 ne contiennent pas ces répertoires et s’assurer que ces répertoires appartiennent à l’utilisateur faisant  tourner votre serveur web (www-data).

Protection du service :

Le service fonctionne parfaitement mais je veux en protéger l’accès, en effet je ne souhaite pas que tout le monde puisse l’utiliser.

Full Text Feed contient un mécanisme de clé permettant de différencier les utilisateur avec clé de ceux sans clé (en terme de fonctionnalité), mais malgré ce qui est indiqué dans cette page, l’ajout de la variable $options->key_required à true n’oblige pas l’utilisation d’une clé

J’ai donc modifié les sources pour le permettre. Dans le fichier makefulltextfeed.php j’ai ajouté le test  suivant :

if (($options->key_required) && (!$valid_key)) {
        die('A valid key is mandatory');
}

Après le test suivant :

$valid_key = false;
if (isset($_GET['key']) && isset($_GET['hash']) && isset($options->api_keys[(int)$_GET['key']])) {
        $valid_key = ($_GET['hash'] == sha1($options->api_keys[(int)$_GET['key']].$url));
}

Dans le fichier custom_config.php on indique ensuite la/les clés valides et l’option indiquant qu’une clé est obligatoire :

$options->api_keys = array();
$options->api_keys[1] = 'xxxx';
$options->key_required = true;

Les commentaires sont fermés.