mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
@@ -1,7 +1,8 @@
|
||||
import 'package:PiliPlus/http/bangumi.dart';
|
||||
import 'package:PiliPlus/http/fav.dart';
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/http/video.dart';
|
||||
import 'package:PiliPlus/models/pgc/list.dart';
|
||||
import 'package:PiliPlus/models_new/fav/fav_pgc/data.dart';
|
||||
import 'package:PiliPlus/models_new/fav/fav_pgc/list.dart';
|
||||
import 'package:PiliPlus/pages/common/multi_select_controller.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:flutter/foundation.dart' show kDebugMode;
|
||||
@@ -10,7 +11,7 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class FavPgcController
|
||||
extends MultiSelectController<BangumiListDataModel, BangumiListItemModel> {
|
||||
extends MultiSelectController<FavPgcData, FavPgcItemModel> {
|
||||
final int type;
|
||||
final int followStatus;
|
||||
|
||||
@@ -34,13 +35,12 @@ class FavPgcController
|
||||
}
|
||||
|
||||
@override
|
||||
List<BangumiListItemModel>? getDataList(BangumiListDataModel response) {
|
||||
List<FavPgcItemModel>? getDataList(FavPgcData response) {
|
||||
return response.list;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<LoadingState<BangumiListDataModel>> customGetData() =>
|
||||
BangumiHttp.bangumiFollowList(
|
||||
Future<LoadingState<FavPgcData>> customGetData() => FavHttp.favPgc(
|
||||
mid: Accounts.main.mid,
|
||||
type: type,
|
||||
followStatus: followStatus,
|
||||
@@ -55,8 +55,8 @@ class FavPgcController
|
||||
}
|
||||
|
||||
// 取消追番
|
||||
Future<void> bangumiDel(index, seasonId) async {
|
||||
var result = await VideoHttp.bangumiDel(seasonId: seasonId);
|
||||
Future<void> pgcDel(int index, seasonId) async {
|
||||
var result = await VideoHttp.pgcDel(seasonId: seasonId);
|
||||
if (result['status']) {
|
||||
loadingState
|
||||
..value.data!.removeAt(index)
|
||||
@@ -66,15 +66,15 @@ class FavPgcController
|
||||
}
|
||||
|
||||
Future<void> onUpdateList(followStatus) async {
|
||||
List<BangumiListItemModel> dataList = loadingState.value.data!;
|
||||
Set<BangumiListItemModel> updateList =
|
||||
List<FavPgcItemModel> dataList = loadingState.value.data!;
|
||||
Set<FavPgcItemModel> updateList =
|
||||
dataList.where((item) => item.checked == true).toSet();
|
||||
final res = await VideoHttp.bangumiUpdate(
|
||||
final res = await VideoHttp.pgcUpdate(
|
||||
seasonId: updateList.map((item) => item.seasonId).toList(),
|
||||
status: followStatus,
|
||||
);
|
||||
if (res['status']) {
|
||||
List<BangumiListItemModel> remainList =
|
||||
List<FavPgcItemModel> remainList =
|
||||
dataList.toSet().difference(updateList).toList();
|
||||
loadingState.value = Success(remainList);
|
||||
enableMultiSelect.value = false;
|
||||
@@ -96,12 +96,12 @@ class FavPgcController
|
||||
}
|
||||
|
||||
Future<void> onUpdate(index, followStatus, seasonId) async {
|
||||
var result = await VideoHttp.bangumiUpdate(
|
||||
var result = await VideoHttp.pgcUpdate(
|
||||
seasonId: [seasonId],
|
||||
status: followStatus,
|
||||
);
|
||||
if (result['status']) {
|
||||
List<BangumiListItemModel> list = loadingState.value.data!;
|
||||
List<FavPgcItemModel> list = loadingState.value.data!;
|
||||
final item = list.removeAt(index);
|
||||
loadingState.refresh();
|
||||
try {
|
||||
@@ -113,7 +113,7 @@ class FavPgcController
|
||||
ctr.allSelected.value = false;
|
||||
}
|
||||
} catch (e) {
|
||||
if (kDebugMode) debugPrint('fav pgc bangumiUpdate: $e');
|
||||
if (kDebugMode) debugPrint('fav pgc pgcUpdate: $e');
|
||||
}
|
||||
}
|
||||
SmartDialog.showToast(result['msg']);
|
||||
|
||||
Reference in New Issue
Block a user