diff --git a/lib/common/widgets/video_card/video_card_v.dart b/lib/common/widgets/video_card/video_card_v.dart index 1b17e456..2f42fb42 100644 --- a/lib/common/widgets/video_card/video_card_v.dart +++ b/lib/common/widgets/video_card/video_card_v.dart @@ -41,17 +41,17 @@ class VideoCardV extends StatelessWidget { break; case 'av': String bvid = videoItem.bvid ?? IdUtils.av2bv(videoItem.aid!); - int? cid = videoItem.cid; - if (cid == null || cid == 0 || cid == -1) { - cid = await SearchHttp.ab2c(aid: videoItem.aid, bvid: bvid); + int? cid = videoItem.cid ?? + await SearchHttp.ab2c(aid: videoItem.aid, bvid: bvid); + if (cid != null) { + PageUtils.toVideoPage( + 'bvid=$bvid&cid=$cid', + arguments: { + 'pic': videoItem.cover, + 'heroTag': heroTag, + }, + ); } - PageUtils.toVideoPage( - 'bvid=$bvid&cid=$cid', - arguments: { - 'pic': videoItem.cover, - 'heroTag': heroTag, - }, - ); break; // 动态 case 'picture': diff --git a/lib/models/home/rcmd/result.dart b/lib/models/home/rcmd/result.dart index 318c764d..10e65580 100644 --- a/lib/models/home/rcmd/result.dart +++ b/lib/models/home/rcmd/result.dart @@ -4,17 +4,16 @@ import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/utils.dart'; class RecVideoItemAppModel extends BaseRecVideoItemModel { - int? id; + int? get id => aid; String? talkBack; String? cardType; ThreePoint? threePoint; RecVideoItemAppModel.fromJson(Map json) { - id = json['player_args']?['aid'] ?? int.tryParse(json['param'] ?? '0'); - aid = id; + aid = json['player_args']?['aid'] ?? int.tryParse(json['param'] ?? '0'); bvid = json['bvid'] ?? IdUtils.av2bv(id!); - cid = json['player_args']?['cid'] ?? 0; + cid = json['player_args']?['cid']; cover = json['cover']; stat = RcmdStat.fromJson(json); // 改用player_args中的duration作为原始数据(秒数) diff --git a/lib/pages/member_home/widgets/video_card_v_member_home.dart b/lib/pages/member_home/widgets/video_card_v_member_home.dart index 24ec19f7..eee9a32c 100644 --- a/lib/pages/member_home/widgets/video_card_v_member_home.dart +++ b/lib/pages/member_home/widgets/video_card_v_member_home.dart @@ -43,13 +43,15 @@ class VideoCardVMemberHome extends StatelessWidget { bvid ??= IdUtils.av2bv(int.parse(aid!)); int? cid = videoItem.cid ?? await SearchHttp.ab2c(aid: aid, bvid: bvid); - PageUtils.toVideoPage( - 'bvid=$bvid&cid=$cid', - arguments: { - 'pic': videoItem.cover, - 'heroTag': heroTag, - }, - ); + if (cid != null) { + PageUtils.toVideoPage( + 'bvid=$bvid&cid=$cid', + arguments: { + 'pic': videoItem.cover, + 'heroTag': heroTag, + }, + ); + } break; default: