++
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
// 读取账号配置
|
||||
// Python: eval(f.read()) -> Go: JSON解析
|
||||
func LoadAccountConfig(filename string) (*AccountConfig, error) {
|
||||
// 检查文件是否存在
|
||||
if _, err := os.Stat(filename); os.IsNotExist(err) {
|
||||
// 文件不存在,创建模板文件
|
||||
defaultConfig := AccountConfig{
|
||||
Username: "your_username",
|
||||
Password: "your_password",
|
||||
}
|
||||
|
||||
file, _ := json.MarshalIndent(defaultConfig, "", " ")
|
||||
os.WriteFile(filename, file, 0644)
|
||||
|
||||
return nil, fmt.Errorf("账号文件不存在,已创建模板 %s,请填写后重试", filename)
|
||||
}
|
||||
|
||||
// 读取文件
|
||||
data, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("读取账号文件失败: %v", err)
|
||||
}
|
||||
|
||||
// 解析JSON
|
||||
var config AccountConfig
|
||||
err = json.Unmarshal(data, &config)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("解析账号文件失败,请确保是JSON格式: %v", err)
|
||||
}
|
||||
|
||||
return &config, nil
|
||||
}
|
||||
|
||||
// 读取Alpha表达式列表
|
||||
// Python: json.load(f) -> Go: 也是json解析,但要定义结构
|
||||
func LoadAlphaList(filename string) ([]map[string]interface{}, error) {
|
||||
// 检查文件是否存在
|
||||
if _, err := os.Stat(filename); os.IsNotExist(err) {
|
||||
// 创建示例文件
|
||||
example := []map[string]interface{}{
|
||||
{
|
||||
"regular": "示例表达式",
|
||||
"settings": map[string]interface{}{},
|
||||
"type": "REGULAR",
|
||||
},
|
||||
}
|
||||
|
||||
file, _ := json.MarshalIndent(example, "", " ")
|
||||
os.WriteFile(filename, file, 0644)
|
||||
|
||||
return nil, fmt.Errorf("Alpha文件不存在,已创建示例 %s,请添加表达式后重试", filename)
|
||||
}
|
||||
|
||||
data, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("读取Alpha文件失败: %v", err)
|
||||
}
|
||||
|
||||
// 解析为通用格式
|
||||
// Go中,如果JSON结构不确定,可以用[]map[string]interface{}
|
||||
var alphaList []map[string]interface{}
|
||||
err = json.Unmarshal(data, &alphaList)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("解析Alpha文件失败: %v", err)
|
||||
}
|
||||
|
||||
return alphaList, nil
|
||||
}
|
||||
Reference in New Issue
Block a user