summaryrefslogtreecommitdiff
path: root/nephilim/plugins/Lyrics.py
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2009-08-16 13:45:11 +0200
committerAnton Khirnov <wyskas@gmail.com>2009-08-16 13:45:11 +0200
commit1762217e373c3562501207ad020f59079dc98469 (patch)
tree973b16947c8ebed0e328d9538380bbc2fc182f5a /nephilim/plugins/Lyrics.py
parent5582462159c20088368e1b74ecc41d3164704380 (diff)
Lyrics: make available sites a property of the plugin
Diffstat (limited to 'nephilim/plugins/Lyrics.py')
-rw-r--r--nephilim/plugins/Lyrics.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/nephilim/plugins/Lyrics.py b/nephilim/plugins/Lyrics.py
index 1fc1537..3d58c51 100644
--- a/nephilim/plugins/Lyrics.py
+++ b/nephilim/plugins/Lyrics.py
@@ -20,20 +20,13 @@ from PyQt4.QtCore import QVariant
import socket
import os
+import re
+import urllib
+from lxml import etree
from ..plugin import Plugin
from .. import misc
-_available_sites = []
-try:
- import re
- import urllib
- from lxml import etree
- _available_sites.append('lyricwiki')
- _available_sites.append('animelyrics')
-except ImportError:
- print 'Lyrics: error importing LyricWiki. Make sure that lxml is installed.'
-
class wgLyrics(QtGui.QWidget):
txtView = None # text-object
p = None # plugin
@@ -100,18 +93,25 @@ class wgLyrics(QtGui.QWidget):
class Lyrics(Plugin):
o = None
- sites = []
+ sites = {}
lyrics_dir = None
lyrics_path = None
DEFAULTS = {'sites' : QtCore.QStringList(['lyricwiki', 'animelyrics']), 'lyricdir' : '$musicdir/$songdir',
'lyricname' : '.lyrics_nephilim_$artist_$album_$title', 'store' : True}
+ __available_sites = {}
+
+ def __init__(self, parent, mpclient, name):
+ Plugin.__init__(self, parent, mpclient, name)
+
+ self.__available_sites['lyricwiki'] = self.__fetch_lyricwiki
+ self.__available_sites['animelyrics'] = self.__fetch_animelyrics
def _load(self):
self.o = wgLyrics(self)
- for site in _available_sites:
+ for site in self.__available_sites:
if site in self.settings().value('%s/sites'%self.name).toStringList():
- self.sites.append(site)
+ self.sites[site] = self.__available_sites[site]
self.connect(self.mpclient, QtCore.SIGNAL('song_changed'), self.refresh)
def _unload(self):
self.o = None
@@ -189,7 +189,7 @@ class Lyrics(Plugin):
lyrics = None
for site in self.sites:
self.logger.info('Trying %s.'%site)
- lyrics = eval('self.fetch_%s(song)'%site)
+ lyrics = self.sites[site](song)
if lyrics:
if self.settings().value(self.name + '/store').toBool():
self.save_lyrics_file(lyrics)
@@ -197,7 +197,7 @@ class Lyrics(Plugin):
self.emit(QtCore.SIGNAL('new_lyrics_fetched'), song, None)
- def fetch_lyricwiki(self, song):
+ def __fetch_lyricwiki(self, song):
url = 'http://lyricwiki.org/api.php?%s' %urllib.urlencode({'func':'getSong',
'artist':song.artist().encode('utf-8'), 'song':song.title().encode('utf-8'),
'fmt':'xml'})
@@ -219,7 +219,7 @@ class Lyrics(Plugin):
self.logger.error('Error downloading lyrics from LyricWiki: %s.'%e)
return None
- def fetch_animelyrics(self, song):
+ def __fetch_animelyrics(self, song):
url = 'http://www.animelyrics.com/search.php?%s'%urllib.urlencode({'q':song.artist().encode('utf-8'),
't':'performer'})
try: