mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
mod: update proto
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -2,20 +2,18 @@ import 'dart:convert';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:PiliPlus/common/constants.dart';
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v1/dynamic.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/dynamic/v2/dynamic.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/main/community/reply/v1/reply.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/playeronline/v1/playeronline.pb.dart';
|
||||
import 'package:PiliPlus/grpc/app/show/popular/v1/popular.pb.dart';
|
||||
import 'package:PiliPlus/grpc/device/device.pb.dart';
|
||||
import 'package:PiliPlus/grpc/dm/v1/dm.pb.dart';
|
||||
import 'package:PiliPlus/grpc/fawkes/fawkes.pb.dart';
|
||||
import 'package:PiliPlus/grpc/im/interfaces/v1/im.pb.dart';
|
||||
import 'package:PiliPlus/grpc/im/type/im.pb.dart';
|
||||
import 'package:PiliPlus/grpc/locale/locale.pb.dart';
|
||||
import 'package:PiliPlus/grpc/metadata/metadata.pb.dart';
|
||||
import 'package:PiliPlus/grpc/network/network.pb.dart' as network;
|
||||
import 'package:PiliPlus/grpc/restriction/restriction.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v1.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/community/service/dm/v1.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/im/interfaces/v1.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/im/type.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata/device.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata/fawkes.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata/locale.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata/network.pb.dart' as network;
|
||||
import 'package:PiliPlus/grpc/bilibili/metadata/restriction.pb.dart';
|
||||
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
|
||||
import 'package:PiliPlus/http/constants.dart';
|
||||
import 'package:PiliPlus/http/init.dart';
|
||||
import 'package:PiliPlus/utils/login_utils.dart';
|
||||
@@ -23,25 +21,33 @@ import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:PiliPlus/utils/utils.dart';
|
||||
import 'package:archive/archive.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fixnum/src/int64.dart';
|
||||
import 'package:fixnum/fixnum.dart';
|
||||
import 'package:protobuf/protobuf.dart' show GeneratedMessage;
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class GrpcUrl {
|
||||
static const playerOnline =
|
||||
'/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline';
|
||||
static const popular = '/bilibili.app.show.v1.Popular/Index';
|
||||
static const dialogList =
|
||||
'/bilibili.main.community.reply.v1.Reply/DialogList';
|
||||
static const detailList =
|
||||
'/bilibili.main.community.reply.v1.Reply/DetailList';
|
||||
static const replyInfo = '/bilibili.main.community.reply.v1.Reply/ReplyInfo';
|
||||
static const mainList = '/bilibili.main.community.reply.v1.Reply/MainList';
|
||||
static const dynSpace = '/bilibili.app.dynamic.v2.Dynamic/DynSpace';
|
||||
// static const playerOnline =
|
||||
// '/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline';
|
||||
// static const popular = '/bilibili.app.show.v1.Popular/Index';
|
||||
|
||||
// dynamic
|
||||
static const dynRed = '/bilibili.app.dynamic.v1.Dynamic/DynRed';
|
||||
// static const dynSpace = '/bilibili.app.dynamic.v2.Dynamic/DynSpace';
|
||||
|
||||
// danmaku
|
||||
static const dmSegMobile = '/bilibili.community.service.dm.v1.DM/DmSegMobile';
|
||||
static const sendMsg = '/bilibili.im.interface.v1.ImInterface/SendMsg';
|
||||
static const shareList = '/bilibili.im.interface.v1.ImInterface/ShareList';
|
||||
|
||||
// reply
|
||||
static const reply = '/bilibili.main.community.reply.v1.Reply';
|
||||
static const mainList = '$reply/MainList';
|
||||
static const detailList = '$reply/DetailList';
|
||||
static const dialogList = '$reply/DialogList';
|
||||
// static const replyInfo = '$reply/ReplyInfo';
|
||||
|
||||
// im
|
||||
static const im = '/bilibili.im.interface.v1.ImInterface';
|
||||
static const sendMsg = '$im/SendMsg';
|
||||
static const shareList = '$im/ShareList';
|
||||
}
|
||||
|
||||
class GrpcRepo {
|
||||
@@ -180,42 +186,68 @@ class GrpcRepo {
|
||||
}
|
||||
}
|
||||
|
||||
static Future playerOnline({
|
||||
int aid = 0,
|
||||
int cid = 0,
|
||||
}) async {
|
||||
return await _request(
|
||||
GrpcUrl.playerOnline,
|
||||
PlayerOnlineReq(aid: Int64(aid), cid: Int64(cid), playOpen: true),
|
||||
PlayerOnlineReply.fromBuffer,
|
||||
onSuccess: (response) => response.totalNumberText);
|
||||
}
|
||||
// static Future playerOnline({
|
||||
// int aid = 0,
|
||||
// int cid = 0,
|
||||
// }) async {
|
||||
// return await _request(
|
||||
// GrpcUrl.playerOnline,
|
||||
// PlayerOnlineReq(aid: Int64(aid), cid: Int64(cid), playOpen: true),
|
||||
// PlayerOnlineReply.fromBuffer,
|
||||
// onSuccess: (response) => response.totalNumberText);
|
||||
// }
|
||||
|
||||
static Future popular(int idx) async {
|
||||
return await _request(GrpcUrl.popular, PopularResultReq(idx: Int64(idx)),
|
||||
PopularReply.fromBuffer, onSuccess: (response) {
|
||||
response.items.retainWhere((item) => item.smallCoverV5.base.goto == 'av');
|
||||
return {'status': true, 'data': response.items};
|
||||
});
|
||||
}
|
||||
// static Future popular(int idx) async {
|
||||
// return await _request(GrpcUrl.popular, PopularResultReq(idx: Int64(idx)),
|
||||
// PopularReply.fromBuffer, onSuccess: (response) {
|
||||
// response.items.retainWhere((item) => item.smallCoverV5.base.goto == 'av');
|
||||
// return {'status': true, 'data': response.items};
|
||||
// });
|
||||
// }
|
||||
|
||||
static Future dialogList({
|
||||
// static Future replyInfo({required int rpid}) async {
|
||||
// return await _request(
|
||||
// GrpcUrl.replyInfo,
|
||||
// ReplyInfoReq(rpid: Int64(rpid)),
|
||||
// ReplyInfoReply.fromBuffer,
|
||||
// onSuccess: (response) => response.reply,
|
||||
// );
|
||||
// }
|
||||
|
||||
// static Future dynSpace({
|
||||
// required int uid,
|
||||
// required int page,
|
||||
// }) async {
|
||||
// return await _request(
|
||||
// GrpcUrl.dynSpace,
|
||||
// DynSpaceReq(
|
||||
// hostUid: Int64(uid),
|
||||
// localTime: 8,
|
||||
// page: Int64(page),
|
||||
// from: 'space',
|
||||
// ),
|
||||
// DynSpaceRsp.fromBuffer,
|
||||
// );
|
||||
// }
|
||||
|
||||
static Future mainList({
|
||||
int type = 1,
|
||||
required int oid,
|
||||
required int root,
|
||||
required int rpid,
|
||||
required CursorReq cursor,
|
||||
DetailListScene scene = DetailListScene.REPLY,
|
||||
required Mode mode,
|
||||
required String? offset,
|
||||
required String? sessionId,
|
||||
}) async {
|
||||
return await _request(
|
||||
GrpcUrl.dialogList,
|
||||
DialogListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
rpid: Int64(rpid),
|
||||
cursor: cursor),
|
||||
DialogListReply.fromBuffer);
|
||||
GrpcUrl.mainList,
|
||||
MainListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
rpid: Int64(0),
|
||||
mode: mode,
|
||||
pagination: FeedPagination(offset: offset ?? ''),
|
||||
),
|
||||
MainListReply.fromBuffer,
|
||||
);
|
||||
}
|
||||
|
||||
static Future detailList({
|
||||
@@ -223,94 +255,69 @@ class GrpcRepo {
|
||||
required int oid,
|
||||
required int root,
|
||||
required int rpid,
|
||||
required CursorReq cursor,
|
||||
DetailListScene scene = DetailListScene.REPLY,
|
||||
required int page,
|
||||
required Mode mode,
|
||||
required String? offset,
|
||||
}) async {
|
||||
return await _request(
|
||||
GrpcUrl.detailList,
|
||||
DetailListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
rpid: Int64(rpid),
|
||||
// cursor: cursor,
|
||||
scene: Int64(scene.value),
|
||||
mode: Int64(cursor.mode.value),
|
||||
pagination: FeedPagination(
|
||||
offset: page == 1
|
||||
? null
|
||||
: jsonEncode(
|
||||
cursor.mode == Mode.MAIN_LIST_TIME
|
||||
? {
|
||||
// time
|
||||
"type": 3,
|
||||
"direction": 1,
|
||||
"Data": {"cursor": cursor.next.toInt()}
|
||||
}
|
||||
: {
|
||||
// hot
|
||||
"type": 1,
|
||||
"direction": 1,
|
||||
"data": {"pn": page}
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
DetailListReply.fromBuffer);
|
||||
GrpcUrl.detailList,
|
||||
DetailListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
rpid: Int64(rpid),
|
||||
scene: DetailListScene.REPLY,
|
||||
mode: mode,
|
||||
pagination: FeedPagination(offset: offset ?? ''),
|
||||
),
|
||||
DetailListReply.fromBuffer,
|
||||
);
|
||||
}
|
||||
|
||||
static Future replyInfo({required int rpid}) async {
|
||||
return await _request(GrpcUrl.replyInfo, ReplyInfoReq(rpid: Int64(rpid)),
|
||||
ReplyInfoReply.fromBuffer,
|
||||
onSuccess: (response) => response.reply);
|
||||
}
|
||||
|
||||
static Future mainList({
|
||||
static Future dialogList({
|
||||
int type = 1,
|
||||
required int oid,
|
||||
required CursorReq cursor,
|
||||
required int root,
|
||||
required int dialog,
|
||||
required String? offset,
|
||||
}) async {
|
||||
return await _request(
|
||||
GrpcUrl.mainList,
|
||||
MainListReq(
|
||||
oid: Int64(oid), type: Int64(type), rpid: Int64(0), cursor: cursor),
|
||||
MainListReply.fromBuffer);
|
||||
}
|
||||
|
||||
static Future dynSpace({
|
||||
required int uid,
|
||||
required int page,
|
||||
}) async {
|
||||
return await _request(
|
||||
GrpcUrl.dynSpace,
|
||||
DynSpaceReq(
|
||||
hostUid: Int64(uid),
|
||||
localTime: 8,
|
||||
page: Int64(page),
|
||||
from: 'space'),
|
||||
DynSpaceRsp.fromBuffer);
|
||||
GrpcUrl.dialogList,
|
||||
DialogListReq(
|
||||
oid: Int64(oid),
|
||||
type: Int64(type),
|
||||
root: Int64(root),
|
||||
dialog: Int64(dialog),
|
||||
pagination: FeedPagination(offset: offset ?? ''),
|
||||
),
|
||||
DialogListReply.fromBuffer,
|
||||
);
|
||||
}
|
||||
|
||||
static Future dynRed() async {
|
||||
return await _request(GrpcUrl.dynRed,
|
||||
DynRedReq(tabOffset: [TabOffset(tab: 1)]), DynRedReply.fromBuffer,
|
||||
onSuccess: (response) => response.dynRedItem.count.toInt());
|
||||
return await _request(
|
||||
GrpcUrl.dynRed,
|
||||
DynRedReq(tabOffset: [TabOffset(tab: 1)]),
|
||||
DynRedReply.fromBuffer,
|
||||
onSuccess: (response) => response.dynRedItem.count.toInt(),
|
||||
);
|
||||
}
|
||||
|
||||
static Future dmSegMobile(
|
||||
{required int cid, required int segmentIndex, int type = 1}) async {
|
||||
return await _request(
|
||||
GrpcUrl.dmSegMobile,
|
||||
DmSegMobileReq(
|
||||
oid: Int64(cid), segmentIndex: Int64(segmentIndex), type: type),
|
||||
DmSegMobileReply.fromBuffer);
|
||||
GrpcUrl.dmSegMobile,
|
||||
DmSegMobileReq(
|
||||
oid: Int64(cid),
|
||||
segmentIndex: Int64(segmentIndex),
|
||||
type: type,
|
||||
),
|
||||
DmSegMobileReply.fromBuffer,
|
||||
);
|
||||
}
|
||||
|
||||
static Future sendMsg({
|
||||
required int senderUid,
|
||||
required int receiverId,
|
||||
int receiverType = 1,
|
||||
required String content,
|
||||
MsgType msgType = MsgType.EN_MSG_TYPE_TEXT,
|
||||
}) async {
|
||||
@@ -320,9 +327,9 @@ class GrpcRepo {
|
||||
ReqSendMsg(
|
||||
msg: Msg(
|
||||
senderUid: Int64(senderUid),
|
||||
receiverType: RecverType.EN_RECVER_TYPE_PEER,
|
||||
receiverType: 1,
|
||||
receiverId: Int64(receiverId),
|
||||
msgType: msgType,
|
||||
msgType: msgType.value,
|
||||
content: content,
|
||||
timestamp: Int64(DateTime.now().millisecondsSinceEpoch ~/ 1000),
|
||||
msgStatus: 0,
|
||||
|
||||
Reference in New Issue
Block a user