domenica 28 febbraio 2010

Sopperire alle mancanze di Infostrada: un piccolo script python


Non so chi di voi abbia Libero Infostrada come provider adsl ma a me ha veramente stancato: connessione lenta e frequenti scomodi "salti" della portante.
Per ovviare in parte al secondo problema, cioè per evitare di ricaricare continuamente la pagina web per vedere se la connessione internet è "tornata", oggi ho scritto in 10 minuti un piccolissimo script che semplicemente controlla la connessione e vi informa (tramite il sistema di notifiche di Gnome) quando "trova" la connessione internet.
Ve lo posto qui interamente tanto è piccolissimo. Spero che questo sia utile a qualche sfortunato che come me usa Libero....

#!/usr/bin/env python
#2/2010 by cando

import socket
import pynotify
import sys
import time

def notify(text, title='Attendi',urgency=pynotify.URGENCY_NORMAL):
notification = pynotify.Notification(title, text)
notification.set_urgency(urgency)
if not notification.show():
print "Failed to send notification"
sys.exit(1)


def main():

text = 'Controllo la connessione internet...'
notify(text)

while 1:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('www.google.com', 80))
except Exception, e:
#hostname can't be resolved!
time.sleep(1)
continue
#ok there is connection!
title = 'Connessione internet trovata'
text = 'Ora puoi connetterti!!'
notify(text, title, pynotify.URGENCY_CRITICAL)
sys.exit(0)

if __name__ == '__main__':
if not pynotify.init('web'):
sys.exit(1)
main()

Nessun commento:

Posta un commento