From e7805cec122769e0974bd5cd44dd95134f0f1b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20Mazi=C3=A8re?= Date: Thu, 2 Jan 2014 18:26:34 +0100 Subject: [PATCH] rename AudioStreamInfo into StreamInfo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allowing future use with upcoming VideoStream Signed-off-by: Pierre Mazière --- modules/audioaddict/backend.py | 7 +++-- modules/nectarine/pages.py | 5 +-- modules/nihonnooto/pages.py | 5 +-- modules/nova/backend.py | 7 +++-- modules/ouifm/backend.py | 7 +++-- modules/radiofrance/backend.py | 5 +-- modules/somafm/backend.py | 5 +-- weboob/capabilities/audiostream.py | 25 +++------------ weboob/capabilities/radio.py | 4 +-- weboob/tools/capabilities/streaminfo.py | 42 +++++++++++++++++++++++++ 10 files changed, 72 insertions(+), 40 deletions(-) create mode 100644 weboob/tools/capabilities/streaminfo.py diff --git a/modules/audioaddict/backend.py b/modules/audioaddict/backend.py index 2e658ce6..ce75ce36 100644 --- a/modules/audioaddict/backend.py +++ b/modules/audioaddict/backend.py @@ -19,7 +19,8 @@ from weboob.capabilities.radio import ICapRadio, Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import ICapCollection, Collection from weboob.tools.backend import BaseBackend, BackendConfig from weboob.tools.value import Value @@ -236,7 +237,7 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection): radio.description = radio_dict['description'] artist, title = self.get_current(network, radioName) - current = AudioStreamInfo(0) + current = StreamInfo(0) current.who = artist current.what = title radio.current = current @@ -268,7 +269,7 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection): def fill_radio(self, radio, fields): if 'current' in fields: radioName, network = radio.id.split('.', 1) - radio.current = AudioStreamInfo(0) + radio.current = StreamInfo(0) radio.current.who, radio.current.what = self.get_current(network, radioName) return radio diff --git a/modules/nectarine/pages.py b/modules/nectarine/pages.py index 7abe0e81..d4187d10 100644 --- a/modules/nectarine/pages.py +++ b/modules/nectarine/pages.py @@ -19,7 +19,8 @@ from weboob.tools.browser import BasePage from weboob.capabilities.radio import Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo __all__ = ['LivePage', 'StreamsPage'] @@ -51,7 +52,7 @@ class StreamsPage(BasePage): class LivePage(BasePage): def get_current_emission(self): - current = AudioStreamInfo(0) + current = StreamInfo(0) current.who = unicode(self.document.xpath('//playlist/now/entry/artist')[0].text) current.what = unicode(self.document.xpath('//playlist/now/entry/song')[0].text) return current diff --git a/modules/nihonnooto/pages.py b/modules/nihonnooto/pages.py index 0fc2b818..606f06c3 100644 --- a/modules/nihonnooto/pages.py +++ b/modules/nihonnooto/pages.py @@ -19,7 +19,8 @@ from weboob.tools.browser import BasePage from weboob.capabilities.radio import Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo __all__ = ['LivePage', 'ProgramPage'] @@ -52,7 +53,7 @@ class LivePage(BasePage): class ProgramPage(BasePage): def get_current_emission(self): - current = AudioStreamInfo(0) + current = StreamInfo(0) two_or_more = unicode(self.document.xpath('//p')[0].text).split('/////')[0].split(' - ') # Consider that if String(' - ') appears it'll be in title rather in the artist name if len(two_or_more) > 2: diff --git a/modules/nova/backend.py b/modules/nova/backend.py index 20f457b5..5c739574 100644 --- a/modules/nova/backend.py +++ b/modules/nova/backend.py @@ -21,7 +21,8 @@ from cStringIO import StringIO from weboob.capabilities.radio import ICapRadio, Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import ICapCollection from weboob.tools.backend import BaseBackend from weboob.tools.browser import StandardBrowser @@ -70,7 +71,7 @@ class NovaBackend(BaseBackend, ICapRadio, ICapCollection): radio.description = description artist, title = self.get_current() - current = AudioStreamInfo(0) + current = StreamInfo(0) current.who = artist current.what = title radio.current = current @@ -95,7 +96,7 @@ class NovaBackend(BaseBackend, ICapRadio, ICapCollection): def fill_radio(self, radio, fields): if 'current' in fields: if not radio.current: - radio.current = AudioStreamInfo(0) + radio.current = StreamInfo(0) radio.current.who, radio.current.what = self.get_current() return radio diff --git a/modules/ouifm/backend.py b/modules/ouifm/backend.py index c462d2ec..d8b13c2e 100644 --- a/modules/ouifm/backend.py +++ b/modules/ouifm/backend.py @@ -19,7 +19,8 @@ from weboob.capabilities.radio import ICapRadio, Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import ICapCollection from weboob.tools.backend import BaseBackend from weboob.tools.browser import StandardBrowser @@ -86,7 +87,7 @@ class OuiFMBackend(BaseBackend, ICapRadio, ICapCollection): radio.description = description artist, title = self.get_current(radio.id) - current = AudioStreamInfo(0) + current = StreamInfo(0) current.who = artist current.what = title radio.current = current @@ -102,7 +103,7 @@ class OuiFMBackend(BaseBackend, ICapRadio, ICapCollection): def fill_radio(self, radio, fields): if 'current' in fields: if not radio.current: - radio.current = AudioStreamInfo(0) + radio.current = StreamInfo(0) radio.current.who, radio.current.what = self.get_current(radio.id) return radio diff --git a/modules/radiofrance/backend.py b/modules/radiofrance/backend.py index c93397e3..42f0ede5 100644 --- a/modules/radiofrance/backend.py +++ b/modules/radiofrance/backend.py @@ -22,7 +22,8 @@ from weboob.capabilities.base import NotLoaded from weboob.capabilities.video import ICapVideo from weboob.capabilities.radio import ICapRadio, Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import ICapCollection, CollectionNotFound, Collection from weboob.tools.backend import BaseBackend @@ -180,7 +181,7 @@ class RadioFranceBackend(BaseBackend, ICapRadio, ICapCollection, ICapVideo): title = self.browser.get_current_rss(radio.id) if title: if not radio.current or radio.current is NotLoaded: - radio.current = AudioStreamInfo(0) + radio.current = StreamInfo(0) radio.current.what = title radio.current.who = artist return radio diff --git a/modules/somafm/backend.py b/modules/somafm/backend.py index 4a3d92c3..5d87ba79 100644 --- a/modules/somafm/backend.py +++ b/modules/somafm/backend.py @@ -20,7 +20,8 @@ import lxml.etree from weboob.capabilities.radio import ICapRadio, Radio -from weboob.capabilities.audiostream import BaseAudioStream, AudioStreamInfo +from weboob.capabilities.audiostream import BaseAudioStream +from weboob.tools.capabilities.streaminfo import StreamInfo from weboob.capabilities.collection import ICapCollection from weboob.tools.backend import BaseBackend from weboob.tools.browser import StandardBrowser @@ -69,7 +70,7 @@ class SomaFMBackend(BaseBackend, ICapRadio, ICapCollection): radio.description = channel.findtext('description') current_data = channel.findtext('lastPlaying') - current = AudioStreamInfo(0) + current = StreamInfo(0) current.what, current.who = self._parse_current(current_data) radio.current = current diff --git a/weboob/capabilities/audiostream.py b/weboob/capabilities/audiostream.py index 42cbe94c..a7d88acb 100644 --- a/weboob/capabilities/audiostream.py +++ b/weboob/capabilities/audiostream.py @@ -18,37 +18,20 @@ # along with weboob. If not, see . -from .base import CapBaseObject, Field, StringField +from weboob.tools.capabilities.streaminfo import StreamInfo +from .base import CapBaseObject, Field from .file import ICapFile from .audio import ICapAudio, BaseAudio -__all__ = ['AudioStreamInfo', 'BaseAudioStream', 'ICapAudioStream'] - - -class AudioStreamInfo(CapBaseObject): - """ - AudioStream related information. - """ - who = StringField('Who is currently on air') - what = StringField('What is currently on air') - - def __iscomplete__(self): - # This volatile information may be reloaded everytimes. - return False - - def __unicode__(self): - if self.who: - return u'%s - %s' % (self.who, self.what) - else: - return self.what +__all__ = ['BaseAudioStream', 'ICapAudioStream'] class BaseAudioStream(BaseAudio): """ Audio stream object """ - current = Field('Information related to current broadcast', AudioStreamInfo) + current = Field('Information related to current broadcast', StreamInfo) def __unicode__(self): return u'%s (%s)' % (self.title, self.url) diff --git a/weboob/capabilities/radio.py b/weboob/capabilities/radio.py index a8ae3ec7..25c1d32e 100644 --- a/weboob/capabilities/radio.py +++ b/weboob/capabilities/radio.py @@ -20,7 +20,7 @@ from .base import IBaseCap, CapBaseObject, Field, StringField -from .audiostream import AudioStreamInfo +from weboob.tools.capabilities.streaminfo import StreamInfo __all__ = ['Radio', 'ICapRadio'] @@ -32,7 +32,7 @@ class Radio(CapBaseObject): """ title = StringField('Title of radio') description = StringField('Description of radio') - current = Field('Current emission', AudioStreamInfo) + current = Field('Current emission', StreamInfo) streams = Field('List of streams', list) class ICapRadio(IBaseCap): diff --git a/weboob/tools/capabilities/streaminfo.py b/weboob/tools/capabilities/streaminfo.py new file mode 100644 index 00000000..0c1c655b --- /dev/null +++ b/weboob/tools/capabilities/streaminfo.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +# Copyright(C) 2013 Pierre Mazière +# +# 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 weboob.capabilities.base import CapBaseObject, StringField + +__all__ = ['StreamInfo'] + + +class StreamInfo(CapBaseObject): + """ + Stream related information. + """ + who = StringField('Who is currently on air') + what = StringField('What is currently on air') + + def __iscomplete__(self): + # This volatile information may be reloaded everytimes. + return False + + def __unicode__(self): + if self.who: + return u'%s - %s' % (self.who, self.what) + else: + return self.what +