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.009 ]
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()
Consumo de memória por processo
Botnet em Python sem segredos!
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (14)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)