[radiofrance] manage selection podcasts / improve testing

This commit is contained in:
Bezleputh 2015-06-30 16:39:51 +02:00
commit 3ce5002d1b
4 changed files with 352 additions and 78 deletions

View file

@ -18,13 +18,14 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.browser import PagesBrowser, URL
from .pages import PlayerPage, TimelinePage
from .pages import PlayerPage, JsonPage
__all__ = ['RadioFranceBrowser']
class RadioFranceBrowser(PagesBrowser):
timeline = URL('sites/default/files/(?P<json_url>.*).json', TimelinePage)
json_page = URL('sites/default/files/(?P<json_url>.*).json',
'player-json/reecoute/(?P<json_url_fip>.*)', JsonPage)
player_page = URL('(?P<player>.*)', PlayerPage)
def get_radio_url(self, radio, player):
@ -33,4 +34,22 @@ class RadioFranceBrowser(PagesBrowser):
def get_current(self, radio, json_url):
self.BASEURL = 'http://www.%s.fr/' % radio
return self.timeline.go(json_url=json_url).get_current()
return self.json_page.go(json_url=json_url).get_current()
def get_selection(self, radio_url, json_url, radio_id):
self.BASEURL = 'http://www.%s.fr/' % radio_url
if radio_id == 'fipradio':
return self.json_page.go(json_url_fip=json_url).get_selection(radio_id=radio_id)
return self.json_page.go(json_url=json_url).get_selection(radio_id=radio_id)
def get_audio(self, _id, radio_url, json_url, radio_id):
for item in self.get_selection(radio_url, json_url, radio_id):
if item.id == _id:
return item
return []
def search_audio(self, pattern, radio_url, json_url, radio_id):
for item in self.get_selection(radio_url, json_url, radio_id):
if pattern.upper() in item.title.upper():
yield item