diff options
Diffstat (limited to 'nephilim/plugins/AlbumCover.py')
-rw-r--r-- | nephilim/plugins/AlbumCover.py | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/nephilim/plugins/AlbumCover.py b/nephilim/plugins/AlbumCover.py index b4302bc..c576c56 100644 --- a/nephilim/plugins/AlbumCover.py +++ b/nephilim/plugins/AlbumCover.py @@ -15,8 +15,8 @@ # along with Nephilim. If not, see <http://www.gnu.org/licenses/>. # -from PyQt4 import QtGui, QtCore, QtNetwork -from PyQt4.QtCore import pyqtSignal as Signal +from PyQt5 import QtGui, QtWidgets, QtCore, QtNetwork +from PyQt5.QtCore import pyqtSignal as Signal import os @@ -24,7 +24,7 @@ from ..plugin import Plugin from .. import common, metadata_fetcher, song from .. import icons -class AlbumCoverWidget(QtGui.QLabel): +class AlbumCoverWidget(QtWidgets.QLabel): "cover - QPixmap or None" cover = None "is there a (non-default) cover loaded?" @@ -37,13 +37,13 @@ class AlbumCoverWidget(QtGui.QLabel): _menu = None # popup menu def __init__(self, plugin): - QtGui.QLabel.__init__(self) + QtWidgets.QLabel.__init__(self) self.plugin = plugin self.logger = plugin.logger self.setAlignment(QtCore.Qt.AlignCenter) # popup menu - self._menu = QtGui.QMenu('album') + self._menu = QtWidgets.QMenu('album') self._menu.addAction('&Select cover file...', self.plugin.select_cover) self._menu.addAction('&Refresh cover.', self.plugin.refresh) self._menu.addAction('&View in a separate window.', self.__view_cover) @@ -76,7 +76,7 @@ class AlbumCoverWidget(QtGui.QLabel): def __view_cover(self): if not self.cover_loaded: return - win = QtGui.QLabel(self, QtCore.Qt.Window) + win = QtWidgets.QLabel(self, QtCore.Qt.Window) win.setScaledContents(True) win.setPixmap(self.cover) win.show() @@ -85,7 +85,7 @@ class AlbumCoverWidget(QtGui.QLabel): if not self.cover_loaded: return cover = self.cover - file = QtGui.QFileDialog.getSaveFileName(None, '', QtCore.QDir.homePath()) + file = QtWidgets.QFileDialog.getSaveFileName(None, '', QtCore.QDir.homePath()) if file: self.plugin.save_cover_file(cover, file) @@ -155,44 +155,44 @@ class AlbumCover(Plugin): self.settings.beginGroup(self.plugin.name) # store covers groupbox - self.store = QtGui.QGroupBox('Store covers.') + self.store = QtWidgets.QGroupBox('Store covers.') self.store.setToolTip('Should %s store its own copy of covers?'%common.APPNAME) self.store.setCheckable(True) self.store.setChecked(int(self.settings.value('store'))) - self.store.setLayout(QtGui.QGridLayout()) + self.store.setLayout(QtWidgets.QGridLayout()) # paths to covers - self.coverdir = QtGui.QLineEdit(self.settings.value('coverdir')) + self.coverdir = QtWidgets.QLineEdit(self.settings.value('coverdir')) self.coverdir.setToolTip('Where should %s store covers.\n' '${musicdir} will be expanded to path to MPD music library (as set by user)\n' '${songdir} will be expanded to path to the song (relative to ${musicdir}\n' 'other tags same as in covername' %common.APPNAME) - self.covername = QtGui.QLineEdit(self.settings.value('covername')) + self.covername = QtWidgets.QLineEdit(self.settings.value('covername')) self.covername.setToolTip('Filename for %s cover files.\n' 'All tags supported by MPD will be expanded to their\n' 'values for current song, e.g. ${title}, ${track}, ${artist},\n' '${album}, ${genre} etc.'%common.APPNAME) - self.store.layout().addWidget(QtGui.QLabel('Cover directory'), 0, 0) + self.store.layout().addWidget(QtWidgets.QLabel('Cover directory'), 0, 0) self.store.layout().addWidget(self.coverdir, 0, 1) - self.store.layout().addWidget(QtGui.QLabel('Cover filename'), 1, 0) + self.store.layout().addWidget(QtWidgets.QLabel('Cover filename'), 1, 0) self.store.layout().addWidget(self.covername, 1, 1) # sites list fetchers = self.settings.value('fetchers') - self.fetcherlist = QtGui.QListWidget(self) + self.fetcherlist = QtWidgets.QListWidget(self) self.fetcherlist.setDragDropMode(QtGui.QAbstractItemView.InternalMove) for site in fetchers: - it = QtGui.QListWidgetItem(site) + it = QtWidgets.QListWidgetItem(site) it.setCheckState(QtCore.Qt.Checked) self.fetcherlist.addItem(it) for site in self.plugin.available_fetchers: if not site.name in fetchers: - it = QtGui.QListWidgetItem(site.name) + it = QtWidgets.QListWidgetItem(site.name) it.setCheckState(QtCore.Qt.Unchecked) self.fetcherlist.addItem(it) - self.setLayout(QtGui.QVBoxLayout()) + self.setLayout(QtWidgets.QVBoxLayout()) self.layout().addWidget(self.store) self._add_widget(self.fetcherlist, label = 'Fetchers', tooltip = 'A list of sources used for fetching covers.\n' 'Use drag and drop to change their priority.') @@ -290,7 +290,7 @@ class AlbumCover(Plugin): return self.__abort_fetch() - file = QtGui.QFileDialog.getOpenFileName(None, + file = QtWidgets.QFileDialog.getOpenFileName(None, 'Select album cover for %s - %s'%(song['?artist'], song['?album']), self.__cover_dir, '') if not file: @@ -323,12 +323,16 @@ class FetcherLastfm(metadata_fetcher.MetadataFetcher): self.song = song if not 'artist' in song or not 'album' in song: return self.finish() + + query = QtCore.QUrlQuery() + query.setQueryItems([('api_key', 'beedb2a8a0178b8059cd6c7e57fbe428'), + ('method', 'album.getInfo'), + ('artist', song['artist']), + ('album', song['album']), + ('mbid', song['?MUSICBRAINZ_ALBUMID'])]) url = QtCore.QUrl('http://ws.audioscrobbler.com/2.0/') - url.setQueryItems([('api_key', 'beedb2a8a0178b8059cd6c7e57fbe428'), - ('method', 'album.getInfo'), - ('artist', song['artist']), - ('album', song['album']), - ('mbid', song['?MUSICBRAINZ_ALBUMID'])]) + url.setQuery(query) + self.fetch2(song, url) self.rep.finished.connect(self.__handle_search_res) @@ -342,7 +346,7 @@ class FetcherLastfm(metadata_fetcher.MetadataFetcher): if xml.name() == 'image' and xml.attributes().value('size') == 'extralarge': url = QtCore.QUrl() # the url is already percent-encoded try: - url.setEncodedUrl(xml.readElementText()) + url.setUrl(xml.readElementText()) except TypeError: #no text url = None if xml.hasError(): |