selectProxy method

  1. @override
Proxy selectProxy(
  1. List<Proxy> proxies
)
override

Selects the next proxy from the given list

Implementation

@override
Proxy selectProxy(List<Proxy> proxies) {
  if (proxies.isEmpty) {
    throw ArgumentError('Proxy list cannot be empty');
  }

  // Sort proxies by last used timestamp (ascending)
  final sortedProxies = List<Proxy>.from(proxies)..sort((a, b) {
    int aLastUsed = 0;
    int bLastUsed = 0;

    if (a is ProxyModel && a.score != null) {
      aLastUsed = a.score!.lastUsed;
    }

    if (b is ProxyModel && b.score != null) {
      bLastUsed = b.score!.lastUsed;
    }

    return aLastUsed.compareTo(bLastUsed);
  });

  return sortedProxies.first;
}