mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
87 lines
2.6 KiB
Dart
87 lines
2.6 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:PiliPlus/common/constants.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/utils/login_utils.dart';
|
|
import 'package:PiliPlus/utils/utils.dart';
|
|
|
|
abstract final class GrpcHeaders {
|
|
static const _build = 2001100;
|
|
static const _versionName = '2.0.1';
|
|
static const _biliChannel = 'master';
|
|
static const _mobiApp = 'android_hd';
|
|
static const _device = 'android';
|
|
|
|
static String get _buvid => LoginUtils.buvid;
|
|
static String get _traceId => Constants.traceId;
|
|
static String get _sessionId => Utils.generateRandomString(8);
|
|
|
|
static final Map<String, String> _base = {
|
|
'grpc-encoding': 'gzip',
|
|
'gzip-accept-encoding': 'gzip,identity',
|
|
'user-agent': Constants.userAgent,
|
|
'x-bili-gaia-vtoken': '',
|
|
'x-bili-aurora-zone': '',
|
|
'x-bili-trace-id': _traceId,
|
|
'buvid': _buvid,
|
|
'bili-http-engine': 'cronet',
|
|
// 'te': 'trailers', // dio not supported
|
|
'x-bili-device-bin': base64Encode(
|
|
Device(
|
|
appId: 5,
|
|
build: _build,
|
|
buvid: _buvid,
|
|
mobiApp: _mobiApp,
|
|
platform: _device,
|
|
channel: _biliChannel,
|
|
brand: _device,
|
|
model: _device,
|
|
osver: '15',
|
|
versionName: _versionName,
|
|
).writeToBuffer(),
|
|
),
|
|
'x-bili-network-bin': base64Encode(
|
|
network.Network(type: network.NetworkType.WIFI).writeToBuffer(),
|
|
),
|
|
'x-bili-locale-bin': base64Encode(
|
|
Locale(
|
|
cLocale: LocaleIds(language: 'zh', region: 'CN', script: 'Hans'),
|
|
sLocale: LocaleIds(language: 'zh', region: 'CN', script: 'Hans'),
|
|
timezone: 'Asia/Shanghai',
|
|
).writeToBuffer(),
|
|
),
|
|
'x-bili-exps-bin': '',
|
|
};
|
|
|
|
static String get fawkes => base64Encode(
|
|
FawkesReq(
|
|
appkey: _mobiApp,
|
|
env: 'prod',
|
|
sessionId: _sessionId,
|
|
).writeToBuffer(),
|
|
);
|
|
|
|
static Map<String, String> newHeaders([String? accessKey]) {
|
|
return {
|
|
..._base,
|
|
if (accessKey != null) 'authorization': 'identify_v1 $accessKey',
|
|
'x-bili-fawkes-req-bin': fawkes,
|
|
'x-bili-metadata-bin': base64Encode(
|
|
Metadata(
|
|
accessKey: accessKey,
|
|
mobiApp: _mobiApp,
|
|
device: _device,
|
|
build: _build,
|
|
channel: _biliChannel,
|
|
buvid: _buvid,
|
|
platform: _device,
|
|
).writeToBuffer(),
|
|
),
|
|
};
|
|
}
|
|
}
|