From ded8496439c0a1bfa2d244470cbd99113b8e84be Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 13 Oct 2020 13:49:22 +0200 Subject: Port to PyQt5. --- nephilim/plugins/Lyrics.py | 55 ++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 24 deletions(-) (limited to 'nephilim/plugins/Lyrics.py') diff --git a/nephilim/plugins/Lyrics.py b/nephilim/plugins/Lyrics.py index 35bb477..b569094 100644 --- a/nephilim/plugins/Lyrics.py +++ b/nephilim/plugins/Lyrics.py @@ -15,7 +15,7 @@ # along with Nephilim. If not, see . # -from PyQt4 import QtGui, QtCore, QtNetwork +from PyQt5 import QtGui, QtWidgets, QtCore, QtNetwork import os import re @@ -25,7 +25,7 @@ from ..plugin import Plugin from .. import common, metadata_fetcher from .. import icons -class LyricsWidget(QtGui.QWidget): +class LyricsWidget(QtWidgets.QWidget): #public lyrics_loaded = None @@ -40,20 +40,20 @@ class LyricsWidget(QtGui.QWidget): #### private def __init__(self, plugin): - QtGui.QWidget.__init__(self) + QtWidgets.QWidget.__init__(self) self.plugin = plugin self.logger = plugin.logger self.curLyrics = '' - self.__label = QtGui.QLabel(self) + self.__label = QtWidgets.QLabel(self) self.__label.setWordWrap(True) # add text area - self.__text_view = QtGui.QTextEdit(self) + self.__text_view = QtWidgets.QTextEdit(self) self.__text_view.setReadOnly(True) # add toolbar - self.__toolbar = QtGui.QToolBar('Lyrics toolbar', self) + self.__toolbar = QtWidgets.QToolBar('Lyrics toolbar', self) self.__toolbar.setOrientation(QtCore.Qt.Vertical) self.__toolbar.addAction(QtGui.QIcon(':icons/refresh.png'), 'Refresh lyrics', self.plugin.refresh) @@ -64,9 +64,9 @@ class LyricsWidget(QtGui.QWidget): self.__toolbar.addAction(QtGui.QIcon(':icons/save.png'), 'Save lyrics', self.__save_lyrics) self.__toolbar.addAction(QtGui.QIcon(':icons/delete.png'), 'Delete stored file', self.plugin.del_lyrics_file) - self.setLayout(QtGui.QGridLayout()) + self.setLayout(QtWidgets.QGridLayout()) self.layout().setSpacing(0) - self.layout().setMargin(0) + self.layout().setContentsMargins(0, 0, 0, 0) self.layout().addWidget(self.__toolbar, 0, 0, -1, 1, QtCore.Qt.AlignTop) self.layout().addWidget(self.__label, 0, 1) self.layout().addWidget(self.__text_view, 1, 1) @@ -155,44 +155,44 @@ class Lyrics(Plugin): # store lyrics groupbox - self.store = QtGui.QGroupBox('Store lyrics.') + self.store = QtWidgets.QGroupBox('Store lyrics.') self.store.setToolTip('Should %s store its own copy of lyrics?'%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 lyrics - self.lyricdir = QtGui.QLineEdit(self.settings.value('lyricdir')) + self.lyricdir = QtWidgets.QLineEdit(self.settings.value('lyricdir')) self.lyricdir.setToolTip('Where should %s store lyrics.\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 lyricname' %common.APPNAME) - self.lyricname = QtGui.QLineEdit(self.settings.value('lyricname')) + self.lyricname = QtWidgets.QLineEdit(self.settings.value('lyricname')) self.lyricname.setToolTip('Filename for %s lyricsfiles.\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('Lyrics directory'), 0, 0) + self.store.layout().addWidget(QtWidgets.QLabel('Lyrics directory'), 0, 0) self.store.layout().addWidget(self.lyricdir, 0, 1) - self.store.layout().addWidget(QtGui.QLabel('Lyrics filename'), 1, 0) + self.store.layout().addWidget(QtWidgets.QLabel('Lyrics filename'), 1, 0) self.store.layout().addWidget(self.lyricname, 1, 1) # fetchers list fetchers = self.settings.value('fetchers') - self.fetcherlist = QtGui.QListWidget(self) - self.fetcherlist.setDragDropMode(QtGui.QAbstractItemView.InternalMove) + self.fetcherlist = QtWidgets.QListWidget(self) + self.fetcherlist.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove) for fetcher in fetchers: - it = QtGui.QListWidgetItem(fetcher) + it = QtWidgets.QListWidgetItem(fetcher) it.setCheckState(QtCore.Qt.Checked) self.fetcherlist.addItem(it) for fetcher in self.plugin.available_fetchers: if not fetcher.name in fetchers: - it = QtGui.QListWidgetItem(fetcher.name) + it = QtWidgets.QListWidgetItem(fetcher.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 = 'Sites', tooltip = 'A list of sources used for fetching lyrics.\n' 'Use drag and drop to change their priority.') @@ -308,9 +308,12 @@ class FetchLyricwiki(metadata_fetcher.MetadataFetcher): __apiaddress = 'http://lyrics.wikia.com/api.php' def fetch(self, song): + query = QtCore.QUrlQuery() + query.setQueryItems([('func', 'getArtist'), ('artist', song['?artist']), + ('fmt', 'xml'), ('action', 'lyrics')]) + url = QtCore.QUrl(self.__apiaddress) - url.setQueryItems([('func', 'getArtist'), ('artist', song['?artist']), - ('fmt', 'xml'), ('action', 'lyrics')]) + url.setQuery(query) self.fetch2(song, url) self.rep.finished.connect(self.__handle_artist_res) @@ -328,9 +331,11 @@ class FetchLyricwiki(metadata_fetcher.MetadataFetcher): return self.finish() self.logger.info('Found artist: %s'%artist) + query = QtCore.QUrlQuery() + query.setQueryItems([('action', 'lyrics'), ('func', 'getSong'), ('artist', artist), + ('song', self.song['?title']), ('fmt', 'xml')]) url = QtCore.QUrl(self.__apiaddress) - url.setQueryItems([('action', 'lyrics'), ('func', 'getSong'), ('artist', artist), - ('song', self.song['?title']), ('fmt', 'xml')]) + url.setQuery(query) self.rep = self.nam.get(QtNetwork.QNetworkRequest(url)) self.rep.finished.connect(self.__handle_search_res) self.rep.error.connect(self.handle_error) @@ -370,8 +375,10 @@ class FetchAnimelyrics(metadata_fetcher.MetadataFetcher): name = 'Animelyrics' def fetch(self, song): + query = QtCore.QUrlQuery() + query.setQueryItems([('t', 'performer'), ('q', song['?artist'])]) url = QtCore.QUrl('http://www.animelyrics.com/search.php') - url.setQueryItems([('t', 'performer'), ('q', song['?artist'])]) + url.setQuery(query) self.fetch2(song, url) self.rep.finished.connect(self.__handle_search_res) -- cgit v1.2.3