Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
## 3.3.1
- Feature: 拆分原本的 Daily Task
## 3.3.0
- Feature[#935]: Web 新增登录功能
- Feature[#935]: Web 新增修改密码功能
Expand Down
2 changes: 1 addition & 1 deletion common.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Authors>Ray</Authors>
<Version>3.3.0</Version>
<Version>3.3.1</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
</PropertyGroup>
</Project>
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/bili_task_charge.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 12 * * *
# new Env("bili免费B币券充电任务")

. bili_task_base.sh

target_task_code="Charge"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/bili_task_manga.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 14 * * *
# new Env("bili漫画任务")

. bili_task_base.sh

target_task_code="Manga"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/bili_task_manga_privilege.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 15 * * *
# new Env("bili领取大会员漫画权益任务")

. bili_task_base.sh

target_task_code="MangaPrivilege"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/bili_task_silver2coin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 8 * * *
# new Env("bili银瓜子兑换硬币任务")

. bili_task_base.sh

target_task_code="Silver2Coin"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/bili_task_vip_privilege.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 1 * * *
# new Env("bili领取大会员福利任务")

. bili_task_base.sh

target_task_code="VipPrivilege"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/dev/bili_dev_task_charge.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 12 * * *
# new Env("bili免费B币券充电任务[dev先行版]")

. bili_dev_task_base.sh

target_task_code="Charge"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/dev/bili_dev_task_manga.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 14 * * *
# new Env("bili漫画任务[dev先行版]")

. bili_dev_task_base.sh

target_task_code="Manga"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/dev/bili_dev_task_manga_privilege.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 15 * * *
# new Env("bili领取大会员漫画权益任务[dev先行版]")

. bili_dev_task_base.sh

target_task_code="MangaPrivilege"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/dev/bili_dev_task_silver2coin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 8 * * *
# new Env("bili银瓜子兑换硬币任务[dev先行版]")

. bili_dev_task_base.sh

target_task_code="Silver2Coin"
run_task "${target_task_code}"
8 changes: 8 additions & 0 deletions qinglong/DefaultTasks/dev/bili_dev_task_vip_privilege.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
# cron:0 1 * * *
# new Env("bili领取大会员福利任务[dev先行版]")

. bili_dev_task_base.sh

target_task_code="VipPrivilege"
run_task "${target_task_code}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Application.Contracts;

/// <summary>
/// 免费B币券充电任务
/// </summary>
[Description("Charge")]
public interface IChargeTaskAppService : IAppService;
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Application.Contracts;

/// <summary>
/// 领取大会员漫画权益任务
/// </summary>
[Description("MangaPrivilege")]
public interface IMangaPrivilegeTaskAppService : IAppService;
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Application.Contracts;

/// <summary>
/// 漫画任务
/// </summary>
[Description("Manga")]
public interface IMangaTaskAppService : IAppService;
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Application.Contracts;

/// <summary>
/// 银瓜子兑换硬币
/// </summary>
[Description("Silver2Coin")]
public interface ISilver2CoinTaskAppService : IAppService;
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
using System.ComponentModel;

namespace Ray.BiliBiliTool.Application.Contracts;

[Description("VipPrivilege")]
public interface IVipPrivilegeTaskAppService : IAppService;
5 changes: 5 additions & 0 deletions src/Ray.BiliBiliTool.Application.Contracts/TaskTypeFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ public static class TaskTypeFactory
typeof(ILoginTaskAppService),
typeof(ITestAppService),
typeof(IDailyTaskAppService),
typeof(IMangaTaskAppService),
typeof(IMangaPrivilegeTaskAppService),
typeof(IVipPrivilegeTaskAppService),
typeof(ISilver2CoinTaskAppService),
typeof(IChargeTaskAppService),
typeof(ILiveFansMedalAppService),
typeof(ILiveLotteryTaskAppService),
typeof(IVipBigPointAppService),
Expand Down
87 changes: 87 additions & 0 deletions src/Ray.BiliBiliTool.Application/ChargeTaskAppService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Ray.BiliBiliTool.Agent;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
using Ray.BiliBiliTool.Application.Attributes;
using Ray.BiliBiliTool.Application.Contracts;
using Ray.BiliBiliTool.DomainService.Interfaces;
using Ray.BiliBiliTool.Infrastructure.Cookie;
using Ray.BiliBiliTool.Infrastructure.Enums;

namespace Ray.BiliBiliTool.Application;

public class ChargeTaskAppService(
ILogger<ChargeTaskAppService> logger,
IAccountDomainService accountDomainService,
IChargeDomainService chargeDomainService,
ILoginDomainService loginDomainService,
IConfiguration configuration,
CookieStrFactory<BiliCookie> cookieStrFactory
) : BaseMultiAccountsAppService(logger, cookieStrFactory), IChargeTaskAppService
{
[TaskInterceptor("免费B币券充电任务", TaskLevel.One)]
protected override async Task DoTaskAccountAsync(
BiliCookie ck,
CancellationToken cancellationToken = default
)
{
await SetCookiesAsync(ck, cancellationToken);
UserInfo userInfo = await Login(ck);
await Charge(userInfo, ck);
}

[TaskInterceptor("Set Cookie")]
private async Task SetCookiesAsync(BiliCookie biliCookie, CancellationToken cancellationToken)
{
//判断cookie是否完整
if (biliCookie.Buvid.IsNotNullOrEmpty())
{
logger.LogInformation("Cookie完整,不需要Set Cookie");
return;
}

//Set
logger.LogInformation("开始Set Cookie");
var ck = await loginDomainService.SetCookieAsync(biliCookie, cancellationToken);

//持久化
logger.LogInformation("持久化Cookie");
await SaveCookieAsync(ck, cancellationToken);
}

/// <summary>
/// 登录
/// </summary>
/// <returns></returns>
[TaskInterceptor("登录")]
private async Task<UserInfo> Login(BiliCookie ck)
{
UserInfo userInfo = await accountDomainService.LoginByCookie(ck);
return userInfo;
}

/// <summary>
/// 每月为自己充电
/// </summary>
[TaskInterceptor("B币券充电", rethrowWhenException: false)]
private async Task Charge(UserInfo userInfo, BiliCookie ck)
{
await chargeDomainService.Charge(userInfo, ck);
}

private async Task SaveCookieAsync(BiliCookie ckInfo, CancellationToken cancellationToken)
{
var platformType = configuration.GetSection("PlatformType").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);
}
}
64 changes: 0 additions & 64 deletions src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,8 @@ public class DailyTaskAppService(
IVideoDomainService videoDomainService,
IArticleDomainService articleDomainService,
IDonateCoinDomainService donateCoinDomainService,
IMangaDomainService mangaDomainService,
ILiveDomainService liveDomainService,
IVipPrivilegeDomainService vipPrivilegeDomainService,
IChargeDomainService chargeDomainService,
IOptionsMonitor<DailyTaskOptions> dailyTaskOptions,
ICoinDomainService coinDomainService,
ILoginDomainService loginDomainService,
IConfiguration configuration,
CookieStrFactory<BiliCookie> cookieStrFactory
Expand All @@ -48,16 +44,7 @@ protected override async Task DoTaskAccountAsync(

await AddCoins(userInfo, ck);

//签到:
await MangaSign(ck);
await MangaRead(ck);
await ExchangeSilver2Coin(ck);

//领福利:
await ReceiveVipPrivilege(userInfo, ck);
await ReceiveMangaVipReward(userInfo, ck);

await Charge(userInfo, ck);
}

[TaskInterceptor("Set Cookie")]
Expand Down Expand Up @@ -147,21 +134,6 @@ private async Task AddCoins(UserInfo userInfo, BiliCookie ck)
}
}

/// <summary>
/// 直播中心的银瓜子兑换硬币
/// </summary>
[TaskInterceptor("银瓜子兑换硬币", rethrowWhenException: false)]
private async Task ExchangeSilver2Coin(BiliCookie ck)
{
var success = await liveDomainService.ExchangeSilver2Coin(ck);
if (!success)
return;

//如果兑换成功,则打印硬币余额
var coinBalance = coinDomainService.GetCoinBalance(ck);
logger.LogInformation("【硬币余额】 {coin}", coinBalance);
}

/// <summary>
/// 每月领取大会员福利
/// </summary>
Expand All @@ -184,42 +156,6 @@ private async Task ReceiveVipPrivilege(UserInfo userInfo, BiliCookie ck)
}
}

/// <summary>
/// 每月为自己充电
/// </summary>
[TaskInterceptor("B币券充电", rethrowWhenException: false)]
private async Task Charge(UserInfo userInfo, BiliCookie ck)
{
await chargeDomainService.Charge(userInfo, ck);
}

/// <summary>
/// 漫画签到
/// </summary>
[TaskInterceptor("漫画签到", rethrowWhenException: false)]
private async Task MangaSign(BiliCookie ck)
{
await mangaDomainService.MangaSign(ck);
}

/// <summary>
/// 漫画阅读
/// </summary>
[TaskInterceptor("漫画阅读", rethrowWhenException: false)]
private async Task MangaRead(BiliCookie ck)
{
await mangaDomainService.MangaRead(ck);
}

/// <summary>
/// 每月获取大会员漫画权益
/// </summary>
[TaskInterceptor("领取大会员漫画权益", rethrowWhenException: false)]
private async Task ReceiveMangaVipReward(UserInfo userInfo, BiliCookie ck)
{
await mangaDomainService.ReceiveMangaVipReward(1, userInfo, ck);
}

private async Task SaveCookieAsync(BiliCookie ckInfo, CancellationToken cancellationToken)
{
var platformType = configuration.GetSection("PlatformType").Get<PlatformType>();
Expand Down
Loading
Loading