Light theme default + yt-dlp search fallback
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import '../models/channel_details.dart';
|
||||
import 'youtube_service.dart';
|
||||
|
||||
class ChannelPreviewMetadataService {
|
||||
ChannelPreviewMetadataService._();
|
||||
|
||||
static final ChannelPreviewMetadataService instance =
|
||||
ChannelPreviewMetadataService._();
|
||||
|
||||
final YoutubeService _youtube = YoutubeService();
|
||||
|
||||
final Map<String, Future<ChannelDetails?>> _channelCache =
|
||||
<String, Future<ChannelDetails?>>{};
|
||||
|
||||
Future<ChannelDetails?> getChannel(
|
||||
String? channelId,
|
||||
) {
|
||||
final id = channelId?.trim() ?? '';
|
||||
|
||||
if (id.isEmpty) {
|
||||
return Future<ChannelDetails?>.value(null);
|
||||
}
|
||||
|
||||
return _channelCache.putIfAbsent(
|
||||
id,
|
||||
() => _youtube.getChannelPreviewDetails(id),
|
||||
);
|
||||
}
|
||||
|
||||
void invalidate(String channelId) {
|
||||
_channelCache.remove(channelId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user