opt models

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-04 15:20:35 +08:00
parent f50b1d2beb
commit b960359a39
858 changed files with 11000 additions and 12588 deletions

View File

@@ -4,7 +4,7 @@ import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/pgc/list.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/list.dart';
import 'package:PiliPlus/pages/fav/pgc/controller.dart';
import 'package:PiliPlus/pages/fav/pgc/widget/item.dart';
import 'package:PiliPlus/utils/grid.dart';
@@ -155,7 +155,7 @@ class _FavPgcChildPageState extends State<FavPgcChildPage>
);
}
Widget _buildBody(LoadingState<List<BangumiListItemModel>?> loadingState) {
Widget _buildBody(LoadingState<List<FavPgcItemModel>?> loadingState) {
return switch (loadingState) {
Loading() => SliverGrid(
gridDelegate: Grid.videoCardHDelegate(context),
@@ -185,7 +185,7 @@ class _FavPgcChildPageState extends State<FavPgcChildPage>
followStatus: widget.followStatus,
onUpdateStatus: (followStatus) {
if (followStatus == -1) {
_favPgcController.bangumiDel(
_favPgcController.pgcDel(
index,
item.seasonId,
);

View File

@@ -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']);

View File

@@ -3,7 +3,7 @@ import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/button/icon_button.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/models/common/badge_type.dart';
import 'package:PiliPlus/models/pgc/list.dart';
import 'package:PiliPlus/models_new/fav/fav_pgc/list.dart';
import 'package:PiliPlus/pages/common/multi_select_controller.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:flutter/material.dart';
@@ -17,7 +17,7 @@ class FavPgcItem extends StatelessWidget {
required this.onUpdateStatus,
});
final BangumiListItemModel item;
final FavPgcItemModel item;
final MultiSelectController ctr;
final VoidCallback onSelect;
final VoidCallback onUpdateStatus;
@@ -36,7 +36,7 @@ class FavPgcItem extends StatelessWidget {
onSelect();
return;
}
PageUtils.viewBangumi(seasonId: item.seasonId);
PageUtils.viewPgc(seasonId: item.seasonId);
},
onLongPress: () {
if (!ctr.enableMultiSelect.value) {