add manga recommendation

This commit is contained in:
wgh19
2024-05-15 09:13:07 +08:00
parent c60caad531
commit 8f0e44216a
2 changed files with 21 additions and 5 deletions

View File

@@ -400,4 +400,15 @@ class Network {
return Res.error(res.errorMessage); return Res.error(res.errorMessage);
} }
} }
Future<Res<List<Illust>>> getRecommendedMangas() async {
var res = await apiGet("/v1/manga/recommended?filter=for_android&include_ranking_illusts=true&include_privacy_policy=true");
if (res.success) {
return Res(
(res.data["illusts"] as List).map((e) => Illust.fromJson(e)).toList(),
subData: res.data["next_url"]);
} else {
return Res.error(res.errorMessage);
}
}
} }

View File

@@ -27,8 +27,8 @@ class _RecommendationPageState extends State<RecommendationPage> {
children: [ children: [
buildTab(), buildTab(),
Expanded( Expanded(
child: type == 0 child: type != 2
? const _RecommendationArtworksPage() ? _RecommendationArtworksPage(type, key: Key(type.toString()),)
: const _RecommendationUsersPage(), : const _RecommendationUsersPage(),
) )
], ],
@@ -41,7 +41,8 @@ class _RecommendationPageState extends State<RecommendationPage> {
action: SegmentedButton<int>( action: SegmentedButton<int>(
options: [ options: [
SegmentedButtonOption(0, "Artworks".tl), SegmentedButtonOption(0, "Artworks".tl),
SegmentedButtonOption(1, "Users".tl), SegmentedButtonOption(1, "Mangas".tl),
SegmentedButtonOption(2, "Users".tl),
], ],
onPressed: (key) { onPressed: (key) {
if(key != type) { if(key != type) {
@@ -58,7 +59,9 @@ class _RecommendationPageState extends State<RecommendationPage> {
class _RecommendationArtworksPage extends StatefulWidget { class _RecommendationArtworksPage extends StatefulWidget {
const _RecommendationArtworksPage(); const _RecommendationArtworksPage(this.type, {super.key});
final int type;
@override @override
State<_RecommendationArtworksPage> createState() => _RecommendationArtworksPageState(); State<_RecommendationArtworksPage> createState() => _RecommendationArtworksPageState();
@@ -87,7 +90,9 @@ class _RecommendationArtworksPageState extends MultiPageLoadingState<_Recommenda
@override @override
Future<Res<List<Illust>>> loadData(page) { Future<Res<List<Illust>>> loadData(page) {
return Network().getRecommendedIllusts(); return widget.type == 0
? Network().getRecommendedIllusts()
: Network().getRecommendedMangas();
} }
} }