opt: danmaku filter (#486)

This commit is contained in:
My-Responsitories
2025-03-23 12:07:57 +08:00
committed by GitHub
parent 066f3d4132
commit 99b14d0f0e
9 changed files with 141 additions and 189 deletions

View File

@@ -6,6 +6,7 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/segment_progress_bar.dart';
import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/models/common/audio_normalization.dart';
import 'package:PiliPlus/models/user/danmaku_rule.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:canvas_danmaku/canvas_danmaku.dart';
@@ -261,10 +262,7 @@ class PlPlayerController {
/// 弹幕权重
int danmakuWeight = 0;
int filterCount = 0;
List dmFilterString = [];
List<RegExp> dmRegExp = [];
Set dmUid = {};
late RuleFilter filters;
// 关联弹幕控制器
DanmakuController? danmakuController;
bool showDanmaku = true;
@@ -406,22 +404,7 @@ class PlPlayerController {
isOpenDanmu.value =
setting.get(SettingBoxKey.enableShowDanmaku, defaultValue: true);
danmakuWeight = setting.get(SettingBoxKey.danmakuWeight, defaultValue: 0);
List rules = GStorage.localCache
.get(LocalCacheKey.danmakuFilterRule, defaultValue: []);
filterCount = rules.length;
for (var item in rules) {
switch (item['type']) {
case 0:
dmFilterString.add(item['filter']);
break;
case 1:
dmRegExp.add(RegExp(item['filter'], caseSensitive: false));
break;
case 2:
dmUid.add(item['filter']);
break;
}
}
filters = GStorage.danmakuFilterRule;
blockTypes = setting.get(SettingBoxKey.danmakuBlockType, defaultValue: []);
showArea = setting.get(SettingBoxKey.danmakuShowArea, defaultValue: 0.5);
// 不透明度
@@ -1636,7 +1619,7 @@ class PlPlayerController {
_isQueryingVideoShot = true;
try {
dynamic res = await Request().get(
'https://api.bilibili.com/x/player/videoshot',
'/x/player/videoshot',
queryParameters: {
// 'aid': IdUtils.bv2av(_bvid),
'bvid': _bvid,