68 lines
2.0 KiB
Dart
68 lines
2.0 KiB
Dart
|
|
import 'dart:io';
|
||
|
|
// import 'package:ini/ini.dart';
|
||
|
|
import '../core/mining_manager.dart';
|
||
|
|
import '../utils/ini_utils.dart';
|
||
|
|
import '../utils/path_utils.dart';
|
||
|
|
|
||
|
|
class ConfigService {
|
||
|
|
String get _configFile => PathUtils.binFile('mining.windows.conf');
|
||
|
|
|
||
|
|
/// 读取配置文件内容
|
||
|
|
Future<String> readConfig() async {
|
||
|
|
try {
|
||
|
|
final file = File(_configFile);
|
||
|
|
if (await file.exists()) {
|
||
|
|
return await file.readAsString();
|
||
|
|
}
|
||
|
|
} catch (e) {
|
||
|
|
// 静默失败,返回空字符串
|
||
|
|
}
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
|
||
|
|
/// 保存配置文件
|
||
|
|
Future<bool> saveConfig(String content) async {
|
||
|
|
try {
|
||
|
|
final file = File(_configFile);
|
||
|
|
await file.writeAsString(content);
|
||
|
|
return true;
|
||
|
|
} catch (e) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/// 解析配置文件并返回 MiningConfig
|
||
|
|
Future<MiningConfig?> parseMiningConfig() async {
|
||
|
|
try {
|
||
|
|
final content = await readConfig();
|
||
|
|
if (content.isEmpty) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
final config = parseIni(content);
|
||
|
|
|
||
|
|
// ini 2.x: 通过 get(section, option) 访问键值
|
||
|
|
final lolMinerPath = (config.get('lolminer', 'path') ?? '').trim();
|
||
|
|
final rigelPath = (config.get('rigel', 'path') ?? '').trim();
|
||
|
|
final bzMinerPath = (config.get('bzminer', 'path') ?? '').trim();
|
||
|
|
final proxyEnabled = (config.get('proxy', 'proxy') ?? '').toLowerCase() == 'true';
|
||
|
|
|
||
|
|
// 读取服务器和更新URL
|
||
|
|
final serverUrl = (config.get('client', 'server_url') ?? '').trim();
|
||
|
|
final updateUrl = (config.get('client', 'update_url') ?? '').trim();
|
||
|
|
|
||
|
|
return MiningConfig(
|
||
|
|
lolMinerPath: lolMinerPath.isEmpty ? null : lolMinerPath,
|
||
|
|
rigelPath: rigelPath.isEmpty ? null : rigelPath,
|
||
|
|
bzMinerPath: bzMinerPath.isEmpty ? null : bzMinerPath,
|
||
|
|
proxyEnabled: proxyEnabled,
|
||
|
|
serverUrl: serverUrl.isEmpty ? null : serverUrl,
|
||
|
|
updateUrl: updateUrl.isEmpty ? null : updateUrl,
|
||
|
|
);
|
||
|
|
} catch (e) {
|
||
|
|
// 静默失败,返回 null
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|