multiSourceSearch method

Future<Map<String, LoadResult>> multiSourceSearch(
  1. String query, {
  2. List<String> sources = const ['ytsearch', 'scsearch'],
})

Search across multiple sources simultaneously Returns results from all sources that respond

Implementation

Future<Map<String, LoadResult>> multiSourceSearch(
  String query, {
  List<String> sources = const ['ytsearch', 'scsearch'],
}) async {
  LavalinkLogger.info('Multi-source search: $query across ${sources.length} sources', tag: 'Client');

  final results = <String, LoadResult>{};
  final futures = <Future<void>>[];

  for (final source in sources) {
    futures.add(
      rest.loadTracks('$source:$query').then((result) {
        results[source] = result;
      }).catchError((error) {
        LavalinkLogger.warning('Search failed for $source: $error', tag: 'Client');
      }),
    );
  }

  await Future.wait(futures);
  return results;
}