Si ok, l’immagine accanto non è proprio della nasa1, ma un pò di autopromozione me la concedete? eccheccristo ![]()
Grazie ad un utente di friendfeed (boltz), sono venuto a conoscenza di uno script in python che ci consente di settare in automatico lo sfondo del nostro desktop prelevando una bellissima immagine dal sito apod (Astronomy Picture Of the Day).
Il sito di cui sopra è uno dei tanti siti nasa che ogni giorno pubblica una immagine astronomica tra le più belle dell’archivio.
Per chi è appassionato di astronomia può essere bello voler settare come sfondo l’immagine del giorno, e doverlo fare quasi ogni giorno a lungo andare può risultare alquanto scomodo.
Lo script in questione si connette in questo sito, preleva l’immagine, e la setta direttamente come sfondo del desktop.
#! /usr/bin/env python## Stefano Lacaprara <lacaprara@pd.infn.it> INFN Padova## Script to get the astronomy picture of the day from# http://apod.nasa.gov/apod/ and set it as desktop background in a gnome# environment# It saves the images in ~/Private/AstroPicture/ : does not check for directory existence#import gconfimport osimport mimetypesclass GConfClient:def __init__ (self):self.__client__ = gconf.client_get_default()def get_background (self):return self.__client__.get_string(“/desktop/gnome/background/picture_filename”)def set_background (self, background):self.__client__.set_string(“/desktop/gnome/background/picture_filename”, background)import urllib2import reimport osurl = “http://apod.nasa.gov/apod/”page = “astropix.html”try:f = urllib2.urlopen(url+page).read()except urllib2.URLError:print “cannot open %s”,url+pageabortm = re.compile(“image/\w+/[\w-]+.jpg”).search(f)if m:print ‘Match found: ‘, m.group()try:jpg=urllib2.urlopen(url + m.group()).read()except:print “Error”jpgname=(m.group()).replace(“image/”,”").replace(“/”,”_”)filename=os.environ.get(‘HOME’) + “/Private/AstroPicture/” + jpgnameif (not os.path.exists(filename)):file=open(filename, “w”)file.write(jpg)print “JPG “, jpgname, ” saved to “,filenamefile.close()client = GConfClient()client.set_background(filename)else:print ‘No match’
ATTENZIONE: Il codice qui sopra l’ho inserito solo per libera consultazione, se volete lo script prelevatelo da qui, wordpress purtroppo non mi mantiene le identazioni del codice e quindi in esecuzione darà errore. Chrome infine vi dirà che il file se scaricato potrebbe danneggiare il vostro pc, potete ignorare il warning e scaricarlo tranquillamente, fidatevi ![]()
AGGIORNAMENTO: Mi è stato detto che è stata creata una nuova versione dello script col controllo sull’esistenza della cartella di parcheggio dei files, lo trovate qui.
Come possiamo vedere dal codice qui sopra lo script salva i files scaricati in ~/Private/AstroPicture ma attenzione che non fa il controllo sull’esistenza di questa cartella (ci sono lettori python-powered disposti ad aggiungerlo?) quindi dobbiamo prima crearla. Leggere sopra….
Chi vuole può inserire questo script nelle sessioni di gnome dentro Sistema, Preferenze, Applicazioni d’avvio (o di kde ma non mi ricordo dove si trova
), io l’ho inserito e fino adesso non ho ancora trovato una immagine che non mi piace ![]()
- è uno degli scatti miei più riusciti
[↩]
| |













Dove hai copiato lo script?
L'hai messo non identato!!!!!!
l'ho copiato dalla mia shell e non si è portato le identazioni, è un problema? gli a capo ci sono quindi è leggibile.
Trattandosi di python la mancanza di indentazione potrebbe essere un problema visto che fa parte della sintassi.
E' leggibile ma non comprensibile fino in fondo. I blocchi di istruzioni sono nascosti dalla mancanza di indentazione per cui vedo ne problematica l'esecuzione.
riotamd@riotamd-desktop:~$ ./nasa_wallpaper
File “./nasa_wallpaper”, line 14
def __init__ (self):
^
IndentationError: expected an indented block
a me da questo problema
chiedo venia, essendo profano di python non sapevo di questa cosa, cerco di rimediare il prima possibile
è un problema di identazione come già detto sopra
adesso risolvo
chiedo venia, essendo profano di python non sapevo di questa cosa, cerco di rimediare il prima possibile
è un problema di identazione come già detto sopra
adesso risolvo