-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #841 from RayWangQvQ/fix/824-qinglong-removed-auth…
…-file [824] Log cookie when qinglong save env failed
- Loading branch information
Showing
4 changed files
with
347 additions
and
376 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
107 changes: 41 additions & 66 deletions
107
src/Ray.BiliBiliTool.Application/LoginTaskAppService.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,88 +1,63 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using Microsoft.Extensions.Configuration; | ||
using Microsoft.Extensions.FileProviders; | ||
using Microsoft.Extensions.Hosting; | ||
using Microsoft.Extensions.Logging; | ||
using Newtonsoft.Json; | ||
using Newtonsoft.Json.Linq; | ||
using QRCoder; | ||
using Ray.BiliBiliTool.Agent; | ||
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.Passport; | ||
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos; | ||
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Interfaces; | ||
using Ray.BiliBiliTool.Agent.QingLong; | ||
using Ray.BiliBiliTool.Application.Attributes; | ||
using Ray.BiliBiliTool.Application.Contracts; | ||
using Ray.BiliBiliTool.Infrastructure.Enums; | ||
using System.Threading; | ||
using Ray.BiliBiliTool.DomainService.Interfaces; | ||
using Ray.BiliBiliTool.Infrastructure.Cookie; | ||
|
||
namespace Ray.BiliBiliTool.Application | ||
namespace Ray.BiliBiliTool.Application; | ||
|
||
public class LoginTaskAppService( | ||
IConfiguration configuration, | ||
ILogger<LoginTaskAppService> logger, | ||
ILoginDomainService loginDomainService) | ||
: AppService, ILoginTaskAppService | ||
{ | ||
public class LoginTaskAppService : AppService, ILoginTaskAppService | ||
[TaskInterceptor("扫码登录", TaskLevel.One)] | ||
public override async Task DoTaskAsync(CancellationToken cancellationToken = default) | ||
{ | ||
private readonly ILogger<LoginTaskAppService> _logger; | ||
private readonly ILoginDomainService _loginDomainService; | ||
private readonly IConfiguration _configuration; | ||
//扫码登录 | ||
var cookieInfo = await QrCodeLoginAsync(cancellationToken); | ||
if (cookieInfo == null) return; | ||
|
||
public LoginTaskAppService( | ||
IConfiguration configuration, | ||
ILogger<LoginTaskAppService> logger, | ||
ILoginDomainService loginDomainService) | ||
{ | ||
_configuration = configuration; | ||
_logger = logger; | ||
_loginDomainService = loginDomainService; | ||
} | ||
//set cookie | ||
cookieInfo = await SetCookiesAsync(cookieInfo, cancellationToken); | ||
|
||
[TaskInterceptor("扫码登录", TaskLevel.One)] | ||
public override async Task DoTaskAsync(CancellationToken cancellationToken) | ||
{ | ||
//扫码登录 | ||
var cookieInfo = await QrCodeLoginAsync(cancellationToken); | ||
if (cookieInfo == null) return; | ||
//持久化cookie | ||
await SaveCookieAsync(cookieInfo, cancellationToken); | ||
} | ||
|
||
//set cookie | ||
cookieInfo = await SetCookiesAsync(cookieInfo, cancellationToken); | ||
[TaskInterceptor("获取二维码")] | ||
private async Task<BiliCookie> QrCodeLoginAsync(CancellationToken cancellationToken) | ||
{ | ||
var biliCookie = await loginDomainService.LoginByQrCodeAsync(cancellationToken); | ||
return biliCookie; | ||
} | ||
|
||
//持久化cookie | ||
await SaveCookieAsync(cookieInfo, cancellationToken); | ||
} | ||
[TaskInterceptor("Set Cookie")] | ||
private async Task<BiliCookie> SetCookiesAsync(BiliCookie biliCookie, CancellationToken cancellationToken) | ||
{ | ||
var ck= await loginDomainService.SetCookieAsync(biliCookie, cancellationToken); | ||
return ck; | ||
} | ||
|
||
[TaskInterceptor("获取二维码", TaskLevel.Two)] | ||
protected async Task<BiliCookie> QrCodeLoginAsync(CancellationToken cancellationToken) | ||
{ | ||
var biliCookie = await _loginDomainService.LoginByQrCodeAsync(cancellationToken); | ||
return biliCookie; | ||
} | ||
[TaskInterceptor("持久化Cookie")] | ||
private async Task SaveCookieAsync(BiliCookie ckInfo, CancellationToken cancellationToken) | ||
{ | ||
var platformType = configuration.GetSection("PlateformType").Get<PlatformType>(); | ||
logger.LogInformation("当前运行平台:{platform}",platformType); | ||
|
||
[TaskInterceptor("Set Cookie", TaskLevel.Two)] | ||
protected async Task<BiliCookie> SetCookiesAsync(BiliCookie biliCookie, CancellationToken cancellationToken) | ||
//更新cookie到青龙env | ||
if (platformType == PlatformType.QingLong) | ||
{ | ||
var ck= await _loginDomainService.SetCookieAsync(biliCookie, cancellationToken); | ||
return ck; | ||
await loginDomainService.SaveCookieToQinLongAsync(ckInfo, cancellationToken); | ||
return; | ||
} | ||
|
||
[TaskInterceptor("持久化Cookie", TaskLevel.Two)] | ||
protected async Task SaveCookieAsync(BiliCookie ckInfo, CancellationToken cancellationToken) | ||
{ | ||
var platformType = _configuration.GetSection("PlateformType").Get<PlatformType>(); | ||
_logger.LogInformation("当前运行平台:{platform}",platformType); | ||
|
||
//更新cookie到青龙env | ||
if (platformType == PlatformType.QingLong) | ||
{ | ||
await _loginDomainService.SaveCookieToQinLongAsync(ckInfo, cancellationToken); | ||
return; | ||
} | ||
|
||
//更新cookie到json | ||
await _loginDomainService.SaveCookieToJsonFileAsync(ckInfo, cancellationToken); | ||
} | ||
//更新cookie到json | ||
await loginDomainService.SaveCookieToJsonFileAsync(ckInfo, cancellationToken); | ||
} | ||
} | ||
} |
56 changes: 28 additions & 28 deletions
56
src/Ray.BiliBiliTool.DomainService/Interfaces/ILoginDomainService.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,38 @@ | ||
using System.Threading; | ||
using System.Threading.Tasks; | ||
using Ray.BiliBiliTool.Agent; | ||
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos; | ||
|
||
namespace Ray.BiliBiliTool.DomainService.Interfaces | ||
namespace Ray.BiliBiliTool.DomainService.Interfaces; | ||
|
||
/// <summary> | ||
/// 账户 | ||
/// </summary> | ||
public interface ILoginDomainService : IDomainService | ||
{ | ||
/// <summary> | ||
/// 账户 | ||
/// 扫描二维码登录 | ||
/// </summary> | ||
public interface ILoginDomainService : IDomainService | ||
{ | ||
/// <summary> | ||
/// 扫描二维码登录 | ||
/// </summary> | ||
/// <returns></returns> | ||
Task<BiliCookie> LoginByQrCodeAsync(CancellationToken cancellationToken); | ||
/// <returns></returns> | ||
Task<BiliCookie> LoginByQrCodeAsync(CancellationToken cancellationToken); | ||
|
||
/// <summary> | ||
/// Set Cookie | ||
/// </summary> | ||
/// <param name="cookie"></param> | ||
/// <returns></returns> | ||
Task<BiliCookie> SetCookieAsync(BiliCookie cookie, CancellationToken cancellationToken); | ||
/// <summary> | ||
/// Set Cookie | ||
/// </summary> | ||
/// <param name="cookie"></param> | ||
/// <returns></returns> | ||
Task<BiliCookie> SetCookieAsync(BiliCookie cookie, CancellationToken cancellationToken); | ||
|
||
/// <summary> | ||
/// 持久化Cookie到配置文件 | ||
/// </summary> | ||
/// <returns></returns> | ||
Task SaveCookieToJsonFileAsync(BiliCookie ckInfo, CancellationToken cancellationToken); | ||
/// <summary> | ||
/// 持久化Cookie到配置文件 | ||
/// </summary> | ||
/// <returns></returns> | ||
Task SaveCookieToJsonFileAsync(BiliCookie ckInfo, CancellationToken cancellationToken); | ||
|
||
/// <summary> | ||
/// 持久化Cookie到青龙环境变量 | ||
/// </summary> | ||
/// <returns></returns> | ||
Task SaveCookieToQinLongAsync(BiliCookie ckInfo, CancellationToken cancellationToken); | ||
} | ||
} | ||
/// <summary> | ||
/// 持久化Cookie到青龙环境变量 | ||
/// </summary> | ||
/// <param name="ckInfo"></param> | ||
/// <param name="cancellationToken"></param> | ||
/// <returns></returns> | ||
Task<bool> SaveCookieToQinLongAsync(BiliCookie ckInfo, CancellationToken cancellationToken); | ||
} |
Oops, something went wrong.