Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-18 22:13:06 +08:00
parent 41245d5256
commit 30a8b4d25c
13 changed files with 38 additions and 68 deletions

View File

@@ -10,7 +10,6 @@ import 'package:PiliPlus/models_new/later/data.dart';
import 'package:PiliPlus/models_new/media_list/data.dart'; import 'package:PiliPlus/models_new/media_list/data.dart';
import 'package:PiliPlus/models_new/space_setting/data.dart'; import 'package:PiliPlus/models_new/space_setting/data.dart';
import 'package:PiliPlus/models_new/sub/sub/data.dart'; import 'package:PiliPlus/models_new/sub/sub/data.dart';
import 'package:PiliPlus/models_new/sub/sub/list.dart';
import 'package:PiliPlus/models_new/video/video_tag/data.dart'; import 'package:PiliPlus/models_new/video/video_tag/data.dart';
import 'package:PiliPlus/utils/global_data.dart'; import 'package:PiliPlus/utils/global_data.dart';
import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/storage.dart';
@@ -253,7 +252,7 @@ class UserHttp {
} }
// 我的订阅 // 我的订阅
static Future<LoadingState<List<SubItemModel>?>> userSubFolder({ static Future<LoadingState<SubData>> userSubFolder({
required int mid, required int mid,
required int pn, required int pn,
required int ps, required int ps,
@@ -268,7 +267,7 @@ class UserHttp {
}, },
); );
if (res.data['code'] == 0 && res.data['data'] is Map) { if (res.data['code'] == 0 && res.data['data'] is Map) {
return Success(SubData.fromJson(res.data['data']).list); return Success(SubData.fromJson(res.data['data']));
} else { } else {
return Error(res.data['message']); return Error(res.data['message']);
} }

View File

@@ -22,6 +22,7 @@ class BlackListController
@override @override
List<BlackListItem>? getDataList(BlackListData response) { List<BlackListItem>? getDataList(BlackListData response) {
total.value = response.total ?? 0;
return response.list; return response.list;
} }
@@ -32,12 +33,6 @@ class BlackListController
} }
} }
@override
bool customHandleResponse(bool isRefresh, Success<BlackListData> response) {
total.value = response.response.total ?? 0;
return false;
}
void onRemove(BuildContext context, int index, name, mid) { void onRemove(BuildContext context, int index, name, mid) {
showConfirmDialog( showConfirmDialog(
context: context, context: context,

View File

@@ -21,6 +21,9 @@ class SelectTopicController
@override @override
List<TopicItem>? getDataList(TopicPubSearchData response) { List<TopicItem>? getDataList(TopicPubSearchData response) {
if (response.pageInfo?.hasMore == false) {
isEnd = true;
}
return response.topicItems; return response.topicItems;
} }

View File

@@ -41,16 +41,10 @@ class DynamicsTabController
response.items?.removeWhere((e) => dynamicsController.tempBannedList response.items?.removeWhere((e) => dynamicsController.tempBannedList
.contains(e.modules.moduleAuthor?.mid)); .contains(e.modules.moduleAuthor?.mid));
} }
offset = response.offset ?? '';
return response.items; return response.items;
} }
@override
bool customHandleResponse(
bool isRefresh, Success<DynamicsDataModel> response) {
offset = response.response.offset ?? '';
return false;
}
@override @override
Future<LoadingState<DynamicsDataModel>> customGetData() => Future<LoadingState<DynamicsDataModel>> customGetData() =>
DynamicsHttp.followDynamic( DynamicsHttp.followDynamic(

View File

@@ -26,15 +26,10 @@ class FavController extends CommonListController<FavFolderData, FavFolderInfo> {
@override @override
List<FavFolderInfo>? getDataList(FavFolderData response) { List<FavFolderInfo>? getDataList(FavFolderData response) {
return response.list; if (response.hasMore == false) {
}
@override
bool customHandleResponse(bool isRefresh, Success<FavFolderData> response) {
if (response.response.hasMore == false) {
isEnd = true; isEnd = true;
} }
return false; return response.list;
} }
@override @override

View File

@@ -37,6 +37,9 @@ class FavDetailController
@override @override
List<FavDetailItemModel>? getDataList(FavDetailData response) { List<FavDetailItemModel>? getDataList(FavDetailData response) {
if (response.hasMore == false) {
isEnd = true;
}
return response.medias; return response.medias;
} }
@@ -49,8 +52,8 @@ class FavDetailController
@override @override
bool customHandleResponse(bool isRefresh, Success<FavDetailData> response) { bool customHandleResponse(bool isRefresh, Success<FavDetailData> response) {
FavDetailData data = response.response;
if (isRefresh) { if (isRefresh) {
FavDetailData data = response.response;
folderInfo.value = data.info!; folderInfo.value = data.info!;
isOwner.value = data.info?.mid == accountService.mid; isOwner.value = data.info?.mid == accountService.mid;
} }

View File

@@ -26,15 +26,10 @@ class FavSearchController
@override @override
List<FavDetailItemModel>? getDataList(FavDetailData response) { List<FavDetailItemModel>? getDataList(FavDetailData response) {
return response.medias; if (response.hasMore == false) {
}
@override
bool customHandleResponse(bool isRefresh, Success<FavDetailData> response) {
if (response.response.hasMore == false) {
isEnd = true; isEnd = true;
} }
return false; return response.medias;
} }
Future<void> onCancelFav(int index, int id, int? type) async { Future<void> onCancelFav(int index, int id, int? type) async {

View File

@@ -22,6 +22,7 @@ class MemberArticleCtr
@override @override
List<SpaceArticleItem>? getDataList(SpaceArticleData response) { List<SpaceArticleItem>? getDataList(SpaceArticleData response) {
count = response.count ?? -1;
return response.item; return response.item;
} }
@@ -32,13 +33,6 @@ class MemberArticleCtr
} }
} }
@override
bool customHandleResponse(
bool isRefresh, Success<SpaceArticleData> response) {
count = response.response.count ?? -1;
return false;
}
@override @override
Future<LoadingState<SpaceArticleData>> customGetData() => Future<LoadingState<SpaceArticleData>> customGetData() =>
MemberHttp.spaceArticle(mid: mid, page: page); MemberHttp.spaceArticle(mid: mid, page: page);

View File

@@ -34,18 +34,11 @@ class MemberDynamicsController
@override @override
List<DynamicItemModel>? getDataList(DynamicsDataModel response) { List<DynamicItemModel>? getDataList(DynamicsDataModel response) {
return response.items; offset = response.offset?.isNotEmpty == true ? response.offset! : '-1';
} if (response.hasMore == false) {
@override
bool customHandleResponse(
bool isRefresh, Success<DynamicsDataModel> response) {
DynamicsDataModel data = response.response;
offset = data.offset?.isNotEmpty == true ? data.offset! : '-1';
if (data.hasMore == false) {
isEnd = true; isEnd = true;
} }
return false; return response.items;
} }
@override @override

View File

@@ -41,6 +41,9 @@ class MemberSearchChildController extends CommonListController {
case MemberSearchType.dynamic: case MemberSearchType.dynamic:
DynamicsDataModel data = response; DynamicsDataModel data = response;
offset = data.offset; offset = data.offset;
if (data.hasMore == false) {
isEnd = true;
}
controller.counts[searchType.index] = data.total ?? 0; controller.counts[searchType.index] = data.total ?? 0;
return data.items; return data.items;
} }

View File

@@ -46,16 +46,10 @@ class SearchPanelController<R extends SearchNumData<T>, T>
@override @override
List<T>? getDataList(R response) { List<T>? getDataList(R response) {
searchResultController?.count[searchType.index] = response.numResults ?? 0;
return response.list; return response.list;
} }
@override
bool customHandleResponse(bool isRefresh, Success<R> response) {
searchResultController?.count[searchType.index] =
response.response.numResults ?? 0;
return false;
}
@override @override
Future<LoadingState<R>> customGetData() => SearchHttp.searchByType<R>( Future<LoadingState<R>> customGetData() => SearchHttp.searchByType<R>(
searchType: searchType, searchType: searchType,

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/http/fav.dart'; import 'package:PiliPlus/http/fav.dart';
import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/user.dart'; import 'package:PiliPlus/http/user.dart';
import 'package:PiliPlus/models_new/sub/sub/data.dart';
import 'package:PiliPlus/models_new/sub/sub/list.dart'; import 'package:PiliPlus/models_new/sub/sub/list.dart';
import 'package:PiliPlus/pages/common/common_list_controller.dart'; import 'package:PiliPlus/pages/common/common_list_controller.dart';
import 'package:PiliPlus/services/account_service.dart'; import 'package:PiliPlus/services/account_service.dart';
@@ -8,8 +9,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class SubController class SubController extends CommonListController<SubData, SubItemModel> {
extends CommonListController<List<SubItemModel>?, SubItemModel> {
AccountService accountService = Get.find<AccountService>(); AccountService accountService = Get.find<AccountService>();
@override @override
@@ -64,8 +64,15 @@ class SubController
} }
@override @override
Future<LoadingState<List<SubItemModel>?>> customGetData() => List<SubItemModel>? getDataList(SubData response) {
UserHttp.userSubFolder( if (response.hasMore == false) {
isEnd = true;
}
return response.list;
}
@override
Future<LoadingState<SubData>> customGetData() => UserHttp.userSubFolder(
pn: page, pn: page,
ps: 20, ps: 20,
mid: accountService.mid, mid: accountService.mid,

View File

@@ -29,6 +29,10 @@ class SubDetailController
@override @override
List<SubDetailItemModel>? getDataList(SubDetailData response) { List<SubDetailItemModel>? getDataList(SubDetailData response) {
mediaCount.value = response.info!.mediaCount!;
if (subInfo.type == 11) {
playCount.value = response.info!.cntInfo!.play!;
}
return response.medias; return response.medias;
} }
@@ -39,15 +43,6 @@ class SubDetailController
} }
} }
@override
bool customHandleResponse(bool isRefresh, Success<SubDetailData> response) {
mediaCount.value = response.response.info!.mediaCount!;
if (subInfo.type == 11) {
playCount.value = response.response.info!.cntInfo!.play!;
}
return false;
}
@override @override
Future<LoadingState<SubDetailData>> customGetData() { Future<LoadingState<SubDetailData>> customGetData() {
if (subInfo.type == 11) { if (subInfo.type == 11) {