From d91d4ab62e1a78e33eba987ae773f5b4262d9cbd Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 8 Dec 2024 20:48:11 +0800 Subject: [PATCH] fix: forward dynamics reply --- lib/http/api.dart | 3 +++ lib/http/dynamics.dart | 21 +++++++++++++++++++++ lib/pages/dynamics/detail/controller.dart | 18 +++++++++++------- lib/pages/dynamics/detail/view.dart | 3 +-- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/lib/http/api.dart b/lib/http/api.dart index 379540a5..04847cab 100644 --- a/lib/http/api.dart +++ b/lib/http/api.dart @@ -626,4 +626,7 @@ class Api { /// 修复标题和海报 // /api/view?id=${aid} /all/video/av${aid} /video/av${aid}/ static const String fixTitleAndPic = '${HttpString.biliplusBaseUrl}/api/view'; + + /// 专栏详情 + static const String opusDetail = '/x/polymer/web-dynamic/v1/opus/detail'; } diff --git a/lib/http/dynamics.dart b/lib/http/dynamics.dart index 53ba6fc1..74b9b566 100644 --- a/lib/http/dynamics.dart +++ b/lib/http/dynamics.dart @@ -215,4 +215,25 @@ class DynamicsHttp { }; } } + + static Future opusDetail({ + required int opusId, + }) async { + var res = await Request().get( + Api.opusDetail, + data: {'id': opusId}, + ); + if (res.data['code'] == 0) { + return { + 'status': true, + 'data': res.data['data'], + }; + } else { + return { + 'status': false, + 'data': [], + 'msg': res.data['message'], + }; + } + } } diff --git a/lib/pages/dynamics/detail/controller.dart b/lib/pages/dynamics/detail/controller.dart index a5f04bbe..ac68565d 100644 --- a/lib/pages/dynamics/detail/controller.dart +++ b/lib/pages/dynamics/detail/controller.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:hive/hive.dart'; -import 'package:pilipala/http/html.dart'; +import 'package:pilipala/http/dynamics.dart'; import 'package:pilipala/http/reply.dart'; import 'package:pilipala/models/common/reply_sort_type.dart'; import 'package:pilipala/models/video/reply/item.dart'; @@ -12,6 +12,7 @@ class DynamicDetailController extends GetxController { DynamicDetailController(this.oid, this.type); int? oid; int? type; + int? opusId; dynamic item; int? floor; String nextOffset = ""; @@ -56,6 +57,12 @@ class DynamicDetailController extends GetxController { if (reqType == 'init') { nextOffset = ''; noMore.value = ''; + if (opusId != null && oid == 0) { + var res = await DynamicsHttp.opusDetail(opusId: opusId!); + if (res['status']) { + oid = int.parse(res['data']['item']['basic']['comment_id_str']); + } + } } var res = await ReplyHttp.replyList( oid: oid!, @@ -110,15 +117,12 @@ class DynamicDetailController extends GetxController { sortTypeTitle.value = _sortType.titles; sortTypeLabel.value = _sortType.labels; replyList.clear(); + noMore.value = ''; + isLoadingMore = false; + isEnd = false; queryReplyList(reqType: 'init'); } - // 根据jumpUrl获取动态html - reqHtmlByOpusId(int id) async { - var res = await HtmlHttp.reqHtml(id, 'opus'); - oid = res['commentId']; - } - // 上拉加载 Future onLoad() async { queryReplyList(reqType: 'onLoad'); diff --git a/lib/pages/dynamics/detail/view.dart b/lib/pages/dynamics/detail/view.dart index 5c8f85e3..cd180fbe 100644 --- a/lib/pages/dynamics/detail/view.dart +++ b/lib/pages/dynamics/detail/view.dart @@ -89,9 +89,8 @@ class _DynamicDetailPageState extends State _dynamicDetailController = Get.put( DynamicDetailController(oid, replyType), tag: opusId.toString()); + _dynamicDetailController.opusId = opusId; _futureBuilderFuture = _dynamicDetailController.queryReplyList(); - await _dynamicDetailController.reqHtmlByOpusId(opusId!); - setState(() {}); } } else { oid = moduleDynamic.major!.draw!.id!;