diff --git a/weboob/backends/franceinter/backend.py b/weboob/backends/franceinter/backend.py
index 13d1ed4e..88509237 100644
--- a/weboob/backends/franceinter/backend.py
+++ b/weboob/backends/franceinter/backend.py
@@ -21,12 +21,30 @@
from weboob.capabilities.radio import ICapRadio, Radio, Stream, Emission
from weboob.capabilities.collection import ICapCollection, CollectionNotFound
from weboob.tools.backend import BaseBackend
-from .browser import FranceInterBrowser
+from weboob.tools.browser import BaseBrowser, BasePage
__all__ = ['FranceInterBackend']
+class XMLinfos(BasePage):
+ def get_current(self):
+ emissions = self.parser.select(self.document.getroot(), 'item')
+ if len(emissions) == 0:
+ return 'No emission'
+ return emissions[0].find('titreemission').text
+
+class FranceInterBrowser(BaseBrowser):
+ DOMAIN = u'metadatas.tv-radio.com'
+ ENCODING = 'iso-8859-1'
+ PAGES = {r'.*metadatas/franceinterRSS\.xml': XMLinfos}
+
+ def get_current(self, radio):
+ self.location('/metadatas/franceinterRSS.xml')
+ assert self.is_on_page(XMLinfos)
+
+ return self.page.get_current()
+
class FranceInterBackend(BaseBackend, ICapRadio, ICapCollection):
NAME = 'franceinter'
MAINTAINER = 'Johann Broudin'
diff --git a/weboob/backends/franceinter/browser.py b/weboob/backends/franceinter/browser.py
deleted file mode 100644
index 4bfd275e..00000000
--- a/weboob/backends/franceinter/browser.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# * -*- coding: utf-8 -*-
-
-# Copyright(C) 2011 Johann Broudin
-#
-# 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.tools.browser import BaseBrowser
-
-from .pages import XMLinfos
-
-
-__all__ = ['FranceInterBrowser']
-
-
-class FranceInterBrowser(BaseBrowser):
- DOMAIN = u'metadatas.tv-radio.com'
- ENCODING = 'iso-8859-1'
- PAGES = {r'.*metadatas/franceinterRSS\.xml': XMLinfos}
-
- def get_current(self, radio):
- self.location('/metadatas/franceinterRSS.xml')
- assert self.is_on_page(XMLinfos)
-
- return self.page.get_current()
diff --git a/weboob/backends/franceinter/pages.py b/weboob/backends/franceinter/pages.py
deleted file mode 100644
index 0f690078..00000000
--- a/weboob/backends/franceinter/pages.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# * -*- coding: utf-8 -*-
-
-# Copyright(C) 2011 Johann Broudin
-#
-# 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.tools.browser import BasePage
-
-
-
-__all__ = ['XMLinfos']
-
-
-class XMLinfos(BasePage):
- def get_current(self):
- emissions = self.parser.select(self.document.getroot(), 'item')
- if len(emissions) == 0:
- return 'No emission'
- return emissions[0].find('titreemission').text
diff --git a/weboob/backends/lemouv/backend.py b/weboob/backends/lemouv/backend.py
index 475f8c8a..cf5e712f 100644
--- a/weboob/backends/lemouv/backend.py
+++ b/weboob/backends/lemouv/backend.py
@@ -21,20 +21,42 @@
from weboob.capabilities.radio import ICapRadio, Radio, Stream, Emission
from weboob.capabilities.collection import ICapCollection, CollectionNotFound
from weboob.tools.backend import BaseBackend
-from .browser import lemouvBrowser
+from weboob.tools.browser import BaseBrowser, BasePage
-__all__ = ['lemouvBackend']
+__all__ = ['LeMouvBackend']
-class lemouvBackend(BaseBackend, ICapRadio, ICapCollection):
+class XMLinfos(BasePage):
+ def get_current(self):
+ try:
+ for channel in self.parser.select(self.document.getroot(), 'channel'):
+ title = channel.find('item/song_title').text
+ artist = channel.find('item/artist_name').text
+ except AttributeError:
+ title = "Not defined"
+ artist = "Not defined"
+
+ return unicode(artist).strip(), unicode(title).strip()
+
+class LeMouvBrowser(BaseBrowser):
+ DOMAIN = u'statique.lemouv.fr'
+ PAGES = {r'.*/files/rfPlayer/mouvRSS\.xml': XMLinfos}
+
+ def get_current(self, radio):
+ self.location('/files/rfPlayer/mouvRSS.xml')
+ assert self.is_on_page(XMLinfos)
+
+ return self.page.get_current()
+
+class LeMouvBackend(BaseBackend, ICapRadio, ICapCollection):
NAME = 'lemouv'
MAINTAINER = 'Johann Broudin'
EMAIL = 'johann.broudin@6-8.fr'
VERSION = '0.9'
DESCRIPTION = u'The le mouv\' french radio'
LICENCE = 'AGPLv3+'
- BROWSER = lemouvBrowser
+ BROWSER = LeMouvBrowser
_RADIOS = {'lemouv': (u'le mouv\'', u'le mouv', u'http://mp3.live.tv-radio.com/lemouv/all/lemouvhautdebit.mp3')}
diff --git a/weboob/backends/lemouv/browser.py b/weboob/backends/lemouv/browser.py
deleted file mode 100644
index 7568ba82..00000000
--- a/weboob/backends/lemouv/browser.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# * -*- coding: utf-8 -*-
-
-# Copyright(C) 2011 Johann Broudin
-#
-# 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.tools.browser import BaseBrowser
-
-from .pages import XMLinfos
-
-
-__all__ = ['lemouvBrowser']
-
-
-class lemouvBrowser(BaseBrowser):
- DOMAIN = u'statique.lemouv.fr'
- PAGES = {r'.*/files/rfPlayer/mouvRSS\.xml': XMLinfos}
-
- def get_current(self, radio):
- self.location('/files/rfPlayer/mouvRSS.xml')
- assert self.is_on_page(XMLinfos)
-
- return self.page.get_current()
diff --git a/weboob/backends/lemouv/pages.py b/weboob/backends/lemouv/pages.py
deleted file mode 100644
index 38d303d8..00000000
--- a/weboob/backends/lemouv/pages.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# * -*- coding: utf-8 -*-
-
-# Copyright(C) 2011 Johann Broudin
-#
-# 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.tools.browser import BasePage
-
-
-
-__all__ = ['XMLinfos']
-
-
-class XMLinfos(BasePage):
- def get_current(self):
- try:
- for channel in self.parser.select(self.document.getroot(), 'channel'):
- title = channel.find('item/song_title').text
- artist = channel.find('item/artist_name').text
- except AttributeError:
- title = "Not defined"
- artist = "Not defined"
-
- return unicode(artist).strip(), unicode(title).strip()
diff --git a/weboob/backends/ouifm/backend.py b/weboob/backends/ouifm/backend.py
index 2c6f4f69..d6c3b5d3 100644
--- a/weboob/backends/ouifm/backend.py
+++ b/weboob/backends/ouifm/backend.py
@@ -21,13 +21,33 @@
from weboob.capabilities.radio import ICapRadio, Radio, Stream, Emission
from weboob.capabilities.collection import ICapCollection, CollectionNotFound
from weboob.tools.backend import BaseBackend
-
-from .browser import OuiFMBrowser
+from weboob.tools.browser import BaseBrowser, BasePage
__all__ = ['OuiFMBackend']
+class PlayerPage(BasePage):
+ def get_current(self):
+ title = self.parser.select(self.document.getroot(), 'span.titre_en_cours', 1).text
+ artist = self.parser.select(self.document.getroot(), 'span.artiste_en_cours', 1).text
+ return unicode(artist).strip(), unicode(title).strip()
+
+class OuiFMBrowser(BaseBrowser):
+ DOMAIN = u'www.ouifm.fr'
+ PAGES = {r'.*ouifm.fr/player/decode_json.*.php': PlayerPage,
+ }
+
+ def get_current(self, radio):
+ if radio == 'general':
+ _radio = ''
+ else:
+ _radio = '_%s' % radio
+ self.location('/player/decode_json%s.php' % _radio)
+ assert self.is_on_page(PlayerPage)
+
+ return self.page.get_current()
+
class OuiFMBackend(BaseBackend, ICapRadio, ICapCollection):
NAME = 'ouifm'
MAINTAINER = 'Romain Bignon'
diff --git a/weboob/backends/ouifm/browser.py b/weboob/backends/ouifm/browser.py
deleted file mode 100644
index 63ca3a2b..00000000
--- a/weboob/backends/ouifm/browser.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright(C) 2010-2011 Romain Bignon
-#
-# 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.tools.browser import BaseBrowser
-
-from .pages import PlayerPage
-
-
-__all__ = ['OuiFMBrowser']
-
-
-class OuiFMBrowser(BaseBrowser):
- DOMAIN = u'www.ouifm.fr'
- PAGES = {r'.*ouifm.fr/player/decode_json.*.php': PlayerPage,
- }
-
- def get_current(self, radio):
- if radio == 'general':
- _radio = ''
- else:
- _radio = '_%s' % radio
- self.location('/player/decode_json%s.php' % _radio)
- assert self.is_on_page(PlayerPage)
-
- return self.page.get_current()
diff --git a/weboob/backends/ouifm/pages.py b/weboob/backends/ouifm/pages.py
deleted file mode 100644
index 67baebdc..00000000
--- a/weboob/backends/ouifm/pages.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright(C) 2010-2011 Romain Bignon
-#
-# 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.tools.browser import BasePage
-
-
-
-__all__ = ['PlayerPage']
-
-
-class PlayerPage(BasePage):
- def get_current(self):
- title = self.parser.select(self.document.getroot(), 'span.titre_en_cours', 1).text
- artist = self.parser.select(self.document.getroot(), 'span.artiste_en_cours', 1).text
- return unicode(artist).strip(), unicode(title).strip()