From b1f0b3a33e9d6e93f192fde9f950cd701b8a6805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 2 Dec 2011 16:19:42 +0100 Subject: [PATCH] streaming link on commission and seance views (#1003) --- tabellio/pcfviews/comevent_templates/view.pt | 9 ++++++ tabellio/pcfviews/parlevent.py | 30 ++++++++++++++++--- tabellio/pcfviews/parlevent_templates/view.pt | 11 ++++++- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/tabellio/pcfviews/comevent_templates/view.pt b/tabellio/pcfviews/comevent_templates/view.pt index 77c55b9..2705a01 100644 --- a/tabellio/pcfviews/comevent_templates/view.pt +++ b/tabellio/pcfviews/comevent_templates/view.pt @@ -58,6 +58,15 @@
+ + diff --git a/tabellio/pcfviews/parlevent.py b/tabellio/pcfviews/parlevent.py index ad90fa5..8a43113 100644 --- a/tabellio/pcfviews/parlevent.py +++ b/tabellio/pcfviews/parlevent.py @@ -12,13 +12,32 @@ import tabellio.agenda.parlevent class ParlEventBaseView(tabellio.agenda.parlevent.ParlEventBaseView): def has_stream(self): + return (self.get_stream_url() is not None) + + def get_stream_url(self): settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False) - if not settings.audiofiles_path: - return False - return os.path.exists(os.path.join(settings.audiofiles_path, self.get_stream_name())) + if settings.audiofiles_path: + if os.path.exists(os.path.join(settings.audiofiles_path, self.get_stream_name())): + if settings.embedded_audio_player_url: + return settings.embedded_audio_player_url + '?' + self.get_stream_name() + else: + return self.context.absolute_url() + '/ecouter.m3u' + return None class ParlEventView(ParlEventBaseView): + def get_stream_url(self): + stream_url = ParlEventBaseView.get_stream_url(self) + if stream_url: + return stream_url + if not self.context.is_now(): + return None + settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False) + if settings.embedded_audio_player_url: + return settings.embedded_audio_player_url + else: + return self.context.absolute_url() + '/ecouter.m3u' + def get_stream_name(self): filename = '%04d%02d%02d%02d-SEAN.mp3' % ( self.context.start.year, self.context.start.month, @@ -33,9 +52,12 @@ class View(grok.View, ParlEventView): class M3U(grok.View, ParlEventView): grok.context(tabellio.agenda.parlevent.IParlEvent) grok.require('zope2.View') - grok.name('seance.m3u') + grok.name('ecouter.m3u') def render(self): portal_url = getToolByName(self.context, 'portal_url').getPortalObject().absolute_url() self.request.response.setHeader('Content-type', 'audio/x-mpegurl') + settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False) + if self.context.is_now(): + return settings.live_stream_url + '\n' return portal_url + '/mp3/' + self.get_stream_name() + '\n' diff --git a/tabellio/pcfviews/parlevent_templates/view.pt b/tabellio/pcfviews/parlevent_templates/view.pt index 2c77ca6..b40a3bf 100644 --- a/tabellio/pcfviews/parlevent_templates/view.pt +++ b/tabellio/pcfviews/parlevent_templates/view.pt @@ -45,7 +45,7 @@
  • Compte-rendu intégral Compte-rendu intégral (non disponible)
  • -
  • Streaming +
  • Streaming Streaming (non disponible)
  • @@ -56,6 +56,15 @@
    + +