Tyrs, premier jet d’un client Twitter NCurses

EDIT: Find the full documentation, on the Tyrs official site

Tyrs est un client pour Twitter, en console, basé sur ncurse, c’est à dire qu’il prend en compte l’espace total de la console pour dispositionner les éléments et non pas de façon linéaire. On en ressent une meilleur interactivité, un peu plus proche des programmes GUI, mais tout en restant en console.

Alors qu’il existe pas mal de client pour Twitter en mode console, CLI, les client ncurses se font plus rare.

Pour une fois, j’ai essayé de ne pas sortir un nom à rallonge, donc ce client se nomme Tyrs, signifiant simplement Twitter python curse, et comme on pourrait le deviner, il est écrit en python avec la bibliothèque curse.

A qui s’adresse Tyrs ?

Comme suggéré dans le titre du billet, c’est vraiment un premier jet, l’application ne comporte pas encore énormément de fonctionnalité (même pas encore la possibilité de retweeter, c’est peu dire) et comporte encore bien des bugs… De là, l’application, pour le moment, s’adresser plus à des personnes pas trop exigeante, voulant voir quelque chose d’autre, et surtout, n’aillant pas peur d’utiliser quelques chose d’encore assez expérimental. Mais tyrs commence à être utilisable dans l’état.

Certain pourrait se demander alors pourquoi en faire une présentation si tôt, je répondrais que je crois au bon vieux proverbe, « release early, release often ».

Avant de rentrer un peu plus dans le détail, un petit screenshot de rigueur afin d’avoir une idée de ce dont on parle.

tyrs small Tyrs, premier jet dun client Twitter NCurses

[troll] wouhou, ça faisait longtemps que je n’avais pas mis d’images sur mon blog [/troll]

Les fonctionnalités

Bon, faut bien avouer, que pour le moment, elles sont réduites au strict minimum, on peut en gros, suivre sa timeline, c’est à dire les tweets que l’on suit, et envoyer un tweet.

L’application supporte les couleurs, notamment le highlight des tags ‘#’ et des ‘@’, pour une lecture simplifié.

L’authentification avec le système oauth est simplifié et assez user-friendly, le prompt fournis un lien, vous donnez le code pin correspondant, et l’application se charge du reste, c’est à dire, va sauvegarder vos paramètres dans un fichier spécifique.

Une petite documentation reprends en détail les touches et fonction disponible. (voir doc/ sur Github)

Pour résumer rapidement: j, k, flèche haut et bas pour naviguer ; t pour tweeter (entrer pour valider, échappe pour annuler) q ou échappe pour quitter l’application.

Rien de bien folichon pour le moment donc…

La configuration

J’ai essayé de mettre un peu l’accent sur la personnalisation, qui passe évidemment par un fichier de configuration. Le format utilisé est simple (le module ConfigParser de python). On peut donc configurer pour le moment:

  • Les couleurs
  • Les raccourcis clavier, par défauts sont à la vim-like, mais je suis sûr que les utilisateurs de bépo auront à cœur de changer cela dans la configuration.
  • Quelques paramètres tel que la fréquence de rafraîchissement de la timeline.

Un exemple complet et commenté de configuration est fournis sur Github, dans doc/tyrs.sample.cfg. Notez qu’il n’est pas impératif d’avoir un fichier de conf pour utiliser Tyrs. Le fichier de configuration doit se trouver dans votre ~/.config/tyrs/tyrs.cfg.

L’installation

Si vous êtes sur Arch Linux, l’installation est on ne peut plus simple, puisque dès à présent disponible sur AUR, il vous suffit donc un petit :

yaourt -S tyrs

Sinon, deux possibilités pour essayer ou installer Tyrs :

  • Sans vraiment l’installer

On récupère les sources, puis on lance le fichier d’entrer comme suit, si vous n’avez pas git d’installer, vous pouvez prendre un tarball sur github, et le décompresser.

Note: Vous pouvez récupérer la tarball utilisé pour archlinux. tyrs.0.1.0.tar.gz EDIT: des versions sont sortie depuis. tyrs.0.1.2.tar.gz

git clone git://github.com/Nic0/tyrs.git
cd tyrs
./tyrs/tyrs.py
  • En l’installant
git clone git://github.com/Nic0/tyrs.git
cd tyrs
python2 setup.py build
sudo python2 setup.py install

Attention le « python2 » est assez spécifique à Arch Linux, il ne suivent pas trop la nomenclature des autres là dessus… il est possible que si vous êtes sur Debian/Ubuntu un « python » suffise.

Les dépendances

La seul dépendance requise est python-twitter, qui est dépendant lui de Oauth. Pour ArchLinux, c’est simple, tout est dans AUR, il suffit d’installer tyrs avec yaourt, et les dépendances seront satisfaite. Pour Debian, je ne suis pas certain, Il y a une page pour Debian sur ce lien. Pour Ubuntu il semblerai qu’il soit disponible dans les dépôts, dont un petit coup d’apt-get devrait suffire.

EDIT: Notez que Python-twitter est lui même dépendant de python-oauth2, il convient donc de satisfaire cette dépondance également.

Et voilà, il vous suffit de lancer l’application pour démarrer l’interaction de l’authentification d’oauth.

Quelques bogues connus

Pour certain, c’est plus des choses que je n’ai pas eu le temps de voir.

  • Perd l’affichage en cas de redimensionnement de la fenêtre ;
  • Plante en cas de coupure de réseau ;
  • Quelques problèmes d’affichage ;
  • des > qui passe pas ;
  • sûrement des tas d’autres.

Pour aller plus loin

Plusieurs cas de figures.

Ça vous semble intéressant, mais pas encore assez aboutis pour vos besoins/envies, pas de problème, vous pouvez toujours revenir plus tard, je ferais quelques annonces de sorties majeurs sur le blog.

Pour ceux voulant suivre un peu de plus près, j’ai mis en place une liste de discussion sur google, j’y placerai les sorties, chose que je vais pas forcément faire sur le blog à chaque fois, l’intérêt est surtout de garder un archivage assez propre grâce aux listes, de même si vous avez des questions, demandes d’aide, ou discussions sur une nouvelle fonctionnalités, c’est le parfait endroit. N’hésitez pas à vous y abonner, ce n’est pas cette liste qui encombrera vos mails, juste quelques annonces de temps à autres.

Un bugtracker est nativement prévu sur github, je compte bien l’utiliser, même (et surtout) pour moi.

Je n’ai pas beaucoup parler du code en lui même, contrairement à pas mal de mes billets. Si vous souhaitez lire le code, il est sur github, puisque c’est libre, vous pouvez donc lire, redistribuer, forker, corriger, ‘fin les 4 libertés cher à Stallman quoi. J’ai essayé de le commenté suffisement, et je devrais faire un peu de ménage dedans bientôt. (et sûrement rajouter un doxygen).

Pour sûr, je vais continuer, selon le temps disponible, dans un premier temps à corriger les soucis, et rajouter quelques fonctionnalités incontournable, tel que pour retweeter ou répondre. Des fonctionnalités tel que le support identi.ca n’est pas spécialement prévu pour le moment… cela dit, je crois avoir vu une API python pour ça.

Voilà, pour une petite présentation d’un tout début de petit projet, tout retours est appréciable.

Vus : 1371
Publié par Nicolas Paris : 149