云算力平台windows桌面应用
This commit is contained in:
67
lib/services/config_service.dart
Normal file
67
lib/services/config_service.dart
Normal file
@@ -0,0 +1,67 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user