fix: failed to load member info

This commit is contained in:
bggRGjQaUbCoE
2024-10-14 15:08:05 +08:00
parent cd75873672
commit 270bf0a4b6
2 changed files with 25 additions and 1 deletions

View File

@@ -42,12 +42,14 @@ class MemberHttp {
static Future memberInfo({
int? mid,
String token = '',
dynamic wwebid,
}) async {
Map params = await WbiSign().makSign({
'mid': mid,
'token': token,
'platform': 'web',
'web_location': 1550101,
'w_webid': wwebid,
});
var res = await Request().get(
Api.memberInfo,

View File

@@ -1,3 +1,7 @@
import 'dart:convert';
import 'package:PiliPalaX/http/constants.dart';
import 'package:PiliPalaX/http/init.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -10,6 +14,8 @@ import 'package:PiliPalaX/models/member/coin.dart';
import 'package:PiliPalaX/models/member/info.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:share_plus/share_plus.dart';
import 'package:html/dom.dart' as dom;
import 'package:html/parser.dart' as html_parser;
import '../video/detail/introduction/widgets/group_panel.dart';
@@ -29,6 +35,7 @@ class MemberController extends GetxController {
RxInt attribute = (-1).obs;
RxString attributeText = '关注'.obs;
RxList<MemberCoinsDataModel> recentCoinsList = <MemberCoinsDataModel>[].obs;
String? wwebid;
@override
void onInit() async {
@@ -45,9 +52,10 @@ class MemberController extends GetxController {
// 获取用户信息
Future<Map<String, dynamic>> getInfo() async {
await getWwebid();
await getMemberStat();
await getMemberView();
var res = await MemberHttp.memberInfo(mid: mid);
var res = await MemberHttp.memberInfo(mid: mid, wwebid: wwebid);
if (res['status']) {
memberInfo.value = res['data'];
face.value = res['data'].face;
@@ -55,6 +63,20 @@ class MemberController extends GetxController {
return res;
}
Future getWwebid() async {
try {
dynamic response =
await Request().get('${HttpString.spaceBaseUrl}/$mid/dynamic');
dom.Document document = html_parser.parse(response.data);
dom.Element? scriptElement =
document.querySelector('script#__RENDER_DATA__');
wwebid = jsonDecode(
Uri.decodeComponent(scriptElement?.text ?? ''))['access_id'];
} catch (e) {
print('failed to get wwebid: $e');
}
}
// 获取用户状态
Future<Map<String, dynamic>> getMemberStat() async {
var res = await MemberHttp.memberStat(mid: mid);