mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-04 23:03:59 +00:00
Fix album loading.
This commit is contained in:
@@ -93,8 +93,8 @@ class BrowserIntegration(QtCore.QThread):
|
||||
if action == "init":
|
||||
self.emit(QtCore.SIGNAL("init(int)"), args)
|
||||
elif action == "openalbum":
|
||||
self.tagger.thread_assist.proxy_to_main(self.tagger.load_album,
|
||||
(args["id"],))
|
||||
self.tagger.thread_assist.proxy_to_main(
|
||||
self.tagger.load_album, args["id"])
|
||||
else:
|
||||
self.log.warning("Unknown browser integration event %r", action)
|
||||
|
||||
|
||||
@@ -480,12 +480,13 @@ class Tagger(QtGui.QApplication, ComponentManager, Component):
|
||||
if files:
|
||||
self.remove_files(files)
|
||||
|
||||
def load_album(self, id, refresh=False):
|
||||
def load_album(self, id):
|
||||
"""Load an album specified by MusicBrainz ID."""
|
||||
album = self.get_album_by_id(id)
|
||||
if album:
|
||||
return album
|
||||
album = Album(id, _("[loading album information]"), None)
|
||||
self.albums.append(album)
|
||||
self.connect(album, QtCore.SIGNAL("track_updated"), self, QtCore.SIGNAL("track_updated"))
|
||||
self.emit(QtCore.SIGNAL("album_added"), album)
|
||||
self.thread_assist.spawn(self.__load_album_thread, album)
|
||||
@@ -625,11 +626,8 @@ class Tagger(QtGui.QApplication, ComponentManager, Component):
|
||||
self.config.setting["proxy_server_port"])
|
||||
kwargs['opener'] = urllib2.build_opener(
|
||||
urllib2.ProxyHandler({'http': http}))
|
||||
if cached:
|
||||
return CachedWebService(cache_dir=self.cache_dir,
|
||||
**kwargs)
|
||||
else:
|
||||
return WebService(**kwargs)
|
||||
return CachedWebService(cache_dir=self.cache_dir, force=not cached,
|
||||
**kwargs)
|
||||
|
||||
def lookup_cd(self):
|
||||
self.set_wait_cursor()
|
||||
|
||||
@@ -25,9 +25,10 @@ from musicbrainz2.webservice import WebService
|
||||
class CachedWebService(WebService):
|
||||
"""This class provides a cached wrapper around ``WebService``."""
|
||||
|
||||
def __init__(self, cache_dir='.', **kwargs):
|
||||
def __init__(self, cache_dir='.', force=False, **kwargs):
|
||||
"""Constructor."""
|
||||
WebService.__init__(self, **kwargs)
|
||||
self.force = force
|
||||
self._cache_dir = cache_dir
|
||||
if not os.path.isdir(self._cache_dir):
|
||||
try:
|
||||
@@ -40,7 +41,7 @@ class CachedWebService(WebService):
|
||||
"""Query the web service."""
|
||||
url = self._makeUrl(entity, id_, include, filter, version)
|
||||
filename = self._make_cache_filename(url)
|
||||
if not os.path.isfile(filename):
|
||||
if self.force or not os.path.isfile(filename):
|
||||
stream = WebService.get(self, entity, id_, include, filter, version)
|
||||
try:
|
||||
outfile = open(filename, 'wb')
|
||||
@@ -58,7 +59,7 @@ class CachedWebService(WebService):
|
||||
def post(self, entity, id_, data, version='1'):
|
||||
url = self._makeUrl(entity, id_, version=version, type_=None)
|
||||
filename = self._make_cache_filename(url + data)
|
||||
if not os.path.isfile(filename):
|
||||
if self.force or not os.path.isfile(filename):
|
||||
stream = WebService.post(self, entity, id_, data, version)
|
||||
try:
|
||||
outfile = open(filename, 'wb')
|
||||
@@ -79,7 +80,7 @@ class CachedWebService(WebService):
|
||||
|
||||
def get_from_url(self, url):
|
||||
filename = self._make_cache_filename(url)
|
||||
if not os.path.isfile(filename):
|
||||
if self.force or not os.path.isfile(filename):
|
||||
stream = self._opener.open(url)
|
||||
try:
|
||||
outfile = open(filename, 'wb')
|
||||
|
||||
Reference in New Issue
Block a user