TEMPLATE_VARS = {}
COMBO_DASHBOARD_ENABLED = False
+ COMBO_MAP_TILE_URLTEMPLATE = ''
+ COMBO_MAP_ATTRIBUTION = ''
JSON_CELL_TYPES = {}
-RADIO_NAME = 'Radio Panik'
-RADIO_LONG_NAME = 'Radio Panik - 105.4 FM'
--WEBSITE_BASE_URL = 'http://www.radiopanik.org/'
++RADIO_NAME = 'Radio Esperanzah!'
++RADIO_LONG_NAME = 'Radio Esperanzah! - 106.2 FM'
++WEBSITE_BASE_URL = 'https://radio.esperanzah.be/'
COMBO_INITIAL_LOGIN_PAGE_PATH = '/'
COMBO_WELCOME_PAGE_PATH = None
'url': d['emission'].get_absolute_url(),
'chat': chat_url,
}
+
+ track_title = None
+ playing_txt = os.path.join(settings.MEDIA_ROOT, 'playing.txt')
+ if os.path.exists(playing_txt):
+ track_title = open(playing_txt).read().strip()
+ if len(track_title) < 6:
+ track_title = None
if d.get('nonstop'):
+ redirect_path = d['nonstop'].redirect_path
d['nonstop'] = {
'title': d['nonstop'].title,
}
handler.addQuickElement('itunes:name', emission.title)
handler.endElement('itunes:owner')
else:
- handler.addQuickElement('itunes:author', 'Radio Esperanzah!')
+ handler.addQuickElement('itunes:author', settings.RADIO_NAME)
handler.startElement('itunes:owner', {})
- handler.addQuickElement('itunes:email', 'info@radiopanik.org')
+ handler.addQuickElement('itunes:email', 'radio@esperanzah.be')
- handler.addQuickElement('itunes:name', 'Radio Esperanzah!')
+ handler.addQuickElement('itunes:name', settings.RADIO_NAME)
handler.endElement('itunes:owner')
def root_attributes(self):
def item_title(self, item):
if item.fragment:
- return '%s - %s' % (item.title, item.episode.title)
- return '[%s] %s - %s' % (item.episode.emission.title, item.title, item.episode.title)
- return '[%s] %s' % (item.episode.emission.title, item.episode.title)
++ return '%s - %s - %s' % (item.episode.emission.title, item.title, item.episode.title)
+ return '%s - %s' % (item.episode.emission.title, item.episode.title)
def item_link(self, item):
return item.episode.get_absolute_url()
msgid "Get the stream on your player!"
msgstr "Récupérez le stream sur votre lecteur !"
- #: templates/includes/player.html:10
- msgid "Need some help?"
- msgstr "Besoin d'aide ?"
-
- #: templates/includes/player.html:14
+ #: templates/includes/player.html:13
msgid "live"
-msgstr "en direct"
+msgstr "En direct de la radio"
+ #: templates/includes/player.html:38
+ msgid "Empty playlist"
+ msgstr "Vider la playlist"
+
#: templates/nonstop_playlist.html:16
msgid "Playlist"
msgstr "Playlist"
.wrapper.text {max-width: 780px; margin:auto;}
.wrapper .rightPart{margin-top:1em;}
-@media screen and (min-width: 760px) {
+@media screen and (min-width: $size_m) {
#player-container.fixed {
position: fixed;
- top: 50px;
+ top: 60px;
width: calc(0% + 235px);
}
.wrapper .rightPart{
100% { right: 0%; }
}
+div#header_date {
+ text-transform: uppercase;
+ position: absolute;
+ text-align: left;
+ color: $red;
+ font-weight: bold;
+ top: 63px;
+ left: 135px;
+ @media screen and (max-width:$size_m){
+ display: none;
+ }
+}
+
+h2.top {
+ padding-bottom: 2rem;
+}
++
+ .episode-auto-selection-cell.hide-emission-titles {
+ .emission-title, .soundfile-info .sep {
+ display: none;
+ }
+ }
}
thePlaylist.setFocus(container);
container.addClass('playing');
- playpause.addClass('icon-pause').removeClass('icon-play');
- thePlaylist.controlButtons['playpause'].removeClass('icon-play').addClass('icon-pause');
+ playpause.addClass('action-pause').removeClass('action-play');
+ thePlaylist.controlButtons['playpause'].removeClass('action-play').addClass('action-pause');
thePlaylist.afterPlay();
- }).on('pause',function(){
- container.removeClass('playing');
- $(this).removeClass('playing');
- playpause.addClass('action-play').removeClass('action-pause');
- thePlaylist.controlButtons['playpause'].removeClass('action-pause').addClass('action-play');
- }).on('stop',function(){
- container.removeClass('playing');
+ var sound_id = $(e.target).data('sound-id');
+ $(document).trigger('panik:play', {'sound_id': sound_id});
+ }).on('pause',function(e){
$(this).removeClass('playing');
+ playpause.addClass('icon-play').removeClass('icon-pause');
+ var sound_id = $(e.target).data('sound-id');
+ $(document).trigger('panik:pause', {'sound_id': sound_id});
+ thePlaylist.controlButtons['playpause'].removeClass('icon-pause').addClass('icon-play');
+ }).on('stop',function(event){
$(this).trigger('pause');
if($(this)[0].currentTime){$(this)[0].currentTime = 0;}
}).on("ended", function(e){
});
var controls = $('<span>',{'class':'soundControls controls'});
var link = $('<a>',{href:sound.url,'class':'button icon-external-link'});
- var html5 = $('<button>',{title:"Display HTML5 audio",'class':'icon-html5',click:function(){
- audio.toggle();
- }}).hide();
- var remove = $('<button>',{title:"Remove from list",'class':'icon-remove',click:function(){
+ var remove = $('<button>',{title:"Remove from list",'class':'no-icon-remove',click:function(){
container.remove();
thePlaylist._update();
}});
});
$('#DirectStreamPanik').on('play',function(){
$('audio:not(#DirectStreamPanik)').each(function(){this.pause();});
- $('#streamSymbol').removeClass('icon-volume-up').addClass('icon-pause');
+ $('#streamSymbol').removeClass('player-start').addClass('player-pause');
- $('#RefreshWhatsOnAir').trigger('activate');
}).on('pause',function(){
//$('audio:not(#DirectStreamPanik)').each(function(){this.pause();});
- $('#streamSymbol').addClass('icon-volume-up').removeClass('icon-pause');
+ $('#streamSymbol').addClass('player-start').removeClass('player-pause');
});
- if($('#player-container').offset()){
- var topPosition = 0;
- topPosition = $('#mainHeader > div').offset().top + $('#mainHeader > div').height();
- $(window).bind('scroll load',function (event) {
- //$('#player-container').removeClass('fixed');
- var y = $(this).scrollTop() + 60;
- if (topPosition!== 0 && y >= topPosition) {
- $('#player-container').addClass('fixed').removeClass('normal');
- } else {
- $('#player-container').removeClass('fixed').addClass('normal');
- }
- });
- }
var $localList = $('#localList').playlist({
- controlContainer: $('<div>',{'class':"playListControls"}).sortable(),
- playlistContainer: $('<ol>',{id:"myPlaylist",'class':"custom"}).sortable(),
+ controlContainer: $('<div>',{'class':"playListControls"}),
+ playlistContainer: $('<ol>',{id:"myPlaylist",'class':"custom"}),
onLoad:function(self){
$('#toggleList').on('click',function(){
self.playlistContainer.toggleClass('deploy');
if($(this).attr('data-player-action') == "registerAudio"){
$localList.playlist("registerAudio",audio);
}else if($(this).attr('data-player-action') == "playAudio"){
- $localList.playlist("reset");
- $localList.playlist("registerAudio",audio);
- $localList.playlist("playSoundId", sound_id);
- if ($(this).parent().find('.icon-pause').length) {
- $(this).hide();
- $(this).parent().find('.icon-pause').show();
- if ($(this).hasClass('icon-play-sign')) {
++ if ($(this).hasClass('icon-play-sign') || $(this).hasClass('action-play')) {
+ $localList.playlist("registerAudio",audio);
+ $localList.playlist("playSoundId", sound_id);
+ if ($(this).parent().find('.icon-pause').length) {
+ $(this).hide();
+ $(this).parent().find('.icon-pause').show();
+ }
+ } else {
+ $localList.playlist('pauseSounds');
}
}else if ($(this).attr('data-player-action') == "pauseSounds") {
if ($(this).parent().find('.icon-play-sign').length) {
$('#aac-m3u').addClass('resymbol').show();
}
- var konami = new Konami('/party');
-
+ $(document).on('panik:play', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-play-sign').removeClass('icon-play-sign').addClass('icon-pause');
+ });
+
+ $(document).on('panik:pause', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-pause').removeClass('icon-pause').addClass('icon-play-sign');
+ });
+
-
$(document).on('panik:timeupdate', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-play-sign').removeClass('icon-play-sign').addClass('icon-pause');
$waveform = $('#Main div.waveform[data-sound-id="' + data.sound_id + '"]');
var elems = $waveform.find('span');
var total_elems = elems.length;
<html>
<head>
<meta charset="UTF-8" />
- <title>Radio Esperanzah! - {% block title %}{% endblock %}</title>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>{{ radio_name }} - {% block title %}{% endblock %}</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link rel="icon" href="{{ STATIC_URL }}img/favicon-16.png" type="image/png" sizes="16x16">
- <link rel="icon" href="{{ STATIC_URL }}img/favicon-32.png" type="image/png" sizes="32x32">
- <link rel="icon" href="{{ STATIC_URL }}img/favicon-48.png" type="image/png" sizes="48x48">
- <link rel="apple-touch-icon" href="{{ STATIC_URL}}img/logo-panik-500-invert.png">
+ <link rel="icon" href="{{ STATIC_URL }}img/favicon-2020.png" type="image/png">
+ <link rel="apple-touch-icon" href="{{ STATIC_URL}}img/favicon-300x300-2020.png">
<link rel="canonical" href="{{ request.build_absolute_uri }}" />
- <meta name="og:site_name" content="Radio Esperanzah!"/>
+ <meta name="og:site_name" content="{{ radio_name }}"/>
- {% block head %}
- <meta name="description" content="En vous branchant sur le 105.4 FM, vous pénétrerez plus avant dans l'œil du cyclone…" />
+ <meta name="twitter:site" content="@radioesperanzah" />
- <meta property="og:title" content="Radio Esperanzah! - 106.2 FM" />
+ {% block head %}
- <meta property="og:image" content="{{ site_url }}{% static 'img/Radio_Panik_Logo_2016-01.png' %}" />
- <meta property="og:description" content="En vous branchant sur le 105.4 FM, vous pénétrerez plus avant dans l'œil du cyclone…" />
+ <meta property="og:title" content="{{ radio_long_name }}" />
+ <meta property="og:image" content="{{ site_url }}{% static 'img/favicon-300x300-2020.png' %}" />
<meta name="twitter:card" content="summary" />
- <meta name="twitter:title" content="Radio Esperanzah! - 106.2 FM" />
+ <meta name="twitter:title" content="{{ radio_long_name }}" />
- <meta name="twitter:image" content="{{ site_url }}{% static 'img/Radio_Panik_Logo_2016-01.png' %}" />
- <meta name="twitter:description" content="En vous branchant sur le 105.4 FM, vous pénétrerez plus avant dans l'œil du cyclone…" />
-
+ <meta name="twitter:description" content="La radio du festival Esperanzah!, à partir du 30 juillet 2020 à Floreffe" />
+ <meta name="twitter:image" content="{{ site_url }}{% static 'img/favicon-300x300-2020-solid.png' %}" />
-
{% endblock %}
<link rel="alternate" type="application/rss+xml" href="{% url 'rss-feed' %}" title="News rss feed">
<script src="{% xstatic 'jquery' 'jquery.min.js' %}"></script>
<script src="{% xstatic 'jquery-ui' 'jquery-ui.min.js' %}"></script>
- <script type="text/javascript" src="{{ STATIC_URL }}js/audioPlayer.js"></script>
- <script type="text/javascript" src="{{ STATIC_URL }}js/specifics.js"></script>
- <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.scrollTo-1.4.3.1-min.js"></script>
+ <script type="text/javascript" src="{{ STATIC_URL }}js/audioPlayer.js?{% start_timestamp %}"></script>
- <script type="text/javascript" src="{{ STATIC_URL }}js/konami.js"></script>
- <script type="text/javascript" src="{{ STATIC_URL}}js/strophe.min.js"></script>
- <script type="text/javascript" src="{{ STATIC_URL}}js/strophe.muc.js"></script>
+ <script type="text/javascript" src="{{ STATIC_URL }}js/specifics.js?{% start_timestamp %}"></script>
{% block extrascripts %}{% endblock %}
</head>
<body {% block bodyattr %}id="{{sectionName}}" class="section-{{sectionName}}"{% endblock %}>
<div id="All">
- {% block meta %}<div id="metaNav">{% metanav active=sectionName %}</div>{% endblock %}
- <div id="Commons" class="cf" >
- <div class="wrapper sided" >
- <div id="backgroundBox" class="cf">
+ <div id="Commons" >
+ <div class="sided" >
+ <div id="backgroundBox">
+ <div id="header_date">31 juillet, 1 & 2 août 2020<br>Abbaye de Floreffe</div>
<a href="{% url 'home' %}" id="mainHeader"><div>
- <h1 class="top" id="radiopanik">Radio Esperanzah! - 106.2 FM</h1>
+ <h1 class="top" id="radiopanik">{{ radio_long_name }}</h1>
</div></a>
<div id="Player" class="withoutPlaylist">
{% block listen %}{% player %}{% endblock %}
</div>
{% endfor %}
{% else %}
- <div class="continu"><strong><a href="{% url 'emission-view' slug=cell.nonstop_slug %}">{{ cell }}</a></strong></div>
+ <div class="continu"><strong><a
+ href="{% if cell.redirect_path %}{{ cell.redirect_path }}{% else %}{% url 'emission-view' slug=cell.nonstop_slug %}{% endif %}">{{ cell }}</a></strong></div>
- {% if cell.w > 1 and cell.h > 1%}<p>la musique en continu</p>{% endif %}
+ {% if cell.w > 1 and cell.h > 1%}<!--<p>la musique en continu</p>-->{% endif %}
{% endif %}
</td>
{% endfor %}
- {% load soundfiles paniktags %}
+ {% load soundfiles paniktags i18n %}
{% if sound|is_format_available:'mp3' or sound|is_format_available:'ogg' %}
- <div class="audio">
- {% if embed %}
++<<<<<<< HEAD
+ <div class="audio" data-sound-id="{{ sound.id }}">
+ {% if not embed %}
+ <button class="resymbol icon-plus-sign big"
+ title="{% trans "Add to playlist" %}"
+ data-player-audio="Audio-{{ sound.file.url|slugify }}"
+ data-player-action="registerAudio"
+ id="addToPlaylist-{{ sound.file.url|slugify }}"
+ ><span class="sr-only">{% trans "Add to playlist" %}</span></button>
+ {% endif %}
<button class="resymbol icon-play-sign big"
- title="Play"
+ title="{% trans "Play" %}"
data-player-audio="Audio-{{ sound.file.url|slugify }}"
data-player-action="playAudio"
- ></button>
+ ><span class="sr-only">{% trans "Play" %}</span></button>
+ {% if embed %}
<button class="icons icon-pause big"
- title="Pause"
+ title="{% trans "Pause" %}"
style="display: none;"
data-player-audio="Audio-{{ sound.file.url|slugify }}"
data-player-action="pauseSounds"
{% load i18n paniktags %}
<div id="player-container" class="normal cf">
+ <button id="togglePlayer" class="hidden left huge no-icon-double-angle-left "></button>
<div id="player" class="cf">
<div id="audioPlayer" class="cf">
- <div id="Live" class="padded cf">
- <div class="metas custom">
- <a id="ogg-m3u" class="button resymbol icon-download inBlock" title="{% trans 'Get the stream on your player!' %}" href="https://streaming.domainepublic.net/radiopanik.ogg.m3u"></a>
- <a id="aac-m3u" style="display: none;" class="button icon-download inBlock" title="{% trans 'Get the stream on your player!' %}" href="https://streaming.domainepublic.net/radiopanik.aac.m3u"></a>
- </div>
+ <div id="Live" class="cf">
<span class="button" id="DirectStreamPanikControler">
- <div id="streamSymbol" class="icon-volume-up resymbol"></div>
- <div class="label">{% trans 'live' %}</div>
- </span>
+ <div id="streamSymbol" class="player-start"></div>
<div id="CurrentlyPlaying">
<span id="WhatsOnAir"></span>
- <button class="no-icon-refresh" id="RefreshWhatsOnAir"></button>
</div>
+ </span>
<div id="CurrentlyChatting" style="display: none;">
- <a href=""><div id="chatSymbol" class="icon-comments control"></div>
+ <a href=""><div id="chatSymbol" class="no-icon-comments control"></div>
<div class="label">CHAT</div></a>
<span>La radio est ouverte</span>
</div>
{% load paniktags thumbnail staticfiles %}
{% if title and episodes %}<h3>{{title}}</h3>{% endif %}
{% for episode in episodes %}
-
-<div class="wrapper extra-soundfiles soundcell">
- <div class="logo">
- {% if episode.image %}
- {% thumbnail episode.image "60x60" crop="50% 25%" as im %}
- <img width="60" height="60" src="{{im.url}}"/>
+{% if episode.creation_timestamp|date:"Y" == "2019" %}
+ <div class="emission-tile">
+ <a href="{% url 'episode-view' emission_slug=episode.emission.slug slug=episode.slug %}">
+ <div class="image">
+ <div class="img">
+ {% thumbnail episode.image "230x300" crop="50% 50%" as im %}
+ <img src="{{im.url}}">
+ {% empty %}
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8nez3HwAGugKtHMIYIwAAAABJRU5ErkJggg==" height="300" width="230">
{% endthumbnail %}
- {% elif episode.emission.image %}
- {% thumbnail episode.emission.image "60x60" crop="50% 25%" as im %}
- <img width="60" height="60" src="{{im.url}}"/>
- {% endthumbnail %}
- {% else %}
- <img class="smooth" style="width:60px;" src="{% static "img/emission.png" %}"/>
- {% endif %}
+ </div>
+ </div>
+ </a>
+ <div class="name"><span>{{episode.title}}</span></div>
</div>
- {% endif %}
-<ul class="padded custom list">
-<li>
- <div class="soundfile-info"><strong>
- <a class="emission-title" href="{% url 'emission-view' slug=episode.emission.slug%}">{{ episode.emission.title }}</a>
- <span class="sep">-</span>
- <a class="episode-title" href="{% url 'episode-view' emission_slug=episode.emission.slug slug=episode.slug %}">{{ episode.title }}</a></strong>
- </div>
- {% for diffusion in episode.diffusions %}
- <span class="date">→ {{ diffusion.datetime|date:"l d M Y à H:i" }}</span>
- {% endfor %}
- {% if episode.main_sound %}{% audio sound=episode.main_sound %}{% endif %}
- {% for sound in episode.fragment_sounds %}
- <div class="fragment-sound">
- {% audio sound=sound display_fragment_name=True %}
- </div>
- {% endfor %}
-</li>
-</ul>
-</div>
-
{% endfor %}