mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
show co/charging label
fix special dm Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -38,11 +38,21 @@ class VideoCardH extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
String type = 'video';
|
||||
String? badge;
|
||||
if (videoItem case SearchVideoItemModel item) {
|
||||
var typeOrNull = item.type;
|
||||
if (typeOrNull?.isNotEmpty == true) {
|
||||
type = typeOrNull!;
|
||||
}
|
||||
if (item.isUnionVideo == 1) {
|
||||
badge = '合作';
|
||||
}
|
||||
} else if (videoItem case HotVideoItemModel item) {
|
||||
if (item.isCooperation == 1) {
|
||||
badge = '合作';
|
||||
} else {
|
||||
badge = item.pgcLabel;
|
||||
}
|
||||
}
|
||||
return Material(
|
||||
type: MaterialType.transparency,
|
||||
@@ -123,9 +133,9 @@ class VideoCardH extends StatelessWidget {
|
||||
width: maxWidth,
|
||||
height: maxHeight,
|
||||
),
|
||||
if (videoItem case HotVideoItemModel item)
|
||||
if (badge != null)
|
||||
PBadge(
|
||||
text: item.pgcLabel,
|
||||
text: badge,
|
||||
top: 6.0,
|
||||
right: 6.0,
|
||||
),
|
||||
|
||||
@@ -17,8 +17,8 @@ class HotVideoItemModel extends BaseRecVideoItemModel with MultiSelectData {
|
||||
String? pubLocation;
|
||||
String? pgcLabel;
|
||||
String? redirectUrl;
|
||||
|
||||
num? progress;
|
||||
int? isCooperation;
|
||||
|
||||
HotVideoItemModel.fromJson(Map<String, dynamic> json) {
|
||||
aid = json["aid"];
|
||||
@@ -47,6 +47,7 @@ class HotVideoItemModel extends BaseRecVideoItemModel with MultiSelectData {
|
||||
redirectUrl = json['redirect_url'];
|
||||
// uri = json['uri']; // 仅在稍后再看存在
|
||||
progress = json['progress'];
|
||||
isCooperation = json['rights']?['is_cooperation'];
|
||||
}
|
||||
|
||||
// @override
|
||||
|
||||
@@ -75,6 +75,7 @@ class SearchVideoItemModel extends BaseVideoItemModel {
|
||||
String? arcurl;
|
||||
String? tag;
|
||||
int? ctime;
|
||||
int? isUnionVideo;
|
||||
|
||||
List<({bool isEm, String text})>? titleList;
|
||||
|
||||
@@ -93,6 +94,7 @@ class SearchVideoItemModel extends BaseVideoItemModel {
|
||||
duration = DurationUtil.parseDuration(json['duration']);
|
||||
owner = SearchOwner.fromJson(json);
|
||||
stat = SearchStat.fromJson(json);
|
||||
isUnionVideo = json['is_union_video'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,9 @@ class PlDanmakuController {
|
||||
|
||||
final shouldFilter = plPlayerController.filters.count != 0;
|
||||
for (final element in data.elems) {
|
||||
if (element.mode == 7 && !plPlayerController.showSpecialDanmaku) {
|
||||
continue;
|
||||
}
|
||||
if (accountService.isLogin.value) {
|
||||
element.isSelf = element.midHash == plPlayerController.midHash;
|
||||
}
|
||||
|
||||
@@ -340,6 +340,7 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel> {
|
||||
int? pubdate;
|
||||
int? view;
|
||||
int? danmaku;
|
||||
bool? isCharging;
|
||||
|
||||
switch (episode) {
|
||||
case Part part:
|
||||
@@ -356,6 +357,9 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel> {
|
||||
pubdate = item.arc?.pubdate;
|
||||
view = item.arc?.stat?.view;
|
||||
danmaku = item.arc?.stat?.danmaku;
|
||||
if (item.attribute == 8) {
|
||||
isCharging = true;
|
||||
}
|
||||
break;
|
||||
case pgc.EpisodeItem item:
|
||||
bvid = item.bvid;
|
||||
@@ -445,7 +449,14 @@ class _EpisodePanelState extends CommonSlidePageState<EpisodePanel> {
|
||||
bottom: 6.0,
|
||||
type: PBadgeType.gray,
|
||||
),
|
||||
if (episode.badge != null)
|
||||
if (isCharging == true)
|
||||
const PBadge(
|
||||
text: '充电专属',
|
||||
top: 6,
|
||||
right: 6,
|
||||
type: PBadgeType.error,
|
||||
)
|
||||
else if (episode.badge != null)
|
||||
PBadge(
|
||||
text: episode.badge,
|
||||
top: 6,
|
||||
|
||||
@@ -101,6 +101,12 @@ class VideoCardHLater extends StatelessWidget {
|
||||
right: 6.0,
|
||||
type: PBadgeType.error,
|
||||
)
|
||||
else if (videoItem.rights?.isCooperation == 1)
|
||||
const PBadge(
|
||||
text: '合作',
|
||||
top: 6.0,
|
||||
right: 6.0,
|
||||
)
|
||||
else if (videoItem.pgcLabel != null)
|
||||
PBadge(
|
||||
text: videoItem.pgcLabel,
|
||||
|
||||
Reference in New Issue
Block a user