search method

Future<List<Track>> search(
  1. String query, {
  2. String source = 'ytsearch',
  3. bool useCache = true,
})

Search with caching

Implementation

Future<List<Track>> search(String query, {
  String source = 'ytsearch',
  bool useCache = true,
}) async {
  final cacheKey = '$source:$query';

  if (useCache && _cache.containsKey(cacheKey)) {
    return _cache[cacheKey]!;
  }

  final results = await lavalinkClient.search(query, source: source);
  _cache[cacheKey] = results;

  // Auto-expire cache
  Future.delayed(cacheExpiry, () => _cache.remove(cacheKey));

  return results;
}