handle relation url

Closes #1566

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-15 18:25:15 +08:00
parent 32ce2b87db
commit c9de79532a
31 changed files with 634 additions and 393 deletions

View File

@@ -966,4 +966,8 @@ class Api {
static const String danmakuRecall = '/x/dm/recall';
static const String danmakuEditState = '/x/v2/dm/edit/state';
static const String followedUp = '/x/relation/followings/followed_upper';
static const String sameFollowing = '/x/relation/same/followings';
}

View File

@@ -1,10 +1,10 @@
import 'package:PiliPlus/http/api.dart';
import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models_new/fans/data.dart';
import 'package:PiliPlus/models_new/follow/data.dart';
class FanHttp {
static Future<LoadingState<FansData>> fans({
static Future<LoadingState<FollowData>> fans({
int? vmid,
int? pn,
int ps = 20,
@@ -21,7 +21,7 @@ class FanHttp {
},
);
if (res.data['code'] == 0) {
return Success(FansData.fromJson(res.data['data']));
return Success(FollowData.fromJson(res.data['data']));
} else {
return Error(res.data['message']);
}

View File

@@ -328,7 +328,9 @@ class MemberHttp {
}
}
static Future memberCardInfo({int? mid}) async {
static Future<LoadingState<MemberCardInfoData>> memberCardInfo({
int? mid,
}) async {
var res = await Request().get(
Api.memberCardInfo,
queryParameters: {
@@ -337,12 +339,9 @@ class MemberHttp {
},
);
if (res.data['code'] == 0) {
return {
'status': true,
'data': MemberCardInfoData.fromJson(res.data['data']),
};
return Success(MemberCardInfoData.fromJson(res.data['data']));
} else {
return {'status': false, 'msg': res.data['message']};
return Error(res.data['message']);
}
}

View File

@@ -5,6 +5,7 @@ import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/models/user/info.dart';
import 'package:PiliPlus/models/user/stat.dart';
import 'package:PiliPlus/models_new/coin_log/data.dart';
import 'package:PiliPlus/models_new/follow/data.dart';
import 'package:PiliPlus/models_new/history/data.dart';
import 'package:PiliPlus/models_new/later/data.dart';
import 'package:PiliPlus/models_new/login_log/data.dart';
@@ -496,4 +497,48 @@ class UserHttp {
return Error(res.data['message']);
}
}
static Future<LoadingState<FollowData>> followedUp({
required Object mid,
required int pn,
}) async {
final res = await Request().get(
Api.followedUp,
queryParameters: {
'csrf': Accounts.main.csrf,
'pn': pn,
'vmid': mid,
'web_location': 333.789,
'x-bili-device-req-json':
'{"platform":"web","device":"pc","spmid":"333.789"}',
},
);
if (res.data['code'] == 0) {
return Success(FollowData.fromJson(res.data['data']));
} else {
return Error(res.data['message']);
}
}
static Future<LoadingState<FollowData>> sameFollowing({
required Object mid,
int? pn,
}) async {
final res = await Request().get(
Api.sameFollowing,
queryParameters: {
'csrf': Accounts.main.csrf,
'pn': ?pn,
'vmid': mid,
'web_location': 333.789,
'x-bili-device-req-json':
'{"platform":"web","device":"pc","spmid":"333.789"}',
},
);
if (res.data['code'] == 0) {
return Success(FollowData.fromJson(res.data['data']));
} else {
return Error(res.data['message']);
}
}
}