Statistiques
| Branche: | Révision :

root / fftt2datas.pl @ master

Historique | Voir | Annoter | Télécharger (2,8 ko)

1 e6f3dae6 Romuald
#!/usr/bin/perl -w
2 e6f3dae6 Romuald
use strict;
3 e6f3dae6 Romuald
use warnings;
4 e6f3dae6 Romuald
5 e6f3dae6 Romuald
use Data::Dumper;
6 e6f3dae6 Romuald
use HTML::Parser;
7 e6f3dae6 Romuald
8 e6f3dae6 Romuald
my @lstEquipes;
9 e6f3dae6 Romuald
my @lstJournees;
10 e6f3dae6 Romuald
my %matchs;
11 e6f3dae6 Romuald
12 e6f3dae6 Romuald
sub searchEquipe {
13 e6f3dae6 Romuald
	my $equipe = shift;
14 e6f3dae6 Romuald
	my $i;
15 e6f3dae6 Romuald
16 e6f3dae6 Romuald
	if ($equipe && $#lstEquipes) {
17 e6f3dae6 Romuald
		for ($i = 0; $i < $#lstEquipes; $i++) {
18 e6f3dae6 Romuald
			last if ($lstEquipes[$i] eq $equipe);
19 e6f3dae6 Romuald
		}
20 e6f3dae6 Romuald
	}
21 e6f3dae6 Romuald
22 e6f3dae6 Romuald
	return ((defined($i) && $lstEquipes[$i] eq $equipe) ? $i : undef);
23 e6f3dae6 Romuald
}
24 e6f3dae6 Romuald
25 e6f3dae6 Romuald
{
26 e6f3dae6 Romuald
	my ($nomClub, $col, $journee, $stateJournees) = (0, 0, 0, 0);
27 e6f3dae6 Romuald
	my ($e1, $e2, $resu1, $resu2);
28 e6f3dae6 Romuald
	sub start {
29 e6f3dae6 Romuald
		my ($tag, $attr) = @_;
30 e6f3dae6 Romuald
		#print "START=$tag\n";
31 e6f3dae6 Romuald
		#while( my ($k, $v) = each %$attr ) {
32 e6f3dae6 Romuald
		#	print "<$tag> key: $k, value: $v.\n";
33 e6f3dae6 Romuald
		#}
34 e6f3dae6 Romuald
	}
35 e6f3dae6 Romuald
36 e6f3dae6 Romuald
	sub end {
37 e6f3dae6 Romuald
		my ($tag) = @_;
38 e6f3dae6 Romuald
		#print "END=$tag\n";
39 e6f3dae6 Romuald
	}
40 e6f3dae6 Romuald
41 e6f3dae6 Romuald
	sub text {
42 e6f3dae6 Romuald
		my ($text) = @_;
43 e6f3dae6 Romuald
		#print "TEXT=$text\n";
44 e6f3dae6 Romuald
		$nomClub = 1 if ($text eq 'Equipe');
45 e6f3dae6 Romuald
		$col = ($col + 1) % 10 if ($nomClub == 1 && $text !~ /\s*\r*\n+/);
46 e6f3dae6 Romuald
		if ($col == 1 && $text ne 'Equipe') {
47 e6f3dae6 Romuald
			$text =~ s/\xA0(.*)$/$1/; # suppression de l'espace insécable
48 e6f3dae6 Romuald
			$text = 'Exempt' if ($text eq '0');
49 e6f3dae6 Romuald
			print "equipe=$text\n";
50 e6f3dae6 Romuald
			push(@lstEquipes, $text);
51 e6f3dae6 Romuald
		}
52 e6f3dae6 Romuald
		if ($text =~ /Poule.* - .*n° (\d+) - du (..\/..\/..)/) {
53 e6f3dae6 Romuald
			$nomClub = 0;
54 e6f3dae6 Romuald
			$journee = $1;
55 e6f3dae6 Romuald
			print "journee $1 du $2\n";
56 e6f3dae6 Romuald
			push(@lstJournees, $2);
57 e6f3dae6 Romuald
			$stateJournees = 1;
58 e6f3dae6 Romuald
		} else {
59 e6f3dae6 Romuald
			if ($stateJournees == 1) {
60 e6f3dae6 Romuald
				if (defined($e1 = searchEquipe($text))) {
61 e6f3dae6 Romuald
					$stateJournees = 2;
62 e6f3dae6 Romuald
				}
63 e6f3dae6 Romuald
			} elsif ($stateJournees == 2) {
64 e6f3dae6 Romuald
				if (defined($e2 = searchEquipe($text))) {
65 e6f3dae6 Romuald
					$stateJournees = 3;
66 e6f3dae6 Romuald
				}
67 e6f3dae6 Romuald
			} elsif ($stateJournees == 3) {
68 e6f3dae6 Romuald
				$resu1 = $text;
69 e6f3dae6 Romuald
				$stateJournees = 4;
70 e6f3dae6 Romuald
			} elsif ($stateJournees == 4) {
71 e6f3dae6 Romuald
				my ($score1, $score2);
72 e6f3dae6 Romuald
				$resu2 = $text;
73 e6f3dae6 Romuald
				if ($resu1 =~ /\d+/ && $resu2 =~ /\d+/) {
74 e6f3dae6 Romuald
					if ($resu1 > $resu2) {
75 e6f3dae6 Romuald
						$score1 = 3;
76 e6f3dae6 Romuald
						$score2 = 1;
77 e6f3dae6 Romuald
					} elsif ($resu1 < $resu2) {
78 e6f3dae6 Romuald
						$score1 = 1;
79 e6f3dae6 Romuald
						$score2 = 3;
80 e6f3dae6 Romuald
					} else {
81 e6f3dae6 Romuald
						$score1 = 2;
82 e6f3dae6 Romuald
						$score2 = 2;
83 e6f3dae6 Romuald
					}
84 e6f3dae6 Romuald
				} else {
85 e6f3dae6 Romuald
					$resu1 = "";
86 e6f3dae6 Romuald
					$resu2 = "";
87 e6f3dae6 Romuald
					$score1 = "";
88 e6f3dae6 Romuald
					$score2 = "";
89 e6f3dae6 Romuald
				}
90 e6f3dae6 Romuald
				$matchs{$journee-1}{$e1.'-'.$e2} = "$resu1:$resu2:$score1:$score2".'::';
91 e6f3dae6 Romuald
				$stateJournees = 1;
92 e6f3dae6 Romuald
			}
93 e6f3dae6 Romuald
		}
94 e6f3dae6 Romuald
	}
95 e6f3dae6 Romuald
}
96 e6f3dae6 Romuald
97 e6f3dae6 Romuald
my $parser = HTML::Parser->new();
98 e6f3dae6 Romuald
99 e6f3dae6 Romuald
# définition des mes evenements
100 e6f3dae6 Romuald
$parser->handler( text  => \&text,  "dtext" );
101 e6f3dae6 Romuald
$parser->handler( start => \&start, "tagname,attr" );
102 e6f3dae6 Romuald
$parser->handler( end   => \&end,   "tagname" );
103 e6f3dae6 Romuald
 
104 e6f3dae6 Romuald
my $html = join('', <STDIN>);
105 e6f3dae6 Romuald
$parser->parse($html);
106 e6f3dae6 Romuald
107 e6f3dae6 Romuald
#print Dumper(\@lstEquipes);
108 e6f3dae6 Romuald
#print Dumper(\@lstJournees);
109 e6f3dae6 Romuald
#print Dumper(\%matchs);
110 e6f3dae6 Romuald
111 e6f3dae6 Romuald
my $fh;
112 e6f3dae6 Romuald
my $i;
113 e6f3dae6 Romuald
open($fh, '>', 'tmp/equipes') or die $!;
114 e6f3dae6 Romuald
foreach (@lstEquipes) {
115 e6f3dae6 Romuald
	print $fh $_."\n";
116 e6f3dae6 Romuald
}
117 e6f3dae6 Romuald
close($fh);
118 e6f3dae6 Romuald
119 e6f3dae6 Romuald
open($fh, '>', 'tmp/journees') or die $!;
120 e6f3dae6 Romuald
$i = 0;
121 e6f3dae6 Romuald
foreach (@lstJournees) {
122 e6f3dae6 Romuald
	$i++;
123 e6f3dae6 Romuald
	print $fh "tour n° $i du $_\n";
124 e6f3dae6 Romuald
}
125 e6f3dae6 Romuald
close($fh);
126 e6f3dae6 Romuald
127 e6f3dae6 Romuald
foreach my $journee (keys %matchs) {
128 e6f3dae6 Romuald
	foreach my $match (keys %{$matchs{$journee}}) {
129 e6f3dae6 Romuald
		open($fh, '>', "tmp/match-$journee-$match") or die $!;
130 e6f3dae6 Romuald
		print $fh $matchs{$journee}{$match};
131 e6f3dae6 Romuald
		close($fh);
132 e6f3dae6 Romuald
	}
133 e6f3dae6 Romuald
}