feat: live dm block

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-19 18:46:01 +08:00
parent dcb893ed07
commit 0bc0c36f14
14 changed files with 760 additions and 19 deletions

View File

@@ -0,0 +1,16 @@
import 'package:PiliPlus/models_new/live/live_dm_block/shield_info.dart';
class LiveDmBlockData {
ShieldInfo? shieldInfo;
LiveDmBlockData({
this.shieldInfo,
});
factory LiveDmBlockData.fromJson(Map<String, dynamic> json) =>
LiveDmBlockData(
shieldInfo: json['shield_info'] == null
? null
: ShieldInfo.fromJson(json['shield_info'] as Map<String, dynamic>),
);
}

View File

@@ -0,0 +1,31 @@
import 'package:PiliPlus/models_new/live/live_dm_block/shield_rules.dart';
import 'package:PiliPlus/models_new/live/live_dm_block/shield_user_list.dart';
class ShieldInfo {
List<ShieldUserList>? shieldUserList;
List<String>? keywordList;
ShieldRules? shieldRules;
bool? isBlock;
int? blockExpired;
ShieldInfo({
this.shieldUserList,
this.keywordList,
this.shieldRules,
this.isBlock,
this.blockExpired,
});
factory ShieldInfo.fromJson(Map<String, dynamic> json) => ShieldInfo(
shieldUserList: (json['shield_user_list'] as List<dynamic>?)
?.map((e) => ShieldUserList.fromJson(e as Map<String, dynamic>))
.toList(),
keywordList: (json['keyword_list'] as List?)?.cast(),
shieldRules: json['shield_rules'] == null
? null
: ShieldRules.fromJson(
json['shield_rules'] as Map<String, dynamic>),
isBlock: json['is_block'] as bool?,
blockExpired: json['block_expired'] as int?,
);
}

View File

@@ -0,0 +1,13 @@
class ShieldRules {
int rank;
int verify;
int level;
ShieldRules({this.rank = 0, this.verify = 0, this.level = 0});
factory ShieldRules.fromJson(Map<String, dynamic> json) => ShieldRules(
rank: json['rank'] as int? ?? 0,
verify: json['verify'] as int? ?? 0,
level: json['level'] as int? ?? 0,
);
}

View File

@@ -0,0 +1,13 @@
class ShieldUserList {
int? uid;
String? uname;
ShieldUserList({this.uid, this.uname});
factory ShieldUserList.fromJson(Map<String, dynamic> json) {
return ShieldUserList(
uid: json['uid'] as int?,
uname: json['uname'] as String?,
);
}
}