Hi Tezzo!

Le 6 février 2012 14:40, DJ Tezzo <[email protected]> a écrit :
> Hello, we are glad to use  Liquidsoap on our server

Excellent news!

> but we have one little
> problem with scheduling system.

Oops :-)

> we now use one file platinum.liq and all stuff is in even the schedule which
> isn't small - almost whole week in it!
>>
>>
>> # Print log messages to the console,
>>
>> # can also be done by passing the -v option to liquidsoap.
>>
>> set("log.stdout", true)
>>
>> # Use the telnet server for requests
>>
>> set("server.telnet", true)
>>
>>
>> # A bunch of files and playlists,
>>
>> # supposedly all located in the same base dir.
>>
>>
>> default = playlist.safe("/home/radio/playlists/safe.pls")
>>
>> main = playlist(reload=21600,"/home/radio/playlists/main.pls")
>>
>> jingles = playlist(reload=21600,"/home/radio/playlists/jingles.pls")
>>
>> clock   = single("/home/radio/jingles/rotary-phone-1-nr1.mp3")
>>
>>
>>
>> # DJs and shows
>>
>> # A bunch of files and playlists,
>>
>> # supposedly all located in the same base dir.
>>
>>
>> untitledmusic =
>> playlist(reload=21600,"/home/radio/playlists/untitledmusic.pls")
>>
>> #tracks = playlist(reload=21600,"/home/radio/playlists/tracks.pls")
>>
>> amir = playlist(reload=21600,"/home/radio/playlists/amir.pls")
>>
>> mexes = playlist(reload=21600,"/home/radio/playlists/mexes.pls")
>>
>> locomotive = playlist(reload=21600,"/home/radio/playlists/locomotive.pls")
>>
>> marc_galindo =
>> playlist(reload=21600,"/home/radio/playlists/marc_galindo.pls")
>>
>> charlez_perez =
>> playlist(reload=21600,"/home/radio/playlists/charlez_perez.pls")
>>
>> dizar = playlist(reload=21600,"/home/radio/playlists/dizar.pls")
>>
>> ladyfunk = playlist(reload=21600,"/home/radio/playlists/ladyfunk.pls")
>>
>> lex_green = playlist(reload=21600,"/home/radio/playlists/lex_green.pls")
>>
>> sunday_sessions =
>> playlist(reload=21600,"/home/radio/playlists/sunday_sessions.pls")
>>
>> ebooking_djs =
>> playlist(reload=21600,"/home/radio/playlists/ebooking_djs.pls")
>>
>> paul_legend =
>> playlist(reload=21600,"/home/radio/playlists/paul_legend.pls")
>>
>>
>>
>>
>> #==META==
>>
>> ebooking_djs = rewrite_metadata([
>>
>>                     ("artist","E-booking DJs in the mix"),
>>
>>                     ],ebooking_djs)
>>
>> mexes = rewrite_metadata([
>>
>>                     ("artist","Mexes in session"),
>>
>>                     ],mexes)
>>
>> untitledmusic = rewrite_metadata([
>>
>>                     ("artist","Platinum Lounge Cafe"),
>>
>>                     ],untitledmusic)
>>
>>
>>
>> # Play user requests if there are any,
>>
>> # otherwise one of our playlists,
>>
>> # and the default file if anything goes wrong.
>>
>>
>> radio = fallback([ request.queue(id="request"),
>>
>>           switch(track_sensitive=false,[
>>
>>
>> #ALL WEEK - UNTITLED MUSIC
>>
>> ({ (1w or 2w or 3w or 4w or 5w or 6w or 7w) and 14h - 18h },
>> untitledmusic),
>>
>>
>> #MON
>>
>> ({ 1w and 19h-20h }, amir),
>>
>> ({ 1w and 20h-21h }, mexes),
>>
>> ({ 1w and 21h-22h }, ladyfunk),
>>
>>
>> #THU
>>
>> ({ 4w and 20h-21h }, mexes),
>>
>>
>> #FRI
>>
>> ({ 5w and 19h-20h }, amir),
>>
>> ({ 5w and 20h-22h }, ebooking_djs),
>>
>> ({ 5w and 23h-24h }, lex_green),
>>
>>
>> #SAT
>>
>> ({ 6w and 19h-20h }, paul_legend),
>>
>> ({ 6w and 20h-21h }, dizar),
>>
>> ({ 6w and 21h-22h }, locomotive),
>>
>> ({ 6w and 22h-23h }, marc_galindo),
>>
>> ({ 6w and 23h-24h }, charlez_perez),
>>
>>
>> #SUN
>>
>> ({ 7w and 19h-20h }, sunday_sessions),
>>
>>
>> ({ true }, main)]),
>>
>>                default])
>>
>>
>>
>> # A function applied to each metadata chunk
>>
>> def append_title(m) =
>>
>>   # Grab the current title
>>
>>   title = m["title"]
>>
>>
>>   # Return a new title metadata
>>
>>   [("title","#{title} - www.platinumradio.net")]
>>
>> end
>>
>>
>> # Apply map_metadata to s using append_title
>>
>> radio = map_metadata(append_title, radio)
>>
>>
>
> and more...
>
> Everything is ok but when we need to update the schedule once or twice a
> week we need to restart all liquidsoap ant this stops all streams - all
> connections are cut!
> I read in your site a lot but can't make it work.
>
> Can you please help me to make the scheduler part in external file
> (schedule.liq) and reload it once a day in our main platinum.liq without
> restarting the daemon!

There is no way to reload a running script, unfortunately.

What you could do, tho, is setup a main script, which does nothing but
receiving a input.harbor stream and have a fallback. Something like:

s = fallback(track_sensitive=false, [input.harbor(port=4342, ...), other])

Where other is played when you reload the main script.

Then, in the main script, you can output locally this way:
  output.icecast(%wav, host="localhost", port=4342, ...)

That way, you can restart the main script without disconnecting your
users. Outputing in %wav format should not put load on the CPU so this
should be fine for many streams as well..

Romain

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to