mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-27 13:55:54 +08:00
opt: danmaku filter (#486)
This commit is contained in:
committed by
GitHub
parent
066f3d4132
commit
99b14d0f0e
36
lib/models/user/danmaku_rule_adapter.dart
Normal file
36
lib/models/user/danmaku_rule_adapter.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:PiliPlus/models/user/danmaku_rule.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
|
||||
class RuleFilterAdapter extends TypeAdapter<RuleFilter> {
|
||||
@override
|
||||
final int typeId = 12;
|
||||
|
||||
@override
|
||||
RuleFilter read(BinaryReader reader) {
|
||||
return RuleFilter(
|
||||
reader.readStringList(),
|
||||
reader
|
||||
.readStringList()
|
||||
.map((i) => RegExp(i, caseSensitive: false))
|
||||
.toList(),
|
||||
reader.readStringList().toSet());
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, RuleFilter obj) {
|
||||
writer
|
||||
..writeStringList(obj.dmFilterString)
|
||||
..writeStringList(obj.dmRegExp.map((i) => i.pattern).toList())
|
||||
..writeStringList(obj.dmUid.toList());
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => typeId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is RuleFilterAdapter &&
|
||||
runtimeType == other.runtimeType &&
|
||||
typeId == other.typeId;
|
||||
}
|
||||
Reference in New Issue
Block a user