diff --git a/airecord/recordcfg.go b/airecord/recordcfg.go new file mode 100644 index 0000000..0cd8504 --- /dev/null +++ b/airecord/recordcfg.go @@ -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 +}