#!/bin/perl -w -T
# Generar popup de aviso para los de IE
# Versión Perl por Daniel Clemente
# Septiembre 2005. Tercera versión en Perl+sh para mejorar el uso de memoria
# (ya que tener thttpd+Perl+Python+txt2tags todo junto consume mucho)
# Mira también genpopup3.html (es el .sh). Versiones ant: genpopup{1,2}.html
#
# Esto es GPL.
#
#
#use strict;
# no está en mi chroot
my $TEMP="/tmp/popuptemp.t2t";
my $DONDE_DEJAR_COMANDO="/tmp/comando_txt2tags";
my ($buffer, @pairs, $pair, %FORM);
$buffer=shift;
#print "Recibida cadena: $buffer\n";
@pairs = split(/&/, $buffer);
#print STDERR "He leído array @pairs \n";
foreach $pair (@pairs) {
my ($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<([^>]|\n)*>//g;
$value =~ s/<//g;
$value =~ s/>//g;
$FORM{$name} = $value;
# print STDERR "FORM de $name vale $value\n";
}
#my $orden = substr($FORM{'orden'},0,10);
#$orden =~ s/\D//g;
my ($orden) = $FORM{'orden'} =~ /^(\d{0,10})/;
$orden||='';
#print STDERR "Orden: $orden\n";
my %loc=(); # largo o corto. Se va a llenar con lo que hay en $FORM{o1,...}
for my $opc (1..5) {
$loc{$opc}='';
if (defined $FORM{"o$opc"}) {
$loc{$opc}= ( $FORM{"o$opc"} eq 'c' ? 'c':'l' );
}
}
undef %FORM;
$ENV{'PATH'}=''; # los pondré absolutos
my @nom= (qw/ intr malo alts otrs coms /);
my @quiero=(); # etiquetas a extraer
push @quiero, 'cabe';
foreach my $car (split //,$orden) {
my $tag=$nom[ $car - 1 ];
$tag .= '-' . $loc{$car} ;
push @quiero, $tag;
}
push @quiero,'firm-t';
# Pensaba usar http://www.danielclemente.com/dislines/
# pero esto valdrá:
open (T2T,">",$TEMP);
open DI, "<", "../navega/popup.t2t";
while(<DI>){
my $l=$_;
if ( ( grep { $l=~/^\@{.*\b$_\b/ } @quiero ).../^\@}/ ) {
print T2T unless /^\@/;
}
}
close DI;
close T2T;
# Escribir comando
open (COM,">",$DONDE_DEJAR_COMANDO);
print COM
'/bin/nice -n10 /bin/python -S '.
"/bin/txt2tags -o - -i $TEMP ".
' --encoding=utf-8'.
( (grep /^coms-l$/,@quiero) ? ' --toc':'' )
;
close COM;
# fin de todo
syntax highlighted by Code2HTML, v. 0.9.1