dolebrai.liq

#!/home/dbaelde/bin/liquidsoap -v

set("root.max_latency",30.)
set("server.telnet",true)
set("server.socket.permissions",0o660)
set("tag.encodings",["UTF-8","ISO-8859-1"])

%include "dolutils.liq"

root     = "/var/cache/dolebrai/"
scripts  = "/home/dbaelde/scripts/"
last_xml = "/home/dbaelde/dolebrai_public_html/last.xml"
default  = "/var/cache/dolebrai/local/gelnior/jazz/07-patamouchto.mp3"

add_protocol("dolebrai",
  fun (arg,delay) ->
    get_process_lines("#{scripts}dolebrai-filename #{quote(arg)}"))

# === MAIN SOURCE ===

# play explicit requests (from admins) or the playlist

default = single(id="default",default)

s =
  request.dynamic(id="scheduler",default_duration=30.,length=1.,
    fun () ->
      request(get_process_output("#{scripts}/scheduler.pl 2>> #{scripts}/log")))

s = fallback([ request.queue(id="q"), s, default ])

# Feedback is provided for any file played, be it from scheduler.pl, user 
# request via the queue or the default file.
# By the way we refresh the XML describing the latest tracks.
def feedback(m)
  system("#{scripts}/feedback.pl #{quote(m['filename'])} 2>> #{scripts}/logf")
  system("#{scripts}/last.rb > #{last_xml}")
end
# Add a telnet control to get info before metadata rewriting, used by last.rb
s = store_metadata(size=20,id="history",s)
s = on_metadata(feedback,s)

# Prepend introductory tracks if necessary
intro_mix = single("/var/cache/dolebrai/local/jingles/in_vitro/DJLEmb2.mp3")
def choose_prepend(m)
  if m["prepend_track"] != "" then
    request.queue(interactive=false,queue=[request(m["prepend_track"])])
  elsif m["track_type"] == "mix" then
    # This is more reliable than prepend_track as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mix is alwayock as intro_mi