def _geturl(self, url):
#print "*** %s" % (url)
Query._ratelimit()
- f = urllib.urlopen(url)
- ret = simplejson.load(f)
- f.close()
+ try:
+ f = urllib.urlopen(url)
+ ret = simplejson.load(f)
+ f.close()
+ except Exception, e:
+ return None
return ret
def __str__(self):
self.work = []
def _fetch_cover(self, albumid, size):
- coverdir = _COVERDIR if _COVERDIR else '/tmp'
- to = os.path.join(coverdir, '%d-%d.jpg'%(albumid, size))
- if not os.path.isfile(to):
- url = _GET2+'image/album/redirect/?id=%d&imagesize=%d'%(albumid, size)
- urllib.urlretrieve(url, to)
- return to
+ try:
+ coverdir = _COVERDIR if _COVERDIR else '/tmp'
+ to = os.path.join(coverdir, '%d-%d.jpg'%(albumid, size))
+ if not os.path.isfile(to):
+ url = _GET2+'image/album/redirect/?id=%d&imagesize=%d'%(albumid, size)
+ urllib.urlretrieve(url, to)
+ return to
+ except Exception, e:
+ return None
def request_cover(self, albumid, size, cb):
self.cond.acquire()
multi = len(work) > 1
for albumid, size, cb in work:
cover = self._fetch_cover(albumid, size)
- cb(albumid, size, cover)
- if multi:
- time.sleep(1.0)
+ if cover:
+ cb(albumid, size, cover)
+ if multi:
+ time.sleep(1.0)
class CoverCache(object):
"""
self.add(self.panarea)
+ self.create_menu()
+
+ def create_menu(self):
+ def on_player():
+ from playerwindow import open_playerwindow
+ open_playerwindow()
+ self.menu = hildon.AppMenu()
+ player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ player.set_label("Open player")
+ player.connect("clicked", on_player)
+ self.menu.append(player)
+ self.menu.show_all()
+ self.set_app_menu(self.menu)
+
def get_item_text(self, item):
if isinstance(item, jamaendo.Album):
return "%s - %s" % (item.artist_name, item.name)
def __init__(self):
hildon.StackableWindow.__init__(self)
self.set_title("Search")
+ self.idmap = {}
vbox = gtk.VBox(False, 0)
hbox.pack_start(self.entry, True, True, 0)
hbox.pack_start(btn, False)
vbox.pack_start(hbox, False)
-
-
self.add(vbox)
- self.idmap = {}
+ self.create_menu()
+
+ def create_menu(self):
+ def on_player():
+ from playerwindow import open_playerwindow
+ open_playerwindow()
+ self.menu = hildon.AppMenu()
+ player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ player.set_label("Open player")
+ player.connect("clicked", on_player)
+ self.menu.append(player)
+ self.menu.show_all()
+ self.set_app_menu(self.menu)
def mode_changed(self, selector, user_data):
pass
postoffice.connect('album-cover', self, self.on_album_cover)
postoffice.notify('request-album-cover', self.album.ID, 300)
+ self.create_menu()
+
self.show_all()
+ def create_menu(self):
+ def on_player():
+ from playerwindow import open_playerwindow
+ open_playerwindow()
+ self.menu = hildon.AppMenu()
+ player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ player.set_label("Open player")
+ player.connect("clicked", on_player)
+ self.menu.append(player)
+ self.menu.show_all()
+ self.set_app_menu(self.menu)
+
def on_destroy(self, wnd):
postoffice.disconnect('album-cover', self)
#search.connect("clicked", self.on_search)
#self.menu.append(search)
- #player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
- #player.set_label("Open player")
- #player.connect("clicked", self.on_player)
- #self.menu.append(player)
+ player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
+ player.set_label("Open player")
+ player.connect("clicked", self.on_player)
+ self.menu.append(player)
player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
player.set_label("Favorites")
def destroy(self, widget):
postoffice.disconnect('request-album-cover', self)
+ self.save_settings()
gtk.main_quit()
def show_about(self, w, win):