Bon, je vous le dis tout de suite, cet article est long, mais prenez au moins le temps de lire le début, je vous propose une nouvelle version de mon lecteur de flux perso
KrISS feed qui je vous le promets n'a rien d'un lecteur de flux RSS classique. Pourquoi vous croyez que
Google ferme son Google Reader ? M'enfin je dis ça, je dis rien...
Si vous ne voulez pas tout lire, voici ce que vous devez faire. C'est tellement rapide à faire que ce serait dommage que vous n'essayez pas... seulement 6 étapes, même si 4 c'était suffisant.
(
Il faut faire la même procédure pour ceux qui passe de la version 4 à la version 5 : une réinstallation complète, faîtes une sauvegarde de tout votre dossier avant au cas où) :
1 - Ne réfléchissez pas, faîtes moi confiance :-p
2 - Allez dans votre lecteur de flux favori et
exportez la liste de vos flux (fichier opml)
3 -
Téléchargez le fichier
index.php et copiez le sur votre serveur
(
oui, il n'y a qu'un seul fichier et non vous ne rêvez pas il fait environ 300ko (décompressé) avec plus de 100ko de css de bootstrap twitter (qui devrait dégager dans les prochaines versions pour réduire encore cette taille déjà ridiculement petite : oui à titre de comparaison Tiny Tiny RSS fait 2Mo compressé...))
4 - Allez sur ce fichier dans votre navigateur préféré et
installez KrISS feed : un login, un mot de passe et si les droits d'écritures sont bons, ça ne devrait pas poser de problèmes (je ne fais aucun test de compatibilité pour le moment (TODO), mais si vous avez un problème, n'hésitez pas à demander, je pense que ça vaut le coup et ça permettra d'améliorer la compatibilité)
5 -
Importez votre fichier opml et faites une update
(
si votre serveur utilise gzip, vous ne devriez pas avoir l'actualisation en direct (les flushs ne sont pas pris en compte), alors il faudra patientez, sinon vous pouvez aller dans la config et activez l'autoupdate qui utilise javascript et qui vous permet d'utiliser le lecteur directement sans attendre)
6 - Faîtes de KrISS feed votre nouveau lecteur de flux favori :-)
Si vous voulez voir ce que ça donne avant, la
démo est accessible (sans le login et le mot de passe, le paramétrage est un peu plus limité et l'utilisation diffère car vous ne pouvez pas marquer les articles comme lus), mais j'espère que c'est trop tard et que vous avez déjà testé sur votre serveur :-p
Pourquoi changer pour KrISS feed ?
À chaque fois que j'ai essayé un lecteur de flux en ligne, j'ai été frustré à un moment de ne pas avoir telle ou telle chose et en partant de cette idée, je me suis dit qu'il fallait que j'adapte mon lecteur pour qu'il convienne au plus grand nombre. En fait, dans la version précédente j'avais 2 modes ('show' et 'reader') et si j'étais un grand fan du mode 'show', les retours que j'ai eu concernait le mode 'reader' mais comme je ne l'utilisais pas, j'avais plus de mal à faire les suggestions demandées, car le code était dur à maintenir. J'ai donc tout retransformé pour faire un seul mode entièrement paramétrable. Le code est beaucoup plus concis et sera beaucoup facile à maintenir. Pour vous donner un aperçu de quelques possibilités :
-
http://tontof.net/feed/?listFeeds=show&byPage=50&view=list&filter=all (plus ou moins équivalent à mon ancien mode 'reader')
-
http://tontof.net/feed/?listFeeds=hide&byPage=1&view=expanded&filter=unread (équivalent à mon mode show, je n'utilise que ça et j'adore)
Entre les deux, c'est vous qui choisissez en fonction de vos besoins, mais il s'agit du même code et c'est donc un réel plaisir de modifier le code php ou js, contrairement à la version 4.
En étant connecté, il est également possible de paramétrer entièrement l'apparition et l'ordre des éléments du menu et de la pagination. Sur la démo, j'ai laissé tous les liens, mais dans mon KrISS feed perso, je les ai tous virés. (pas besoin de liens pour naviguer, les raccourcis clavier sont suffisants et les options, je ne les change jamais et si je veux le faire temporairement, je peux rentrer les paramètres directement dans l'URL)
Pourquoi KrISS feed est tout terrain ?
- Il utilise
PHP (
c'est presque universel non ?)
- Il n'utilise
aucune base de données SQL (
tout terrain, je vous dis :-p)
- Il est entièrement fonctionnel
sans javascript (
oui vous pouvez l'utiliser avec w3m ou links)
- Il est entièrement fonctionnel
avec javascript (
parce que c'est quand même bien quand AJAX évite de recharger la page à chaque fois et les raccourcis clavier font gagner un temps non négligeable à la veille)
- Il ne dépend d'
aucune librairie tierce (pas de SimplePie, pas de jQuery) : c'est toujours un argument discutable, mais c'est le prix de la légèreté. J'utilise KrISS feed depuis presque un an et je n'ai eu aucun soucis dans la lecture de mes flux RSS (j'en ai plus de 100 différents) et puis jQuery, ben voilà c'est
jQuery (
via)
- Il se base sur le CSS de bootstrap
oui il reste encore du css associé à bootstrap, mais malheureusement les gens jugent encore trop vite sur l'aspect et pas sur les fonctionnalités (ce CSS est temporaire, je l'ai utilisé pour ne pas me prendre la tête avec la façade, c'est principalement pour la nomenclature et comme ça les gens pourront adapter facilement le thème ou laisser bootstrap : vous pouvez aussi définir votre style en créant un fichier inc/user.css (comme avec shaarli))
- Il est
responsive et s'adapte aux écrans de toute taille (
responsive quoi : j'ai dû changer un peu le CSS de bootstrap car même avec le CSS responsive, les boutons ne s'adaptaient pas à l'écran, tu parles...)
- En un mot il est vraiment
KISS
Est-ce que KrISS feed est fait pour vous ?
Si vous cherchez un lecteur de flux RSS en ligne, la réponse simple est
Oui.
Sinon, il existe des logiciels, mais ce n'est plus vraiment en ligne et ce n'est pas le but de KrISS feed.
Il faut savoir que KrISS feed ne stocke pas les flux sur le long terme (contrairement à Google Reader par exemple). J'ai changé toute la structure et si les gens demandent l'ajout de favoris, je pourrais le faire plus facilement (mais pour moi, je trouve plus intéressant d'utiliser un shaarli pour ça...). De mon point de vue complètement biaisé, mais tout de même honnête, c'est la seule remarque 'négative' (je ne trouve pas vraiment ça négatif) que l'ont peut faire à KrISS feed. J'imagine que vous en aurez sûrement d'autres :-)
Enfin j'ai testé KrISS feed sous firefox, opera et chromium sans problème (même si le CSS est mieux sous firefox... par exemple en mode list, les éléments sont condensés alors que ce n'est pas le cas sous chromium et opera. Je gèrerai ce petit détail quand je modifierai le CSS). J'ai fait le javascript en pensant 'un peu' à IE mais comme je ne peux pas tester, je ne sais pas si ça fonctionne. Ce n'est pas gênant, KrISS feed marche très bien sans JS :-p
Qu'est-ce qu'il faut savoir pour utiliser au mieux KrISS feed ?
Dans l'utilisation quotidienne, il faut savoir que je n'ai pas fait de demande de confirmation, par exemple quand on souhaite tout marquer comme lus ou non lus. Il reste seulement quelques anciennes confirmation javascript dans l'édition des flux. Mais globalement, quand vous cliquez, ça exécute. Je pense à terme faire une option pour ça parce que je pense que des gens préfèrent l'étape intermédiaire...
Dans les paramètres, il y a la possibilité de gérer entièrement les menus, mais il y a aussi quelques quelques options pour vous simplifier la vie :
- Autoread next item : qui permet de marquer comme lu un article quand vous accéder à l'article suivant
- Autoread next page : (pas encore implémenté) qui permettra de marquer comme lu les articles de la page courante quand on accède à la page suivante
- Autohide : qui permet de masquer dans la liste, les flux qui ont 0 non lu.
- Autoupdate : qui permet de ne pas faire d'update manuelle bloquante et ainsi utiliser directement KrISS feed sans attendre (vous pouvez aussi utiliser un cron, allez dans le menu configuration)
Après avoir paramétré votre lecteur à votre goût, je vous conseille pour une meilleure expérience l'utilisation des raccourcis suivant :
- espace ou 't' : en mode
view list pour ouvrir/fermer l'article courant (espace buggue sous opera)
- 'm' : pour marquer comme lu ou non lu un article
- 'n' ou flèche de droite : pour aller à l'article suivant
- 'p' ou flèche de gauche : pour aller à l'article précédent
- shift + 'n' : pour aller à la page suivante
- shift + 'p' : pour aller à la page précédente
- 'j' : pour aller à l'article suivant et en mode
view list l'ouvrir
- 'k' : pour aller à l'article précédent et en mode
view list l'ouvrir
- 'o' : pour ouvrir le lien courant dans un onglet
- 's' : pour partager l'article courant (à paramétrer dans la config, ne se limite pas à shaarli car il utilise les variables ${url}, ${title}, ${sel}, ${via}. ${sel} permet en javascript de récupérer la sélection courante du texte surligné et la place entre guillemets. ${via} est une variable qui contient 'via <guid>' quand les domaines sont différents entre <link> et <guid>. Bientôt très utile avec shaarli quand il sera possible de
modifier la description de shaarli avec le bookmarklet. Je vais bientôt prendre le temps de faire un pull request parce que je l'ai déjà implémenté et je trouve ça vraiment pratique.
Qu'est-ce qui se cache derrière KrISS feed ?
À l'image de shaarli, tout est stocké avec des fichiers (et comme le dit très bien
Sebsauvage ce n'est pas forcément un problème). Dans la version 4, je n'utilisais qu'un seul fichier data.php qui stockait toutes les infos et les articles. La taille variait facilement de 2 à 4 Mo pour plus de 100 flux. Sur mon hébergeur OVH, je n'avais pas vraiment de soucis, mais sur des ordis persos un peu moins puissants, le chargement des pages pouvait être un peu pertubé. Contrairement à un shaarli qui est utilisé principalement en lecture, ici, le fait de marquer un élément comme lu fait de l'écriture. Et lire/écrire un même fichier tout le temps en accès parallèle avec par exemple la mise à jour en javascript, c'était pas l'idéal. Maintenant le fichier data.php ne contient plus que les informations relatives aux flux et aux articles (lus/non lus et la date). Pour le même nombre de flux, le fichier data.php ne fait alors plus que quelques ko. Les autres informations relatives aux articles sont stockées dans un dossier cache. Même sur de vieux ordis, il est maintenant possible d'utiliser KrISS feed.
Et la suite ?
Tout d'abord, j'ai moins de recul que sur la version 4 et comme il s'agit d'une grosse mise à jour, je ne serai pas surpris qu'il y ait encore quelques petits bugs même si je m'en sers sans problème depuis quelques jours. J'attends donc vos
retours. Il reste encore des choses à implémenter, comme le autonext page, la mise à jour des articles non lus que je n'ai pas fait en javascript dans la liste des flux à gauche, mais elle est active dans le titre et le menu. Il faudrait aussi que je sépare de ma classe Feed, la partie lecture/parsage de flux RSS pour en faire une classe à part. Bref encore plein de petits détails pour encore améliorer KrISS feed.
Dans les prochaines versions, j'envisage le multilingue. Avec ma contrainte du fichier unique, je m'oriente vers l'utilisation de simples tableaux. Mais pour une meilleure maintenance, je pense le faire à partir de fichiers .po/.mo. Je n'ai pas encore eu le temps d'étudier en profondeur le problème mais j'ai
quelques pistes. D'ailleurs je vous rappelle que si vous souhaitez utiliser le cache de votre navigateur pour le style et le javascript, il vous suffit de copier le dossier inc des sources à côté de votre index.php. Le CSS peut aussi se personnaliser avec un fichier user.css dans ce même dossier inc. Ensuite, je verrai à l'usage, mais pour le moment je précharge l'article suivant qui permet d'avoir une interaction beaucoup plus rapide quand on clique sur suivant. Je pense qu'un seul est suffisant, mais pourquoi ne pas aussi rendre ça paramétrable. Dans la version 4, j'utilisais un historique en javascript qui me permettait de revenir sur des articles que je venais de marquer comme lu. Actuellement, si vous êtes en mode filter unread, il n'est pas possible de retourner sur un article marqué comme lu.
J'espère qu'il vous plaira autant qu'à moi, mais je suis le premier fan de KrISS feed :-)