我想创建一些具有相同脚本但具有一些变量的Liquidsoap源,例如站名。
我已经看到我可以包含一个config.liq,但是如果我可以从与语言无关的东西(如JSON)中读取配置参数,那将会很好。 Liquidsoap具有of_json
函数,但我不清楚如何从JSON文件而不是JSON字符串中读取。
如果有一个与脚本语言无关的配置文件,我该怎么办?
答案 0 :(得分:2)
我不确定该设施何时被添加到Liquidsoap(我这里有1.2.1),但假设您有foo.json,例如:
[
{
station_name : "Some Station",
station_url : "http://example.com/"
},
{
station_name : "Some Other Station",
station_url : "http://other.example.com/"
}
]
然后你应该能够用以下内容阅读和解析它:
m = file.contents("config.json")
print(of_json(default=[[("error", "badfile")]], m));
给予
[[("station_name","Some Station"), ("station_url","http://example.com/")], [("station_name","Some Other Station"), ("station_url","http://other.example.com/")]]
如果您的JSON格式不同,则需要将默认模板调整为of_json
希望有所帮助。
答案 1 :(得分:1)
好问题。我没有为您准确的代码,但我实际上已经能够通过shell向cURL读取HTTP。 (然后,我找到了HTTP请求的内置函数,但那些不适用于你的情况我不会想。)
如果您无法找到直接读取文件的命令,只需使用system()
调用cat
即可转储该文件。
答案 2 :(得分:0)
我找不到任何直接从liquidsoap读取文件的命令。
您始终可以使用环境变量:
station_name = getenv("STATION_NAME")