09 mars 2006

Firefox come back

Julien Bijoux était persuadé qu'il ne reviendrait plus à Firefox, ou du moins qu'il ne l'utiliserait plus pendant un petit moment étant donné le fait que Safari lui convenait assez bien.
Il s'est trompé ce Baka! Comment a t'il pu laisser tomber ce fidèle allié ?
Au hasard de mes pérégrination tombé sur un blog fermé pour durée indeterminé qui recensait les extensions utilisés par ses fans. Je suis tombé sur le livehttpheaders qui m'aurait été bien utile pour un petit hack que j'avais fait pour obtenir en perl le calendrier qui est situé sur le portail de mon école... Supinfo ne faisant pas les choses à moitié, j'ai dû fouiner dans du html horrible et marcher à tatons afin de créer un petit script potable.
Si j'avais utilisé Firefox et son livehttpheaders, j'aurais gagné quelques heures. C'est décidé, je ne m'en sépare plus. Cette extension comme son nom l'indique permet de capturer le dialogue http entre votre navigateur et le serveur.
Un must have pour l'utilisation conjointe avec LWP!.
By the way, here is the source of my little dirty script :

#!/usr/bin/perl
#Le module Crypt::SSLeay doit etre installe
use strict ;
use warnings;
use HTTP::Message;
use HTTP::Cookies;
use HTML::Form;
use LWP::UserAgent;
use Proc::Simple;
use Encode;
my $nick="*****";
my $passwd="*****";
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt",autosave => 1));
my $url ="https://*******Login.aspx";
my $planning="http://****";
$ua->agent("Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)");
my @forms = HTML::Form->parse($ua->get($url));
my $form=shift(@forms);
$form->method("POST");
$form->enctype("application/x-www-form-urlencoded");
$form->value('actor_login1:txtNick',$nick);
$form->find_input("actor_login1:txtPass","password")->value($passwd);
$ua->request($form->click);
my $mess = HTTP::Message->parse(($ua->get($planning))->content());
my $string= $mess->decoded_content("iso-8859-15");
open (my $HANDLEF,">","./planning.html") ;select($HANDLEF);
print encode("iso-8859-15", (HTTP::Message->parse(($ua->get($planning))->content())->decoded_content((charset=>'iso-8859-15',default_charset=>'iso-8859-15',raise_error=>1))));
close($HANDLEF); Proc::Simple->new();->start("/Applications/Firefox.app/Contents/MacOS/firefox","planning.html");

Pour des raisons evidentes de confidentialité, les paramètres ont été masqués, je ne
veux pas avoir de problèmes avec l'école... Si vous voulez le script, et/ou l'améliorez envoyez moi un mail : julien point bijoux [at] supinfo {point} com

Aucun commentaire: