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

Reply via email to