diff options
author | Anton Khirnov <wyskas@gmail.com> | 2009-08-16 13:45:11 +0200 |
---|---|---|
committer | Anton Khirnov <wyskas@gmail.com> | 2009-08-16 13:45:11 +0200 |
commit | 1762217e373c3562501207ad020f59079dc98469 (patch) | |
tree | 973b16947c8ebed0e328d9538380bbc2fc182f5a /nephilim/plugins/Lyrics.py | |
parent | 5582462159c20088368e1b74ecc41d3164704380 (diff) |
Lyrics: make available sites a property of the plugin
Diffstat (limited to 'nephilim/plugins/Lyrics.py')
-rw-r--r-- | nephilim/plugins/Lyrics.py | 32 |
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: |