Files
OpenQuery/ConfigManager.cs
2026-03-18 09:28:14 +01:00

63 lines
2.1 KiB
C#

namespace OpenQuery;
public class AppConfig
{
public string ApiKey { get; set; } = "";
public string Model { get; set; } = "qwen/qwen3.5-flash-02-23";
public int DefaultQueries { get; set; } = 3;
public int DefaultChunks { get; set; } = 3;
public int DefaultResults { get; set; } = 5;
}
public static class ConfigManager
{
private static string GetConfigPath()
{
var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var configDir = Path.Combine(home, ".config", "openquery");
if (!Directory.Exists(configDir))
{
Directory.CreateDirectory(configDir);
}
return Path.Combine(configDir, "config");
}
public static AppConfig Load()
{
var config = new AppConfig();
var path = GetConfigPath();
if (File.Exists(path))
{
var lines = File.ReadAllLines(path);
foreach (var line in lines)
{
var parts = line.Split('=', 2);
if (parts.Length == 2)
{
var key = parts[0].Trim();
var val = parts[1].Trim();
if (key == "ApiKey") config.ApiKey = val;
if (key == "Model") config.Model = val;
if (key == "DefaultQueries" && int.TryParse(val, out var q)) config.DefaultQueries = q;
if (key == "DefaultChunks" && int.TryParse(val, out var c)) config.DefaultChunks = c;
if (key == "DefaultResults" && int.TryParse(val, out var r)) config.DefaultResults = r;
}
}
}
return config;
}
public static void Save(AppConfig config)
{
var path = GetConfigPath();
var lines = new List<string>
{
$"ApiKey={config.ApiKey}",
$"Model={config.Model}",
$"DefaultQueries={config.DefaultQueries}",
$"DefaultChunks={config.DefaultChunks}",
$"DefaultResults={config.DefaultResults}"
};
File.WriteAllLines(path, lines);
}
}