Skip to content

Commit

Permalink
实现浏览会员购页面与观看正片内容功能 (#641)
Browse files Browse the repository at this point in the history
* 实现浏览会员购页面

* 实现浏览正片内容的功能

* 观看正片任务运行两次以获取全部大积分

* 更新文档

* 修复专栏投币中导致提前结束的逻辑错误

* 修改大积分中相关api调用的错误

* 修复错误

* 修复专栏投币出现权限不足的问题

* 恢复默认配置
  • Loading branch information
Polaris-cn10086 authored Feb 28, 2024
1 parent c06e5d2 commit 3387cc4
Show file tree
Hide file tree
Showing 20 changed files with 509 additions and 70 deletions.
31 changes: 31 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
- [3.3.8. 每月几号自动领取会员权益](#338-每月几号自动领取会员权益)
- [3.3.9. 每月几号进行直播中心银瓜子兑换硬币](#339-每月几号进行直播中心银瓜子兑换硬币)
- [3.3.10. Lv6后开启硬币白嫖模式](#3310-lv6后开启硬币白嫖模式)
- [3.3.11. 是否开启专栏投币](#3311-是否开启专栏投币)
- [3.4. 天选时刻抽奖相关](#34-天选时刻抽奖相关)
- [3.4.1. 根据关键字排除奖品](#341-根据关键字排除奖品)
- [3.4.2. 根据关键字指定奖品](#342-根据关键字指定奖品)
Expand Down Expand Up @@ -75,6 +76,8 @@
- [3.7.3. 定时任务相关](#373-定时任务相关)
- [3.7.4. 定时任务](#374-定时任务)
- [3.7.5. Crontab](#375-crontab)
- [3.8. 大积分相关](#38-大积分相关)
- [3.8.1. 自定义观看番剧](#381-自定义观看番剧)

<!-- /TOC -->

Expand Down Expand Up @@ -314,6 +317,8 @@ export Ray_Serilog__WriteTo__9__Args__token="abcde"
<a id="markdown-331-是否开启观看视频任务" name="331-是否开启观看视频任务"></a>
#### 3.3.1. 是否开启观看视频任务

当该配置被设置为`false`时会导致大积分任务中的签到领额外10点经验的任务不能自动完成。

| TITLE | CONTENT |
| ---------- | -------------- |
| 配置Key | `DailyTaskConfig:IsWatchVideo` |
Expand Down Expand Up @@ -437,6 +442,18 @@ export Ray_Serilog__WriteTo__9__Args__token="abcde"
| 环境变量 | `Ray_DailyTaskConfig__SaveCoinsWhenLv6` |
| GitHub Secrets | |

<a id="markdown-3311-是否开启专栏投币" name="3311-是否开启专栏投币"></a>
#### 3.3.11. 是否开启专栏投币

| TITLE | CONTENT |
| ---------- | -------------- |
| 配置Key | `DailyTaskConfig:IsDonateCoinForArticle` |
| 值域 | [true,false]|
| 默认值 | false |
| 环境变量 | `Ray_DailyTaskConfig__IsDonateCoinForArticle` |
| GitHub Secrets | |


<a id="markdown-34-天选时刻抽奖相关" name="34-天选时刻抽奖相关"></a>
### 3.4. 天选时刻抽奖相关

Expand Down Expand Up @@ -896,3 +913,17 @@ environment:
0 15 * * * dotnet /app/Ray.BiliBiliTool.Console.dll --runTasks=Daily >> /var/log/cron.log
0 22 * * * dotnet /app/Ray.BiliBiliTool.Console.dll --runTasks=LiveLottery >> /var/log/cron.log
```
<a id="markdown-38-大积分相关" name="38-大积分相关"></a>
### 3.8. 大积分相关
<a id="markdown-381-自定义观看番剧" name="381-自定义观看番剧"></a>
#### 3.8.1. 自定义观看番剧
| TITLE | CONTENT |
| ---------- | -------------- |
| 配置Key | `VipBigPointConfig:ViewBangumis` |
| 值域 | 番剧的ssid(season_id) |
| 默认值 | `33378`(名侦探柯南) |
| 环境变量 | `Ray_VipBigPointConfig__ViewBangumis` |
| GitHub Secrets | |
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@

public class SearchArticlesByUpIdDto
{
public long Mid { get; set; }
public long mid { get; set; }

public int Pn { get; set; } = 1;
public int pn { get; set; } = 1;

public int Ps { get; set; } = 30;
public int ps { get; set; } = 12;

public string Sort { get; set; } = "publish_time";
public string sort { get; set; } = "publish_time";

public long web_location { get; set; } = 1550101;

public string platform { get; set; } = "web";
}

public class SearchArticlesByUpIdFullDto : SearchArticlesByUpIdDto
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ public class UploadVideoHeartbeatRequest

public string Bvid { get; set; }

public long? Epid { get; set; }

public long? Sid { get; set; }

/// <summary>
/// 当前用户UID
/// </summary>
Expand Down Expand Up @@ -49,6 +53,11 @@ public class UploadVideoHeartbeatRequest
/// </summary>
public int Type { get; set; } = 3;

/// <summary>
/// 剧集副类型
/// </summary>
public int? Sub_type { get; set; }

/// <summary>
/// 2
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using static System.Collections.Specialized.BitVector32;
using System.Collections.Generic;
using System.Diagnostics;
using System.Xml.Linq;

namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.Video;

public class GetBangumiBySsidResponse
{
public int Code { get; set; } = int.MinValue;

public string Message { get; set; }

public Result Result { get; set; }
}

public class Result
{
public List<Episode> episodes { get; set; }
}


public class Episode
{
public int aid { get; set; }

public string bvid { get; set; }

public int cid { get; set; }

public int duration { get; set; }

public int ep_id { get; set; }

public int id { get; set; }

public string long_title { get; set; }

public string share_copy { get; set; }

public int status { get; set; }



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.ViewMall;

public class ViewVipMallRequest
{
public string Csrf { get; set; }
public string EventId { get; set; } = "hevent_oy4b7h3epeb";
}
11 changes: 10 additions & 1 deletion src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVideoApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,16 @@ public interface IVideoApi : IBiliBiliApi
//[HttpGet("/x/space/wbi/arc/search?mid={upId}&ps={pageSize}&tid=0&pn={pageNumber}&keyword={keyword}&order=pubdate&platform=web&web_location=1550101&order_avoided=true&w_rid=5df06b1c48e2be86a96e9d0f99bf06f4&wts=1684854929")]
[HttpGet("/x/space/wbi/arc/search")]
Task<BiliApiResponse<SearchUpVideosResponse>> SearchVideosByUpId([PathQuery] SearchVideosByUpIdFullDto request);


/// <summary>
/// 通过ssid获取番剧的具体信息
/// </summary>
/// <param name="Ssid"></param>
/// <returns></returns>
[HttpGet("/pgc/view/web/season?season_id={ssid}")]
Task<GetBangumiBySsidResponse> GetBangumiBySsid(long ssid);


}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,45 @@ namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Interfaces
/// 大会员大积分
/// </summary>
[Header("Host", "api.bilibili.com")]
[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[LogFilter]
public interface IVipBigPointApi
{
[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[HttpGet("/x/vip_point/task/combine")]
Task<BiliApiResponse<VipTaskInfo>> GetTaskList();


[Header("Referer", "https://www.bilibili.com")]
[HttpPost("/pgc/activity/score/task/sign")]
Task<BiliApiResponse> Sign([FormContent] SignRequest request);

[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[HttpPost("/pgc/activity/score/task/receive")]
Task<BiliApiResponse> Receive([JsonContent] ReceiveOrCompleteTaskRequest request);

[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[HttpPost("/pgc/activity/score/task/complete")]
Task<BiliApiResponse> Complete([JsonContent] ReceiveOrCompleteTaskRequest request);

[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[HttpPost("/pgc/activity/deliver/task/complete")]
Task<BiliApiResponse> ViewComplete([FormContent] ViewRequest request);

[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[HttpGet("/x/vip/privilege/my")]
Task<BiliApiResponse<VouchersInfoResponse>> GetVouchersInfo();

[Header("Referer", "https://big.bilibili.com/mobile/bigPoint/task")]
[Header("User-Agent", "Mozilla/5.0 (Linux; Android 6.0.1; MuMu Build/V417IR; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Mobile Safari/537.36 os/android model/MuMu build/6720300 osVer/6.0.1 sdkInt/23 network/2 BiliApp/6720300 mobi_app/android channel/html5_search_baidu Buvid/XZFC135F5263B6897C8A4BE7AEB125BBF10F8 sessionID/72d3f4c9 innerVer/6720310 c_locale/zh_CN s_locale/zh_CN disable_rcmd/0 6.72.0 os/android model/MuMu mobi_app/android build/6720300 channel/html5_search_baidu innerVer/6720310 osVer/6.0.1 network/2")]
[Header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")]
[HttpPost("/x/vip/experience/add")]
Task<BiliApiResponse> GetVipExperience([FormContent] VipExperienceRequest request);


}
}
13 changes: 13 additions & 0 deletions src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVipMallApi.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
using System.Threading.Tasks;
using WebApiClientCore.Attributes;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.ViewMall;

namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Interfaces;

[Header("Host", "show.bilibili.com")]
public interface IVipMallApi
{
[HttpPost("/api/activity/fire/common/event/dispatch")]
Task<BiliApiResponse> ViewVipMall([JsonContent] ViewVipMallRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public static IServiceCollection AddBiliBiliClientApi(this IServiceCollection se

// 添加注入
services.AddBiliBiliClientApi<IArticleApi>("https://api.bilibili.com");
services.AddBiliBiliClientApi<IVipMallApi>("https://show.bilibili.com");

//qinglong
var qinglongHost = configuration["QL_URL"] ?? "http://localhost:5600";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.ComponentModel;
using System.Text;
using System.Threading.Tasks;
using Ray.BiliBiliTool.DomainService.Dtos;

namespace Ray.BiliBiliTool.Application.Contracts
{
Expand All @@ -14,5 +15,8 @@ namespace Ray.BiliBiliTool.Application.Contracts
public interface IVipBigPointAppService : IAppService
{
Task VipExpress();
Task<bool> WatchBangumi();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,8 @@
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Ray.BiliBiliTool.DomainService\Ray.BiliBiliTool.DomainService.csproj" />
</ItemGroup>

</Project>
3 changes: 0 additions & 3 deletions src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,6 @@ public override async Task DoTaskAsync(CancellationToken cancellationToken)
await ReceiveVipPrivilege(userInfo);
await ReceiveMangaVipReward(userInfo);

//TODO 大会员领经验


await Charge(userInfo);
}

Expand Down
Loading

0 comments on commit 3387cc4

Please sign in to comment.