4

我想用相同的脚本创建一些 Liquidsoap 源,但有一些变量,例如站名。

例如,我已经看到我可以包含一个 config.liq,但是如果我可以从与语言无关的东西(例如 JSON)中读取我的配置参数,那就太好了。Liquidsoap 有一个of_json功能,但我不清楚如何从 JSON 文件而不是 JSON 字符串中读取。

我可以做些什么来拥有一个不绑定到脚本语言的配置文件?

4

3 回答 3

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

希望有帮助。

于 2016-11-28T21:36:34.647 回答
1

好问题。我没有确切的代码给你,但我实际上已经能够通过使用 cURL 来读取 HTTP。(然后,我找到了 HTTP 请求的内置函数,但我认为这些不适用于您的情况。)

如果找不到直接读取文件的命令,只需system()调用catto 转储文件即可。

于 2014-10-19T02:37:29.683 回答
0

我也找不到任何直接从liquidsoap 读取文件的命令。

你总是可以使用环境变量:

station_name = getenv("STATION_NAME")

于 2014-10-21T08:47:33.433 回答