2013/6/25  <[email protected]>:
> 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 :)

Great, thanks!

Romain

------------------------------------------------------------------------------
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