Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions airecord/recordcfg.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
// Package airecord 群应用:AI声聊配置
package airecord

import (
"encoding/json"
"fmt"
"os"
"strings"

"github.com/sirupsen/logrus"
)

var (
// RecCfg 语音记录配置
RecCfg recordconfig
configPath = "data/airecord/recordconfig.json" // 配置文件路径
)

func init() {
if err := loadConfig(); err != nil {
logrus.Warnln("[airecord] WARN: 加载配置文件失败,使用默认配置:", err)
} else {
logrus.Infoln("[airecord] 成功从文件加载语音记录配置")
}
}

// recordconfig 存储语音记录相关配置
type recordconfig struct {
ModelName string `json:"modelName"` // 语音模型名称
ModelID string `json:"modelID"` // 语音模型ID
Customgid int64 `json:"customgid"` // 自定义群ID
}

// SetRecordModel 设置语音记录模型
func SetRecordModel(modelName, modelID string) error {
RecCfg.ModelName = modelName
RecCfg.ModelID = modelID
return saveConfig() // 保存配置
}

// SetCustomGID 设置自定义群ID
func SetCustomGID(gid int64) error {
RecCfg.Customgid = gid
return saveConfig() // 保存配置
}

// PrintRecordConfig 生成格式化的语音记录配置信息字符串
func PrintRecordConfig(recCfg recordconfig) string {
var builder strings.Builder
builder.WriteString("当前语音记录配置:\n")
builder.WriteString(fmt.Sprintf("• 语音模型名称:%s\n", recCfg.ModelName))
builder.WriteString(fmt.Sprintf("• 语音模型ID:%s\n", recCfg.ModelID))
builder.WriteString(fmt.Sprintf("• 自定义群ID:%d\n", recCfg.Customgid))
return builder.String()
}

// saveConfig 将配置保存到JSON文件
func saveConfig() error {
data, err := json.MarshalIndent(RecCfg, "", " ")
if err != nil {
logrus.Warnln("ERROR: 序列化配置失败:", err)
return err
}
err = os.WriteFile(configPath, data, 0644)
if err != nil {
logrus.Warnln("ERROR: 写入配置文件失败:", err)
return err
}
return nil
}

// loadConfig 从JSON文件加载配置
func loadConfig() error {
data, err := os.ReadFile(configPath)
if err != nil {
return err
}
err = json.Unmarshal(data, &RecCfg)
if err != nil {
logrus.Warnln("ERROR: 解析配置文件失败:", err)
return err
}
return nil
}
Loading