From 4d85eedd7b440ad3e9dec78eef6bda27548df1c3 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Fri, 12 May 2023 10:12:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A8=E8=8D=90=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E3=80=8C=E5=B7=B2=E5=85=B3=E6=B3=A8=E3=80=8D?= =?UTF-8?q?=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common/widgets/video_card_v.dart | 19 +++++++++++++++++++ lib/http/video.dart | 10 +++------- lib/models/model_rec_video_item.dart | 3 +++ lib/pages/home/controller.dart | 1 + 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/common/widgets/video_card_v.dart b/lib/common/widgets/video_card_v.dart index 6e52b2ed..e0aa9ff4 100644 --- a/lib/common/widgets/video_card_v.dart +++ b/lib/common/widgets/video_card_v.dart @@ -133,6 +133,25 @@ class VideoContent extends StatelessWidget { ), ), const SizedBox(width: 4) + ] else if (videoItem.isFollowed == 1) ...[ + Container( + padding: const EdgeInsets.fromLTRB(3, 1, 3, 1), + decoration: BoxDecoration( + color: Theme.of(context) + .colorScheme + .primaryContainer + .withOpacity(0.6), + borderRadius: BorderRadius.circular(3)), + child: Text( + '已关注', + style: TextStyle( + fontSize: + Theme.of(context).textTheme.labelSmall!.fontSize, + color: Theme.of(context).colorScheme.primary, + ), + ), + ), + const SizedBox(width: 4) ], Expanded( child: LayoutBuilder(builder: diff --git a/lib/http/video.dart b/lib/http/video.dart index 128b6993..002bff22 100644 --- a/lib/http/video.dart +++ b/lib/http/video.dart @@ -1,7 +1,3 @@ -import 'dart:io'; - -import 'package:dio_cookie_manager/dio_cookie_manager.dart'; -import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:pilipala/http/api.dart'; import 'package:pilipala/http/init.dart'; import 'package:pilipala/models/model_hot_video_item.dart'; @@ -19,7 +15,7 @@ class VideoHttp { var res = await Request().get( Api.recommendList, data: { - 'feed_version': 'V3', + 'feed_version': 'V4', 'ps': ps, 'fresh_idx': freshIdx, }, @@ -31,10 +27,10 @@ class VideoHttp { } return {'status': true, 'data': list}; } else { - return {'status': false, 'data': []}; + return {'status': false, 'data': [], 'msg': ''}; } } catch (err) { - return {'status': false, 'data': [], 'msg': err}; + return {'status': false, 'data': [], 'msg': err.toString()}; } } diff --git a/lib/models/model_rec_video_item.dart b/lib/models/model_rec_video_item.dart index 849def9f..b651aa00 100644 --- a/lib/models/model_rec_video_item.dart +++ b/lib/models/model_rec_video_item.dart @@ -13,6 +13,7 @@ class RecVideoItemModel { this.pubdate, this.owner, this.stat, + this.isFollowed, this.rcmdReason, }); @@ -27,6 +28,7 @@ class RecVideoItemModel { int? pubdate = -1; Owner? owner; Stat? stat; + int? isFollowed; RcmdReason? rcmdReason; RecVideoItemModel.fromJson(Map json) { @@ -41,6 +43,7 @@ class RecVideoItemModel { pubdate = json["pubdate"]; owner = Owner.fromJson(json["owner"]); stat = Stat.fromJson(json["stat"]); + isFollowed = json["is_followed"] ?? 0; rcmdReason = json["rcmd_reason"] != null ? RcmdReason.fromJson(json["rcmd_reason"]) : RcmdReason(content: ''); diff --git a/lib/pages/home/controller.dart b/lib/pages/home/controller.dart index 7182b134..c5606c79 100644 --- a/lib/pages/home/controller.dart +++ b/lib/pages/home/controller.dart @@ -25,6 +25,7 @@ class HomeController extends GetxController { freshIdx: _currentPage, ); if (res['status']) { + print('type: $type'); if (type == 'init') { videoList.value = res['data']; } else if (type == 'onRefresh') {