mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: account (#846)
This commit is contained in:
committed by
GitHub
parent
8c80fc3578
commit
ab57aee8c1
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user