Twitter – formatage

Sous un nom pareil, plein de choses peuvent être dites.

Ici dans mon cas c’est assez simple, je désirais formater la sortie twitter du client texte BTI pour l’afficher avec conky de la façon que je voulais précisément:

  • Suppression des liens (c’est juste de l’affichage je ne sais pas cliquer dessus)
  • Coupage après un nombre défini de caractères et de préférence pas en plein milieu d’un mot

En extra si possible un jour je ferai j’ai fait :

  • Une analyse permettant de voir selon si ou coupe avant ou après le mot on se retrouve le plus proche du chiffre désiré pour la césure et agir en fonction de ça
  • Pouvoir fournir un paramètre et neutraliser la suppression de liens (histoire de l’utiliser en console par exemple)

Voilà tout ça pour finir par vous donner un petit script en Perl (je n’avais plus l’habitude, mais il me semblait être le langage le plus approprié pour ce genre de traitement de chaine de caractère.

#!/usr/bin/perl
#impose de coder plus 'proprement' selon moi (my pr déclarer var)
use strict;

#on recupère le résultat de la commande bti (on prend que 2 lignes)
my $string = `bti --action friends | head -n 2`;

#On remplace tout les liens par 'link'
$string =~ s/(http:\/\/[a-z0-9-_.\/\?=&#%+:,~]*)/link/gi;

#On splitte sur les \n (séparer les 2 lignes de bti)
my @lines = split (/\n/,$string);
foreach my $line (@lines){

#pour chaque ligne, on splitte les mots
	my @mots = split (/ /,$line);
	my $recompose = '';
	foreach my $mot (@mots){

#on rajoute chaque fois le mot a la ligne en replaçant un espace
		$recompose .= "$mot ";

#Si la ligne dépasse 35 caractères on l'affiche et on vide le tampon
		if (length $recompose >= 35){
			print "$recompose\n";
			$recompose = '';
		}
	}

#On affiche ce qu'il pourrait rester du tampon
	print "$recompose\n\n";
}

Une version améliorée de ce script est disponible ici, à vous de voir laquelle vous préférez.

Avant :

[olisushi] A des nouveaux cheveux, 
mais suis pas maquillee ajd, 
je ne peux decemment pas 
montrer ma tete... [lgnap] Geekeries 
diverses » Twitter – "formatage" 
#conky #bti http://bit.ly/aCc1Md 

Après :

[olisushi] A des nouveaux cheveux, 
mais suis pas maquillee ajd, je ne 
peux decemment pas montrer ma tete... 

[lgnap] Geekeries diverses » Twitter 
– "formatage" #conky #bti link 

Il y a un monde de différence entre les deux scripts quand même non ?

Et dans conky grâce à tout ceci cela donne ça :

ConkyBti

ConkyBti

Dû à un twitt de ma TL, j’ai changé les extraits/screenshots présents dans cet article. Veuillez pardonner si manque de synchronisation entre les screenshots et/ou extraits. L’ancien screenshot

ConkyTwitter

Pas mal le rendu nan ?

Posted in Linux by El Gnap at August 12th, 2010.
Tags: , , , , ,

5 Responses to “Twitter – formatage”

  1. […] This post was mentioned on Twitter by L Gnap ✔, L Gnap ✔. L Gnap ✔ said: Geekeries diverses » Twitter – formatage http://bit.ly/aCc1Md […]

  2. supperdd says:

    salut ça fais un moment que j’essaye de faire ce qui est decrit ds ton post , pourrais tu donner plus d’infos sur la mise en oeuvre de ton “twitter formatage”
    ex quelle config pour bti et quelles parametre pour conky merci d’avance

  3. El Gnap says:

    Hélas BTI ne supporte pas la Oauth et ne peut donc plus fonctionner depuis qques mois à cause du changement de la politique de twitter.
    Selon ta distrib tu auras peut être accès à twidge (sur ubuntu/debian chez moi) qui fait un peu un truc du mm genre et une sortie pas bien différente de BTI.

    N’oublie pas que j’ai aussi un formatage v2 un peu plus ‘intelligent’ disponible ici.

    Sinon pour conky c’est très simple tu utilises la fonction/variable ${execi 10 /path/vers/tonscript.pl} pour en afficher le contenu avec un rappel du script toutes les 10 secondes par exemple

  4. El Gnap says:

    Bonjour, après avoir un peu regardé je me suis rendu compte que :
    Je me suis trompé : BTI supporte la OAuth maintenant.
    Et pour me faire pardonner, je t’ai fait un article sur comment mettre en place la OAuth de BTI
    mais également un article sur comment reformatter la sortie de Twidge pour pouvoir l’utiliser comme tu aurais utilisé BTI.

    J’espère que ça suffira pour me faire pardonner ;-)