使用 api_config.json

This commit is contained in:
2021-05-24 12:17:49 +08:00
parent 588bca0077
commit 96ea49e086
4 changed files with 35 additions and 20 deletions

12
api_config.json Normal file
View File

@@ -0,0 +1,12 @@
{
"database_name": "/tmp/music.sqlite3",
"addr": ":8080",
"token": "!! config your very strong token here !!",
"ffmpeg_configs": {
"0. OPUS 128k": {"args": "-c:a libopus -ab 128k"},
"OPUS 96k": {"args": "-c:a libopus -ab 96k"},
"OPUS 256k": {"args": "-c:a libopus -ab 256k"},
"AAC 128k": {"args": "-c:a aac -ab 128k"},
"AAC 256k": {"args": "-c:a aac -ab 256k"}
}
}

View File

@@ -28,11 +28,11 @@ type FfmpegConfigs struct {
type AddFfmpegConfigRequest struct {
Token string `json:"token"`
Name string `json:"name"`
FfmpegConfig FfmpegConfig `json:"ffmpeg_config"`
}
type FfmpegConfig struct {
Name string `json:"name"`
Args string `json:"args"`
}
@@ -458,7 +458,7 @@ func (api *API) HandleAddFfmpegConfig(w http.ResponseWriter, r *http.Request) {
}
// check name and args not null
if addFfmpegConfigRequest.FfmpegConfig.Name == "" {
if addFfmpegConfigRequest.Name == "" {
api.HandleErrorString(w, r, `"ffmpeg_config.name" can't be empty`)
return
}
@@ -469,7 +469,7 @@ func (api *API) HandleAddFfmpegConfig(w http.ResponseWriter, r *http.Request) {
log.Println("[api] Add ffmpeg config")
api.APIConfig.FfmpegConfigs[addFfmpegConfigRequest.FfmpegConfig.Name] = &addFfmpegConfigRequest.FfmpegConfig
api.APIConfig.FfmpegConfigs[addFfmpegConfigRequest.Name] = &addFfmpegConfigRequest.FfmpegConfig
api.HandleOK(w, r)
}

31
main.go
View File

@@ -1,39 +1,38 @@
package main
import (
"encoding/json"
"flag"
"log"
"msw-open-music/internal/pkg/api"
"os"
)
var DatabaseName string
var Listen string
var Token string
var APIConfigFilePath string
func init() {
flag.StringVar(&DatabaseName, "db", "/tmp/music.sqlite3", "sqlite3 database file path")
flag.StringVar(&Listen, "listen", ":8080", "http server listening")
flag.StringVar(&Token, "token", "mikusavetheworld", "secret token")
flag.StringVar(&APIConfigFilePath, "apiconfig", "api_config.json", "API Config Json file")
}
func main() {
var err error
flag.Parse()
apiConfig := api.NewAPIConfig()
apiConfig.FfmpegConfigs["libopus 128k"] = &api.FfmpegConfig{
Name: "libopus 128k",
Args: "-c:a libopus -ab 128k",
apiConfigFile, err := os.Open(APIConfigFilePath)
if err != nil {
log.Fatal(err)
}
apiConfig.FfmpegConfigs["libopus 256k"] = &api.FfmpegConfig{
Name: "libopus 256k",
Args: "-c:a libopus -ab 256k",
err = json.NewDecoder(apiConfigFile).Decode(&apiConfig)
if err != nil {
log.Fatal(err)
}
apiConfig.DatabaseName = DatabaseName
apiConfig.Addr = Listen
apiConfig.Token = Token
apiConfigFile.Close()
api, err := api.NewAPI(apiConfig)
if err != nil {
log.Fatal(err)
}
log.Println("Started")
log.Println("Starting", apiConfig.DatabaseName, apiConfig.Addr, apiConfig.Token)
log.Fatal(api.Server.ListenAndServe())
}

View File

@@ -573,10 +573,14 @@ const component_stream_config = {
mounted() {
axios.get('/api/v1/get_ffmpeg_config_list',
).then(response => {
// 后端返回数据 ffmpeg_configs 是一个字典name 作为 keyffmpeg_config{} 作为 value
// 为方便前端,此处将 ffmpeg_configs 转为数组,并添加 name 到每个对象中
var ffmpeg_configs = response.data.ffmpeg_configs
var tmp_list = []
for (var key in ffmpeg_configs) {
tmp_list.push(ffmpeg_configs[key])
var ffmpeg_config = ffmpeg_configs[key]
ffmpeg_config.name = key
tmp_list.push(ffmpeg_config)
}
tmp_list.sort()
this.ffmpeg_config_list = tmp_list