[caracas-pm] caracas-pm Digest, Vol 73, Issue 2
francisco vasquez
franjvasquezg at gmail.com
Mon Aug 9 07:01:05 PDT 2010
Buen dia Nelo pana probé lo que me enviaste hermano claro hay que tomar en
cuenta lo que esto escribiendo es un cliente que recogeria datos del
sistema y luego se lo envio al servidor: lo probe y me arroja el siguiente
error
Can't call method "value" on an undefined value at
/usr/share/perl5/WWW/Mechanize.pm line 1397.
*** ignoring at ./canaima_notas23.pl line 53.
EL CODIGO ES EL siguiente no cambia mucho
la linea 53 del codigo es esta
Gtk2->main;
no se como interpretar el error hermano...!
#!/usr/bin/perl -w
=head1
####################
Sistema:Canaima GNU-Linux
Nombre:Canaima-notas
Autor:Equipo de Desarrolladores canaima
Descripción:Sistema que permite tomar comentarios del usuario final y ademas
datos del sistema
que permitiran ampliar el comnetario para una mejor evaluacion del equipo de
desarrollo
Fecha: 20/07/10
###################
=cut
# use strict;
use Gtk2 -init;
use Gtk2::GladeXML;
use WWW::Mechanize;
my $buffer_t ;
my $programa = Gtk2::GladeXML->new('canaima-notas2.glade');
my $ventana_principal = $programa->get_widget('ventana_principal');
my $t_titulo = $programa->get_widget('text_titulo');
my $t_autor = $programa->get_widget('text_autor');
# my $notas_t = $programa->get_widget('nota');#textview
my $boton_e = $programa->get_widget('boton_enviar');
my $boton_c = $programa->get_widget('boton_cancelar');
my $pci = $programa->get_widget('pci'); #lspci
my $usb = $programa->get_widget('usb'); #lsusb
my $dpkg = $programa->get_widget('dpkg'); #dpkg.log
my $term = $programa->get_widget('term'); #term.log
my $d_alma = $programa->get_widget('d_alma'); #dispositvo de
almacenamientoterm.lo
my $t_part = $programa->get_widget('t_part'); #tabla de particiones
my $Eprueba = $programa->get_widget('label4');
my $tit_aut = $programa->get_widget('label6');
my $n1 = $programa->get_widget('entry1');
my $n2 = $programa->get_widget('entry2');
my $n3 = $programa->get_widget('entry3');
my $n4 = $programa->get_widget('entry4');
my $n5 = $programa->get_widget('entry5');
my $n6 = $programa->get_widget('entry6');
my $n7 = $programa->get_widget('entry7');
my $n8 = $programa->get_widget('entry8');
my $n9 = $programa->get_widget('entry9');
my $n10 = $programa->get_widget('entry10');
my $n11 = $programa->get_widget('entry11');
my $n12 = $programa->get_widget('entry12');
my $n13 = $programa->get_widget('entry13');
my $n14 = $programa->get_widget('entry14');
my $n15 = $programa->get_widget('entry15');
my $n16 = $programa->get_widget('entry16');
$programa->signal_autoconnect_from_package('main');
$ventana_principal->show_all();
Gtk2->main;
sub on_boton_cancelar_clicked {Gtk2->main_quit;}
sub on_boton_enviar_clicked {
my $d_alma1 = $d_alma->get_active;
my $t_part1 = $t_part->get_active;
push (@informe,"****<<<< SISTEMA DE NOTAS CANAIMA >>>>****\n\n");
my $tex_1 = $n1->get_text();
my $w = &validar_nota($tex_1);
&datos_sistema($w);
my $t_titulo1 = $t_titulo->get_text();
my $t_autor1 = $t_autor->get_text();
my $e =&titulo_autor($t_titulo1,$t_autor1);
#creamos el archivo y almacenamos los datos
open (DATA, ">/tmp/notas_canaima.txt");
# Grabamos el archivo con los datos
foreach $dato (@informe)
{
print DATA $dato;
}
close(DATA);
chmod (0777, "/tmp/notas_canaima.txt");
my $url = "http://notas.canaima.softwarelibre.gob.ve/enviar_consola
";
my $mech = WWW::Mechanize->new();
$mech->get($url); # Obtener la página
$mech->form_name('f'); # Seleccionar el
formulario
$mech->field('codigo_form', $informe); # Llenar el campo de
texto
$mech->field('titulo_form', $t_titulo1);
$mech->field('nombre_form', "$t_autor1"); # Llenar el campo Name
/ Title
my $resultado = $mech->click(); # Enviar el
formulario haciendo click en el boton Send
}
sub validar_nota {
#asignaciones,reconsideracion,cuota_ipasme,fe_vida,constancia_estudio,homologacion,embargo,oficios,resol_jp,
#jubilacion_pension,pension_sobreviviente,resol_sob,pasivos_laborales
#---------------------------------------------------------------------------
my ($num)=@_;
my $w;
if ($num eq ""){
# push (@informe,"----- SIN NOTA DEL USUARIO: Por favor es
necesario una nota -----\n");
$Eprueba->set_markup("----- SIN NOTA DEL USUARIO: Por favor es
necesario una nota -----\n");
$w=1;
}else{
$w=0;
push (@informe,"----- NOTA DEL USUARIO -----\n");
$tex_1 = $n1->get_text();
$Eprueba->set_markup("");
push(@informe,$tex_1);
$tex_2 = $n2->get_text();
push(@informe,$tex_2);
$tex_3 = $n3->get_text();
push(@informe,$tex_3);
$tex_4 = $n4->get_text();
push(@informe,$tex_4);
$tex_5 = $n5->get_text();
push(@informe,$tex_5);
$tex_6 = $n6->get_text();
push(@informe,$tex_6);
$tex_7 = $n7->get_text();
push(@informe,$tex_7);
$tex_8 = $n8->get_text();
push(@informe,$tex_8);
$tex_9 = $n9->get_text();
push(@informe,$tex_9);
$tex_10 = $n10->get_text();
push(@informe,$tex_10);
$tex_11 = $n11->get_text();
push(@informe,$tex_11);
$tex_12 = $n12->get_text();
push(@informe,$tex_12);
$tex_13 = $n13->get_text();
push(@informe,$tex_13);
$tex_14 = $n14->get_text();
push(@informe,$tex_14);
$tex_15 = $n15->get_text();
push(@informe,$tex_15);
$tex_16 = $n16->get_text();
push(@informe,$tex_16);
}
return $w;
}
sub datos_sistema{
my $num=@_;
if ($num != 0){
my $pc1 = $pci->get_active;
if ($pc1 == 1) {
push (@informe,"----- Dispositivos PCI -----\n");
my @pci = qx(lspci);
push(@informe, at pci);
}
my $usb1 = $usb->get_active;
if ($usb1==1){
push (@informe,"----- Dispositivos USB -----\n");
my @usb = qx(lsusb);
push(@informe, at usb);
}
my $dpkg1 = $dpkg->get_active;
if($dpkg1==1){
push (@informe,"----- dpkg.log -----\n");
my @dpkg = qx(cat /var/log/dpkg.log);
push(@informe, at dpkg);
}
my $term1 = $term->get_active;
if($term1==1){
push (@informe,"----- term.log -----\n");
my @term = qx(cat /var/log/apt/term.log);
push(@informe, at term);
}
}
}
sub titulo_autor{
my ($t_titulo1,$t_autor1)=@_;
$Eprueba->set_markup("$t_titulo1,$t_autor1");
my $w;
if ($t_titulo1 eq ""){
my $w=1;
$tit_aut->set_markup("----- SIN TITULO PARA LA NOTA: Por
favor es necesario un Titulo-----\n");
}else{
my $w=0;
push (@informe,"----- TITULO USUARIO -----\n");
$tit_aut->set_markup("");
push(@informe,$t_titulo1);
}
if ($t_autor1 eq ""){
my $w=1;
$tit_aut->set_markup("----- SIN AUTOR PARA LA NOTA: Por
favor es necesario un Autor-----\n");
}else{
my $w=0;
push (@informe,"----- AUTOR DE LA NOTA -----\n");
$tit_aut->set_markup("");
push(@informe,$t_autor1);
}
foreach $i (@informe) {
print "$i\n";
}
return $w;
}
El 7 de agosto de 2010 14:30, <caracas-pm-request at pm.org> escribió:
> Send caracas-pm mailing list submissions to
> caracas-pm at pm.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://mail.pm.org/mailman/listinfo/caracas-pm
> or, via email, send a message with subject or body 'help' to
> caracas-pm-request at pm.org
>
> You can reach the person managing the list at
> caracas-pm-owner at pm.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of caracas-pm digest..."
>
>
> Today's Topics:
>
> 1. Re: notas 2 mensaje mas liviano (Nelo R. Tovar)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 6 Aug 2010 09:31:26 -0430
> From: "Nelo R. Tovar" <tovar.nelo at gmail.com>
> Subject: Re: [caracas-pm] notas 2 mensaje mas liviano
> To: francisco vasquez <franjvasquezg at gmail.com>
> Cc: caracas-pm at pm.org
> Message-ID:
> <AANLkTimEuRKO76uMD8j4k_5PSni9WW=sqM1DMHgSK0iq at mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Saludos.
>
> 2010/8/5 francisco vasquez <franjvasquezg at gmail.com>
>
> > Buenas tarde amigos :
> >
> > estoy migrado un programa echo python a Perl y este realiza llamados al
> > sistema operativo deb?an en una maquina local (lspci, lsusb, etc) y
> adem?s
> > permiter escribir una nota esto con el fin de ayudar a un usuario en caso
> > que tenga problemas tecnicos en su maquina y entonces con esa informacion
> > suministra ayudarlo toda esta informaci?n la guardo en un arreglo, mi
> > problema compa?eros como enviar informacion en el mismo formato que lo
> tiene
> > el codigo en phyton a un servidor. este es el codig? python :
> >
> >
> > Supongo que quieres colocar la informaci?n en un servicio parecido a
> pastebin.org.
> En http://pastebin.org/450975, tienes una versi?n en Perl del c?digo en
> Python que enviaste. En http://www.pastebin.org/450965, esta la salida del
> script (y enviado con el script).
> F?jate en el uso de WWW::Mechanize para el env?o de los datos usando los
> campos del formulario que usa pastebin.
>
> --
> Nelo R. Tovar
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://mail.pm.org/pipermail/caracas-pm/attachments/20100806/e4f83687/attachment-0001.html
> >
>
> ------------------------------
>
> _______________________________________________
> caracas-pm mailing list
> caracas-pm at pm.org
> http://mail.pm.org/mailman/listinfo/caracas-pm
>
> End of caracas-pm Digest, Vol 73, Issue 2
> *****************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/caracas-pm/attachments/20100810/cf07fd98/attachment-0001.html>
More information about the caracas-pm
mailing list