Forse non tutti sanno che noi nerds Carpigiani (e non solo) abbiamo un ritrovo in realtime su irc, ovvero la madre di tutte le chat su Azzurra.net: #9h31.
Chiaramente, come ogni crew di nerd, abbiamo anche una pagina di stats che include le random quotes per ogni nick.
Tutto inizio’ con il sospetto fondatissimo di assmerica (in reallife Spigola) il quale affermava che il seme delle quotes non prendeva in considerazione tutte le frasi dette dall’inizio del log, ma solo quelle dell’ultimo periodo (pressa poco 1-2 giorni).
Effettivamente, osservando il comportamento di PISG, ho notato che Semolino non e’ poi’ cosi’ demente come immaginavo: mi sono messo quindi all’opera per capire dove cacchio fosse il punto incriminato.
Armato di tanta pazienza e di qualche scatola di grancereali(tm) sono giunto alla vittoria!
Parlando della versione 0.71 le modifiche da effettuare sono le seguenti:
nel file LogFile.pm situato nella cartella /opt/pisg/modules/Pisg/Parser:
Originale:
sub _trim_lines
{
my ($self, $lines) = @_;
foreach my $n (keys %{$lines->{sayings}}) {
my $x = @{$lines->{sayings}->{$n}};
splice(@{$lines->{sayings}->{$n}}, 0, ($x - 15)) if ($x > 30);
}
foreach my $n (keys %{$lines->{actionlines}}) {
my $x = @{$lines->{actionlines}->{$n}};
splice(@{$lines->{actionlines}->{$n}}, 0, ($x - 15)) if ($x > 30);
}
}
Modificato:
sub _trim_lines
{
#Modificato da Cagnulein
return;
my ($self, $lines) = @_;
foreach my $n (keys %{$lines->{sayings}}) {
my $x = @{$lines->{sayings}->{$n}};
splice(@{$lines->{sayings}->{$n}}, 0, ($x - 15)) if ($x > 30);
}
foreach my $n (keys %{$lines->{actionlines}}) {
my $x = @{$lines->{actionlines}->{$n}};
splice(@{$lines->{actionlines}->{$n}}, 0, ($x - 15)) if ($x > 30);
}
}
e
Originale:
sub _merge_lines
{
my ($self, $lines, $l) = @_;
foreach my $key (keys %$l) { # sayings, actionlines, etc.
foreach my $subkey (keys %{$l->{$key}}) {
push @{$lines->{$key}->{$subkey}}, @{$l->{$key}->{$subkey}};
my $x = @{$lines->{$key}->{$subkey}};
splice(@{$lines->{$key}->{$subkey}}, 0, ($x - 15)) if ($x > 30);
}
}
}
Modificato:
sub _merge_lines
{
my ($self, $lines, $l) = @_;
foreach my $key (keys %$l) { # sayings, actionlines, etc.
foreach my $subkey (keys %{$l->{$key}}) {
push @{$lines->{$key}->{$subkey}}, @{$l->{$key}->{$subkey}};
#Modificato da Cagnulein
#my $x = @{$lines->{$key}->{$subkey}};
#splice(@{$lines->{$key}->{$subkey}}, 0, ($x - 15)) if ($x > 30);
}
}
}
Ecco fatto! Semplice no?
Se non volete sbattimenti potete scaricarvi direttamente il file da modificare
Unica osservazione:l’utilizzo di memoria dello script potrebbe lievitare a dismisura in caso di file enormi. Nelle prove effettuato nel mio log da 25000+ lines non e’ cambiato praticamente niente…
Nerds love stats
VN:F [1.7.5_995]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.5_995]
Cagnulein Carpi, IRC, Linux, Servero, perl
Recent Comments