Initial commit

This commit is contained in:
chen08209
2024-04-30 23:38:49 +08:00
commit df4d38012b
295 changed files with 33443 additions and 0 deletions

36
lib/clash/service.dart Normal file
View File

@@ -0,0 +1,36 @@
import 'dart:io';
import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/models/models.dart';
import 'package:flutter/services.dart';
import 'core.dart';
class ClashService {
Future<bool> initMmdb() async {
final mmdbPath = await appPath.getMMDBPath();
var mmdbFile = File(mmdbPath);
final isExists = await mmdbFile.exists();
if (isExists) return true;
try {
mmdbFile = await mmdbFile.create(recursive: true);
ByteData data = await rootBundle.load('assets/data/geoip.metadb');
List<int> bytes = data.buffer.asUint8List();
await mmdbFile.writeAsBytes(bytes, flush: true);
return true;
} catch (_) {
return false;
}
}
Future<bool> init({
required ClashConfig clashConfig,
required Config config,
}) async {
final isInitMmdb = await initMmdb();
if (!isInitMmdb) return false;
final homeDirPath = await appPath.getHomeDirPath();
final isInit = clashCore.init(homeDirPath);
return isInit;
}
}
final clashService = ClashService();