[caracas-pm] Fwd: enviar nota

francisco vasquez franjvasquezg at gmail.com
Thu Aug 5 13:55:46 PDT 2010


---------- Mensaje reenviado ----------
De: francisco vasquez <franjvasquezg at gmail.com>
Fecha: 6 de agosto de 2010 16:19
Asunto: enviar nota
Para: caracas-pm at pm.org


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 :


import urllib
import os
info="-*- Información publicada automáticamente mediante el script
'crearnota' de canaima:\n\n"
info+="-\n"
info+="----- Dispositivos conectados por PCI:\n"
info+="-\n"
info+=os.popen("lspci").read()
info+="-\n"
info+="----- Dispositivos conectados por puerto USB:\n\n"
info+="-\n"
info+=os.popen("lsusb").read()
info+="-\n"
info+="----- Información sobre su tarjeta gráfica:\n\n"
info+="-\n"
info+=os.popen("glxinfo").read()
info+="-\n"
info+="----- Información sobre su memoria RAM (en MB):\n\n"
info+="-\n"
info+=os.popen("free -m").read()
info+="-\n"
info+="----- Información sobre su espacio libre :\n\n"
info+="-\n"
info+=os.popen("df -h").read()
info+="-\n"
info+="----- Información sobre sus discos duros :\n\n"
info+="-\n"
info+=os.popen("fdisk -l").read()


params = urllib.urlencode({'codigo_form': info, 'titulo_form': "Desde
consola",'nombre_form': "nombre"})
f = urllib.urlopen("http://172.16.130.67:8000/enviar_consola", params)
print f.read()

como pueden ver amigos la inforación la guardan en un arreglo de
nombre info y luegos la envia a la maquina y creo que es en formato
html

tengo dos meses programando en perl e avanzado en lo siguiente compañeros

notas.pl

#!/usr/bin/perl -w

#   use strict;
  use Gtk2 -init;
  use Gtk2::GladeXML;

  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");
}

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;
} 	

y el canaima-notas2.glade es la interfaz gráfica


mis amigos solo necesito un poco de orientación que paquete o paquetes
de la CPAN podria utilizar para tal fin


muschas gracias de ante mano buen dia  8,)  pasenla bien.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/caracas-pm/attachments/20100806/9edccc46/attachment.html>


More information about the caracas-pm mailing list