getUserAgentSequenceForProblematicSite method

List<String> getUserAgentSequenceForProblematicSite(
  1. String url
)

Gets a sequence of user agents to try for a problematic site

Implementation

List<String> getUserAgentSequenceForProblematicSite(String url) {
  final result = <String>[];

  // First, add site-specific user agents
  final domain = _extractDomain(url);
  for (final siteDomain in _siteSpecificUserAgents.keys) {
    if (domain.contains(siteDomain)) {
      result.addAll(_siteSpecificUserAgents[siteDomain]!);
    }
  }

  // Then add one of each browser type
  result.add(getUserAgentByType(BrowserType.chrome));
  result.add(getUserAgentByType(BrowserType.firefox));
  result.add(getUserAgentByType(BrowserType.edge));
  result.add(getUserAgentByType(BrowserType.safari));
  result.add(getUserAgentByType(BrowserType.mobile));

  // Add a few random ones
  for (int i = 0; i < 3; i++) {
    result.add(getRandomUserAgent());
  }

  // Remove duplicates
  return result.toSet().toList();
}