mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-01 08:38:18 +08:00
feat: bili comm antifraud
Closes #275 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/models/video/reply/item.dart';
|
||||
import 'package:PiliPlus/pages/common/reply_controller.dart';
|
||||
import 'package:PiliPlus/utils/global_data.dart';
|
||||
import 'package:PiliPlus/utils/id_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -27,9 +28,9 @@ class VideoReplyReplyController extends ReplyController
|
||||
bool hasRoot = false;
|
||||
int? id;
|
||||
// 视频aid 请求时使用的oid
|
||||
int? oid;
|
||||
int oid;
|
||||
// rpid 请求楼中楼回复
|
||||
int? rpid;
|
||||
int rpid;
|
||||
ReplyType replyType; // = ReplyType.video;
|
||||
|
||||
int? upMid;
|
||||
@@ -42,6 +43,10 @@ class VideoReplyReplyController extends ReplyController
|
||||
|
||||
late final horizontalPreview = GStorage.horizontalPreview;
|
||||
|
||||
@override
|
||||
dynamic get sourceId =>
|
||||
replyType == ReplyType.video ? IdUtils.av2bv(oid) : oid;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
@@ -49,26 +54,6 @@ class VideoReplyReplyController extends ReplyController
|
||||
queryData();
|
||||
}
|
||||
|
||||
@override
|
||||
Future queryData([bool isRefresh = true]) async {
|
||||
// if (GlobalData().grpcReply &&
|
||||
// !isDialogue &&
|
||||
// currentPage == 1 &&
|
||||
// !hasRoot &&
|
||||
// firstFloor == null &&
|
||||
// rpid != null) {
|
||||
// await GrpcRepo.replyInfo(
|
||||
// rpid: rpid!,
|
||||
// ).then((res) {
|
||||
// if (res['status'] && (res['data']?.mid ?? -1) > 0) {
|
||||
// firstFloor = res['data'];
|
||||
// hasRoot = true;
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
return super.queryData(isRefresh);
|
||||
}
|
||||
|
||||
@override
|
||||
Future onRefresh() {
|
||||
cursor = null;
|
||||
@@ -177,8 +162,8 @@ class VideoReplyReplyController extends ReplyController
|
||||
Future<LoadingState> customGetData() => isDialogue
|
||||
? ReplyHttp.dialogListGrpc(
|
||||
type: replyType.index,
|
||||
oid: oid!,
|
||||
root: rpid!,
|
||||
oid: oid,
|
||||
root: rpid,
|
||||
rpid: dialog!,
|
||||
cursor: CursorReq(
|
||||
next: cursor?.next,
|
||||
@@ -190,8 +175,8 @@ class VideoReplyReplyController extends ReplyController
|
||||
: GlobalData().grpcReply
|
||||
? ReplyHttp.replyReplyListGrpc(
|
||||
type: replyType.index,
|
||||
oid: oid!,
|
||||
root: rpid!,
|
||||
oid: oid,
|
||||
root: rpid,
|
||||
rpid: id ?? 0,
|
||||
cursor: CursorReq(
|
||||
next: cursor?.next,
|
||||
@@ -202,8 +187,8 @@ class VideoReplyReplyController extends ReplyController
|
||||
)
|
||||
: ReplyHttp.replyReplyList(
|
||||
isLogin: isLogin,
|
||||
oid: oid!,
|
||||
root: rpid!,
|
||||
oid: oid,
|
||||
root: rpid,
|
||||
pageNum: currentPage,
|
||||
type: replyType.index,
|
||||
banWordForReply: banWordForReply,
|
||||
|
||||
@@ -22,8 +22,8 @@ class VideoReplyReplyPanel extends StatefulWidget {
|
||||
const VideoReplyReplyPanel({
|
||||
super.key,
|
||||
this.id,
|
||||
this.oid,
|
||||
this.rpid,
|
||||
required this.oid,
|
||||
required this.rpid,
|
||||
this.dialog,
|
||||
this.firstFloor,
|
||||
this.source,
|
||||
@@ -34,8 +34,8 @@ class VideoReplyReplyPanel extends StatefulWidget {
|
||||
this.onDismissed,
|
||||
});
|
||||
final int? id;
|
||||
final int? oid;
|
||||
final int? rpid;
|
||||
final int oid;
|
||||
final int rpid;
|
||||
final int? dialog;
|
||||
final dynamic firstFloor;
|
||||
final String? source;
|
||||
@@ -366,12 +366,20 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel>
|
||||
LoadingState.success(list);
|
||||
if (_videoReplyReplyController.enableCommAntifraud && mounted) {
|
||||
_videoReplyReplyController.checkReply(
|
||||
context,
|
||||
oid,
|
||||
root,
|
||||
widget.replyType.index,
|
||||
replyInfo.id.toInt(),
|
||||
replyInfo.content.message,
|
||||
context: context,
|
||||
oid: oid,
|
||||
rpid: root,
|
||||
replyType: widget.replyType.index,
|
||||
replyId: replyInfo.id.toInt(),
|
||||
message: replyInfo.content.message,
|
||||
//
|
||||
root: replyInfo.root.toInt(),
|
||||
parent: replyInfo.parent.toInt(),
|
||||
ctime: replyInfo.ctime.toInt(),
|
||||
pictures: replyInfo.content.pictures
|
||||
.map((item) => item.toProto3Json())
|
||||
.toList(),
|
||||
mid: replyInfo.mid.toInt(),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
@@ -386,12 +394,18 @@ class _VideoReplyReplyPanelState extends State<VideoReplyReplyPanel>
|
||||
LoadingState.success(list);
|
||||
if (_videoReplyReplyController.enableCommAntifraud && mounted) {
|
||||
_videoReplyReplyController.checkReply(
|
||||
context,
|
||||
oid,
|
||||
root,
|
||||
widget.replyType.index,
|
||||
replyInfo.rpid ?? 0,
|
||||
replyInfo.content?.message ?? '',
|
||||
context: context,
|
||||
oid: oid,
|
||||
rpid: root,
|
||||
replyType: widget.replyType.index,
|
||||
replyId: replyInfo.rpid ?? 0,
|
||||
message: replyInfo.content?.message ?? '',
|
||||
//
|
||||
root: replyInfo.root,
|
||||
parent: replyInfo.parent,
|
||||
ctime: replyInfo.ctime,
|
||||
pictures: replyInfo.content?.pictures,
|
||||
mid: replyInfo.mid,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user