Script para obter um wallpaper de como está o globo em tempo real
Publicado por Renan (última atualização em 12/04/2010)
[ Hits: 6.261 ]
Download 1270770656.WorldSky.py (versão 2)
Script em Pygtk que baixa uma imagem do globo do site http://die.net mostrando onde está noite e onde está dia.
O script cria um ícone na bandeja para poder controlá-lo com opções como atualizar, parar, escolher a projeção e encerrar.
As escolhas de projeção são:
- Peters ( http://static.die.net/earth/peters/1600.jpg )
- Mollweide ( http://static.die.net/earth/mollweide/1600.jpg )
- Hemisfério ( http://static.die.net/earth/hemisphere/1600.jpg )
Versão 2 - Enviado por Renan em 08/04/2010
Changelog: Alterado para usar uma sintaxe anterior ao python versão 2.6.
Download 1270770656.WorldSky.py
#!/usr/bin/env python
#
# WorldSky.py
#
# Copyright 2010 Renan Vedovato Traba <hellupline@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
import os, gtk, glib, gconf, urllib2
__cache_path__ = os.path.join(os.environ['HOME'], ".cache", "wallpaper")
def download_file(url):
while True:
try:
return urllib2.urlopen(url).read()
except:
pass
return None
def update_wallpaper(image_url="http://static.die.net/earth/peters/1600.jpg"):
if not os.path.isdir(__cache_path__): os.mkdir(__cache_path__)
path = os.path.join(__cache_path__, "WorldSky.jpg")
with open(path, "w") as file: file.write(download_file(image_url))
background_key = "/desktop/gnome/background/picture_filename"
return gconf.client_get_default().set_string(background_key, path)
class WorldSky(object):
def __init__(self):
self.image_url = "http://static.die.net/earth/peters/1600.jpg"
self.refresh_cb(None); self.service = glib.timeout_add(1000*60*60, self.refresh_cb)
statusicon = gtk.StatusIcon()
statusicon.set_visible(True)
statusicon.set_from_stock(gtk.STOCK_ABOUT)
menu = gtk.Menu()
menu_item = gtk.ImageMenuItem(gtk.STOCK_REFRESH)
menu_item.connect('activate', self.refresh_cb)
menu.append(menu_item)
menu.append(gtk.SeparatorMenuItem())
menu_item = gtk.CheckMenuItem('Run')
menu_item.set_active(True)
menu_item.connect('toggled', self.toggled_cb)
menu.append(menu_item)
menu.append(gtk.SeparatorMenuItem())
menu_item = gtk.RadioMenuItem(None, 'Peters projection')
menu_item.set_active(True)
menu_item.connect('toggled', self.changed_cb, "http://static.die.net/earth/peters/1600.jpg")
menu.append(menu_item)
menu_item = gtk.RadioMenuItem(menu_item, 'Mollweide projection')
menu_item.connect('toggled', self.changed_cb, "http://static.die.net/earth/mollweide/1600.jpg")
menu.append(menu_item)
menu_item = gtk.RadioMenuItem(menu_item, 'Hemisphere projection')
menu_item.connect('toggled', self.changed_cb, "http://static.die.net/earth/hemisphere/1600.jpg")
menu.append(menu_item)
menu.append(gtk.SeparatorMenuItem())
menu_item_quit = gtk.ImageMenuItem(gtk.STOCK_QUIT)
menu_item_quit.connect('activate', self.quit_cb)
menu.append(menu_item_quit)
menu.show_all()
statusicon.connect('popup-menu', self.popup_menu_cb, menu)
gtk.main()
def refresh_cb(self, widget):
update_wallpaper(self.image_url)
def toggled_cb(self, widget):
if widget.get_active():
self.refresh_cb(None); self.service = glib.timeout_add(1000*60*60, self.refresh_cb)
else:
glib.source_remove(self.service)
return True
def changed_cb(self, widget, image_url):
if widget.get_active():
self.image_url = image_url
self.refresh_cb(None)
def quit_cb(self, widget):
gtk.main_quit()
def popup_menu_cb(self, status_icon, button, time, menu):
menu.popup(None, None, gtk.status_icon_position_menu, button, time, status_icon)
if __name__ == '__main__': WorldSky()
Gerador palpite Mega Sena v1.0
Painel com botões desligar, reiniciar, logoff e bloquear tela
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
\Boot sem espaço em disco (Fedora KDE Plasma 42) (5)
Preciso recuperar videos *.mp4 corrompidos (0)
Programa fora de escala na tela do pc (38)









