feat: live/article report

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-03-28 10:34:31 +08:00
parent 3b34cecdcd
commit 49fff821b1
5 changed files with 64 additions and 19 deletions

View File

@@ -261,6 +261,11 @@ class Api {
// https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/video/report.md // https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/video/report.md
static const String heartBeat = '/x/click-interface/web/heartbeat'; static const String heartBeat = '/x/click-interface/web/heartbeat';
static const String historyReport = '/x/v2/history/report';
static const String roomEntryAction =
'${HttpString.liveBaseUrl}/xlive/web-room/v1/index/roomEntryAction';
static const String mediaListHistory = '/x/v1/medialist/history'; static const String mediaListHistory = '/x/v1/medialist/history';
// 查询视频分P列表 (avid/bvid转cid) // 查询视频分P列表 (avid/bvid转cid)

View File

@@ -816,6 +816,32 @@ class VideoHttp {
} }
} }
static Future roomEntryAction({
roomId,
}) async {
await Request().post(
Api.roomEntryAction,
queryParameters: {
'csrf': await Request.getCsrf(),
},
data: {
'room_id': roomId,
'platform': 'pc',
},
);
}
static Future historyReport({
aid,
type,
}) async {
await Request().post(Api.historyReport, queryParameters: {
if (aid != null) 'aid': aid,
if (type != null) 'type': type,
'csrf': Accounts.main.csrf,
});
}
// 视频播放进度 // 视频播放进度
static Future heartBeat({ static Future heartBeat({
bvid, bvid,

View File

@@ -1,8 +1,10 @@
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart'; import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
import 'package:PiliPlus/http/dynamics.dart'; import 'package:PiliPlus/http/dynamics.dart';
import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/common/reply_controller.dart'; import 'package:PiliPlus/pages/common/reply_controller.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/utils/global_data.dart'; import 'package:PiliPlus/utils/global_data.dart';
import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/url_utils.dart'; import 'package:PiliPlus/utils/url_utils.dart';
@@ -82,7 +84,11 @@ class HtmlRenderController extends ReplyController {
} }
@override @override
Future<LoadingState> customGetData() => GlobalData().grpcReply Future<LoadingState> customGetData() {
if (Accounts.main.isLogin && !MineController.anonymity.value) {
VideoHttp.historyReport(aid: oid.value, type: 5);
}
return GlobalData().grpcReply
? ReplyHttp.replyListGrpc( ? ReplyHttp.replyListGrpc(
type: type, type: type,
oid: oid.value, oid: oid.value,
@@ -101,4 +107,5 @@ class HtmlRenderController extends ReplyController {
page: currentPage, page: currentPage,
antiGoodsReply: antiGoodsReply, antiGoodsReply: antiGoodsReply,
); );
}
} }

View File

@@ -1,7 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/models/live/danmu_info.dart'; import 'package:PiliPlus/models/live/danmu_info.dart';
import 'package:PiliPlus/models/live/quality.dart'; import 'package:PiliPlus/models/live/quality.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/tcp/live.dart'; import 'package:PiliPlus/tcp/live.dart';
import 'package:PiliPlus/utils/danmaku.dart'; import 'package:PiliPlus/utils/danmaku.dart';
import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/storage.dart';
@@ -41,6 +43,9 @@ class LiveRoomController extends GetxController {
void onInit() { void onInit() {
super.onInit(); super.onInit();
roomId = int.parse(Get.parameters['roomid']!); roomId = int.parse(Get.parameters['roomid']!);
if (Accounts.main.isLogin && !MineController.anonymity.value) {
VideoHttp.roomEntryAction(roomId: roomId);
}
} }
playerInit(source) async { playerInit(source) async {

View File

@@ -170,6 +170,8 @@ class AccountManager extends Interceptor {
String url = err.requestOptions.uri.toString(); String url = err.requestOptions.uri.toString();
debugPrint('🌹🌹ApiInterceptor: $url'); debugPrint('🌹🌹ApiInterceptor: $url');
if (url.contains('heartbeat') || if (url.contains('heartbeat') ||
url.contains('history/report') ||
url.contains('roomEntryAction') ||
url.contains('seg.so') || url.contains('seg.so') ||
url.contains('online/total') || url.contains('online/total') ||
url.contains('github') || url.contains('github') ||