Afficher sa timeline twitter

Depuis pas mal de temps, j'affiche ma timeline twitter sur mon blog en utilisant la widget de Twitter, mais cela ralentissait beaucoup trop l'affichage des pages (Google prend en compte la vitesse d'affichage des pages pour le référencement ...).

J'ai donc écrit ce petit script en perl qui récupère la timeline twitter :

1 #!/usr/bin/perl -w
 2 
 3 use strict;
 4 use XML::RSS;
 5 use LWP::Simple;
 6 use LWP::UserAgent;
 7 use utf8;
 8 use Encode;
 9 
 10 # create new instance of XML::RSS
 11 my $rss = new XML::RSS;
 12 my $ua = new LWP::UserAgent;
 13 $ua->agent("AgentName/0.1 " . $ua->agent);
 14 $ua = LWP::UserAgent->new( env_proxy => 1 );
 15 
 16 my $rdf1 = new HTTP::Request GET => 'http://twitter.com/statuses/user_timeline/67265165.rss';
 17 my $resRdf1 = $ua->request($rdf1);
 18 if($resRdf1->is_success)
 19 {
 20         $rss->parse($resRdf1->content);
 21 }
 22 else {die "Merde";}
 23 my $i=0;
 24 foreach my $item (@{$rss->{'items'}})
 25 {
 26     exit if($i==5);
 27     next unless defined($item->{'title'}) && defined($item->{'link'});
 28     $item->{'description'}=~/^itwars:\s(.*)/;
 29     print "<li>";
 30     print encode("utf8","<a href=\"$item->{'link'}\" target=\"new\">$1</a>\n");
 31     print "</li>";
 32     $i++;
 33 }
Celui-ci est exécuté périodiquement dans un cron et génère un fichier twitter.html dans mon répertoire de thème :
@hourly /root/rss-twitter.pl > /var/www/themes/theme-vincent/twitter.html
Puis, dans le fichier sidebar.php, j'ajoute le code suivant :
<?php include('twitter.html'); ?>
Et le tour est joué ... Modularité, rapidité !

Réponses

  • Bonjour,

    Je suis très intéressé par cette méthode. Je ne suis pas très doué en programmation.

    Questions :

    1- Le script, c'est un fichier en .js que tu inclus dans le début du header dans la balise head ?

    2- La tâche cron, où est-ce que l'on la met ? le header aussi ?

    Merci d'avance !

    Benjamin
  • Il faut disposer d'un accès admin sur le serveur d'hébergement.

    En gros, si tu as un hébergement mutualisé, ce n'est pas possible ;)
  • Merci de ta réponse, j'ai trouvé un moyen de le faire via un script ,js et du php, mais je le trouve lent, je vais essayer de trouver une alternative.
Connectez-vous ou Inscrivez-vous pour répondre.