Move francebleu into a Collection

Rationale:
* 43 stations for a radio not many people care about
* It's still available by cd francebleu; ls
* The fact that it exists is displayed on the 'root' ls (though poorly,
 but it's CapCollection's/ReplApplication fault).
This commit is contained in:
Laurent Bachelier 2012-02-02 15:24:47 +01:00
commit a37382ff50

View file

@ -19,7 +19,7 @@
from weboob.capabilities.radio import ICapRadio, Radio, Stream, Emission from weboob.capabilities.radio import ICapRadio, Radio, Stream, Emission
from weboob.capabilities.collection import ICapCollection, CollectionNotFound from weboob.capabilities.collection import ICapCollection, CollectionNotFound, Collection
from weboob.tools.backend import BaseBackend from weboob.tools.backend import BaseBackend
from weboob.tools.browser import BaseBrowser, BasePage from weboob.tools.browser import BaseBrowser, BasePage
@ -156,12 +156,18 @@ class RadioFranceBackend(BaseBackend, ICapRadio, ICapCollection):
_RSS_RADIOS = ('francemusique', ) _RSS_RADIOS = ('francemusique', )
def iter_resources(self, split_path): def iter_resources(self, split_path):
if len(split_path) > 0: if len(split_path) == 1 and split_path[0] == 'francebleu':
for id in sorted(self._RADIOS.iterkeys()):
if id.startswith('fb'):
yield self.get_radio(id)
elif len(split_path) == 0:
for id in sorted(self._RADIOS.iterkeys()):
if not id.startswith('fb'):
yield self.get_radio(id)
yield Collection('francebleu', self.iter_resources('francebleu'))
else:
raise CollectionNotFound() raise CollectionNotFound()
for id in sorted(self._RADIOS.iterkeys()):
yield self.get_radio(id)
def iter_radios_search(self, pattern): def iter_radios_search(self, pattern):
for radio in self.iter_resources([]): for radio in self.iter_resources([]):
if pattern.lower() in radio.title.lower() or pattern.lower() in radio.description.lower(): if pattern.lower() in radio.title.lower() or pattern.lower() in radio.description.lower():