diff --git a/lib/http/api.dart b/lib/http/api.dart index ff524e2f..71b5e386 100644 --- a/lib/http/api.dart +++ b/lib/http/api.dart @@ -129,7 +129,7 @@ class Api { // 评论列表 // https://api.bilibili.com/x/v2/reply/main?csrf=6e22efc1a47225ea25f901f922b5cfdd&mode=3&oid=254175381&pagination_str=%7B%22offset%22:%22%22%7D&plat=1&seek_rpid=0&type=11 - static const String replyList = '/x/v2/reply/main'; + static const String replyList = '/x/v2/reply'; // 楼中楼 static const String replyReplyList = '/x/v2/reply/reply'; diff --git a/lib/http/reply.dart b/lib/http/reply.dart index dfa5976a..dacea1e6 100644 --- a/lib/http/reply.dart +++ b/lib/http/reply.dart @@ -13,9 +13,9 @@ import 'init.dart'; class ReplyHttp { static Future replyList({ required int oid, - required String nextOffset, required int type, int sort = 1, + required int page, }) async { Options? options = GStorage.userInfo.get('userInfoCache') == null ? Options( @@ -26,8 +26,9 @@ class ReplyHttp { data: { 'oid': oid, 'type': type, - 'pagination_str': '{"offset":"${nextOffset.replaceAll('"', '\\"')}"}', - 'mode': sort + 2, //2:按时间排序;3:按热度排序 + 'sort': sort, + 'pn': page, + 'ps': 20, }, options: options, ); diff --git a/lib/models/video/reply/data.dart b/lib/models/video/reply/data.dart index 15735c53..8c5be8b2 100644 --- a/lib/models/video/reply/data.dart +++ b/lib/models/video/reply/data.dart @@ -6,31 +6,29 @@ import 'upper.dart'; class ReplyData { ReplyData({ - this.cursor, + this.page, this.config, this.replies, this.topReplies, this.upper, }); - ReplyCursor? cursor; + ReplyPage? page; ReplyConfig? config; late List? replies; late List? topReplies; ReplyUpper? upper; ReplyData.fromJson(Map json) { - cursor = ReplyCursor.fromJson(json['cursor']); + page = ReplyPage.fromJson(json['page']); config = ReplyConfig.fromJson(json['config']); replies = json['replies'] != null - ? List.from(json['replies'] - .map( - (item) => ReplyItemModel.fromJson(item, json['upper']['mid']))) + ? List.from(json['replies'].map( + (item) => ReplyItemModel.fromJson(item, json['upper']['mid']))) : []; topReplies = json['top_replies'] != null - ? List.from(json['top_replies'] - .map((item) => ReplyItemModel.fromJson( - item, json['upper']['mid'], + ? List.from(json['top_replies'].map( + (item) => ReplyItemModel.fromJson(item, json['upper']['mid'], isTopStatus: true))) : []; upper = ReplyUpper.fromJson(json['upper']); @@ -58,15 +56,13 @@ class ReplyReplyData { page = ReplyPage.fromJson(json['page']); config = ReplyConfig.fromJson(json['config']); replies = json['replies'] != null - ? List.from(json['replies'] - .map( + ? List.from(json['replies'].map( (item) => ReplyItemModel.fromJson(item, json['upper']['mid']))) : []; topReplies = json['top_replies'] != null - ? List.from(json['top_replies'] - .map((item) => ReplyItemModel.fromJson( - item, json['upper']['mid'], - isTopStatus: true))) + ? List.from(json['top_replies'].map( + (item) => ReplyItemModel.fromJson(item, json['upper']['mid'], + isTopStatus: true))) : []; upper = ReplyUpper.fromJson(json['upper']); root = ReplyItemModel.fromJson(json['root'], json['upper']['mid']); diff --git a/lib/pages/common/reply_controller.dart b/lib/pages/common/reply_controller.dart index 7e08c156..0484c2a7 100644 --- a/lib/pages/common/reply_controller.dart +++ b/lib/pages/common/reply_controller.dart @@ -41,7 +41,6 @@ abstract class ReplyController extends CommonController { @override Future onRefresh() { - nextOffset = ''; noMore.value = ''; return super.onRefresh(); } @@ -55,7 +54,6 @@ abstract class ReplyController extends CommonController { @override bool customHandleResponse(Success response) { List replies = response.response.replies; - nextOffset = response.response.cursor.paginationReply.nextOffset ?? ""; if (replies.isNotEmpty) { noMore.value = '加载中...'; @@ -78,7 +76,7 @@ abstract class ReplyController extends CommonController { } } replies.insertAll(0, response.response.topReplies); - count.value = response.response.cursor.allCount ?? 0; + count.value = response.response.page.count ?? 0; } else { replies.insertAll( 0, diff --git a/lib/pages/dynamics/detail/controller.dart b/lib/pages/dynamics/detail/controller.dart index de0d805c..a810b0ce 100644 --- a/lib/pages/dynamics/detail/controller.dart +++ b/lib/pages/dynamics/detail/controller.dart @@ -35,8 +35,8 @@ class DynamicDetailController extends ReplyController { @override Future customGetData() => ReplyHttp.replyList( oid: oid!, - nextOffset: nextOffset, type: type!, sort: sortType.index, + page: currentPage, ); } diff --git a/lib/pages/html/controller.dart b/lib/pages/html/controller.dart index a876eb41..112cd803 100644 --- a/lib/pages/html/controller.dart +++ b/lib/pages/html/controller.dart @@ -43,8 +43,8 @@ class HtmlRenderController extends ReplyController { @override Future customGetData() => ReplyHttp.replyList( oid: oid.value, - nextOffset: nextOffset, type: type, sort: sortType.index, + page: currentPage, ); } diff --git a/lib/pages/video/detail/reply/controller.dart b/lib/pages/video/detail/reply/controller.dart index f815d85b..be0420c6 100644 --- a/lib/pages/video/detail/reply/controller.dart +++ b/lib/pages/video/detail/reply/controller.dart @@ -19,8 +19,8 @@ class VideoReplyController extends ReplyController { @override Future customGetData() => ReplyHttp.replyList( oid: aid!, - nextOffset: nextOffset, type: ReplyType.video.index, sort: sortType.index, + page: currentPage, ); }