Skip to content

Commit

Permalink
Merge branch 'release/0.1.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed Aug 14, 2022
2 parents 00fea93 + b5f310b commit a6b1a70
Show file tree
Hide file tree
Showing 20 changed files with 131 additions and 25 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@
-#107】新增自动检测并关闭长时无状态issues的actions:no-response.yml
-#73】【#105】【#108】更新、纠正文档内容
- HostConfiguration,删除了CommandLine配置源,推荐只使用环境变量,同时更新青龙shell脚本内配置
-#169】领取大会员福利任务更改为每日都尝试执行
- 青龙拉库兼容大小写问题
-#197】合并PR,新增了阅读漫画功能到每日任务中(@ChanceLuo
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_dev_task_daily.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro_develop"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
4 changes: 2 additions & 2 deletions qinglong/DefaultTasks/bili_dev_task_liveLottery.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro_develop"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
export ENVIRONMENT=Production && \
export Ray_RunTasks=LiveLottery && \
dotnet run --project ./src/Ray.BiliBiliTool.Console
dotnet run --project ./src/Ray.BiliBiliTool.Console
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_dev_task_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro_develop"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_dev_task_unfollowBatched.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro_develop"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
4 changes: 2 additions & 2 deletions qinglong/DefaultTasks/bili_task_daily.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
export ENVIRONMENT=Production && \
export Ray_RunTasks=Daily && \
dotnet run --project ./src/Ray.BiliBiliTool.Console
dotnet run --project ./src/Ray.BiliBiliTool.Console
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_task_liveLottery.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_task_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
2 changes: 1 addition & 1 deletion qinglong/DefaultTasks/bili_task_unfollowBatched.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dir_shell=$QL_DIR/shell
bili_repo="raywangqvq_bilibilitoolpro"

echo "repo目录: $dir_repo"
bili_repo_dir="$(find $dir_repo -type d -name $bili_repo | head -1)"
bili_repo_dir="$(find $dir_repo -type d -iname $bili_repo | head -1)"
echo -e "bili仓库目录: $bili_repo_dir\n"

cd $bili_repo_dir
Expand Down
54 changes: 48 additions & 6 deletions qinglong/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@
- [1.3. 登录青龙面板并修改配置](#13-登录青龙面板并修改配置)
- [1.4. 添加bili配置](#14-添加bili配置)
- [1.5. 在青龙面板中添加拉库定时任务](#15-在青龙面板中添加拉库定时任务)
- [1.5.1 订阅管理](#151-订阅管理)
- [1.5.2 定时任务拉库](#152-定时任务拉库)
- [2. 先行版](#2-先行版)
- [2.1 订阅管理](#21-订阅管理)
- [2.2 定时任务拉库](#22-定时任务拉库)
- [3. GitHub加速](#3-github加速)

<!-- /TOC -->
Expand Down Expand Up @@ -44,21 +48,45 @@ sh -c "$(wget https://ghproxy.com/https://raw.githubusercontent.com/RayWangQvQ/B
青龙面板,`环境变量`页,添加环境变量:

```
名称:Ray_BiliBiliCookies__0
名称:Ray_BiliBiliCookies__1
值:abc
```

`abc`为你抓取到的真实cookie字符串。
```
名称:Ray_BiliBiliCookies__2
值:defg
```

`abc``defg`为你抓取到的真实cookie字符串。

![qinglong-env.png](../docs/imgs/qinglong-env.png)


### 1.5. 在青龙面板中添加拉库定时任务

两种方式:
#### 1.5.1 订阅管理

```
名称:Bilibili
类型:公开仓库
链接:https://github.com/RayWangQvQ/BiliBiliToolPro.git
定时类型:crontab
定时规则:2 2 28 * *
白名单:bili_task_.+\.sh
文件后缀:sh
```

没提到的不要动。

保存后,点击运行按钮,运行拉库。

#### 1.5.2 定时任务拉库
青龙面板,`定时任务`页,右上角`添加任务`,填入以下信息:

```
名称:拉取Bili库
命令:ql repo https://github.com/raywangqvq/bilibilitoolpro.git "bili_task_"
命令:ql repo https://github.com/RayWangQvQ/BiliBiliToolPro.git "bili_task_"
定时规则:2 2 28 * *
```

Expand All @@ -71,11 +99,25 @@ sh -c "$(wget https://ghproxy.com/https://raw.githubusercontent.com/RayWangQvQ/B
![qinglong-tasks.png](../docs/imgs/qinglong-tasks.png)

## 2. 先行版
修改拉库命令为`ql repo https://github.com/raywangqvq/bilibilitoolpro.git "bili_dev_task_" "" "" "develop"`可改为拉取develop分支的代码。

develop分支的代码会超前于默认的main分支,包含当前正在开发的新功能。
青龙拉库时可以指定分支,develop分支的代码会超前于默认的main分支,包含当前正在开发的新功能。

想提前体验新功能的朋友可以尝试切换先行版,但同时也意味着稳定性会相应降低(其实是相当于在帮我内测测试bug了~🤨)。

方式有两种:

### 2.1 订阅管理

```
分支:develop
白名单:bili_dev_task_.+\.sh
```

其他同上。

### 2.2 定时任务拉库

修改拉库命令为`ql repo https://github.com/RayWangQvQ/BiliBiliToolPro.git "bili_dev_task_" "" "" "develop"`

## 3. GitHub加速
拉库时,如果服务器在国内,访问GitHub速度慢,可以在仓库地址前加上 `https://ghproxy.com/` 进行加速, 如:`ql repo https://ghproxy.com/https://github.com/raywangqvq/bilibilitoolpro.git "bili_task_"`
拉库时,如果服务器在国内,访问GitHub速度慢,可以在仓库地址前加上 `https://ghproxy.com/` 进行加速, 如:`ql repo https://ghproxy.com/https://github.com/RayWangQvQ/BiliBiliToolPro.git "bili_task_"`
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,20 @@ public interface IMangaApi : IBiliBiliApi
[HttpPost("/twirp/activity.v1.Activity/ClockIn?platform={platform}")]
Task<BiliApiResponse> ClockIn(string platform);

/// <summary>
/// 漫画阅读
/// </summary>
/// <param name="platform"></param>
/// <returns></returns>
[HttpPost("/twirp/bookshelf.v1.Bookshelf/AddHistory?platform={platform}&comic_id=27355&ep_id=381662")]
Task<BiliApiResponse> ReadManga(string platform);

/// <summary>
/// 获取会员漫画奖励
/// </summary>
/// <param name="reason_id"></param>
/// <returns></returns>
[HttpPost("/twirp/user.v1.User/GetVipReward?reason_id={reason_id}")]
Task<BiliApiResponse<MangaVipRewardResponse>> ReceiveMangaVipReward(int reason_id);

}
}
11 changes: 10 additions & 1 deletion src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public override void DoTask()
//签到:
LiveSign();
MangaSign();

MangaRead();
ExchangeSilver2Coin();

//领福利:
Expand Down Expand Up @@ -190,6 +190,15 @@ private void MangaSign()
_mangaDomainService.MangaSign();
}

/// <summary>
/// 漫画阅读
/// </summary>
[TaskInterceptor("漫画阅读", rethrowWhenException: false)]
private void MangaRead()
{
_mangaDomainService.MangaRead();
}

/// <summary>
/// 每月获取大会员漫画权益
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public static IServiceCollection AddBiliBiliConfigs(this IServiceCollection serv
.Configure<LiveLotteryTaskOptions>(configuration.GetSection("LiveLotteryTaskConfig"))
.Configure<UnfollowBatchedTaskOptions>(configuration.GetSection("UnfollowBatchedTaskConfig"))
.Configure<SecurityOptions>(configuration.GetSection("Security"))
.Configure<ReceiveVipPrivilegeOptions>(configuration.GetSection("ReceiveVipPrivilegeConfig"))
.Configure<Dictionary<string, int>>(Constants.OptionsNames.ExpDictionaryName, configuration.GetSection("Exp"))
.Configure<Dictionary<string, string>>(Constants.OptionsNames.DonateCoinCanContinueStatusDictionaryName, configuration.GetSection("DonateCoinCanContinueStatus"));

Expand Down
13 changes: 13 additions & 0 deletions src/Ray.BiliBiliTool.Config/Options/ReceiveVipPrivilegeOptions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ray.BiliBiliTool.Config.Options
{
public class ReceiveVipPrivilegeOptions
{
public bool IsEnable { get; set; } = true;
}
}
2 changes: 1 addition & 1 deletion src/Ray.BiliBiliTool.Console/appsettings.Development.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"DailyTaskConfig": {
"SupportUpIds": "",
"AutoChargeUpId": "341688380"
"AutoChargeUpId": "220893216"
},
"Security": {
"IsSkipDailyTask": false,
Expand Down
2 changes: 1 addition & 1 deletion src/Ray.BiliBiliTool.Console/appsettings.Production.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"DailyTaskConfig": {
"SupportUpIds": "",
"AutoChargeUpId": "341688380"
"AutoChargeUpId": "220893216"
},
//用于UT验证
"IsPrd": true
Expand Down
8 changes: 6 additions & 2 deletions src/Ray.BiliBiliTool.Console/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"SelectLike": true, //投币时是否同时点赞[false,true]
"SupportUpIds": "", //优先选择支持的up主Id集合,多个以英文逗号分隔,如:"123,456"。配置后会优先从指定的up主下挑选视频进行观看、分享和投币,不配置或配置为-1则表示没有特别支持的up,会从关注和排行耪中随机获取支持视频
"DayOfAutoCharge": -1, //每月几号自动充电[-1,31],-1表示不指定,默认月底最后一天;0表示不充电
"AutoChargeUpId": "341688380", //指定支持的UP主Id,-1表示自己
"AutoChargeUpId": "-1", //指定支持的UP主Id,-1表示自己
"ChargeComment": "", //充电后留言
"DayOfReceiveVipPrivilege": 1, //每月几号自动领取会员权益的[-1,31],-1表示不指定,默认每月1号;0表示不自动领取
"DayOfExchangeSilver2Coin": 0, //每月几号执行银瓜子兑换硬币[-1,31],-1表示不指定,默认每月最后一天;-2表示每天;0表示不进行兑换
Expand All @@ -34,10 +34,14 @@
"RetainUids": "108569350" //白名单(保留的UpId),多个用英文都好分隔,配置后,批量取关时不会取关配置的Up
},

"ReceiveVipPrivilegeConfig": {
"IsEnable": true //开关
},

//安全相关配置
"Security": {
"IsSkipDailyTask": false, //是否跳过执行任务,用于特殊情况下,通过配置灵活的开启和关闭任务
"RandomSleepMaxMin": 20, //随机睡眠的最大时长(单位为分钟),用于使每天运行时间在范围内相对随机,值域[0,+];配置为0表示不进行休眠
"RandomSleepMaxMin": 10, //随机睡眠的最大时长(单位为分钟),用于使每天运行时间在范围内相对随机,值域[0,+];配置为0表示不进行休眠
"IntervalSecondsBetweenRequestApi": 20, //两次调用api之间的间隔[0,+](单位为秒)。因为有人担心在几秒内连续调用api会被b站安全机制发现,所以为不放心的朋友添加了间隔秒数配置,两次连续调用Api之间会大于该秒数
"IntervalMethodTypes": "GET,POST", //间隔秒数所针对的HttpMethod,多个用英文逗号隔开,当前有GET和POST两种,可配置如“GET,POST”
"UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55", //请求B站接口时头部传递的User-Agent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ public interface IMangaDomainService : IDomainService
/// </summary>
void MangaSign();

/// <summary>
/// 阅读
/// </summary>
void MangaRead();

/// <summary>
/// 获取大会员权益
/// </summary>
Expand Down
18 changes: 18 additions & 0 deletions src/Ray.BiliBiliTool.DomainService/MangaDomainService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,24 @@ public void MangaSign()
}
}

/// <summary>
/// 漫画阅读
/// </summary>
public void MangaRead()
{
BiliApiResponse response = _mangaApi.ReadManga(_dailyTaskOptions.DevicePlatform).GetAwaiter().GetResult();

if (response.Code == 0)
{
_logger.LogInformation("【漫画阅读】成功, 阅读漫画为:堀与宫村");
}
else
{
_logger.LogInformation("【漫画阅读】失败");
_logger.LogInformation("【原因】{msg}", response.Message);
}
}

/// <summary>
/// 获取大会员漫画权益
/// </summary>
Expand Down
10 changes: 7 additions & 3 deletions src/Ray.BiliBiliTool.DomainService/VipPrivilegeDomainService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,19 @@ public class VipPrivilegeDomainService : IVipPrivilegeDomainService
private readonly IDailyTaskApi _dailyTaskApi;
private readonly DailyTaskOptions _dailyTaskOptions;
private readonly BiliCookie _biliBiliCookie;
private readonly ReceiveVipPrivilegeOptions _receiveVipPrivilegeOptionsce;

public VipPrivilegeDomainService(
ILogger<VipPrivilegeDomainService> logger,
IDailyTaskApi dailyTaskApi,
BiliCookie biliBiliCookieOptions,
IOptionsMonitor<DailyTaskOptions> dailyTaskOptions
)
IOptionsMonitor<DailyTaskOptions> dailyTaskOptions,
IOptionsMonitor<ReceiveVipPrivilegeOptions> receiveVipPrivilegeOptionsce)
{
_logger = logger;
_dailyTaskApi = dailyTaskApi;
_dailyTaskOptions = dailyTaskOptions.CurrentValue;
_receiveVipPrivilegeOptionsce = receiveVipPrivilegeOptionsce.CurrentValue;
_biliBiliCookie = biliBiliCookieOptions;
}

Expand All @@ -38,7 +40,7 @@ IOptionsMonitor<DailyTaskOptions> dailyTaskOptions
/// <param name="useInfo"></param>
public bool ReceiveVipPrivilege(UserInfo userInfo)
{
if (_dailyTaskOptions.DayOfReceiveVipPrivilege == 0)
if (!_receiveVipPrivilegeOptionsce.IsEnable)
{
_logger.LogInformation("已配置为关闭,跳过");
return false;
Expand All @@ -52,6 +54,7 @@ public bool ReceiveVipPrivilege(UserInfo userInfo)
return false;
}

/*
int targetDay = _dailyTaskOptions.DayOfReceiveVipPrivilege == -1
? 1
: _dailyTaskOptions.DayOfReceiveVipPrivilege;
Expand All @@ -65,6 +68,7 @@ public bool ReceiveVipPrivilege(UserInfo userInfo)
_logger.LogInformation("跳过");
return false;
}
*/

var suc1 = ReceiveVipPrivilege(1);
var suc2 = ReceiveVipPrivilege(2);
Expand Down

0 comments on commit a6b1a70

Please sign in to comment.