diff --git a/lib/pages/login/controller.dart b/lib/pages/login/controller.dart index abda135b..f72f94f8 100644 --- a/lib/pages/login/controller.dart +++ b/lib/pages/login/controller.dart @@ -642,14 +642,15 @@ class LoginPageController extends GetxController } Future setAccount(Map tokenInfo, List cookieInfo) async { + final account = LoginAccount(BiliCookieJar.fromList(cookieInfo), + tokenInfo['access_token'], tokenInfo['refresh_token']); await Future.wait([ - LoginAccount(BiliCookieJar.fromList(cookieInfo), - tokenInfo['access_token'], tokenInfo['refresh_token']) - .onChange(), + account.onChange(), AnonymousAccount() .delete() .then((_) => Request.buvidActive(AnonymousAccount())) ]); + Accounts.accountMode.updateAll((_, a) => a == account ? account : a); if (Accounts.main.isLogin) { SmartDialog.showToast('登录成功'); } else { diff --git a/lib/pages/setting/sponsor_block_page.dart b/lib/pages/setting/sponsor_block_page.dart index 522dba75..65305635 100644 --- a/lib/pages/setting/sponsor_block_page.dart +++ b/lib/pages/setting/sponsor_block_page.dart @@ -289,6 +289,7 @@ class _SponsorBlockPageState extends State { _blockServer = HttpString.sponsorBlockBaseUrl; await setting.put( SettingBoxKey.blockServer, _blockServer); + Request.accountManager.blockServer = _blockServer; setState(() {}); }, child: Text('重置'), @@ -308,6 +309,7 @@ class _SponsorBlockPageState extends State { _blockServer = _textController.text; await setting.put( SettingBoxKey.blockServer, _blockServer); + Request.accountManager.blockServer = _blockServer; setState(() {}); }, child: Text('确定'), diff --git a/lib/utils/accounts/account_manager/account_mgr.dart b/lib/utils/accounts/account_manager/account_mgr.dart index 6d233dde..9677e1b3 100644 --- a/lib/utils/accounts/account_manager/account_mgr.dart +++ b/lib/utils/accounts/account_manager/account_mgr.dart @@ -66,7 +66,9 @@ class AccountManager extends Interceptor { Api.oauth2AccessToken, }; - const AccountManager(); + AccountManager(); + + String blockServer = GStorage.blockServer; static String getCookies(List cookies) { // Sort cookies by path (longer path first). @@ -236,8 +238,8 @@ class AccountManager extends Interceptor { await account.onChange(); } - static bool _skipCookie(String path) { - return path.startsWith(GStorage.blockServer) || + bool _skipCookie(String path) { + return path.startsWith(blockServer) || path.contains('hdslb.com') || path.contains('biliimg.com'); } diff --git a/lib/utils/login.dart b/lib/utils/login.dart index c25abf04..e2e20019 100644 --- a/lib/utils/login.dart +++ b/lib/utils/login.dart @@ -49,8 +49,8 @@ class LoginUtils { SmartDialog.showToast('设置登录态失败,$e'); } final result = await UserHttp.userInfo(); - final UserInfoData data = result['data']; - if (result['status'] && data.isLogin!) { + if (result['status'] && result['data']?.isLogin == true) { + final UserInfoData data = result['data']; SmartDialog.showToast('main登录成功'); await GStorage.userInfo.put('userInfoCache', data); try { @@ -109,7 +109,7 @@ class LoginUtils { // 获取用户信息失败 await Accounts.deleteAll({account}); SmartDialog.showNotify( - msg: '登录失败,请检查cookie是否正确,${result['message']}', + msg: '登录失败,请检查cookie是否正确,${result['msg']}', notifyType: NotifyType.warning); } }