fix: improve Aria2c session handling and adjust translation timer

This commit is contained in:
xkeyC 2025-11-15 20:57:52 +08:00
parent 3219129094
commit d82cfb41aa
2 changed files with 15 additions and 12 deletions

View File

@ -21,7 +21,7 @@ part 'aria2c.freezed.dart';
@freezed @freezed
abstract class Aria2cModelState with _$Aria2cModelState { abstract class Aria2cModelState with _$Aria2cModelState {
const factory Aria2cModelState({required String aria2cDir, Aria2c? aria2c, Aria2GlobalStat? aria2globalStat}) = const factory Aria2cModelState({required String aria2cDir, Aria2c? aria2c, Aria2GlobalStat? aria2globalStat}) =
_Aria2cModelState; _Aria2cModelState;
} }
extension Aria2cModelExt on Aria2cModelState { extension Aria2cModelExt on Aria2cModelState {
@ -52,15 +52,16 @@ class Aria2cModel extends _$Aria2cModel {
try { try {
final sessionFile = File("$aria2cDir\\aria2.session"); final sessionFile = File("$aria2cDir\\aria2.session");
// //
if (await sessionFile.exists() && (await sessionFile.readAsString()).trim().isNotEmpty) { if (await sessionFile.exists ()
dPrint("launch Aria2c daemon"); && (await sessionFile.readAsString()).trim().isNotEmpty) {
await launchDaemon(appGlobalState.applicationBinaryModuleDir!); dPrint("launch Aria2c daemon");
} else { await launchDaemon(appGlobalState.applicationBinaryModuleDir!);
dPrint("LazyLoad Aria2c daemon"); } else {
} dPrint("LazyLoad Aria2c daemon");
} catch (e) { }
dPrint("Aria2cManager.checkLazyLoad Error:$e"); } catch (e) {
} dPrint("Aria2cManager.checkLazyLoad Error:$e");
}
}(); }();
return Aria2cModelState(aria2cDir: aria2cDir); return Aria2cModelState(aria2cDir: aria2cDir);
@ -212,7 +213,9 @@ class Aria2cModel extends _$Aria2cModel {
if (aria2c == null) return false; if (aria2c == null) return false;
for (var value in [...await aria2c.tellActive(), ...await aria2c.tellWaiting(0, 100000)]) { for (var value in [...await aria2c.tellActive(), ...await aria2c.tellWaiting(0, 100000)]) {
final t = HomeDownloaderUIModel.getTaskTypeAndName(value); final t = HomeDownloaderUIModel.getTaskTypeAndName(value);
return (t.key == "torrent" && t.value.contains(name)); if (t.key == "torrent" && t.value.contains(name)) {
return true;
}
} }
return false; return false;
} }

View File

@ -171,7 +171,7 @@ class InputMethodDialogUIModel extends _$InputMethodDialogUIModel {
if (state.isEnableAutoTranslate) { if (state.isEnableAutoTranslate) {
if (_translateTimer != null) _translateTimer?.cancel(); if (_translateTimer != null) _translateTimer?.cancel();
state = state.copyWith(isAutoTranslateWorking: true); state = state.copyWith(isAutoTranslateWorking: true);
_translateTimer = Timer(Duration(milliseconds: webMessage ? 1 : 400), () async { _translateTimer = Timer(Duration(milliseconds: webMessage ? 150 : 400), () async {
try { try {
final inputText = sourceText.replaceAll("\n", " "); final inputText = sourceText.replaceAll("\n", " ");
final r = await doTranslateText(inputText); final r = await doTranslateText(inputText);