mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: show dm merged count
related #359 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -117,6 +117,9 @@ class _PlDanmakuState extends State<PlDanmaku> {
|
||||
e.colorful == DmColorfulType.VipGradualColor
|
||||
? true
|
||||
: null,
|
||||
count: widget.playerController.mergeDanmaku && e.hasAttr()
|
||||
? e.attr
|
||||
: null,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user