feat: upower rank page

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-02 12:42:46 +08:00
parent 459d7cb9f1
commit 19cf085e3e
11 changed files with 455 additions and 0 deletions

View File

@@ -872,4 +872,6 @@ class Api {
static const String topicPubSearch =
'${HttpString.appBaseUrl}/x/topic/pub/search';
static const String upowerRank = '/x/upower/up/member/rank/v2';
}

View File

@@ -20,6 +20,7 @@ import 'package:PiliPlus/models/space_archive/data.dart';
import 'package:PiliPlus/models/space_article/data.dart';
import 'package:PiliPlus/models/space_fav/space_fav.dart';
import 'package:PiliPlus/models/space_opus/data.dart';
import 'package:PiliPlus/models/upower_rank/data.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:PiliPlus/utils/wbi_sign.dart';
@@ -854,4 +855,28 @@ class MemberHttp {
return Error(res.data['message']);
}
}
static Future<LoadingState<UpowerRankData>> upowerRank({
required upMid,
required int page,
int? privilegeType,
}) async {
var res = await Request().get(
Api.upowerRank,
queryParameters: {
'up_mid': upMid,
'pn': page,
'ps': 100,
if (privilegeType != null) 'privilege_type': privilegeType,
'mobi_app': 'web',
'web_location': 333.1196,
if (Accounts.main.isLogin) 'csrf': Accounts.main.csrf,
},
);
if (res.data['code'] == 0) {
return Success(UpowerRankData.fromJson(res.data['data']));
} else {
return Error(res.data['message']);
}
}
}