opt: isolate parse danmaku & feat: grpc account (#1785)

* opt: isolate parse danmaku

* feat: grpc account
This commit is contained in:
My-Responsitories
2025-12-18 22:27:40 +08:00
committed by GitHub
parent 1e0e2d2d6e
commit b4a5d985f5
9 changed files with 274 additions and 262 deletions

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/models/common/account_type.dart';
import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/accounts/grpc_headers.dart';
import 'package:PiliPlus/utils/id_utils.dart';
import 'package:cookie_jar/cookie_jar.dart';
import 'package:hive/hive.dart';
@@ -26,6 +27,8 @@ sealed class Account {
Map<String, String> get headers => throw UnimplementedError();
Map<String, String> get grpcHeaders => throw UnimplementedError();
bool get isLogin => throw UnimplementedError();
int get mid => throw UnimplementedError();
@@ -65,6 +68,11 @@ class LoginAccount extends Account {
'x-bili-aurora-eid': IdUtils.genAuroraEid(mid),
};
@override
late final Map<String, String> grpcHeaders = GrpcHeaders.newHeaders(
accessKey,
);
@override
late final String csrf =
cookieJar.domainCookies['bilibili.com']!['/']!['bili_jct']!.cookie.value;
@@ -140,12 +148,17 @@ class AnonymousAccount extends Account {
@override
final Map<String, String> headers = Constants.baseHeaders;
@override
final Map<String, String> grpcHeaders = GrpcHeaders.newHeaders();
@override
bool activated = false;
@override
Future<void> delete() =>
cookieJar.deleteAll().whenComplete(cookieJar.setBuvid3);
Future<void> delete() {
grpcHeaders['x-bili-fawkes-req-bin'] = GrpcHeaders.fawkes;
return cookieJar.deleteAll().whenComplete(cookieJar.setBuvid3);
}
static final _instance = AnonymousAccount._();