Tyrs, un client de micro‐blogging en console

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
22
7
nov.
2011
Internet

Tyrs est un client de micro‐blogging, supportant les services Twitter et Status.net (identi.ca), le tout en console et surtout utilisant 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. Tyrs est donc un logiciel libre.

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, 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, 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.

Screenshot de Tyrs

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, 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 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, un paquet sur AUR est disponible pour Arch Linux et Frugalware. Dans le cas d’Arch Linux, il vous suffit de faire :

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 :

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, 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.

  • # Un soft que j'aurais voulu écrire

    Posté par . Évalué à 3.

    Cool, je vais aller regarder ça !

  • # Question sur la version de Python

    Posté par . Évalué à -1.

    Pourquoi ne pas avoir utiliser la version 3.0 de Python pour écrire ton programme?
    Peut-être parce que c'est la version 2.7 qui est installé en standard sur ta distribution?

  • # Alternatives à Tyrs

    Posté par (page perso) . Évalué à 1.

    Bonjour,

    J'ai été un utilisateur de Tyrs pendant plusieurs mois, mais je n'ai pas été complètement satisfait ... Entre autre les cadres qui entourent chaque tweets :(

    Depuis, j'ai basculé vers termTTER, qui propose les mêmes fonctionnalités, Twitter, irc, pleins de plugin, le tout en Ruby.

    J'ai fait un petit article sur mon blog à ce sujet : http://www.it-wars.com/?article212/twitter-en-mode-console

    Cordialement,
    Vincent

    • [^] # Re: Alternatives à Tyrs

      Posté par (page perso) . Évalué à 6.

      Entre autre les cadres qui entourent chaque tweets :(

      La réponse est presque dans la dépêche :

      Les bordures ne vous plaisent pas, trop d'espaces entre les notices, les couleurs vous font mal aux yeux ? Le tout est configurable[...]

      Il suffit de mettre dans le fichier de configuration (ce que je fais pour moi d'ailleurs, je ne suis pas fan de bordures également)

      tweet_border  = 0
      
      

      Pour termTTER, je l'avais essayé également, tout comme TTYtter, il ne se base pas sur du ncurses.
  • # install sur ubuntu 11.04

    Posté par (page perso) . Évalué à 2.

    Installé avec pip (que je ne connais pas, donc je ne sais pas trop ce qu'il a fait)
    Il a fallu un sudo pour que ça passe (ça semble normal pour une installation)
    J'ai dû aussi installer python-distutils-extra.
    Et à l'exec, il semble qu'il ne sache pas où se trouvent les modules python à ouvrir.
    Comme moi non plus je ne sais pas où il les a mis ...

    $/usr/bin$ python tyrs 
    Traceback (most recent call last):
      File "tyrs", line 11, in <module>
        from src.tyrs import main
    ImportError: No module named src.tyrs
    
    

    Une idée ?

    • [^] # Re: install sur ubuntu 11.04

      Posté par (page perso) . Évalué à 2.

      J'ai fait fonctionné Tyrs avec Ubuntu 11.04 également, et probablement que l'installation ne s'est pas bien passé ici.

      J'ai déplacé le problème sur un rapport de bug de github car je doute que la résolution de ce genre de problème intéresse les lecteurs de linuxfr.

      Une alternative si tu veux l'essayer sans l'installer est de cloner le dépôt git, et de lancer tyrs directement dans le répertoire obtenu.

      $ git clone git://github.com/Nic0/tyrs.git
      $ cd tyrs
      $ python tyrs
      
      
      • [^] # Re: install sur ubuntu 11.04

        Posté par (page perso) . Évalué à 1.

        Ah, ça ça marche.
        Et zut, je ne peux pas le tester, je suis derrière le GFW Chinois, et l'accès à twitter est pour le moins aléatoire ... Grumf...

  • # Diantre!

    Posté par (page perso) . Évalué à 4.

    Une copie d'écran graphique d'un logiciel en texte!

    Ben alors, il y a pas un export html des consoles? Haro sur le riri!

    ⚓ À g'Auch TOUTE! http://agauch.online.fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.