opt: liveRoom getBuvid

This commit is contained in:
guozhigq
2024-08-26 23:14:37 +08:00
parent fc22834e4a
commit f598b6adad
2 changed files with 28 additions and 3 deletions

View File

@ -29,7 +29,7 @@ class Request {
late String systemProxyPort;
static final RegExp spmPrefixExp =
RegExp(r'<meta name="spm_prefix" content="([^"]+?)">');
static late String buvid;
static String? buvid;
/// 设置cookie
static setCookie() async {
@ -72,7 +72,6 @@ class Request {
.map((Cookie cookie) => '${cookie.name}=${cookie.value}')
.join('; ');
buvid = cookie.firstWhere((e) => e.name == 'buvid3').value;
dio.options.headers['cookie'] = cookieString;
}
@ -87,6 +86,30 @@ class Request {
return token;
}
static Future<String> getBuvid() async {
if (buvid != null) {
return buvid!;
}
final List<Cookie> cookies = await cookieManager.cookieJar
.loadForRequest(Uri.parse(HttpString.baseUrl));
buvid = cookies.firstWhere((cookie) => cookie.name == 'buvid3').value;
if (buvid == null) {
try {
var result = await Request().get(
"${HttpString.apiBaseUrl}/x/frontend/finger/spi",
);
buvid = result["data"]["b_3"].toString();
} catch (e) {
// 处理请求错误
buvid = '';
print("Error fetching buvid: $e");
}
}
return buvid!;
}
static setOptionsHeaders(userInfo, bool status) {
if (status) {
dio.options.headers['x-bili-mid'] = userInfo.mid.toString();

View File

@ -47,6 +47,7 @@ class LiveRoomController extends GetxController {
RxMap<String, String> joinRoomTip = {'userName': '', 'message': ''}.obs;
// 直播间弹幕开关 默认打开
RxBool danmakuSwitch = true.obs;
late String buvid;
@override
void onInit() {
@ -63,6 +64,7 @@ class LiveRoomController extends GetxController {
if (liveItem != null && liveItem.cover != null && liveItem.cover != '') {
cover = liveItem.cover;
}
Request.getBuvid().then((value) => buvid = value);
}
// CDN优化
enableCDN = setting.get(SettingBoxKey.enableCDN, defaultValue: true);
@ -249,7 +251,7 @@ class LiveRoomController extends GetxController {
"uid": userId,
"roomid": roomId,
"protover": 3,
"buvid": Request.buvid,
"buvid": buvid,
"platform": "web",
"type": 2,
"key": token,