auto refresh if no playlist

This commit is contained in:
jr-k 2024-08-19 15:59:36 +02:00
parent 4eb3f0c8b1
commit d25563f94e
4 changed files with 17 additions and 7 deletions

View File

@ -81,7 +81,8 @@ class PlayerController(ObController):
interfaces=[iface['ip_address'] for iface in get_network_interfaces()],
external_url=self._model_store.variable().get_one_by_name('external_url').as_string().strip(),
time_with_seconds=self._model_store.variable().get_one_by_name('default_slide_time_with_seconds'),
noplaylist=request.args.get('noplaylist', '0') == '1'
noplaylist=request.args.get('noplaylist', '0') == '1',
hard_refresh_request=self._model_store.variable().get_one_by_name("refresh_player_request").as_int()
)
def player_playlist(self, playlist_slug_or_id: str = ''):

View File

@ -69,5 +69,6 @@ class SysinfoController(ObController):
def sysinfo_get_ipaddr(self):
return jsonify({
'external_url': self._model_store.variable().get_one_by_name('external_url').as_string().strip(),
'interfaces': [iface['ip_address'] for iface in get_network_interfaces()]
'interfaces': [iface['ip_address'] for iface in get_network_interfaces()],
'hard_refresh_request': self._model_store.variable().get_one_by_name("refresh_player_request").as_int()
})

View File

@ -3,6 +3,8 @@
<head>
<script type="text/javascript">
const time_with_seconds = {{ 'true' if time_with_seconds.as_bool() else 'false' }};
const last_hard_refresh_request = {{ hard_refresh_request }};
const no_playlist = {% if noplaylist %}true{% else %}false{% endif %};
let external_url = '{{ external_url.strip() }}';
function updateTime() {
@ -35,7 +37,15 @@
if (xhr.readyState === 4 && xhr.status === 200) {
const json_response = JSON.parse(xhr.responseText);
external_url = json_response.external_url;
setIps(json_response.interfaces)
setIps(json_response.interfaces);
if (no_playlist) {
setTimeout(function () {
if (last_hard_refresh_request != json_response.hard_refresh_request) {
document.location.href = '{{ url_for('player') }}';
}
}, 2000);
}
}
};
xhr.send();

View File

@ -42,7 +42,7 @@
const playlistCheckResolutionMs = {{ polling_interval * 1000 }};
// Backend flag updates
let needHardRefresh = null;
const lastHardRefreshRequest = items.hard_refresh_request;
// Frontend config
const syncWithTime = items['time_sync'];
@ -107,9 +107,7 @@
items = data;
itemsLoadedProcess();
if (needHardRefresh === null) {
needHardRefresh = items.hard_refresh_request;
} else if (needHardRefresh != items.hard_refresh_request) {
if (lastHardRefreshRequest != items.hard_refresh_request) {
document.location.reload();
}
}).catch(function(err) {