On Tue, 25 Jun 2013 12:32:32 -0400, Romain Beauxis <[email protected]> wrote:
> Hi, > > 2013/6/20 <[email protected]>: >> >> Hi, >> >> I am trying to assign a title or filename to a switch element that >> utiizes >> (playlist.safe(mode="random", of a directory. However, since the >> filename >> is not known until after the random selection is chosen by LS, the >> following code produces "Unknown' as the result in YP listings. >> >> How would I assign the value in the 'else' statement below as 'title' of >> all the random selections? >> >> >> # === GSMBA === >> >> gsmba = audio_to_stereo(playlist.safe(mode="random", >> "/usr/local/www/rcr/mp3/music/Phillips/Blessed_Assurance")) >> >> # Fill-in Title for ID3 Tag >> >> def fill_in(s) >> >> # the function f takes a list of pairs m >> representing the metadata >> # and it maps an anonymous function on each pair >> # replacing empty title definitions by >> title=filename >> >> def f(m) >> >> print("\n\nFor metadata: #{m}\n\n") >> list.map(fun (key_value) -> >> >> if key_value==("title","") then >> >> >> if m["filename"] == >> "/usr/local/www/rcr/mp3/announce/TOHS.mp3" then >> ("title", "Rural Catholic Radio - >> from the heartland, with love") >> >> elsif m["filename"] == >> "/usr/local/www/rcr/mp3/announce/TOHN.mp3" >> then >> ("title", "Rural Catholic Radio - >> from the heartland, with love") >> >> >> else ("title", "Gentle Spirit Music - >> Latest Album - Blessed >> Assurance by David Phillips - see www.RuralCatholicRadio.com for >> details") >> >> end >> >> else key_value end, >> m) >> >> end >> >> map_metadata(f,s) >> >> end >> >> >> gsmba = fill_in(gsmba) > > You should not use list.map. First you should locate the title meta, > if existing, using list.assoc or the shorthand notation l[key]: > > def f(m) = > title = m["title"] > > # Now you can return something: > if title == "" then > .... > [("title", "...")] > else > [] # nothing in this case? > end > end > > Hope that helps, > Romain Hi Romain, Shortly after sending my request for help, I noticed that I had used an old copy of the code that was missing -- def f(m) print("\n\nFor metadata: #{m}\n\n") m = if not list.mem_assoc("title",m) then list.append([("title","")],m) else m end Thanks for the help. Works fine now. My bad :) kronos Using Opera's revolutionary email client: http://www.opera.com/mail/ ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Savonet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/savonet-users
