#!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; use HTML::TreeBuilder; use Getopt::Long; no warnings 'utf8'; my %CONF; GetOptions( \%CONF, "username=s", "password=s" ) or die << 'USAGE'; Options disponibles : --username --password USAGE my $m = WWW::Mechanize->new; # formulaire de login $m->get('https://secure.skype.com/store/member/login.html'); die $m->res->status_line unless $m->success; # remplissage et validation $m->set_fields( username => $CONF{username}, password => $CONF{password}, ); $m->click; die $m->res->status_line unless $m->success; # vérification que l'identification est réussie { my $ok = 0; $m->cookie_jar->scan( sub { $ok++ if $_[1] eq 'loggedin' } ); die "Echec d'identification : mauvais Pseudo Skype ou mot de passe ?\n" unless $ok; } # y a-t-il un cadeau pas encore récupéré ? if ( $m->content !~ /Today is not SkypeOut Gift Day/ && $m->content !~ /you already received your gift/ ) { # affiche le message print localtime() . " - Connecte-toi à ta page Skype !\n\n"; print map { $_->as_text } HTML::TreeBuilder ->new_from_content( $m->content ) ->look_down( _tag => 'div', class => 'freeskypeday' ); # valide le formulaire if ( $m->current_form && $m->current_form->action =~ /givepromotion\.html$/ ) { $m->submit; die $m->res->status_line unless $m->success; # affiche les détails print map { $_->as_text } HTML::TreeBuilder ->new_from_content( $m->content ) ->look_down( _tag => 'h1' ); } }