opt: account (#846)

This commit is contained in:
My-Responsitories
2025-05-11 00:19:19 +08:00
committed by GitHub
parent 8c80fc3578
commit ab57aee8c1

View File

@@ -5,15 +5,15 @@ import 'package:cookie_jar/cookie_jar.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
abstract class Account { abstract class Account {
final bool isLogin = false; bool get isLogin;
late final DefaultCookieJar cookieJar; DefaultCookieJar get cookieJar;
String? accessKey; String? get accessKey;
String? refresh; String? get refresh;
late final Set<AccountType> type; Set<AccountType> get type;
final int mid = 0; int get mid;
late String csrf; String get csrf;
final Map<String, String> headers = const {}; Map<String, String> get headers;
// bool activited = false; // bool activited = false;
@@ -29,16 +29,16 @@ class LoginAccount implements Account {
final bool isLogin = true; final bool isLogin = true;
@override @override
@HiveField(0) @HiveField(0)
late final DefaultCookieJar cookieJar; final DefaultCookieJar cookieJar;
@override @override
@HiveField(1) @HiveField(1)
String? accessKey; final String? accessKey;
@override @override
@HiveField(2) @HiveField(2)
String? refresh; final String? refresh;
@override @override
@HiveField(3) @HiveField(3)
late final Set<AccountType> type; final Set<AccountType> type;
@override @override
late final int mid = int.parse(_midStr); late final int mid = int.parse(_midStr);
@@ -49,7 +49,7 @@ class LoginAccount implements Account {
'x-bili-aurora-eid': Utils.genAuroraEid(mid), 'x-bili-aurora-eid': Utils.genAuroraEid(mid),
}; };
@override @override
late String csrf = late final String csrf =
cookieJar.domainCookies['bilibili.com']!['/']!['bili_jct']!.cookie.value; cookieJar.domainCookies['bilibili.com']!['/']!['bili_jct']!.cookie.value;
@override @override
@@ -71,19 +71,19 @@ class LoginAccount implements Account {
late final Box<LoginAccount> _box = Accounts.account; late final Box<LoginAccount> _box = Accounts.account;
LoginAccount(this.cookieJar, this.accessKey, this.refresh, LoginAccount(
[Set<AccountType>? type]) this.cookieJar,
: type = type ?? {}; this.accessKey,
this.refresh, [
Set<AccountType>? type,
]) : type = type ?? {};
LoginAccount.fromJson(Map json) { factory LoginAccount.fromJson(Map<String, dynamic> json) => LoginAccount(
cookieJar = BiliCookieJar.fromJson(json['cookies']); BiliCookieJar.fromJson(json['cookies'])..setBuvid3(),
accessKey = json['accessKey']; json['accessKey'],
refresh = json['refresh']; json['refresh'],
type = (json['type'] as Iterable?) (json['type'] as Iterable?)?.map((i) => AccountType.values[i]).toSet(),
?.map((i) => AccountType.values[i]) );
.toSet() ??
{};
}
@override @override
int get hashCode => mid.hashCode; int get hashCode => mid.hashCode;
@@ -97,17 +97,18 @@ class AnonymousAccount implements Account {
@override @override
final bool isLogin = false; final bool isLogin = false;
@override @override
late final DefaultCookieJar cookieJar; final DefaultCookieJar cookieJar = DefaultCookieJar(ignoreExpires: true)
..setBuvid3();
@override @override
String? accessKey; final String? accessKey = null;
@override @override
String? refresh; final String? refresh = null;
@override @override
Set<AccountType> type = {}; final Set<AccountType> type = {};
@override @override
final int mid = 0; final int mid = 0;
@override @override
String csrf = ''; final String csrf = '';
@override @override
final Map<String, String> headers = const {}; final Map<String, String> headers = const {};
@@ -125,9 +126,7 @@ class AnonymousAccount implements Account {
static final _instance = AnonymousAccount._(); static final _instance = AnonymousAccount._();
AnonymousAccount._() { AnonymousAccount._();
cookieJar = DefaultCookieJar(ignoreExpires: true)..setBuvid3();
}
factory AnonymousAccount() => _instance; factory AnonymousAccount() => _instance;