No recuerdo ahora mismo las funciones, pero tienes que añadir tu llamada al
main_loop de gtk
2011/1/20 Alexandre Filgueira <faidoc(a)gmail.com>
Buenas, acudo a vosotros para ver si me podriais
resolver un problema que
tengo con una pequeña utilidad que estoy haciendo en Python
Resulta que en mi residencia para poder tener internet hay que loguearse en
una web a la que eres redirigido al abrir el navegador y luego tienes que
mantener esa pagina siempre abierta, si la cierras tienes internet durante 5
minutos y luego se va.
Asi que me puse con este script y el problema es precisamente esos 5
minutos. Lo solucionaba haciendo un bucle con while y sleep, pero ahora
quiero ir un poco mas alla y estoy usando librerias GTK para hacerlo algo
mas profesional (por llamarlo de alguna manera xD).
Ahora tengo un programa que esta en la bandeja del sistema y dando boton
derecho tienes la opcion de Ejecutar (mas adelante lo pondre mejor).
El problema es que al darle a Ejecutar, el programa entra en una funcion y
se queda en el sleep, impidiendo que puedas hacer nada mas con el. El tema
es que creo que podria eliminar ese sleep si utilizase cookies (creo), pero
no estoy nada puesto en el tema y esta es la unica forma que se me ocurre
para que no se desconecte a los 5 minutos.
Estuve leyendo sobre la creacion de hilos en Python pero no consigo
implementarlo.
En fin, aqui os pongo el codigo que tengo a ver si se os ocurre algo.
Gracias
#!/usr/bin/env python
import pygtk
import gtk
import urllib2
import time
import threading
from twill.commands import go, fv, submit
class icono:
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("/home/faidoc/resa/resanator-gui/resanator-gui.glade")
self.iconobandeja = builder.get_object("iconobandeja")
self.menu = builder.get_object("menu")
self.acerca = builder.get_object("acerca")
builder.connect_signals(self)
def on_iconobandeja_activate(self, widget, data=None):
self.acerca.show()
def on_acerca_close(self, widget, other=None):
gtk.main_quit() #Esto no funciona, revisar.
def on_iconobandeja_popup_menu(self, widget, button, activate_time):
self.menu.popup(None, None, None, button, activate_time)
def on_ejecutar_activate(self, widget, data=None):
t = ejecutar()
t.start()
t.join()
def on_salir_activate(self, widget, data=None):
gtk.main_quit()
class ejecutar(threading.Thread):
#def __init__(self):
# threading.Thread.__init__(self)
def run(self):
while 1:
go('AQUI_VA_LA_URL_PARA_LOGIN')
try:
fv("1", "username", "USUARIO")
fv("1", "password", "CONTRASEÑA")
submit('0')
except urllib2.HTTPError, e:
sys.exit("%d: %s" % (e.code, e.msg))
except IOError, e:
print e
except:
pass
time.sleep(240)
if __name__ == "__main__":
icono()
gtk.main()
--
Alexandre Filgueira
www.linuxeame.net
PGP:
http://www.linuxeame.net/gpg/
_______________________________________________
GALPon mailing list
GALPon(a)listas.galpon.org
https://listas.galpon.org/cgi-bin/mailman/listinfo/galpon
--
@agonzalezro <http://twitter.com/agonzalezro>
Please, don't send me files with extensions: .doc, .docx, .xls, .xlsx, .ppt
and/or .pptx