From b562a12cb72938ee68ac1a4db404b4a01385c4df Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Thu, 14 Mar 2013 16:35:41 +0100 Subject: [PATCH] [booblyrics] back to get_object, all backends are fillobj-compliant --- modules/parolesmusique/backend.py | 12 +++++++++++- modules/seeklyrics/__init__.py | 20 ++++++++++++++++++++ modules/seeklyrics/backend.py | 12 +++++++++++- weboob/applications/booblyrics/booblyrics.py | 10 +--------- 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/modules/parolesmusique/backend.py b/modules/parolesmusique/backend.py index c80ab7b4..8f328c17 100644 --- a/modules/parolesmusique/backend.py +++ b/modules/parolesmusique/backend.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.capabilities.lyrics import ICapLyrics +from weboob.capabilities.lyrics import ICapLyrics, SongLyrics from weboob.tools.backend import BaseBackend from .browser import ParolesmusiqueBrowser @@ -42,3 +42,13 @@ class ParolesmusiqueBackend(BaseBackend, ICapLyrics): def iter_lyrics(self, criteria, pattern): return self.browser.iter_lyrics(criteria,pattern.encode('utf-8')) + + def fill_songlyrics(self, songlyrics, fields): + if 'content' in fields: + sl = self.get_lyrics(songlyrics.id) + songlyrics.content = sl.content + return songlyrics + + OBJECTS = { + SongLyrics:fill_songlyrics + } diff --git a/modules/seeklyrics/__init__.py b/modules/seeklyrics/__init__.py index 3ca63d63..d4538162 100644 --- a/modules/seeklyrics/__init__.py +++ b/modules/seeklyrics/__init__.py @@ -1,3 +1,23 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2013 Julien Veyssier +# +# This file is part of weboob. +# +# weboob is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# weboob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with weboob. If not, see . + + from .backend import SeeklyricsBackend __all__ = ['SeeklyricsBackend'] diff --git a/modules/seeklyrics/backend.py b/modules/seeklyrics/backend.py index 054f186e..beb7b279 100644 --- a/modules/seeklyrics/backend.py +++ b/modules/seeklyrics/backend.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -from weboob.capabilities.lyrics import ICapLyrics +from weboob.capabilities.lyrics import ICapLyrics, SongLyrics from weboob.tools.backend import BaseBackend from .browser import SeeklyricsBrowser @@ -44,3 +44,13 @@ class SeeklyricsBackend(BaseBackend, ICapLyrics): def iter_lyrics(self, criteria, pattern): return self.browser.iter_lyrics(criteria,quote_plus(pattern.encode('iso-8859-1'))) + + def fill_songlyrics(self, songlyrics, fields): + if 'content' in fields: + sl = self.get_lyrics(songlyrics.id) + songlyrics.content = sl.content + return songlyrics + + OBJECTS = { + SongLyrics:fill_songlyrics + } diff --git a/weboob/applications/booblyrics/booblyrics.py b/weboob/applications/booblyrics/booblyrics.py index 48f9eac0..96d820d8 100644 --- a/weboob/applications/booblyrics/booblyrics.py +++ b/weboob/applications/booblyrics/booblyrics.py @@ -83,15 +83,7 @@ class Booblyrics(ReplApplication): Display lyrics of the song. """ - # TODO restore get_object line and handle fillobj - #songlyrics = self.get_object(id, 'get_lyrics') - songlyrics = None - _id, backend = self.parse_id(id) - for _backend, result in self.do('get_lyrics', _id, backends=backend): - if result: - backend = _backend - songlyrics = result - + songlyrics = self.get_object(id, 'get_lyrics') if not songlyrics: print >>sys.stderr, 'Song lyrics not found: %s' % id return 3