diff --git a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IArticleApi.cs b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IArticleApi.cs index a4c06fa8b..be54d5b08 100644 --- a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IArticleApi.cs +++ b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IArticleApi.cs @@ -32,6 +32,13 @@ Task> SearchUpArticlesByUpId( [HttpGet("/x/article/viewinfo?id={cvid}")] Task> SearchArticleInfo(long cvid); + + [Header("Content-Type", "application/x-www-form-urlencoded")] + [Header("Referer", "https://www.bilibili.com/read/cv{cvid}/?from=search&spm_id_from=333.337.0.0")] + [Header("Origin", "https://www.bilibili.com")] + [HttpPost("/x/article/like?id={cvid}&type=1&csrf={csrf}")] + Task Like(long cvid, string csrf); + } diff --git a/src/Ray.BiliBiliTool.Console/appsettings.json b/src/Ray.BiliBiliTool.Console/appsettings.json index 7d740645a..d92fc1e05 100644 --- a/src/Ray.BiliBiliTool.Console/appsettings.json +++ b/src/Ray.BiliBiliTool.Console/appsettings.json @@ -1,5 +1,5 @@ { - "RunTasks": "Daily", //要运行的任务名称[Daily,LiveLottery,UnfollowBatched,VipBigPoint,Test],多个使用&分隔,如“Daily&LiveLottery”,建议使用命令行参数指定 + "RunTasks": "", //要运行的任务名称[Daily,LiveLottery,UnfollowBatched,VipBigPoint,Test],多个使用&分隔,如“Daily&LiveLottery”,建议使用命令行参数指定 //程序自定义个性化配置 "DailyTaskConfig": { diff --git a/src/Ray.BiliBiliTool.DomainService/ArticleDomainService.cs b/src/Ray.BiliBiliTool.DomainService/ArticleDomainService.cs index 44177f6a7..396968840 100644 --- a/src/Ray.BiliBiliTool.DomainService/ArticleDomainService.cs +++ b/src/Ray.BiliBiliTool.DomainService/ArticleDomainService.cs @@ -53,12 +53,20 @@ public ArticleDomainService( _dailyTaskOptions = dailyTaskOptions.CurrentValue; } + + + public async Task LikeArticle(long cvid) + { + await _articleApi.Like(cvid, _biliCookie.BiliJct); + } + /// /// 投币专栏任务 /// /// public async Task AddCoinForArticles() { + var donateCoinsCounts = await CalculateDonateCoinsCounts(); if (donateCoinsCounts == 0) @@ -84,7 +92,17 @@ public async Task AddCoinForArticles() } if (await AddCoinForArticle(cvid, upId)) + { + // 点赞 + if (_dailyTaskOptions.SelectLike) + { + await LikeArticle(cvid); + _logger.LogInformation("文章点赞成功"); + } success++; + } + + } if (success == donateCoinsCounts) @@ -101,7 +119,7 @@ public async Task AddCoinForArticles() return true; } - + /// /// 给某一篇专栏投币 /// diff --git a/src/Ray.BiliBiliTool.DomainService/Interfaces/IArticleDomainService.cs b/src/Ray.BiliBiliTool.DomainService/Interfaces/IArticleDomainService.cs index b43706e51..f5a2f6d77 100644 --- a/src/Ray.BiliBiliTool.DomainService/Interfaces/IArticleDomainService.cs +++ b/src/Ray.BiliBiliTool.DomainService/Interfaces/IArticleDomainService.cs @@ -7,4 +7,6 @@ public interface IArticleDomainService : IDomainService Task AddCoinForArticle(long cvid, long mid); Task AddCoinForArticles(); + + Task LikeArticle(long cvid); } diff --git a/test/DomainServiceTest/ArticleDomainServiceTest.cs b/test/DomainServiceTest/ArticleDomainServiceTest.cs index 71f964064..6f9d268e4 100644 --- a/test/DomainServiceTest/ArticleDomainServiceTest.cs +++ b/test/DomainServiceTest/ArticleDomainServiceTest.cs @@ -11,6 +11,16 @@ public ArticleDomainServiceTest(ITestOutputHelper output) Program.CreateHost(new[] { "--ENVIRONMENT=Development" }); } + [Fact] + public async Task LikeArticleTest() + { + using var scope = Global.ServiceProviderRoot.CreateScope(); + var config = Global.ConfigurationRoot; + var domainService = scope.ServiceProvider.GetRequiredService(); + await domainService.LikeArticle(5806746); + } + + [Fact] public async Task AddCoinForArticleTest() { @@ -32,4 +42,6 @@ public async Task AddCoinForArticlesTest() var domainService = scope.ServiceProvider.GetRequiredService(); await domainService.AddCoinForArticles(); } + + }