URL: https://linuxfr.org/news/tyrs-un-client-de-micro-blogging-en-console Title: Tyrs, un client de micro‐blogging en console Authors: Nic0 Benoît Sibaud Date: 2011年11月06日T20:12:57+01:00 License: CC By-SA Tags: réseau_social et micro_blogging Score: 22 [Tyrs](http://tyrs.nicosphere.net/) est un client de _micro‐blogging_, supportant les services _Twitter_ et _Status.net_ (_identi.ca_), le tout en console et surtout utilisant [_ncurses_](http://en.wikipedia.org/wiki/Ncurses) pour Python. Je profite de la sortie de la version 0.5.0 pour en faire une présentation sur _LinuxFr.org_. Les objectifs de Tyrs sont d’obtenir une bonne interactivité, avec une interface assez intuitive que peut offrir un support _ncurses_. Tyrs essaye de ne pas imposer de choix à l’utilisateur, en proposant un fichier de configuration tant pour les fonctionnalités, que pour l’affichage et les touches par défaut. Les bordures ne vous plaisent pas, trop d’espaces entre les notices, les couleurs vous font mal aux yeux ? Le tout est configurable, avec un fichier ressemblant à un [[fichier INI]]. C’est vraiment pour le *fun* que j’ai commencé Tyrs, n’ayant pas de bagage spécifique dans le domaine. J’ai choisi de démarrer ce projet parce que je l’utilise, mais également à titre pédagogique. En outre, contrairement à ce qu’on pourrait croire, je ne suis pas un gros utilisateur de Twitter, simplement un petit utilisateur régulier, voulant se faire plaisir à écrire un programme. Les premières lignes datent de mai. La licence utilisée est la GPL v3, son développement s’effectue sur [ce dépôt de GitHub](https://github.com/Nic0/tyrs). Tyrs est donc un logiciel libre. [1]: http://www.bitlbee.org/main.php/news.r.html [2]: http://www.floodgap.com/software/ttytter/ [3]: http://en.wikipedia.org/wiki/Ncurses [4]: https://github.com/Nic0/tyrs [5]: http://tyrs.nicosphere.net/ ---- [Site officiel](http://tyrs.nicosphere.net/) [Documentation](http://tyrs.nicosphere.net/reference.html) [Sources sur GitHub](https://github.com/Nic0/tyrs) [Tyrs sur le site Pypi](http://pypi.python.org/pypi/tyrs) [Les évolutions de Tyrs](http://www.nicosphere.net/tag/tyrs/) ---- J’ai d’abord utilisé d’autres clients, graphiques ou en console, mais les alternatives en console ne correspondaient pas spécialement à mes attentes. On retrouve principalement : * [BitlBee](http://www.bitlbee.org/main.php/news.r.html), c’est une application venant se greffer à un client IRC tel que _irssi_ ou _WeeChat_. Je n’ai jamais accroché pour ma part, je ne pourrais pas en parler plus sans dire de bêtises ; * [TTYtter](http://www.floodgap.com/software/ttytter/), c’est l’application que j’utilisais avant d’écrire Tyrs. Logiciel très complet, abouti et mature. Son approche n’utilise cependant pas _ncurses_, et donc, même s’il est très facilement pilotable au clavier, il n’offre pas cette interactivité propre aux logiciels _ncurses_. Depuis, j’ai eu l’occasion de découvrir d’autres clients de micro‐blogging, mais généralement sans prise en charge de _ncurses_. Selon mes goûts, je trouvais qu’il y avait un manque pour trouver mon client Twitter _ncurses_, et ainsi compléter les nombreuses applications console que j’utilise au quotidien. Pour visualiser un peu l’application, voici une capture d’écran, non pas de ma _timeline_ classique, mais de la _timeline_ publique d’un administrateur bien connu par ici.  Rentrons un peu plus dans le cœur de Tyrs, avec un aperçu des fonctionnalités. **Les Timelines** * **_Home_** : permet de suivre normalement les notices, semblable à ce que vous aurez sur votre page d’accueil du site ; * **_Mention_** : regroupe les notices qui contiennent votre pseudo ; * **_Direct_** : regroupe les messages envoyés « en privé » ; * **_Favoris_** : visualise les notices misent de côté grâce au système de favoris ; * **_Autres_**... Les Timelines sont navigables, soit avec les flèches directionnelles, soit avec « j » et « k ». On pourrait les comparer aux tampons des clients IRC _ncurses_. Cette façon de séparer les _timelines_ est assez proche de ce qu’on peut voir dans les clients de micro‐blogging _classiques_ avec une interface graphique. Et c’est un peu ce côté ressemblant à ce qu’on connaît qui donne une interface intuitive bien que basée sur une console. **Indicateur d’activités** Comme on ne peut afficher qu’une seule _timeline_, l’indicateur d’activités permet de savoir si de nouvelles notices sont apparues dans les autres _timelines_. Ce détail évite d’avoir à naviguer entre les _timelines_ uniquement pour vérifier s’il y a du nouveau. Un compteur permet également de quantifier l’activité. Cet endroit permet également de visualiser la _timeline_ actuellement sélectionnée. Son emplacement est en haut à droite. **Les fonctionnalités classiques** * authentification [[Oauth]] ; * _follow / unfollow_, c’est‐à‐dire s’abonner à un flux d’une personne ; * recherche d’un mot clé particulier ; * favoris ; * messages directs ; * ouverture directe des URL ; * compteur de _retweets_. C’est un détail, je vous l’accorde, mais après l’avoir utilisé quelque temps, je dois dire que je m’y suis bien habitué. Le but est d’indiquer par un chiffre le nombre de fois qu’une notice a été relayée (_retweeted_). C’est donc un indice, en temps réel, de popularité d’une notice ; * gestion de raccourcisseur d’URL. Pour le moment, les principaux services gérés sont [_ur1.ca_](http://ur1.ca/), [_bit.ly_](http://bit.ly/) et `goo.gl` ; * gestion de serveur mandataire (proxy) au travers du fichier de configuration. C’est une des dernières fonctionnalités rajoutée ; * système de filtrage pour les notices ne contenant pas de liens URL, système pouvant filtrer de façon nominative. C’est un moyen pour réduire « le bruit » ; * ligne visuelle permettant de repérer la dernière notice lue lors de la dernière utilisation, elle est ré‐ajustable d’une touche si besoin d’un repère visuel ; * visualiser un fil de lecture entier (_thread_), pour obtenir l’historique de la conversation. Les réponses à des notices sont visualisables par une icône d’enveloppe (✉) ; * possibilité de démarrer plusieurs instances de Tyrs, en passant comme argument `« -a autre_compte »`. Le nombre de touches possibles peut dérouter au début, les plus communes sont rappelées sur une ligne en bas, désactivable bien sûr, mais un écran d’aide est disponible en appuyant sur « h ». Comme précisé en introduction, le maître‐mot est de laisser le choix au maximum à l’utilisateur, et la plupart des comportements sont configurables au travers d’un fichier de configuration. Un fichier de configuration est d’ailleurs généré au démarrage, afin de faciliter les premières personnalisations. Tyrs comprend de l’internationalisation, il est traduit en français et en espagnol. Si ce point peut paraître anecdotique, il ne l’est pas pour moi, car c’est à mon niveau un exemple concret des joies des logiciels libres, des possibilités de contributions et d’échanges humains de tous horizons. Ne parlant pas un mot d’espagnol, c’est effectivement une contribution venue tout droit du Venezuela qui est apportée à Tyrs. D’autres aides, pour rectifier mon anglais approximatif, ou encore des propositions de _patches_ et des rapports de bogues, ainsi que du l’empaquetage pour des distributions, notamment Frugalware. Des contributions et de l’aide qui sont toujours très appréciées, d’autant plus que c’est un petit projet. Si la programmation me passionne, j’ai également un autre centre d’intérêt qui est de tenir un _blog_. Si j’en parle ici, c’est non pas pour en faire une publicité, mais parce que je crois que [les sujets sur Tyrs](http://www.nicosphere.net/tag/tyrs/) sont révélateur de l’état d’esprit dans lequel je suis venu l’écrire. Parlant de ce petit programme la première fois très tôt dans sa conception, alors que la seule fonctionnalité était de pouvoir lire ses notices, sans même pouvoir en envoyer. On retrouve un peu sous forme de récit, les évolutions et les problèmes parfois rencontrés, avançant à tâtons, découvrant _ncurses_ pour Python. Pour l’installation, plus de détails sont sur [la page de documentation](http://tyrs.nicosphere.net/reference.html), [un paquet sur AUR](https://aur.archlinux.org/packages.php?ID=48849) est disponible pour Arch Linux et Frugalware. Dans le cas d’Arch Linux, il vous suffit de faire : ```bash yaourt -S tyrs ``` Tyrs étant principalement testé avec Python 2.7, je ne suis pas certain du résultat obtenu avec des versions de Python antérieures. Cependant, si vous avez cette version de Python et _pip_ installés vous pouvez faire : ```bash pip install tyrs ``` Tyrs n’est pas parfait, loin de là, et si j’attends d’être satisfait sur tous les détails pour écrire une dépêche ou un journal sur DLFP, je risquerais d’attendre longtemps. Comme vu au‐dessus, le support pour les Python antérieurs au 2.7 n’est pas vraiment testé. Un autre point noir est l’édition d’une notice, je ne suis vraiment pas satisfait du système de saisie. Je pense que je verrai à réécrire cette partie en profondeur, chose que je voulais faire depuis bien longtemps, mais toujours repoussée. Certainement d’autres bogues, fonction du coefficient de marée et de la répartition des papillons. Je me suis appliqué pour écrire Tyrs, et bien que souvent les logiciels libres viennent _[sans garantie](http://www.gnu.org/s/gsl/manual/html_node/No-Warranty.html)_, j’ai fait de mon mieux pour ne pas introduire de bogues. Pour sûr, j’y ai pris plaisir. Je suis preneur de tout retour, peu importe la forme : commentaires, rapport de bogues, correctifs. [1]: http://www.bitlbee.org/main.php/news.r.html [2]: http://www.floodgap.com/software/ttytter/ [3]: http://www.nicosphere.net/tag/tyrs/ [4]: http://www.gnu.org/s/gsl/manual/html_node/No-Warranty.html [5]: http://tyrs.nicosphere.net/reference.html [6]: http://pix.toile-libre.org/upload/original/1320604662.png [7]: https://aur.archlinux.org/packages.php?ID=48849