#!/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