canal -> brook

This commit is contained in:
Henry Hiles 2025-01-04 12:14:46 -05:00
parent a2ef7da707
commit a6f2291309
25 changed files with 169 additions and 129 deletions

View file

@ -1,7 +1,7 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import "package:riverpod_annotation/riverpod_annotation.dart";
import 'package:canal/models/decorations.dart';
import 'package:canal/providers/button_layout_provider.dart';
import 'package:brook/models/decorations.dart';
import 'package:brook/providers/button_layout_provider.dart';
import 'package:yaru/yaru.dart';
import "package:collection/collection.dart";
part 'decorations_provider.g.dart';

View file

@ -1,4 +1,4 @@
import 'package:canal/providers/ytmusic_provider.dart';
import 'package:brook/providers/ytmusic_provider.dart';
import 'package:dart_ytmusic_api/dart_ytmusic_api.dart';
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

View file

@ -1,23 +1,27 @@
import 'package:canal/models/search_type.dart';
import 'package:brook/models/search_type.dart';
import 'package:dart_ytmusic_api/types.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:canal/providers/ytmusic_provider.dart';
import 'package:brook/providers/ytmusic_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
part "search_provider.g.dart";
@riverpod
Future<IList<dynamic>> searchProvider(
Future<IList<SearchResult>> searchProvider(
Ref ref, {
required String search,
required SearchType searchType,
}) async {
final yt = await ytmusic(ref);
return IList(switch (searchType) {
SearchType.any => await yt.search(search),
SearchType.songs => await yt.searchSongs(search),
SearchType.albums => await yt.searchAlbums(search),
SearchType.videos => await yt.searchVideos(search),
SearchType.artists => await yt.searchAlbums(search),
SearchType.playlists => await yt.searchPlaylists(search),
});
return IList(
switch (searchType) {
SearchType.any =>
await yt.search(search).then((search) => search.cast<SearchResult>()),
SearchType.songs => await yt.searchSongs(search),
SearchType.albums => await yt.searchAlbums(search),
SearchType.videos => await yt.searchVideos(search),
SearchType.artists => await yt.searchAlbums(search),
SearchType.playlists => await yt.searchPlaylists(search),
},
);
}