diff --git a/.github/workflows/publish-image.yml b/.github/workflows/publish-image.yml
index 114e2b63d..c19834ce6 100644
--- a/.github/workflows/publish-image.yml
+++ b/.github/workflows/publish-image.yml
@@ -71,7 +71,7 @@ jobs:
ghcrTagWithVersion="${{ env.GHC_IMG_NAME }}:$targetVersion"
dockerTagWithLatest=""
ghcrTagWithLatest=""
- if [ "${{ github.event.inputs.autoWithLatestTag }}" == "true" ] ; then
+ if [ "${{ github.event.inputs.autoWithLatestTag }}" == "true" ] || [ ${{ github.event.release.created_at }} ]; then
dockerTagWithLatest="$dockerImage:latest"
ghcrTagWithLatest="$ghcrImage:latest"
fi
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a87a8201..c46da5bf6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -85,5 +85,8 @@
## 0.4.2
- Merfe PRs #425 #426 #427 : Enhancement docker things, thx @zclkkk
## 0.4.3
-- Feature #419 : Add a auto shell script for install with docker
-- Feature #396 : Publish docker image to GitHub pkg
\ No newline at end of file
+- Feature #419 : Add a auto shell script for installing with docker
+- Feature #396 : Publish docker image to GitHub pkg
+## 0.4.4
+- Fix #228 : Try to fix sharing video error
+- Feature: Change default docker image from dockerhub to github
\ No newline at end of file
diff --git a/Ray.BiliBiliTool.sln b/Ray.BiliBiliTool.sln
index ec70453b6..bb7f0f112 100644
--- a/Ray.BiliBiliTool.sln
+++ b/Ray.BiliBiliTool.sln
@@ -254,7 +254,7 @@ Global
{DB227D60-0737-45C2-8CEA-F55FDA711301} = {38736647-2196-417E-8519-C48A012A63D9}
{114D45C8-E4BB-47EE-89AC-BD1DC6FA3BAD} = {E9BDDCBE-A57D-4E3B-8252-708088386ADF}
{2039BF6A-5EC4-439C-8D2E-77313075843A} = {E9BDDCBE-A57D-4E3B-8252-708088386ADF}
- {110D3D21-8E9B-45AB-9667-6DA1DB3862AC} = {120917DC-474C-448B-9EBB-1B3BA3A20B9D}
+ {110D3D21-8E9B-45AB-9667-6DA1DB3862AC} = {AF21E067-3307-4E7F-8CE8-C695E6B61876}
{7188698C-0A9A-43B2-B3E2-5136B14FDE13} = {110D3D21-8E9B-45AB-9667-6DA1DB3862AC}
{3388A58D-91CC-4875-A29F-3E6FC3B44BF5} = {98051127-2868-4F5C-9B2C-2150975E05F3}
{B6AEDD60-9C06-4391-9171-65EBD5E9D77A} = {98051127-2868-4F5C-9B2C-2150975E05F3}
diff --git a/common.props b/common.props
index 4afa85094..63714c814 100644
--- a/common.props
+++ b/common.props
@@ -1,7 +1,7 @@
Ray
- 0.4.3
+ 0.4.4
$(NoWarn);CS1591;CS0436
diff --git a/docker/README.md b/docker/README.md
index adef5fc36..3bf6510c0 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -88,14 +88,14 @@ docker compose pull && docker compose up -d
```
# 生成并运行容器
-docker pull zai7lou/bilibili_tool_pro
+docker pull ghcr.io/raywangqvq/bilibili_tool_pro
docker run -d --name="bili" \
-v /bili/Logs:/app/Logs \
-e Ray_DailyTaskConfig__Cron="0 15 * * *" \
-e Ray_LiveLotteryTaskConfig__Cron="0 22 * * *" \
-e Ray_UnfollowBatchedTaskConfig__Cron="0 6 1 * *" \
-e Ray_VipBigPointConfig__Cron="7 1 * * *" \
- zai7lou/bilibili_tool_pro
+ ghcr.io/raywangqvq/bilibili_tool_pro
# 查看实时日志
docker logs -f bili
@@ -141,7 +141,10 @@ docker run --rm \
## 6. 自己构建镜像(非必须)
-目前我提供和维护的镜像:`[zai7lou/bilibili_tool_pro](https://hub.docker.com/repository/docker/zai7lou/bilibili_tool_pro)`;
+目前我提供和维护的镜像:
+
+- DockerHub: `[zai7lou/bilibili_tool_pro](https://hub.docker.com/repository/docker/zai7lou/bilibili_tool_pro)`
+- GitHub: `[bilibili_tool_pro](https://github.com/RayWangQvQ/BiliBiliToolPro/pkgs/container/bilibili_tool_pro)`
如果有需要(大部分都不需要),可以使用源码自己构建镜像,如下:
@@ -159,4 +162,4 @@ docker run --rm \
apt-get 包源用的国内网易的
-如果下载github资源有问题,可以尝试添加或删除代理url`https://ghproxy.com/`
+如果下载`github`资源有问题,可以尝试添加或删除代理url`https://ghproxy.com/`
diff --git a/docker/install.sh b/docker/install.sh
index 3c55d9bcc..6ccc275d1 100644
--- a/docker/install.sh
+++ b/docker/install.sh
@@ -2,8 +2,8 @@
###
# @Author: Ray zai7lou@outlook.com
# @Date: 2023-02-11 23:13:19
- # @LastEditors: Ray zai7lou@outlook.com
- # @LastEditTime: 2023-02-12 02:48:22
+# @LastEditors: Ray zai7lou@outlook.com
+# @LastEditTime: 2023-02-12 18:30:10
# @FilePath: \BiliBiliToolPro\docker\install.sh
# @Description:
###
@@ -90,10 +90,10 @@ runContainer() {
} || {
docker pull zai7lou/bilibili_tool_pro
docker run -d --name="bili" \
- -v $base_dir/Logs:/app/Logs \
- -v $base_dir/appsettings.json:/app/appsettings.json \
- -v $base_dir/cookies.json:/app/cookies.json \
- zai7lou/bilibili_tool_pro
+ -v $base_dir/Logs:/app/Logs \
+ -v $base_dir/appsettings.json:/app/appsettings.json \
+ -v $base_dir/cookies.json:/app/cookies.json \
+ ghcr.io/raywangqvq/bilibili_tool_pro
} || {
say_err "创建容器失败,请检查"
exit 1
diff --git a/docker/sample/docker-compose.yml b/docker/sample/docker-compose.yml
index db3f45e14..b2a8d404b 100644
--- a/docker/sample/docker-compose.yml
+++ b/docker/sample/docker-compose.yml
@@ -1,7 +1,7 @@
version: '3.9'
services:
bilibili_tool:
- image: zai7lou/bilibili_tool_pro
+ image: ghcr.io/raywangqvq/bilibili_tool_pro
container_name: bili
restart: unless-stopped
tty: true
diff --git a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/ShareVideoRequest.cs b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/ShareVideoRequest.cs
index ac7dcdd99..1d20539ac 100644
--- a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/ShareVideoRequest.cs
+++ b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Dtos/ShareVideoRequest.cs
@@ -1,8 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
namespace Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos
{
@@ -17,5 +13,13 @@ public ShareVideoRequest(long aid, string csrf)
public long Aid { get; set; }
public string Csrf { get; set; }
+
+ public string Eab_x { get; set; } = "1";
+
+ public string Ramval { get; set; } = $"{new Random().Next(3, 20)}";
+
+ public string Source { get; set; } = "web_normal";
+
+ public string Ga { get; set; } = "1";
}
}
diff --git a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVideoApi.cs b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVideoApi.cs
index e1c5fc61d..90e3a4161 100644
--- a/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVideoApi.cs
+++ b/src/Ray.BiliBiliTool.Agent/BiliBiliAgent/Interfaces/IVideoApi.cs
@@ -16,9 +16,8 @@ public interface IVideoApi : IBiliBiliApi
/// 分享视频
///
///
+ /// ck中必须要有buvid3,否则几率性-403
///
- [Header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")]
- [Header("Referer", "https://www.bilibili.com/")]
[Header("Origin", "https://www.bilibili.com")]
[HttpPost("/x/web-interface/share/add")]
Task ShareVideo([FormContent] ShareVideoRequest request);
diff --git a/src/Ray.BiliBiliTool.Agent/BiliCookie.cs b/src/Ray.BiliBiliTool.Agent/BiliCookie.cs
index a60acaf07..15029f40e 100644
--- a/src/Ray.BiliBiliTool.Agent/BiliCookie.cs
+++ b/src/Ray.BiliBiliTool.Agent/BiliCookie.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
-using System.Net.Http.Headers;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Ray.BiliBiliTool.Config;
using Ray.BiliBiliTool.Infrastructure;
+using Ray.BiliBiliTool.Infrastructure.Cookie;
namespace Ray.BiliBiliTool.Agent
{
@@ -106,9 +106,18 @@ public override void Check()
public override string ToString()
{
- if (CookieStr.IsNotNullOrEmpty()) return CookieStr;
+ var re = CookieStr;
+ if (re.IsNullOrEmpty()) return "";
- return "";
+ // https://github.com/RayWangQvQ/BiliBiliToolPro/issues/228
+ if (!re.Contains("buvid3"))
+ {
+ //buvid3=G5F0F1C0-C1B5-D6E7-4CC0-13C1AAB7C1BC33815infoc;
+ var random = $"buvid3={Guid.NewGuid().ToString().ToUpper()}infoc; ";
+ re = random + re;
+ }
+
+ return re;
}
private string GetPropertyDescription(string propertyName)
diff --git a/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs b/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs
index ec9b0d0e5..edd563dcb 100644
--- a/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs
+++ b/src/Ray.BiliBiliTool.Agent/Extensions/ServiceCollectionExtension.cs
@@ -121,7 +121,7 @@ private static IServiceCollection AddBiliBiliClientApi(this IService
httpClientBuilder.ConfigureHttpClient((sp, c) =>
{
var ck = sp.GetRequiredService();
- c.DefaultRequestHeaders.Add("Cookie", ck.CookieStr);
+ c.DefaultRequestHeaders.Add("Cookie", ck.ToString());
});
return services;
diff --git a/src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs b/src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
index aa92b62c0..34e364966 100644
--- a/src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
+++ b/src/Ray.BiliBiliTool.Application/DailyTaskAppService.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Threading;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos;
diff --git a/src/Ray.BiliBiliTool.Console/Program.cs b/src/Ray.BiliBiliTool.Console/Program.cs
index bb649ddad..78551d65d 100644
--- a/src/Ray.BiliBiliTool.Console/Program.cs
+++ b/src/Ray.BiliBiliTool.Console/Program.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
@@ -18,21 +17,23 @@ namespace Ray.BiliBiliTool.Console
{
public class Program
{
- public static void Main(string[] args)
+ public static async Task Main(string[] args)
{
IHost host = CreateHost(args);
try
{
- host.Run();
+ await host.RunAsync();
+ return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly!");
+ return 1;
}
finally
{
- Log.CloseAndFlush();
+ await Log.CloseAndFlushAsync();
}
}
diff --git a/src/Ray.BiliBiliTool.Console/appsettings.json b/src/Ray.BiliBiliTool.Console/appsettings.json
index 9b1e4c3d6..40401d234 100644
--- a/src/Ray.BiliBiliTool.Console/appsettings.json
+++ b/src/Ray.BiliBiliTool.Console/appsettings.json
@@ -1,9 +1,4 @@
{
- //Cookie集合,取自浏览器,必填
- "BiliBiliCookies": [ //Cookie字符串集合,登录bilibili后F12获取,形如"_uuid=abcd; buvid3=1234; sid=abc123"
- ""
- ],
-
"RunTasks": "Daily", //要运行的任务名称[Daily,LiveLottery,UnfollowBatched,VipBigPoint,Test],多个使用&分隔,如“Daily&LiveLottery”,建议使用命令行参数指定
//程序自定义个性化配置
@@ -56,7 +51,7 @@
"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
+ "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.41", //请求B站接口时头部传递的User-Agent
"WebProxy": "" //代理,user:password@host:port
},
diff --git a/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs b/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
index 6c7214b3f..345028167 100644
--- a/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
+++ b/src/Ray.BiliBiliTool.DomainService/LiveDomainService.cs
@@ -1,10 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Net;
-using System.Text;
using System.Threading;
-using System.Timers;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
@@ -16,7 +13,7 @@
using Ray.BiliBiliTool.Config.Options;
using Ray.BiliBiliTool.DomainService.Dtos;
using Ray.BiliBiliTool.DomainService.Interfaces;
-using Ray.BiliBiliTool.Infrastructure;
+using Ray.BiliBiliTool.Infrastructure.Cookie;
namespace Ray.BiliBiliTool.DomainService
{
diff --git a/src/Ray.BiliBiliTool.DomainService/VideoDomainService.cs b/src/Ray.BiliBiliTool.DomainService/VideoDomainService.cs
index 85a76211e..1af2f370e 100644
--- a/src/Ray.BiliBiliTool.DomainService/VideoDomainService.cs
+++ b/src/Ray.BiliBiliTool.DomainService/VideoDomainService.cs
@@ -189,7 +189,7 @@ public void WatchVideo(VideoInfoDto videoInfo)
///
/// 分享视频
///
- /// 视频aid
+ /// 视频
public void ShareVideo(VideoInfoDto videoInfo)
{
var request = new ShareVideoRequest(long.Parse(videoInfo.Aid), _biliBiliCookie.BiliJct);
diff --git a/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieInfo.cs b/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieInfo.cs
index 2abc29a57..e3ce5daa1 100644
--- a/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieInfo.cs
+++ b/src/Ray.BiliBiliTool.Infrastructure/Cookie/CookieInfo.cs
@@ -1,11 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Net;
-using System.Text;
-using System.Threading.Tasks;
-namespace Ray.BiliBiliTool.Infrastructure
+namespace Ray.BiliBiliTool.Infrastructure.Cookie
{
public class CookieInfo
{
diff --git a/src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/BatchedSink.cs b/src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/BatchedSink.cs
index f0146ef71..9f83862da 100644
--- a/src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/BatchedSink.cs
+++ b/src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/BatchedSink.cs
@@ -3,7 +3,6 @@
using System.IO;
using System.Linq;
using System.Text;
-using System.Threading.Tasks;
using Serilog.Core;
using Serilog.Debugging;
using Serilog.Events;
@@ -100,7 +99,7 @@ protected virtual void EmitBatch(IEnumerable events, string pushTitle
protected abstract PushService PushService { get; }
- protected virtual void PushMessage(string message, string title = "BiliBiliTool任务推送")
+ protected virtual void PushMessage(string message, string title = "Bili推送")
{
//SelfLog.WriteLine($"Trying to send message: '{message}'.");
var result = PushService.PushMessage(message, title);
@@ -178,7 +177,7 @@ protected virtual string GetEmoji(LogEvent log)
protected virtual string GetPushTitle(LogEvent triggerLogEvent)
{
- var title = "BiliBiliTool推送";
+ var title = "Bili";
var msg = RenderMessage(triggerLogEvent).Replace(Environment.NewLine, "");
var list = msg.Split('·').ToList();