From d020741a4ba0d56075993d813b2bdbe1645a7299 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Tue, 30 Jun 2015 16:34:40 +0200 Subject: [PATCH] [audio] add specific filters in order to create audio objects id / browser2 adaptation : do not require an id in constructor --- weboob/capabilities/audio.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/weboob/capabilities/audio.py b/weboob/capabilities/audio.py index 2320e9f0..3b77b04c 100644 --- a/weboob/capabilities/audio.py +++ b/weboob/capabilities/audio.py @@ -21,6 +21,7 @@ import re from datetime import timedelta +from weboob.browser.filters.standard import Format from .image import BaseImage from .base import Field, StringField, IntField, BaseObject from .file import CapFile, BaseFile @@ -44,6 +45,14 @@ def decode_id(decode_id): return wrapper +class AlbumIdFilter(Format): + """ + Filter that help to fill Albums id field + """ + def __init__(self, *args): + super(AlbumIdFilter, self).__init__(u'album.%s', *args) + + class Album(BaseObject): """ Represent an album @@ -54,9 +63,6 @@ class Album(BaseObject): thumbnail = Field('Image associated to the album', BaseImage) tracks_list = Field('list of tracks', list) - def __init__(self, _id): - BaseObject.__init__(self, unicode("album.%s" % _id)) - @classmethod def decode_id(cls, _id): if _id: @@ -66,6 +72,14 @@ class Album(BaseObject): return _id +class PlaylistIdFilter(Format): + """ + Filter that help to fill Albums id field + """ + def __init__(self, *args): + super(PlaylistIdFilter, self).__init__(u'playlist.%s', *args) + + class Playlist(BaseObject): """ Represent a playlist @@ -73,9 +87,6 @@ class Playlist(BaseObject): title = StringField('playlist name') tracks_list = Field('list of tracks', list) - def __init__(self, _id): - BaseObject.__init__(self, unicode("playlist.%s" % _id)) - @classmethod def decode_id(cls, _id): if _id: @@ -85,6 +96,14 @@ class Playlist(BaseObject): return _id +class BaseAudioIdFilter(Format): + """ + Filter that help to fill Albums id field + """ + def __init__(self, *args): + super(BaseAudioIdFilter, self).__init__(u'audio.%s', *args) + + class BaseAudio(BaseFile): """ Represent an audio file @@ -94,9 +113,6 @@ class BaseAudio(BaseFile): format = StringField('file format') thumbnail = Field('Image associated to the file', BaseImage) - def __init__(self, _id): - BaseFile.__init__(self, unicode("audio.%s" % _id)) - @classmethod def decode_id(cls, _id): if _id: