本文整理汇总了Python中lollypop.cache.InfoCache.cache方法的典型用法代码示例。如果您正苦于以下问题:Python InfoCache.cache方法的具体用法?Python InfoCache.cache怎么用?Python InfoCache.cache使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lollypop.cache.InfoCache
的用法示例。
在下文中一共展示了InfoCache.cache方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _on_button_clicked
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def _on_button_clicked(self, button):
"""
Show file chooser
@param button as Gtk.button
"""
dialog = Gtk.FileChooserDialog()
dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
dialog.add_buttons(Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
dialog.set_transient_for(Lp().window)
self._close_popover()
response = dialog.run()
if response == Gtk.ResponseType.OK:
try:
f = Gio.File.new_for_path(dialog.get_filename())
(status, data, tag) = f.load_contents()
if not status:
raise
if self._album is not None:
Lp().art.save_album_artwork(data, self._album.id)
Lp().art.clean_album_cache(self._album)
Lp().art.album_artwork_update(self._album.id)
else:
for suffix in ["lastfm", "wikipedia", "spotify"]:
InfoCache.uncache_artwork(self._artist, suffix,
button.get_scale_factor())
InfoCache.cache(self._artist, None, data, suffix)
self._streams = {}
except Exception as e:
print("ArtworkSearch::_on_button_clicked():", e)
dialog.destroy()
示例2: set_content
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def set_content(self, prefix, content, image_url, suffix):
"""
populate widget with content
@param prefix as str
@param content as str
@param image url as str
@param suffix as str
@thread safe
"""
try:
data = None
stream = None
if content is not None:
if image_url is not None:
f = Gio.File.new_for_uri(image_url)
(status, data, tag) = f.load_contents(self._cancel)
if status:
stream = Gio.MemoryInputStream.new_from_data(data,
None)
else:
data = None
InfoCache.cache(prefix, content, data, suffix)
GLib.idle_add(self._set_content, content, stream)
except Exception as e:
print("InfoContent::set_content: %s" % e)
示例3: _on_reset_confirm
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def _on_reset_confirm(self, button):
"""
Reset cover
@param button as Gtk.Button
"""
self._infobar.hide()
if self._album is not None:
Lp().art.remove_album_artwork(self._album)
Lp().art.clean_album_cache(self._album)
Lp().art.emit('album-artwork-changed', self._album.id)
else:
for suffix in ["lastfm", "wikipedia", "spotify"]:
InfoCache.uncache_artwork(self._artist, suffix,
button.get_scale_factor())
InfoCache.cache(self._artist, None, None, suffix)
Lp().art.emit('artist-artwork-changed', self._artist)
self._close_popover()
示例4: _on_activate
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def _on_activate(self, flowbox, child):
"""
Use pixbuf as cover
Reset cache and use player object to announce cover change
"""
data = self._datas[child.get_child()]
self._close_popover()
if self._album is not None:
Lp().art.save_album_artwork(data, self._album.id)
Lp().art.clean_album_cache(self._album)
Lp().art.album_artwork_update(self._album.id)
else:
for suffix in ["lastfm", "wikipedia", "spotify"]:
InfoCache.uncache_artwork(self._artist, suffix,
flowbox.get_scale_factor())
InfoCache.cache(self._artist, None, data, suffix)
self._streams = {}
示例5: _cache_artists_art
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def _cache_artists_art(self):
"""
Cache artwork for all artists
"""
# We create cache if needed
InfoCache.init()
# Then cache artwork for lastfm/wikipedia/spotify
# We cache content as the same time
# TODO Make this code more generic
for (artist_id, artist) in Lp().artists.get([]):
debug("ArtDownloader::_cache_artists_art(): %s" % artist)
if not Gio.NetworkMonitor.get_default().get_network_available() or\
InfoCache.exists_in_cache(artist):
continue
if Lp().lastfm is not None:
try:
(url, content) = Lp().lastfm.get_artist_infos(artist)
if url is not None:
s = Gio.File.new_for_uri(url)
(status, data, tag) = s.load_contents()
if status:
InfoCache.cache(artist, content, data, "lastfm")
except:
InfoCache.cache(artist, None, None, "lastfm")
if ArtDownloader.Wikipedia is not None:
try:
wp = ArtDownloader.Wikipedia()
(url, content) = wp.get_page_infos(artist)
if url is not None:
s = Gio.File.new_for_uri(url)
(status, data, tag) = s.load_contents()
if status:
InfoCache.cache(artist, content, data, "wikipedia")
except:
InfoCache.cache(artist, None, None, "wikipedia")
url = self.get_spotify_artist_artwork(artist)
if url is not None:
s = Gio.File.new_for_uri(url)
(status, data, tag) = s.load_contents()
if status:
InfoCache.cache(artist, None, data, "spotify")
self._cache_artists_running = False
示例6: _on_activate
# 需要导入模块: from lollypop.cache import InfoCache [as 别名]
# 或者: from lollypop.cache.InfoCache import cache [as 别名]
def _on_activate(self, flowbox, child):
"""
Use pixbuf as cover
Reset cache and use player object to announce cover change
"""
try:
data = self._datas[child.get_child()]
self._close_popover()
if self._album is not None:
Lp().art.save_album_artwork(data, self._album.id)
else:
for suffix in ["lastfm", "wikipedia", "spotify"]:
InfoCache.uncache_artwork(self._artist, suffix,
flowbox.get_scale_factor())
InfoCache.cache(self._artist, None, data, suffix)
Lp().art.emit('artist-artwork-changed', self._artist)
self._streams = {}
except:
self._infobar_label.set_text(_("Reset artwork?"))
self._infobar.show()
# GTK 3.20 https://bugzilla.gnome.org/show_bug.cgi?id=710888
self._infobar.queue_resize()