mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-31 16:18:22 +08:00
@@ -21,16 +21,17 @@ class Constants {
|
|||||||
static const String traceId =
|
static const String traceId =
|
||||||
'11111111111111111111111111111111:1111111111111111:0:0';
|
'11111111111111111111111111111111:1111111111111111:0:0';
|
||||||
static const String userAgent =
|
static const String userAgent =
|
||||||
'Mozilla/5.0 BiliDroid/1.46.2 (bbcallen@gmail.com) os/android model/vivo mobi_app/android_hd build/2001100 channel/yingyongbao innerVer/2001100 osVer/14 network/2';
|
'Mozilla/5.0 BiliDroid/2.0.1 (bbcallen@gmail.com) os/android model/android_hd mobi_app/android_hd build/2001100 channel/master innerVer/2001100 osVer/15 network/2';
|
||||||
static const String statistics =
|
static const String statistics =
|
||||||
'{"appId":5,"platform":3,"version":"1.46.2","abtest":""}';
|
'{"appId":5,"platform":3,"version":"2.0.1","abtest":""}';
|
||||||
// 请求时会自动encodeComponent
|
// 请求时会自动encodeComponent
|
||||||
|
|
||||||
// app
|
// app
|
||||||
static const String userAgentApp =
|
static const String userAgentApp =
|
||||||
'Mozilla/5.0 BiliDroid/8.43.0 (bbcallen@gmail.com) os/android model/android mobi_app/android build/8430300 channel/bili innerVer/8430300 osVer/15 network/2';
|
'Mozilla/5.0 BiliDroid/8.43.0 (bbcallen@gmail.com) os/android model/android mobi_app/android build/8430300 channel/master innerVer/8430300 osVer/15 network/2';
|
||||||
|
|
||||||
static const String statisticsApp =
|
static const String statisticsApp =
|
||||||
'{"appId":5,"platform":3,"version":"8.43.0","abtest":""}';
|
'{"appId":1,"platform":3,"version":"8.43.0","abtest":""}';
|
||||||
|
|
||||||
static const urlPattern =
|
static const urlPattern =
|
||||||
r'https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]';
|
r'https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:PiliPlus/grpc/bilibili/community/service/dm/v1.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/community/service/dm/v1.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:fixnum/fixnum.dart';
|
import 'package:fixnum/fixnum.dart';
|
||||||
|
|
||||||
@@ -9,7 +10,7 @@ class DmGrpc {
|
|||||||
required int segmentIndex,
|
required int segmentIndex,
|
||||||
int type = 1,
|
int type = 1,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.dmSegMobile,
|
GrpcUrl.dmSegMobile,
|
||||||
DmSegMobileReq(
|
DmSegMobileReq(
|
||||||
oid: Int64(cid),
|
oid: Int64(cid),
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v1.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v1.pb.dart'
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
show DynRedReq, TabOffset, DynRedReply;
|
||||||
|
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v2.pb.dart'
|
||||||
|
show OpusType, OpusDetailReq, OpusDetailResp;
|
||||||
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
|
import 'package:fixnum/fixnum.dart';
|
||||||
|
|
||||||
class DynGrpc {
|
class DynGrpc {
|
||||||
// static Future dynSpace({
|
// static Future dynSpace({
|
||||||
@@ -19,11 +25,25 @@ class DynGrpc {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
static Future<int?> dynRed() async {
|
static Future<int?> dynRed() async {
|
||||||
final res = await GrpcRepo.request(
|
final res = await GrpcReq.request(
|
||||||
GrpcUrl.dynRed,
|
GrpcUrl.dynRed,
|
||||||
DynRedReq(tabOffset: [TabOffset(tab: 1)]),
|
DynRedReq(tabOffset: [TabOffset(tab: 1)]),
|
||||||
DynRedReply.fromBuffer,
|
DynRedReply.fromBuffer,
|
||||||
);
|
);
|
||||||
return res.dataOrNull?.dynRedItem.count.toInt();
|
return res.dataOrNull?.dynRedItem.count.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<LoadingState<OpusDetailResp>> opusDetail({
|
||||||
|
OpusType? opusType,
|
||||||
|
required int oid,
|
||||||
|
}) async {
|
||||||
|
return GrpcReq.request(
|
||||||
|
GrpcUrl.opusDetail,
|
||||||
|
OpusDetailReq(
|
||||||
|
opusType: opusType,
|
||||||
|
oid: Int64(oid),
|
||||||
|
),
|
||||||
|
OpusDetailResp.fromBuffer,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import 'package:PiliPlus/grpc/bilibili/metadata/device.pb.dart';
|
|||||||
import 'package:PiliPlus/grpc/bilibili/metadata/fawkes.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/locale.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/bilibili/metadata/network.pb.dart' as network;
|
import 'package:PiliPlus/grpc/bilibili/metadata/network.pb.dart' as network;
|
||||||
import 'package:PiliPlus/grpc/bilibili/metadata/restriction.pb.dart';
|
|
||||||
import 'package:PiliPlus/grpc/google/rpc/status.pb.dart';
|
import 'package:PiliPlus/grpc/google/rpc/status.pb.dart';
|
||||||
import 'package:PiliPlus/http/constants.dart';
|
import 'package:PiliPlus/http/constants.dart';
|
||||||
import 'package:PiliPlus/http/init.dart';
|
import 'package:PiliPlus/http/init.dart';
|
||||||
@@ -18,64 +17,16 @@ import 'package:PiliPlus/utils/login_utils.dart';
|
|||||||
import 'package:PiliPlus/utils/utils.dart';
|
import 'package:PiliPlus/utils/utils.dart';
|
||||||
import 'package:archive/archive.dart';
|
import 'package:archive/archive.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:fixnum/fixnum.dart';
|
|
||||||
import 'package:flutter/foundation.dart' show kDebugMode;
|
import 'package:flutter/foundation.dart' show kDebugMode;
|
||||||
import 'package:protobuf/protobuf.dart' show GeneratedMessage;
|
import 'package:protobuf/protobuf.dart' show GeneratedMessage;
|
||||||
|
|
||||||
class GrpcUrl {
|
class GrpcReq {
|
||||||
// static const playerOnline =
|
|
||||||
// '/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline';
|
|
||||||
// static const popular = '/bilibili.app.show.v1.Popular/Index';
|
|
||||||
|
|
||||||
// dynamic
|
|
||||||
static const dynV1 = '/bilibili.app.dynamic.v1.Dynamic';
|
|
||||||
static const dynV2 = '/bilibili.app.dynamic.v2.Dynamic';
|
|
||||||
static const opusV2 = '/bilibili.app.dynamic.v2.Opus';
|
|
||||||
static const dynRed = '$dynV1/DynRed';
|
|
||||||
static const opusSpaceFlow = '$opusV2/OpusSpaceFlow';
|
|
||||||
// static const dynSpace = '$dynV2/DynSpace';
|
|
||||||
|
|
||||||
// danmaku
|
|
||||||
static const dmSegMobile = '/bilibili.community.service.dm.v1.DM/DmSegMobile';
|
|
||||||
|
|
||||||
// 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 im2 = '/bilibili.app.im.v1.im';
|
|
||||||
static const sendMsg = '$im/SendMsg';
|
|
||||||
static const shareList = '$im/ShareList';
|
|
||||||
static const sessionMain = '$im2/SessionMain';
|
|
||||||
static const sessionSecondary = '$im2/SessionSecondary';
|
|
||||||
static const clearUnread = '$im2/ClearUnread';
|
|
||||||
static const sessionUpdate = '$im2/SessionUpdate';
|
|
||||||
static const pinSession = '$im2/PinSession';
|
|
||||||
static const unpinSession = '$im2/UnpinSession';
|
|
||||||
static const deleteSessionList = '$im2/DeleteSessionList';
|
|
||||||
static const getImSettings = '$im2/GetImSettings';
|
|
||||||
static const setImSettings = '$im2/SetImSettings';
|
|
||||||
static const keywordBlockingList = '$im2/KeywordBlockingList';
|
|
||||||
static const keywordBlockingAdd = '$im2/KeywordBlockingAdd';
|
|
||||||
static const keywordBlockingDelete = '$im2/KeywordBlockingDelete';
|
|
||||||
static const syncFetchSessionMsgs = '$im/SyncFetchSessionMsgs';
|
|
||||||
static const getTotalUnread = '$im/GetTotalUnread';
|
|
||||||
|
|
||||||
// view
|
|
||||||
static const viewunite = '/bilibili.app.viewunite.v1.View';
|
|
||||||
static const view = '$viewunite/View';
|
|
||||||
}
|
|
||||||
|
|
||||||
class GrpcRepo {
|
|
||||||
static String? _accessKey = Accounts.main.accessKey;
|
static String? _accessKey = Accounts.main.accessKey;
|
||||||
static const _build = 2001100;
|
static const _build = 2001100;
|
||||||
static const _biliChannel = 'bili';
|
static const _versionName = '2.0.1';
|
||||||
|
static const _biliChannel = 'master';
|
||||||
static const _mobiApp = 'android_hd';
|
static const _mobiApp = 'android_hd';
|
||||||
static const _phone = 'phone';
|
static const _device = 'android';
|
||||||
|
|
||||||
static final _buvid = LoginUtils.buvid;
|
static final _buvid = LoginUtils.buvid;
|
||||||
static final _traceId = IdUtils.genTraceId();
|
static final _traceId = IdUtils.genTraceId();
|
||||||
@@ -91,19 +42,20 @@ class GrpcRepo {
|
|||||||
headers['x-bili-metadata-bin'] = base64Encode(Metadata(
|
headers['x-bili-metadata-bin'] = base64Encode(Metadata(
|
||||||
accessKey: _accessKey ?? '',
|
accessKey: _accessKey ?? '',
|
||||||
mobiApp: _mobiApp,
|
mobiApp: _mobiApp,
|
||||||
device: _phone,
|
device: _device,
|
||||||
build: _build,
|
build: _build,
|
||||||
channel: _biliChannel,
|
channel: _biliChannel,
|
||||||
buvid: _buvid,
|
buvid: _buvid,
|
||||||
platform: _mobiApp,
|
platform: _device,
|
||||||
).writeToBuffer());
|
).writeToBuffer());
|
||||||
|
options = Options(headers: headers, responseType: ResponseType.bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final Map<String, String> headers = {
|
static final Map<String, String> headers = {
|
||||||
Headers.contentTypeHeader: 'application/grpc',
|
Headers.contentTypeHeader: 'application/grpc',
|
||||||
'grpc-encoding': 'gzip',
|
'grpc-encoding': 'gzip',
|
||||||
'gzip-accept-encoding': 'gzip,identity',
|
'gzip-accept-encoding': 'gzip,identity',
|
||||||
'user-agent': '${Constants.userAgent} grpc-java-cronet/1.36.1',
|
'user-agent': Constants.userAgent,
|
||||||
'x-bili-gaia-vtoken': '',
|
'x-bili-gaia-vtoken': '',
|
||||||
'x-bili-aurora-zone': '',
|
'x-bili-aurora-zone': '',
|
||||||
'x-bili-trace-id': _traceId,
|
'x-bili-trace-id': _traceId,
|
||||||
@@ -111,58 +63,45 @@ class GrpcRepo {
|
|||||||
'buvid': _buvid,
|
'buvid': _buvid,
|
||||||
'bili-http-engine': 'cronet',
|
'bili-http-engine': 'cronet',
|
||||||
'te': 'trailers',
|
'te': 'trailers',
|
||||||
'x-bili-fawkes-req-bin': base64Encode(
|
'x-bili-fawkes-req-bin': base64Encode(FawkesReq(
|
||||||
FawkesReq(appkey: _mobiApp, env: 'prod', sessionId: _sessionId)
|
appkey: _mobiApp,
|
||||||
.writeToBuffer()),
|
env: 'prod',
|
||||||
|
sessionId: _sessionId,
|
||||||
|
).writeToBuffer()),
|
||||||
'x-bili-metadata-bin': base64Encode(Metadata(
|
'x-bili-metadata-bin': base64Encode(Metadata(
|
||||||
accessKey: _accessKey ?? '',
|
accessKey: _accessKey ?? '',
|
||||||
mobiApp: _mobiApp,
|
mobiApp: _mobiApp,
|
||||||
device: _phone,
|
device: _device,
|
||||||
build: _build,
|
build: _build,
|
||||||
channel: _biliChannel,
|
channel: _biliChannel,
|
||||||
buvid: _buvid,
|
buvid: _buvid,
|
||||||
platform: _mobiApp,
|
platform: _device,
|
||||||
).writeToBuffer()),
|
).writeToBuffer()),
|
||||||
'x-bili-device-bin': base64Encode(Device(
|
'x-bili-device-bin': base64Encode(Device(
|
||||||
appId: 1,
|
appId: 5,
|
||||||
build: _build,
|
build: _build,
|
||||||
buvid: _buvid,
|
buvid: _buvid,
|
||||||
mobiApp: _mobiApp,
|
mobiApp: _mobiApp,
|
||||||
platform: _mobiApp,
|
platform: _device,
|
||||||
device: _phone,
|
|
||||||
channel: _biliChannel,
|
channel: _biliChannel,
|
||||||
brand: _phone,
|
brand: _device,
|
||||||
model: _phone,
|
model: _device,
|
||||||
osver: '14',
|
osver: '15',
|
||||||
fpLocal: '',
|
versionName: _versionName,
|
||||||
fpRemote: '',
|
).writeToBuffer()),
|
||||||
versionName: _build.toString(),
|
|
||||||
fp: '',
|
|
||||||
fts: Int64())
|
|
||||||
.writeToBuffer()),
|
|
||||||
'x-bili-network-bin': base64Encode(network.Network(
|
'x-bili-network-bin': base64Encode(network.Network(
|
||||||
type: network.NetworkType.WIFI,
|
type: network.NetworkType.WIFI,
|
||||||
tf: network.TFType.TF_UNKNOWN,
|
).writeToBuffer()),
|
||||||
oid: '')
|
|
||||||
.writeToBuffer()),
|
|
||||||
'x-bili-restriction-bin': base64Encode(Restriction(
|
|
||||||
teenagersMode: false,
|
|
||||||
lessonsMode: false,
|
|
||||||
mode: ModeType.NORMAL,
|
|
||||||
review: false,
|
|
||||||
disableRcmd: false,
|
|
||||||
basicMode: false)
|
|
||||||
.writeToBuffer()),
|
|
||||||
'x-bili-locale-bin': base64Encode(Locale(
|
'x-bili-locale-bin': base64Encode(Locale(
|
||||||
cLocale: LocaleIds(language: 'zh', region: 'CN'),
|
cLocale: LocaleIds(language: 'zh', region: 'CN', script: 'Hans'),
|
||||||
sLocale: LocaleIds(language: 'zh', region: 'CN'),
|
sLocale: LocaleIds(language: 'zh', region: 'CN', script: 'Hans'),
|
||||||
simCode: '',
|
timezone: 'Asia/Shanghai',
|
||||||
timezone: 'Asia/Shanghai')
|
).writeToBuffer()),
|
||||||
.writeToBuffer()),
|
|
||||||
'x-bili-exps-bin': '',
|
'x-bili-exps-bin': '',
|
||||||
};
|
};
|
||||||
|
|
||||||
static final _unprintableRegExp = RegExp(r"[^\u4e00-\u9fa5,。;!?UP]");
|
static Options options =
|
||||||
|
Options(headers: headers, responseType: ResponseType.bytes);
|
||||||
|
|
||||||
static Uint8List compressProtobuf(Uint8List proto) {
|
static Uint8List compressProtobuf(Uint8List proto) {
|
||||||
proto = const GZipEncoder().encodeBytes(proto);
|
proto = const GZipEncoder().encodeBytes(proto);
|
||||||
@@ -186,8 +125,7 @@ class GrpcRepo {
|
|||||||
static Future<LoadingState<T>> request<T>(String url,
|
static Future<LoadingState<T>> request<T>(String url,
|
||||||
GeneratedMessage request, T Function(Uint8List) grpcParser) async {
|
GeneratedMessage request, T Function(Uint8List) grpcParser) async {
|
||||||
final response = await Request().post(HttpString.appBaseUrl + url,
|
final response = await Request().post(HttpString.appBaseUrl + url,
|
||||||
data: compressProtobuf(request.writeToBuffer()),
|
data: compressProtobuf(request.writeToBuffer()), options: options);
|
||||||
options: Options(headers: headers, responseType: ResponseType.bytes));
|
|
||||||
|
|
||||||
if (response.data is Map) {
|
if (response.data is Map) {
|
||||||
return Error(response.data['message']);
|
return Error(response.data['message']);
|
||||||
@@ -219,9 +157,7 @@ class GrpcRepo {
|
|||||||
? 'CODE: ${grpcMsg.code}(${grpcMsg.message})\nMSG: $errMsg'
|
? 'CODE: ${grpcMsg.code}(${grpcMsg.message})\nMSG: $errMsg'
|
||||||
: errMsg;
|
: errMsg;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
msg = utf8
|
msg = utf8.decode(msgBytes, allowMalformed: true);
|
||||||
.decode(msgBytes, allowMalformed: true)
|
|
||||||
.replaceAll(_unprintableRegExp, '');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Error(msg);
|
return Error(msg);
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
import 'package:PiliPlus/grpc/bilibili/app/im/v1.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/app/im/v1.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/bilibili/im/interfaces/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/im/type.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:fixnum/fixnum.dart';
|
import 'package:fixnum/fixnum.dart';
|
||||||
import 'package:protobuf/protobuf.dart' show PbMap;
|
import 'package:protobuf/protobuf.dart' show PbMap;
|
||||||
@@ -14,7 +15,7 @@ class ImGrpc {
|
|||||||
required String content,
|
required String content,
|
||||||
MsgType msgType = MsgType.EN_MSG_TYPE_TEXT,
|
MsgType msgType = MsgType.EN_MSG_TYPE_TEXT,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.sendMsg,
|
GrpcUrl.sendMsg,
|
||||||
ReqSendMsg(
|
ReqSendMsg(
|
||||||
msg: Msg(
|
msg: Msg(
|
||||||
@@ -34,7 +35,7 @@ class ImGrpc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<LoadingState<RspShareList>> shareList({int size = 10}) {
|
static Future<LoadingState<RspShareList>> shareList({int size = 10}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.shareList,
|
GrpcUrl.shareList,
|
||||||
ReqShareList(size: size),
|
ReqShareList(size: size),
|
||||||
RspShareList.fromBuffer,
|
RspShareList.fromBuffer,
|
||||||
@@ -46,7 +47,7 @@ class ImGrpc {
|
|||||||
Int64? endSeqno,
|
Int64? endSeqno,
|
||||||
Int64? beginSeqno,
|
Int64? beginSeqno,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.syncFetchSessionMsgs,
|
GrpcUrl.syncFetchSessionMsgs,
|
||||||
ReqSessionMsg(
|
ReqSessionMsg(
|
||||||
talkerId: Int64(talkerId),
|
talkerId: Int64(talkerId),
|
||||||
@@ -63,7 +64,7 @@ class ImGrpc {
|
|||||||
static Future<LoadingState<SessionMainReply>> sessionMain({
|
static Future<LoadingState<SessionMainReply>> sessionMain({
|
||||||
PbMap<int, Offset>? offset,
|
PbMap<int, Offset>? offset,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.sessionMain,
|
GrpcUrl.sessionMain,
|
||||||
SessionMainReq(
|
SessionMainReq(
|
||||||
paginationParams: PaginationParams(offsets: offset),
|
paginationParams: PaginationParams(offsets: offset),
|
||||||
@@ -76,7 +77,7 @@ class ImGrpc {
|
|||||||
PbMap<int, Offset>? offset,
|
PbMap<int, Offset>? offset,
|
||||||
SessionPageType? pageType,
|
SessionPageType? pageType,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.sessionSecondary,
|
GrpcUrl.sessionSecondary,
|
||||||
SessionSecondaryReq(
|
SessionSecondaryReq(
|
||||||
paginationParams: PaginationParams(offsets: offset),
|
paginationParams: PaginationParams(offsets: offset),
|
||||||
@@ -90,7 +91,7 @@ class ImGrpc {
|
|||||||
SessionPageType? pageType,
|
SessionPageType? pageType,
|
||||||
SessionId? sessionId,
|
SessionId? sessionId,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.clearUnread,
|
GrpcUrl.clearUnread,
|
||||||
ClearUnreadReq(
|
ClearUnreadReq(
|
||||||
pageType: pageType,
|
pageType: pageType,
|
||||||
@@ -104,7 +105,7 @@ class ImGrpc {
|
|||||||
SessionPageType? pageType,
|
SessionPageType? pageType,
|
||||||
SessionId? sessionId,
|
SessionId? sessionId,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.sessionUpdate,
|
GrpcUrl.sessionUpdate,
|
||||||
SessionUpdateReq(
|
SessionUpdateReq(
|
||||||
pageType: pageType,
|
pageType: pageType,
|
||||||
@@ -118,7 +119,7 @@ class ImGrpc {
|
|||||||
SessionId? sessionId,
|
SessionId? sessionId,
|
||||||
Int64? topTimeMicros,
|
Int64? topTimeMicros,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.pinSession,
|
GrpcUrl.pinSession,
|
||||||
PinSessionReq(
|
PinSessionReq(
|
||||||
sessionId: sessionId,
|
sessionId: sessionId,
|
||||||
@@ -131,7 +132,7 @@ class ImGrpc {
|
|||||||
static Future<LoadingState<UnPinSessionReply>> unpinSession({
|
static Future<LoadingState<UnPinSessionReply>> unpinSession({
|
||||||
SessionId? sessionId,
|
SessionId? sessionId,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.unpinSession,
|
GrpcUrl.unpinSession,
|
||||||
UnPinSessionReq(
|
UnPinSessionReq(
|
||||||
sessionId: sessionId,
|
sessionId: sessionId,
|
||||||
@@ -143,7 +144,7 @@ class ImGrpc {
|
|||||||
static Future<LoadingState<DeleteSessionListReply>> deleteSessionList({
|
static Future<LoadingState<DeleteSessionListReply>> deleteSessionList({
|
||||||
SessionPageType? pageType,
|
SessionPageType? pageType,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.deleteSessionList,
|
GrpcUrl.deleteSessionList,
|
||||||
DeleteSessionListReq(
|
DeleteSessionListReq(
|
||||||
pageType: pageType,
|
pageType: pageType,
|
||||||
@@ -154,7 +155,7 @@ class ImGrpc {
|
|||||||
|
|
||||||
static Future<LoadingState<GetImSettingsReply>> getImSettings(
|
static Future<LoadingState<GetImSettingsReply>> getImSettings(
|
||||||
{IMSettingType? type}) {
|
{IMSettingType? type}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.getImSettings,
|
GrpcUrl.getImSettings,
|
||||||
GetImSettingsReq(
|
GetImSettingsReq(
|
||||||
type: type,
|
type: type,
|
||||||
@@ -165,7 +166,7 @@ class ImGrpc {
|
|||||||
|
|
||||||
static Future<LoadingState<SetImSettingsReply>> setImSettings(
|
static Future<LoadingState<SetImSettingsReply>> setImSettings(
|
||||||
{PbMap<int, Setting>? settings}) {
|
{PbMap<int, Setting>? settings}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.setImSettings,
|
GrpcUrl.setImSettings,
|
||||||
SetImSettingsReq(
|
SetImSettingsReq(
|
||||||
settings: settings,
|
settings: settings,
|
||||||
@@ -175,7 +176,7 @@ class ImGrpc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<LoadingState<KeywordBlockingListReply>> keywordBlockingList() {
|
static Future<LoadingState<KeywordBlockingListReply>> keywordBlockingList() {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.keywordBlockingList,
|
GrpcUrl.keywordBlockingList,
|
||||||
KeywordBlockingListReq(),
|
KeywordBlockingListReq(),
|
||||||
KeywordBlockingListReply.fromBuffer,
|
KeywordBlockingListReply.fromBuffer,
|
||||||
@@ -184,7 +185,7 @@ class ImGrpc {
|
|||||||
|
|
||||||
static Future<LoadingState<KeywordBlockingAddReply>> keywordBlockingAdd(
|
static Future<LoadingState<KeywordBlockingAddReply>> keywordBlockingAdd(
|
||||||
String keyword) {
|
String keyword) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.keywordBlockingAdd,
|
GrpcUrl.keywordBlockingAdd,
|
||||||
KeywordBlockingAddReq(keyword: keyword),
|
KeywordBlockingAddReq(keyword: keyword),
|
||||||
KeywordBlockingAddReply.fromBuffer,
|
KeywordBlockingAddReply.fromBuffer,
|
||||||
@@ -193,7 +194,7 @@ class ImGrpc {
|
|||||||
|
|
||||||
static Future<LoadingState<KeywordBlockingDeleteReply>> keywordBlockingDelete(
|
static Future<LoadingState<KeywordBlockingDeleteReply>> keywordBlockingDelete(
|
||||||
String keyword) {
|
String keyword) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.keywordBlockingDelete,
|
GrpcUrl.keywordBlockingDelete,
|
||||||
KeywordBlockingDeleteReq(keyword: keyword),
|
KeywordBlockingDeleteReq(keyword: keyword),
|
||||||
KeywordBlockingDeleteReply.fromBuffer,
|
KeywordBlockingDeleteReply.fromBuffer,
|
||||||
@@ -202,7 +203,7 @@ class ImGrpc {
|
|||||||
|
|
||||||
static Future<LoadingState<RspTotalUnread>> getTotalUnread(
|
static Future<LoadingState<RspTotalUnread>> getTotalUnread(
|
||||||
{int? unreadType}) {
|
{int? unreadType}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.getTotalUnread,
|
GrpcUrl.getTotalUnread,
|
||||||
ReqTotalUnread(unreadType: unreadType, showUnfollowList: 1),
|
ReqTotalUnread(unreadType: unreadType, showUnfollowList: 1),
|
||||||
RspTotalUnread.fromBuffer,
|
RspTotalUnread.fromBuffer,
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import 'package:PiliPlus/common/constants.dart';
|
import 'package:PiliPlus/common/constants.dart';
|
||||||
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||||
import 'package:fixnum/fixnum.dart';
|
import 'package:fixnum/fixnum.dart';
|
||||||
@@ -45,7 +46,7 @@ class ReplyGrpc {
|
|||||||
required String? offset,
|
required String? offset,
|
||||||
required Int64? cursorNext,
|
required Int64? cursorNext,
|
||||||
}) async {
|
}) async {
|
||||||
final res = await GrpcRepo.request(
|
final res = await GrpcReq.request(
|
||||||
GrpcUrl.mainList,
|
GrpcUrl.mainList,
|
||||||
MainListReq(
|
MainListReq(
|
||||||
oid: Int64(oid),
|
oid: Int64(oid),
|
||||||
@@ -87,7 +88,7 @@ class ReplyGrpc {
|
|||||||
required Mode mode,
|
required Mode mode,
|
||||||
required String? offset,
|
required String? offset,
|
||||||
}) async {
|
}) async {
|
||||||
final res = await GrpcRepo.request(
|
final res = await GrpcReq.request(
|
||||||
GrpcUrl.detailList,
|
GrpcUrl.detailList,
|
||||||
DetailListReq(
|
DetailListReq(
|
||||||
oid: Int64(oid),
|
oid: Int64(oid),
|
||||||
@@ -111,7 +112,7 @@ class ReplyGrpc {
|
|||||||
required int dialog,
|
required int dialog,
|
||||||
required String? offset,
|
required String? offset,
|
||||||
}) async {
|
}) async {
|
||||||
final res = await GrpcRepo.request(
|
final res = await GrpcReq.request(
|
||||||
GrpcUrl.dialogList,
|
GrpcUrl.dialogList,
|
||||||
DialogListReq(
|
DialogListReq(
|
||||||
oid: Int64(oid),
|
oid: Int64(oid),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v2.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/app/dynamic/v2.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
|
import 'package:PiliPlus/grpc/bilibili/pagination.pb.dart';
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:fixnum/fixnum.dart';
|
import 'package:fixnum/fixnum.dart';
|
||||||
|
|
||||||
@@ -10,7 +11,7 @@ class SpaceGrpc {
|
|||||||
String? next,
|
String? next,
|
||||||
required String filterType,
|
required String filterType,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.opusSpaceFlow,
|
GrpcUrl.opusSpaceFlow,
|
||||||
OpusSpaceFlowReq(
|
OpusSpaceFlowReq(
|
||||||
hostMid: Int64(hostMid),
|
hostMid: Int64(hostMid),
|
||||||
|
|||||||
48
lib/grpc/url.dart
Normal file
48
lib/grpc/url.dart
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
class GrpcUrl {
|
||||||
|
// static const playerOnline =
|
||||||
|
// '/bilibili.app.playeronline.v1.PlayerOnline/PlayerOnline';
|
||||||
|
// static const popular = '/bilibili.app.show.v1.Popular/Index';
|
||||||
|
|
||||||
|
// dynamic
|
||||||
|
static const dynV1 = '/bilibili.app.dynamic.v1.Dynamic';
|
||||||
|
// static const dynV2 = '/bilibili.app.dynamic.v2.Dynamic';
|
||||||
|
static const opusV2 = '/bilibili.app.dynamic.v2.Opus';
|
||||||
|
static const dynRed = '$dynV1/DynRed';
|
||||||
|
static const opusSpaceFlow = '$opusV2/OpusSpaceFlow';
|
||||||
|
static const opusDetail = '$opusV2/OpusDetail';
|
||||||
|
// static const dynSpace = '$dynV2/DynSpace';
|
||||||
|
|
||||||
|
// danmaku
|
||||||
|
static const dmSegMobile = '/bilibili.community.service.dm.v1.DM/DmSegMobile';
|
||||||
|
|
||||||
|
// 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 im2 = '/bilibili.app.im.v1.im';
|
||||||
|
static const sendMsg = '$im/SendMsg';
|
||||||
|
static const shareList = '$im/ShareList';
|
||||||
|
static const sessionMain = '$im2/SessionMain';
|
||||||
|
static const sessionSecondary = '$im2/SessionSecondary';
|
||||||
|
static const clearUnread = '$im2/ClearUnread';
|
||||||
|
static const sessionUpdate = '$im2/SessionUpdate';
|
||||||
|
static const pinSession = '$im2/PinSession';
|
||||||
|
static const unpinSession = '$im2/UnpinSession';
|
||||||
|
static const deleteSessionList = '$im2/DeleteSessionList';
|
||||||
|
static const getImSettings = '$im2/GetImSettings';
|
||||||
|
static const setImSettings = '$im2/SetImSettings';
|
||||||
|
static const keywordBlockingList = '$im2/KeywordBlockingList';
|
||||||
|
static const keywordBlockingAdd = '$im2/KeywordBlockingAdd';
|
||||||
|
static const keywordBlockingDelete = '$im2/KeywordBlockingDelete';
|
||||||
|
static const syncFetchSessionMsgs = '$im/SyncFetchSessionMsgs';
|
||||||
|
static const getTotalUnread = '$im/GetTotalUnread';
|
||||||
|
|
||||||
|
// view
|
||||||
|
static const viewunite = '/bilibili.app.viewunite.v1.View';
|
||||||
|
static const view = '$viewunite/View';
|
||||||
|
}
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
import 'package:PiliPlus/grpc/bilibili/app/viewunite/v1.pb.dart'
|
import 'package:PiliPlus/grpc/bilibili/app/viewunite/v1.pb.dart'
|
||||||
show ViewReq, ViewReply;
|
show ViewReq, ViewReply;
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
|
import 'package:PiliPlus/grpc/url.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
|
|
||||||
class ViewGrpc {
|
class ViewGrpc {
|
||||||
static Future<LoadingState<ViewReply>> view({
|
static Future<LoadingState<ViewReply>> view({
|
||||||
required String bvid,
|
required String bvid,
|
||||||
}) {
|
}) {
|
||||||
return GrpcRepo.request(
|
return GrpcReq.request(
|
||||||
GrpcUrl.view,
|
GrpcUrl.view,
|
||||||
ViewReq(
|
ViewReq(
|
||||||
bvid: bvid,
|
bvid: bvid,
|
||||||
|
|||||||
@@ -164,10 +164,10 @@ class LiveHttp {
|
|||||||
if (isLogin) 'access_key': Accounts.main.accessKey,
|
if (isLogin) 'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'device_name': 'vivo',
|
'device_name': 'android',
|
||||||
'device_type': '0',
|
'device_type': '0',
|
||||||
'fnval': '912',
|
'fnval': '912',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
@@ -180,7 +180,7 @@ class LiveHttp {
|
|||||||
if (isLogin) 'relation_page': '1',
|
if (isLogin) 'relation_page': '1',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'scale': '2',
|
'scale': '2',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -229,10 +229,10 @@ class LiveHttp {
|
|||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
if (areaId != null) 'area_id': areaId,
|
if (areaId != null) 'area_id': areaId,
|
||||||
if (parentAreaId != null) 'parent_area_id': parentAreaId,
|
if (parentAreaId != null) 'parent_area_id': parentAreaId,
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'device_name': 'vivo',
|
'device_name': 'android',
|
||||||
'device_type': '0',
|
'device_type': '0',
|
||||||
'fnval': '912',
|
'fnval': '912',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
@@ -248,7 +248,7 @@ class LiveHttp {
|
|||||||
'tag_version': '1',
|
'tag_version': '1',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'scale': '2',
|
'scale': '2',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': (DateTime.now().millisecondsSinceEpoch ~/ 1000).toString(),
|
'ts': (DateTime.now().millisecondsSinceEpoch ~/ 1000).toString(),
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -274,14 +274,14 @@ class LiveHttp {
|
|||||||
if (isLogin) 'access_key': Accounts.main.accessKey,
|
if (isLogin) 'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -309,14 +309,14 @@ class LiveHttp {
|
|||||||
if (isLogin) 'access_key': Accounts.main.accessKey,
|
if (isLogin) 'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -347,14 +347,14 @@ class LiveHttp {
|
|||||||
'access_key': Accounts.main.accessKey,
|
'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -385,7 +385,7 @@ class LiveHttp {
|
|||||||
if (isLogin) 'access_key': Accounts.main.accessKey,
|
if (isLogin) 'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
@@ -395,7 +395,7 @@ class LiveHttp {
|
|||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
};
|
};
|
||||||
AppSign.appSign(
|
AppSign.appSign(
|
||||||
@@ -426,7 +426,7 @@ class LiveHttp {
|
|||||||
if (isLogin) 'access_key': Accounts.main.accessKey,
|
if (isLogin) 'access_key': Accounts.main.accessKey,
|
||||||
'appkey': Constants.appKey,
|
'appkey': Constants.appKey,
|
||||||
'actionKey': 'appkey',
|
'actionKey': 'appkey',
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'page': page,
|
'page': page,
|
||||||
@@ -436,7 +436,7 @@ class LiveHttp {
|
|||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
'statistics': Constants.statistics,
|
'statistics': Constants.statisticsApp,
|
||||||
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
'ts': DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
'type': type.name,
|
'type': type.name,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class LoginHttp {
|
|||||||
'build': '2001100',
|
'build': '2001100',
|
||||||
'buvid': buvid,
|
'buvid': buvid,
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'cid': cid,
|
'cid': cid,
|
||||||
// if (deviceTouristId != null) 'device_tourist_id': deviceTouristId,
|
// if (deviceTouristId != null) 'device_tourist_id': deviceTouristId,
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
@@ -147,7 +147,7 @@ class LoginHttp {
|
|||||||
// 'build': '2001100',
|
// 'build': '2001100',
|
||||||
// 'buvid': buvid,
|
// 'buvid': buvid,
|
||||||
// 'c_locale': 'zh_CN',
|
// 'c_locale': 'zh_CN',
|
||||||
// 'channel': 'yingyongbao',
|
// 'channel': 'master',
|
||||||
// 'deviceInfo': 'xxxxxx',
|
// 'deviceInfo': 'xxxxxx',
|
||||||
// 'disable_rcmd': '0',
|
// 'disable_rcmd': '0',
|
||||||
// 'dt': Uri.encodeComponent(Encrypter(RSA(publicKey: publicKey))
|
// 'dt': Uri.encodeComponent(Encrypter(RSA(publicKey: publicKey))
|
||||||
@@ -199,7 +199,7 @@ class LoginHttp {
|
|||||||
'build': '2001100',
|
'build': '2001100',
|
||||||
'buvid': buvid,
|
'buvid': buvid,
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'device': 'phone',
|
'device': 'phone',
|
||||||
'device_id': deviceId,
|
'device_id': deviceId,
|
||||||
//'device_meta': '',
|
//'device_meta': '',
|
||||||
@@ -267,7 +267,7 @@ class LoginHttp {
|
|||||||
'buvid': buvid,
|
'buvid': buvid,
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'captcha_key': captchaKey,
|
'captcha_key': captchaKey,
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'cid': cid,
|
'cid': cid,
|
||||||
'code': code,
|
'code': code,
|
||||||
'device': 'phone',
|
'device': 'phone',
|
||||||
@@ -441,7 +441,7 @@ class LoginHttp {
|
|||||||
'build': '2001100',
|
'build': '2001100',
|
||||||
'buvid': buvid,
|
'buvid': buvid,
|
||||||
// 'c_locale': 'zh_CN',
|
// 'c_locale': 'zh_CN',
|
||||||
// 'channel': 'yingyongbao',
|
// 'channel': 'master',
|
||||||
'code': code,
|
'code': code,
|
||||||
// 'device': 'phone',
|
// 'device': 'phone',
|
||||||
// 'device_id': deviceId,
|
// 'device_id': deviceId,
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ class SearchHttp {
|
|||||||
final res = await Request().get(
|
final res = await Request().get(
|
||||||
Api.searchRecommend,
|
Api.searchRecommend,
|
||||||
queryParameters: {
|
queryParameters: {
|
||||||
'build': '8350200',
|
'build': '8430300',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'mobi_app': 'android',
|
'mobi_app': 'android',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
|
|||||||
@@ -76,10 +76,10 @@ class VideoHttp {
|
|||||||
Map<String, String> data = {
|
Map<String, String> data = {
|
||||||
'build': '2001100',
|
'build': '2001100',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'column': '4',
|
'column': '4',
|
||||||
'device': 'pad',
|
'device': 'pad',
|
||||||
'device_name': 'vivo',
|
'device_name': 'android',
|
||||||
'device_type': '0',
|
'device_type': '0',
|
||||||
'disable_rcmd': '0',
|
'disable_rcmd': '0',
|
||||||
'flush': '5',
|
'flush': '5',
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ class _EditProfilePageState extends State<EditProfilePage> {
|
|||||||
|
|
||||||
Future<void> _getInfo() async {
|
Future<void> _getInfo() async {
|
||||||
Map<String, String> data = {
|
Map<String, String> data = {
|
||||||
'build': '1462100',
|
'build': '2001100',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
@@ -336,9 +336,9 @@ class _EditProfilePageState extends State<EditProfilePage> {
|
|||||||
}
|
}
|
||||||
Map<String, String> data = {
|
Map<String, String> data = {
|
||||||
'access_key': accessKey!,
|
'access_key': accessKey!,
|
||||||
'build': '1462100',
|
'build': '2001100',
|
||||||
'c_locale': 'zh_CN',
|
'c_locale': 'zh_CN',
|
||||||
'channel': 'yingyongbao',
|
'channel': 'master',
|
||||||
'mobi_app': 'android_hd',
|
'mobi_app': 'android_hd',
|
||||||
'platform': 'android',
|
'platform': 'android',
|
||||||
's_locale': 'zh_CN',
|
's_locale': 'zh_CN',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:PiliPlus/grpc/grpc_repo.dart';
|
import 'package:PiliPlus/grpc/grpc_req.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/http/user.dart';
|
import 'package:PiliPlus/http/user.dart';
|
||||||
import 'package:PiliPlus/models/common/dynamic/dynamics_type.dart';
|
import 'package:PiliPlus/models/common/dynamic/dynamics_type.dart';
|
||||||
@@ -26,7 +26,7 @@ class LoginUtils {
|
|||||||
|
|
||||||
static Future<void> onLoginMain() async {
|
static Future<void> onLoginMain() async {
|
||||||
final account = Accounts.main;
|
final account = Accounts.main;
|
||||||
GrpcRepo.updateHeaders(account.accessKey);
|
GrpcReq.updateHeaders(account.accessKey);
|
||||||
try {
|
try {
|
||||||
final cookies = account.cookieJar.toList();
|
final cookies = account.cookieJar.toList();
|
||||||
final webManager = web.CookieManager();
|
final webManager = web.CookieManager();
|
||||||
@@ -105,7 +105,7 @@ class LoginUtils {
|
|||||||
..face.value = ''
|
..face.value = ''
|
||||||
..isLogin.value = false;
|
..isLogin.value = false;
|
||||||
|
|
||||||
GrpcRepo.updateHeaders(null);
|
GrpcReq.updateHeaders(null);
|
||||||
|
|
||||||
await Future.wait([
|
await Future.wait([
|
||||||
web.CookieManager().deleteAllCookies(),
|
web.CookieManager().deleteAllCookies(),
|
||||||
|
|||||||
Reference in New Issue
Block a user