diff --git a/conjurer_musician/radio_conjurer.liq b/conjurer_musician/radio_conjurer.liq index 72bd251..4724d62 100644 --- a/conjurer_musician/radio_conjurer.liq +++ b/conjurer_musician/radio_conjurer.liq @@ -7,11 +7,21 @@ let json.parse credentials = file.contents("/home/pi/Conjurer/icecast_credentia # Enable replaygain metadata processing enable_replaygain_metadata() - + l = playlog(duration = 14400.0, persistency="/Conjurer/persistence.log") + def check(r) + m = request.metadata(r) + if l.last(m) < 3600. then + log.info("Rejecting #{m['filename']} (played #{l.last(m)}s ago).") + false + else + l.add(m) + true + end + end # Define playlists to be used in the stream - s1 = replaygain(playlist(reload_mode="watch", "/home/pi/Conjurer/all_playlist.playlist")) - s2 = replaygain(playlist(reload_mode="watch", "/home/pi/Conjurer/priority_queue.playlist")) - s3 = replaygain(playlist(reload_mode="watch", "/home/pi/Conjurer/hit.playlist")) + s1 = replaygain(playlist(reload_mode="watch", check_next=check, "/home/pi/Conjurer/all_playlist.playlist")) + s2 = replaygain(playlist(reload_mode="watch", check_next=check, "/home/pi/Conjurer/priority_queue.playlist")) + s3 = replaygain(playlist(reload_mode="watch", check_next=check, "/home/pi/Conjurer/hit.playlist")) requests_queue = request.queue() # Randomly select a playlist with weights