new: manual refresh failed servers

This commit is contained in:
lollipopkit
2023-11-03 00:38:06 -06:00
parent a9f9a1650e
commit a1b9cecebb
3 changed files with 38 additions and 22 deletions

View File

@@ -3,27 +3,29 @@ import 'package:toolbox/data/res/store.dart';
class TryLimiter {
final Map<String, int> _triedTimes = {};
bool canTry(String id) {
static final _default = TryLimiter();
static bool canTry(String id) {
final maxCount = Stores.setting.maxRetryCount.fetch();
if (maxCount <= 0) {
return true;
}
final times = _triedTimes[id] ?? 0;
final times = _default._triedTimes[id] ?? 0;
if (times >= maxCount) {
return false;
}
return true;
}
void inc(String sid) {
_triedTimes[sid] = (_triedTimes[sid] ?? 0) + 1;
static void inc(String sid) {
_default._triedTimes[sid] = (_default._triedTimes[sid] ?? 0) + 1;
}
void reset(String id) {
_triedTimes[id] = 0;
static void reset(String id) {
_default._triedTimes[id] = 0;
}
void clear() {
_triedTimes.clear();
static void clear() {
_default._triedTimes.clear();
}
}