mod: show dm merged count

related #359

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-03-03 21:36:29 +08:00
parent d5a244ce7f
commit 76c16c035e
3 changed files with 18 additions and 4 deletions

View File

@@ -1,6 +1,5 @@
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
import 'package:PiliPlus/grpc/grpc_repo.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:dio/dio.dart';
import 'index.dart';
@@ -18,8 +17,20 @@ class DanmakuHttp {
return DmSegMobileReply();
}
DmSegMobileReply data = response['data'];
if (mergeDanmaku) {
data.elems.unique((item) => item.content);
if (mergeDanmaku && data.elems.isNotEmpty) {
final Map counts = <String, int>{};
data.elems.retainWhere((item) {
int? count = counts[item.content];
counts[item.content] = count != null ? count + 1 : 1;
return count == null;
});
for (DanmakuElem item in data.elems) {
item.clearAttr();
final count = counts[item.content];
if (count != 1) {
item.attr = count;
}
}
}
return data;
}

View File

@@ -117,6 +117,9 @@ class _PlDanmakuState extends State<PlDanmaku> {
e.colorful == DmColorfulType.VipGradualColor
? true
: null,
count: widget.playerController.mergeDanmaku && e.hasAttr()
? e.attr
: null,
),
);
}

View File

@@ -252,7 +252,7 @@ packages:
description:
path: "."
ref: main
resolved-ref: ecf4a8457ec9d128095240d96dbfa5cc53b6cf6b
resolved-ref: "77c76f6595c6862cc623b036718173619c02af75"
url: "https://github.com/bggRGjQaUbCoE/canvas_danmaku.git"
source: git
version: "0.2.6"