[radiofrance] manage selection podcasts / improve testing
This commit is contained in:
parent
d020741a4b
commit
3ce5002d1b
4 changed files with 352 additions and 78 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue