Just complementing, if I try to add the "imeta" function to insert the metadata
grabbed from MySQL on the stream, then the script won't compile. Script:
s = myplaylist
s = fallback(track_sensitive = false, [s, security])
# Create a function to insert metadata
ms = insert_metadata(s)
# The function to insert metadata
imeta = fst(ms)
# The source with inserted metadata
s = snd(ms)
# Function to get metadata from MySQL
def update_meta() =
new_title = list.hd(
get_process_lines(
"mysql my_db -u user -ppassword -sNe \"SELECT Title FROM my_table WHERE
id=1\""
)
)
new_artist = list.hd(
get_process_lines(
"mysql my_db -u user -ppassword -sNe \"SELECT Artist FROM my_table WHERE
id=1\""
)
)
# Insert the metadata
imeta([("title",new_title),("artist",new_artist)]) # Compiling points a
"type" problem here (Line 43)
#A debug message
print("Insert metadata title = #{new_title}")
print("Insert metadata artist = #{new_artist}")
5.0
end
# Schedule the insert metadata process every 5.0 seconds
add_timeout(fast=false,5.0,update_meta)
output.icecast(%mp3..........
When I try to execute I get this:
At line 43, char 9-51:
this value has type
[(_*((default:_)->_))]
but it should be a subtype of
[(_*string)]
Maybe I have to change the "list.hd( get_process_lines..." to return the
correct format?
Note that this was the way I was using in liquidsoap 1.1.1 and it was working.
________________________________
De: Bruno Lima <[email protected]>
Enviado: quinta-feira, 20 de setembro de 2018 15:27
Para: [email protected]
Assunto: Re: [Savonet-users] Metadata update function stops
I'm using liquidsoap 1.3.4 now but there seems to be some problem in the way
I'm getting metadata from MySQL. The function I'm using is the following:
# Function to get metadata from MySQL
def update_meta() =
new_title = list.hd(
get_process_lines(
"mysql my_db -u user -ppassword -sNe \"SELECT Title FROM my_table WHERE
id=1\""
)
)
new_artist = list.hd(
get_process_lines(
"mysql my_db -u user -ppassword -sNe \"SELECT Artist FROM my_table WHERE
id=1\""
)
)
#A debug message
print("Insert metadata title = #{new_title}")
print("Insert metadata artist = #{new_artist}")
5.0
end
Problem is, in the log it keeps printing:
Insert metadata title = <fun>
Insert metadata artist = <fun>
Probably it is getting something wrong in that "get_process_lines" requisition
but I have no idea why..
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users