From b5bc1566ca032f61f7d9dbddeeba6d955ad0ea3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=A6=E6=87=BF?= Date: Sat, 6 May 2023 16:14:51 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ray.BiliBiliTool.Config/Constants.cs | 17 +++--- ...iablesExcludeEmptyConfigurationProvider.cs | 10 +++- ...ariablesExcludeEmptyConfigurationSource.cs | 9 +-- .../Options/DailyTaskOptions.cs | 14 ++--- .../BiliBiliToolHostedService.cs | 60 ++++++++++--------- src/Ray.BiliBiliTool.Console/Program.cs | 41 +++++++++---- 6 files changed, 87 insertions(+), 64 deletions(-) diff --git a/src/Ray.BiliBiliTool.Config/Constants.cs b/src/Ray.BiliBiliTool.Config/Constants.cs index 870682bbe..f8ddad633 100644 --- a/src/Ray.BiliBiliTool.Config/Constants.cs +++ b/src/Ray.BiliBiliTool.Config/Constants.cs @@ -1,5 +1,4 @@ - -using System.Collections; +using System.Collections; using System.Collections.Generic; using System.Linq; @@ -35,7 +34,7 @@ public static class OptionsNames /// public static Dictionary GetExpDic() { - var dic = new Dictionary() + Dictionary dic = new Dictionary() { {"每日登录", "5"}, {"每日观看视频", "5"}, @@ -48,13 +47,14 @@ public static Dictionary GetExpDic() } /// - /// 投币接口的data.code返回以下这些状态码,则可以继续尝试投币 - /// 如返回除这些之外的状态码,则终止投币流程,不进行无意义的尝试(比如返回-101:账号未登录;-102:账号被封停;-111:csrf校验失败等) + /// 投币接口的data.code返回以下这些状态码,则可以继续尝试投币 + /// 如返回除这些之外的状态码,则终止投币流程,不进行无意义的尝试 + /// (比如返回-101:账号未登录;-102:账号被封停;-111:csrf校验失败等) /// /// public static Dictionary GetDonateCoinCanContinueStatusDic() { - var dic = new Dictionary() + Dictionary dic = new Dictionary() { {"0", "成功"}, {"-400", "请求错误"}, @@ -64,8 +64,11 @@ public static Dictionary GetDonateCoinCanContinueStatusDic() {"34004", "投币间隔太短"}, {"34005", "超过投币上限"} }; + + string buildKey(string key) => $"{OptionsNames.DonateCoinCanContinueStatusDictionaryName}:{key}"; + return dic.Select(x => - new KeyValuePair($"{OptionsNames.DonateCoinCanContinueStatusDictionaryName}:{x.Key}", x.Value)) + new KeyValuePair(buildKey(x.Key), x.Value)) .ToDictionary(k => k.Key, v => v.Value) ; } diff --git a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs index e6aaa0064..3978ba5db 100644 --- a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs +++ b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs @@ -8,7 +8,7 @@ namespace Ray.BiliBiliTool.Config { /// - /// 自定义的排除空值的环境变量提供者 + /// 自定义的排除空值的环境变量提供者 /// (使用GitHub Actions的脚本传入环境变量,空值会保留,所以这里自己写了一个用来替换掉默认的) /// public class EnvironmentVariablesExcludeEmptyConfigurationProvider : EnvironmentVariablesConfigurationProvider @@ -19,7 +19,10 @@ public class EnvironmentVariablesExcludeEmptyConfigurationProvider : Environment private readonly Func, bool> _removeNullValue; private readonly Func, bool> _fifter; - public EnvironmentVariablesExcludeEmptyConfigurationProvider(string prefix = null, bool removeKeyPrefix = true) : base(prefix) + public EnvironmentVariablesExcludeEmptyConfigurationProvider( + string prefix = null, + bool removeKeyPrefix = true) + : base(prefix) { _removeKeyPrefix = removeKeyPrefix; _prefix = prefix ?? string.Empty; @@ -46,7 +49,8 @@ public override void Load() /// private string NormalizeKey(string key) { - if(_removeKeyPrefix) key = RemoveKeyPrefix(key); + if(_removeKeyPrefix) + key = RemoveKeyPrefix(key); key = ReplaceKeyDelimiter(key); return key; } diff --git a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationSource.cs b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationSource.cs index fea853940..4d553edfc 100644 --- a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationSource.cs +++ b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationSource.cs @@ -1,15 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.EnvironmentVariables; namespace Ray.BiliBiliTool.Config { /// - /// 自定义的排除空值的环境变量配置源 + /// 自定义的排除空值的环境变量配置源 /// (用于取待默认的) /// public class EnvironmentVariablesExcludeEmptyConfigurationSource : IConfigurationSource diff --git a/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs b/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs index da828c8e7..ca566067c 100644 --- a/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs +++ b/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs @@ -28,7 +28,6 @@ public class DailyTaskOptions /// public bool SaveCoinsWhenLv6 { get; set; } = false; - /// /// 投币时是否点赞[false,true] /// @@ -50,6 +49,7 @@ public class DailyTaskOptions public string AutoChargeUpId { get; set; } private string _chargeComment; + /// /// 充电后留言 /// @@ -77,18 +77,18 @@ public string ChargeComment /// public string DevicePlatform { get; set; } = "android"; - public List SupportUpIdList { get { - var re = new List(); - if (string.IsNullOrWhiteSpace(SupportUpIds) | SupportUpIds == "-1") return re; + List re = new(); + if(string.IsNullOrWhiteSpace(SupportUpIds) | SupportUpIds == "-1") + return re; - var array = SupportUpIds.Split(','); - foreach (var item in array) + string[] array = SupportUpIds.Split(','); + foreach(string item in array) { - if (long.TryParse(item.Trim(), out long upId)) + if(long.TryParse(item.Trim(), out long upId)) re.Add(upId); else re.Add(long.MinValue); diff --git a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs index 5bbd4e513..a54c5570b 100644 --- a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs +++ b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs @@ -45,28 +45,28 @@ IHostApplicationLifetime applicationLifetime public async Task StartAsync(CancellationToken cancellationToken) { - var isNotifySingle = _configuration.GetSection("Notification:IsSingleAccountSingleNotify").Get(); + bool isNotifySingle = _configuration.GetSection("Notification:IsSingleAccountSingleNotify").Get(); try { _logger.LogInformation("BiliBiliToolPro 开始运行...{newLine}", Environment.NewLine); - var pass = await PreCheckAsync(cancellationToken); - if (!pass) return; + bool pass = await PreCheckAsync(cancellationToken); + if(!pass) + return; await RandomSleepAsync(cancellationToken); - var tasks = await ReadTargetTasksAsync(cancellationToken); + string[] tasks = await ReadTargetTasksAsync(cancellationToken); _logger.LogInformation("【目标任务】{tasks}", string.Join(",", tasks)); - if (tasks.Contains("Login")) + if(tasks.Contains("Login")) { await DoTasksAsync(tasks, cancellationToken); } - else { - for (int i = 0; i < _cookieStrFactory.Count; i++) + for(int i = 0 ; i < _cookieStrFactory.Count ; i++) { _cookieStrFactory.CurrentNum = i + 1; _logger.LogInformation("######### 账号 {num} #########{newLine}", _cookieStrFactory.CurrentNum, Environment.NewLine); @@ -74,15 +74,15 @@ public async Task StartAsync(CancellationToken cancellationToken) try { await DoTasksAsync(tasks, cancellationToken); - if (isNotifySingle) + if(isNotifySingle) { LogAppInfo(); - var accountName = _cookieStrFactory.Count > 1 ? $"账号【{_cookieStrFactory.CurrentNum}】" : ""; + string accountName = _cookieStrFactory.Count > 1 ? $"账号【{_cookieStrFactory.CurrentNum}】" : ""; _logger.LogInformation("·开始推送·{task}·{user}", $"{_configuration["RunTasks"]}任务", accountName); } } - catch (Exception e) + catch(Exception e) { //ignore _logger.LogWarning("异常:{msg}", e); @@ -90,14 +90,14 @@ public async Task StartAsync(CancellationToken cancellationToken) } } } - catch (Exception ex) + catch(Exception ex) { _logger.LogError("程序异常终止,原因:{msg}", ex.Message); throw; } finally { - if (!isNotifySingle) + if(!isNotifySingle) { LogAppInfo(); _logger.LogInformation("·开始推送·{task}·{user}", $"{_configuration["RunTasks"]}任务", ""); @@ -123,7 +123,7 @@ private Task PreCheckAsync(CancellationToken cancellationToken) _logger.LogInformation("【账号个数】{count}个{newLine}", _cookieStrFactory.Count, Environment.NewLine); //是否跳过 - if (_securityOptions.IsSkipDailyTask) + if(_securityOptions.IsSkipDailyTask) { _logger.LogWarning("已配置为跳过任务{newLine}", Environment.NewLine); return Task.FromResult(false); @@ -134,9 +134,10 @@ private Task PreCheckAsync(CancellationToken cancellationToken) private async Task RandomSleepAsync(CancellationToken cancellationToken) { - if (_configuration["RunTasks"].Contains("Login") || _configuration["RunTasks"].Contains("Test")) return; + if(_configuration["RunTasks"].Contains("Login") || _configuration["RunTasks"].Contains("Test")) + return; - if (_securityOptions.RandomSleepMaxMin > 0) + if(_securityOptions.RandomSleepMaxMin > 0) { int randomMin = new Random().Next(1, ++_securityOptions.RandomSleepMaxMin); _logger.LogInformation("随机休眠{min}分钟{newLine}", randomMin, Environment.NewLine); @@ -144,11 +145,16 @@ private async Task RandomSleepAsync(CancellationToken cancellationToken) } } + /// + /// 读取目标任务 + /// + /// + /// private Task ReadTargetTasksAsync(CancellationToken cancellationToken) { - var tasks = _configuration["RunTasks"] + string[] tasks = _configuration["RunTasks"] .Split("&", options: StringSplitOptions.RemoveEmptyEntries); - if (tasks.Any()) + if(tasks.Any()) { return Task.FromResult(tasks); } @@ -157,13 +163,13 @@ private Task ReadTargetTasksAsync(CancellationToken cancellationToken) TaskTypeFactory.Show(_logger); _logger.LogInformation("请输入:"); - while (true) + while(true) { - var index = System.Console.ReadLine(); - var suc = int.TryParse(index, out int num); - if (suc) + string index = System.Console.ReadLine(); + bool suc = int.TryParse(index, out int num); + if(suc) { - var code = TaskTypeFactory.GetCodeByIndex(num); + string code = TaskTypeFactory.GetCodeByIndex(num); _configuration["RunTasks"] = code; return Task.FromResult(new string[] { code }); } @@ -174,17 +180,17 @@ private Task ReadTargetTasksAsync(CancellationToken cancellationToken) private async Task DoTasksAsync(string[] tasks, CancellationToken cancellationToken) { - using var scope = _serviceProvider.CreateScope(); - foreach (var task in tasks) + using IServiceScope scope = _serviceProvider.CreateScope(); + foreach(string task in tasks) { - var type = TaskTypeFactory.Create(task); - if (type == null) + Type type = TaskTypeFactory.Create(task); + if(type == null) { _logger.LogWarning("任务不存在:{task}", task); continue; } - var appService = (IAppService)scope.ServiceProvider.GetRequiredService(type); + IAppService appService = (IAppService)scope.ServiceProvider.GetRequiredService(type); await appService?.DoTaskAsync(cancellationToken); } } diff --git a/src/Ray.BiliBiliTool.Console/Program.cs b/src/Ray.BiliBiliTool.Console/Program.cs index 7dc7ce0a1..814863613 100644 --- a/src/Ray.BiliBiliTool.Console/Program.cs +++ b/src/Ray.BiliBiliTool.Console/Program.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.IO; using System.Reflection; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; @@ -29,7 +27,7 @@ public static async Task Main(string[] args) await host.RunAsync(); return 0; } - catch (Exception ex) + catch(Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly!"); return 1; @@ -56,33 +54,38 @@ internal static IHostBuilder CreateHostBuilder(string[] args) //hostBuilder.UseContentRoot(Directory.GetCurrentDirectory()); - //承载系统自身的配置: + #region 承载系统自身的配置 + hostBuilder.ConfigureHostConfiguration(hostConfigurationBuilder => { hostConfigurationBuilder.AddEnvironmentVariables(prefix: "DOTNET_"); - if (args is { Length: > 0 }) + if(args is { Length: > 0 }) { hostConfigurationBuilder.AddCommandLine(args); } }); - //应用配置: + #endregion 承载系统自身的配置 + + #region 应用配置 + hostBuilder.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) => { Global.HostingEnvironment = hostBuilderContext.HostingEnvironment; IHostEnvironment env = hostBuilderContext.HostingEnvironment; //json文件: + string envName = hostBuilderContext.HostingEnvironment.EnvironmentName; configurationBuilder.AddJsonFile("appsettings.json", true, true) - .AddJsonFile($"appsettings.{hostBuilderContext.HostingEnvironment.EnvironmentName}.json", true, true) + .AddJsonFile($"appsettings.{envName}.json", true, true) ; //用户机密: - if (env.IsDevelopment() && env.ApplicationName?.Length > 0) + if(env.IsDevelopment() && env.ApplicationName?.Length > 0) { //var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName)); - var appAssembly = Assembly.GetAssembly(typeof(Program)); + Assembly appAssembly = Assembly.GetAssembly(typeof(Program)); configurationBuilder.AddUserSecrets(appAssembly, optional: true, reloadOnChange: true); } @@ -91,7 +94,7 @@ internal static IHostBuilder CreateHostBuilder(string[] args) configurationBuilder.AddExcludeEmptyEnvironmentVariables("Ray_"); //命令行: - if (args != null && args.Length > 0) + if(args != null && args.Length > 0) { configurationBuilder.AddCommandLine(args, Config.Constants.GetCommandLineMappingsDic()); } @@ -104,16 +107,23 @@ internal static IHostBuilder CreateHostBuilder(string[] args) configurationBuilder.AddInMemoryCollection(Config.Constants.GetDonateCoinCanContinueStatusDic()); }); - //日志: + #endregion 应用配置 + + #region 日志 + hostBuilder.ConfigureLogging((hostBuilderContext, loggingBuilder) => { Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(hostBuilderContext.Configuration) .CreateLogger(); SelfLog.Enable(x => System.Console.WriteLine(x ?? "")); - }).UseSerilog(); + }) + .UseSerilog(); + + #endregion 日志 + + #region DI容器 - //DI容器: hostBuilder.ConfigureServices((hostContext, services) => { Global.ConfigurationRoot = (IConfigurationRoot)hostContext.Configuration; @@ -126,9 +136,14 @@ internal static IHostBuilder CreateHostBuilder(string[] args) services.AddAppServices(); }); + #endregion DI容器 + return hostBuilder; } + /// + /// 输出本工具启动logo + /// private static void PrintLogo() { System.Console.WriteLine(@" ____ ____ _ _____ _ "); From a2733af57c0dbc34fd7e6a2fa6211ff5d8c96b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=A6=E6=87=BF?= Date: Sat, 6 May 2023 16:39:49 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0buildKey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ray.BiliBiliTool.Config/Constants.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Ray.BiliBiliTool.Config/Constants.cs b/src/Ray.BiliBiliTool.Config/Constants.cs index f8ddad633..1a8e19b9d 100644 --- a/src/Ray.BiliBiliTool.Config/Constants.cs +++ b/src/Ray.BiliBiliTool.Config/Constants.cs @@ -41,8 +41,11 @@ public static Dictionary GetExpDic() {"每日分享视频", "5"}, {"每日投币", "10"} }; + + string buildKey(string key) => $"{OptionsNames.ExpDictionaryName}:{key}"; + return dic.Select(x => - new KeyValuePair($"{OptionsNames.ExpDictionaryName}:{x.Key}", x.Value)) + new KeyValuePair(buildKey(x.Key), x.Value)) .ToDictionary(k => k.Key, v => v.Value); } From 559f389a7a4c34f570deb5304170f0f356d7cb6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=95=BF=E7=A9=BAX?= <584880422@qq.com> Date: Sat, 6 May 2023 16:49:02 +0800 Subject: [PATCH 03/11] Update runInLocal.md --- docs/runInLocal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/runInLocal.md b/docs/runInLocal.md index 01564856f..31d4d4d53 100644 --- a/docs/runInLocal.md +++ b/docs/runInLocal.md @@ -20,7 +20,7 @@ 任何操作系统,不管是Win还是Linux还是mac,只要已安装了`.NET 6.0` 环境,均可通过下载`net-dependent.zip`运行。 -下载解压后,进入应用目录,执行`dotnet ./Ray.BiliBiliTool.Console.dll --runTasks=Login` +下载解压后,进入应用目录,执行`./Ray.BiliBiliTool.Console.dll --runTasks=Login` 会出现二维码,扫码登录后即可运行各个任务。 From b8142c82ccc7782ba1235cc4e6ec5b76532bddd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=95=BF=E7=A9=BAX?= <584880422@qq.com> Date: Sat, 6 May 2023 16:49:25 +0800 Subject: [PATCH 04/11] Update runInLocal.md --- docs/runInLocal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/runInLocal.md b/docs/runInLocal.md index 31d4d4d53..7218c5685 100644 --- a/docs/runInLocal.md +++ b/docs/runInLocal.md @@ -20,7 +20,7 @@ 任何操作系统,不管是Win还是Linux还是mac,只要已安装了`.NET 6.0` 环境,均可通过下载`net-dependent.zip`运行。 -下载解压后,进入应用目录,执行`./Ray.BiliBiliTool.Console.dll --runTasks=Login` +下载解压后,进入应用目录,执行`./Ray.BiliBiliTool.Console.exe --runTasks=Login` 会出现二维码,扫码登录后即可运行各个任务。 From 9c6ce5c0e05e4a54a0e6d3c285afac25b26fa97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=95=BF=E7=A9=BAX?= <584880422@qq.com> Date: Sat, 6 May 2023 16:50:30 +0800 Subject: [PATCH 05/11] Update runInLocal.md --- docs/runInLocal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/runInLocal.md b/docs/runInLocal.md index 7218c5685..2231a1696 100644 --- a/docs/runInLocal.md +++ b/docs/runInLocal.md @@ -20,7 +20,7 @@ 任何操作系统,不管是Win还是Linux还是mac,只要已安装了`.NET 6.0` 环境,均可通过下载`net-dependent.zip`运行。 -下载解压后,进入应用目录,执行`./Ray.BiliBiliTool.Console.exe --runTasks=Login` +下载解压后,进入应用目录,执行`.\Ray.BiliBiliTool.Console.exe --runTasks=Login` 会出现二维码,扫码登录后即可运行各个任务。 From 7f688ab2a70fca167bf966597818700ed71d4c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=95=BF=E7=A9=BAX?= <584880422@qq.com> Date: Sat, 6 May 2023 16:59:04 +0800 Subject: [PATCH 06/11] Update runInLocal.md --- docs/runInLocal.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/runInLocal.md b/docs/runInLocal.md index 2231a1696..9cf5ff66c 100644 --- a/docs/runInLocal.md +++ b/docs/runInLocal.md @@ -35,6 +35,7 @@ P.S.这里的运行环境指的是 `.NET Runtime 6.0.0` ,安装方法可详见 请下载 `win-x86-x64.zip`,此文件已自包含(self-contained)运行环境。 解压后,在应用目录打开cmd或powershell,执行`.\Ray.BiliBiliTool.Console.exe --runTasks=Login`,扫码登录。 +也可以直接双击`Ray.BiliBiliTool.Console.exe`来运行,建议使用windows自带的定时任务来执行它 ## 3. Linux: From 11234f0375cbd706bc5f84a9a2c5fbc8c235dc3c Mon Sep 17 00:00:00 2001 From: hjkl950217 <584880422@qq.com> Date: Tue, 6 Jun 2023 10:29:06 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E6=81=A2=E5=A4=8Ddonte=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/runInLocal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/runInLocal.md b/docs/runInLocal.md index 9cf5ff66c..e7d3ed0df 100644 --- a/docs/runInLocal.md +++ b/docs/runInLocal.md @@ -20,7 +20,7 @@ 任何操作系统,不管是Win还是Linux还是mac,只要已安装了`.NET 6.0` 环境,均可通过下载`net-dependent.zip`运行。 -下载解压后,进入应用目录,执行`.\Ray.BiliBiliTool.Console.exe --runTasks=Login` +下载解压后,进入应用目录,执行`dotnet ./Ray.BiliBiliTool.Console.dll --runTasks=Login` 会出现二维码,扫码登录后即可运行各个任务。 From 1c6aa9e96320f5b27a66179cf4d588a3637a4b38 Mon Sep 17 00:00:00 2001 From: hjkl950217 <584880422@qq.com> Date: Tue, 6 Jun 2023 10:45:46 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ray.BiliBiliTool.Config/Constants.cs | 2 +- .../Options/DailyTaskOptions.cs | 6 ++-- .../BiliBiliToolHostedService.cs | 30 +++++++++---------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Ray.BiliBiliTool.Config/Constants.cs b/src/Ray.BiliBiliTool.Config/Constants.cs index 1a8e19b9d..be71ea83f 100644 --- a/src/Ray.BiliBiliTool.Config/Constants.cs +++ b/src/Ray.BiliBiliTool.Config/Constants.cs @@ -57,7 +57,7 @@ public static Dictionary GetExpDic() /// public static Dictionary GetDonateCoinCanContinueStatusDic() { - Dictionary dic = new Dictionary() + Dictionary dic = new() { {"0", "成功"}, {"-400", "请求错误"}, diff --git a/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs b/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs index ca566067c..91b75b02e 100644 --- a/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs +++ b/src/Ray.BiliBiliTool.Config/Options/DailyTaskOptions.cs @@ -82,13 +82,13 @@ public List SupportUpIdList get { List re = new(); - if(string.IsNullOrWhiteSpace(SupportUpIds) | SupportUpIds == "-1") + if (string.IsNullOrWhiteSpace(SupportUpIds) | SupportUpIds == "-1") return re; string[] array = SupportUpIds.Split(','); - foreach(string item in array) + foreach (string item in array) { - if(long.TryParse(item.Trim(), out long upId)) + if (long.TryParse(item.Trim(), out long upId)) re.Add(upId); else re.Add(long.MinValue); diff --git a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs index a54c5570b..0feaf916f 100644 --- a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs +++ b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs @@ -52,7 +52,7 @@ public async Task StartAsync(CancellationToken cancellationToken) _logger.LogInformation("BiliBiliToolPro 开始运行...{newLine}", Environment.NewLine); bool pass = await PreCheckAsync(cancellationToken); - if(!pass) + if (!pass) return; await RandomSleepAsync(cancellationToken); @@ -60,13 +60,13 @@ public async Task StartAsync(CancellationToken cancellationToken) string[] tasks = await ReadTargetTasksAsync(cancellationToken); _logger.LogInformation("【目标任务】{tasks}", string.Join(",", tasks)); - if(tasks.Contains("Login")) + if (tasks.Contains("Login")) { await DoTasksAsync(tasks, cancellationToken); } else { - for(int i = 0 ; i < _cookieStrFactory.Count ; i++) + for (int i = 0 ; i < _cookieStrFactory.Count ; i++) { _cookieStrFactory.CurrentNum = i + 1; _logger.LogInformation("######### 账号 {num} #########{newLine}", _cookieStrFactory.CurrentNum, Environment.NewLine); @@ -74,7 +74,7 @@ public async Task StartAsync(CancellationToken cancellationToken) try { await DoTasksAsync(tasks, cancellationToken); - if(isNotifySingle) + if (isNotifySingle) { LogAppInfo(); @@ -82,7 +82,7 @@ public async Task StartAsync(CancellationToken cancellationToken) _logger.LogInformation("·开始推送·{task}·{user}", $"{_configuration["RunTasks"]}任务", accountName); } } - catch(Exception e) + catch (Exception e) { //ignore _logger.LogWarning("异常:{msg}", e); @@ -90,14 +90,14 @@ public async Task StartAsync(CancellationToken cancellationToken) } } } - catch(Exception ex) + catch (Exception ex) { _logger.LogError("程序异常终止,原因:{msg}", ex.Message); throw; } finally { - if(!isNotifySingle) + if (!isNotifySingle) { LogAppInfo(); _logger.LogInformation("·开始推送·{task}·{user}", $"{_configuration["RunTasks"]}任务", ""); @@ -123,7 +123,7 @@ private Task PreCheckAsync(CancellationToken cancellationToken) _logger.LogInformation("【账号个数】{count}个{newLine}", _cookieStrFactory.Count, Environment.NewLine); //是否跳过 - if(_securityOptions.IsSkipDailyTask) + if (_securityOptions.IsSkipDailyTask) { _logger.LogWarning("已配置为跳过任务{newLine}", Environment.NewLine); return Task.FromResult(false); @@ -134,10 +134,10 @@ private Task PreCheckAsync(CancellationToken cancellationToken) private async Task RandomSleepAsync(CancellationToken cancellationToken) { - if(_configuration["RunTasks"].Contains("Login") || _configuration["RunTasks"].Contains("Test")) + if (_configuration["RunTasks"].Contains("Login") || _configuration["RunTasks"].Contains("Test")) return; - if(_securityOptions.RandomSleepMaxMin > 0) + if (_securityOptions.RandomSleepMaxMin > 0) { int randomMin = new Random().Next(1, ++_securityOptions.RandomSleepMaxMin); _logger.LogInformation("随机休眠{min}分钟{newLine}", randomMin, Environment.NewLine); @@ -154,7 +154,7 @@ private Task ReadTargetTasksAsync(CancellationToken cancellationToken) { string[] tasks = _configuration["RunTasks"] .Split("&", options: StringSplitOptions.RemoveEmptyEntries); - if(tasks.Any()) + if (tasks.Any()) { return Task.FromResult(tasks); } @@ -163,11 +163,11 @@ private Task ReadTargetTasksAsync(CancellationToken cancellationToken) TaskTypeFactory.Show(_logger); _logger.LogInformation("请输入:"); - while(true) + while (true) { string index = System.Console.ReadLine(); bool suc = int.TryParse(index, out int num); - if(suc) + if (suc) { string code = TaskTypeFactory.GetCodeByIndex(num); _configuration["RunTasks"] = code; @@ -181,10 +181,10 @@ private Task ReadTargetTasksAsync(CancellationToken cancellationToken) private async Task DoTasksAsync(string[] tasks, CancellationToken cancellationToken) { using IServiceScope scope = _serviceProvider.CreateScope(); - foreach(string task in tasks) + foreach (string task in tasks) { Type type = TaskTypeFactory.Create(task); - if(type == null) + if (type == null) { _logger.LogWarning("任务不存在:{task}", task); continue; From 30b180f792439428a57226fcbe4e01873d54c844 Mon Sep 17 00:00:00 2001 From: hjkl950217 <584880422@qq.com> Date: Tue, 6 Jun 2023 10:49:27 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0if=E5=89=8D=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ray.BiliBiliTool.Console/Program.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Ray.BiliBiliTool.Console/Program.cs b/src/Ray.BiliBiliTool.Console/Program.cs index 814863613..0e3da4a4a 100644 --- a/src/Ray.BiliBiliTool.Console/Program.cs +++ b/src/Ray.BiliBiliTool.Console/Program.cs @@ -27,7 +27,7 @@ public static async Task Main(string[] args) await host.RunAsync(); return 0; } - catch(Exception ex) + catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly!"); return 1; @@ -60,7 +60,7 @@ internal static IHostBuilder CreateHostBuilder(string[] args) { hostConfigurationBuilder.AddEnvironmentVariables(prefix: "DOTNET_"); - if(args is { Length: > 0 }) + if (args is { Length: > 0 }) { hostConfigurationBuilder.AddCommandLine(args); } @@ -82,7 +82,7 @@ internal static IHostBuilder CreateHostBuilder(string[] args) ; //用户机密: - if(env.IsDevelopment() && env.ApplicationName?.Length > 0) + if (env.IsDevelopment() && env.ApplicationName?.Length > 0) { //var appAssembly = Assembly.Load(new AssemblyName(env.ApplicationName)); Assembly appAssembly = Assembly.GetAssembly(typeof(Program)); @@ -94,7 +94,7 @@ internal static IHostBuilder CreateHostBuilder(string[] args) configurationBuilder.AddExcludeEmptyEnvironmentVariables("Ray_"); //命令行: - if(args != null && args.Length > 0) + if (args != null && args.Length > 0) { configurationBuilder.AddCommandLine(args, Config.Constants.GetCommandLineMappingsDic()); } From cef433dec83899e6fc61aa8fadf4ae200e0a502e Mon Sep 17 00:00:00 2001 From: hjkl950217 <584880422@qq.com> Date: Tue, 6 Jun 2023 10:51:42 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E4=BD=BF=E7=94=A8new()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Ray.BiliBiliTool.Config/Constants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ray.BiliBiliTool.Config/Constants.cs b/src/Ray.BiliBiliTool.Config/Constants.cs index be71ea83f..f9737d223 100644 --- a/src/Ray.BiliBiliTool.Config/Constants.cs +++ b/src/Ray.BiliBiliTool.Config/Constants.cs @@ -34,7 +34,7 @@ public static class OptionsNames /// public static Dictionary GetExpDic() { - Dictionary dic = new Dictionary() + Dictionary dic = new() { {"每日登录", "5"}, {"每日观看视频", "5"}, From d48bf4bcd65cc396548aa1debf0a9fe609c864c8 Mon Sep 17 00:00:00 2001 From: hjkl950217 <584880422@qq.com> Date: Tue, 6 Jun 2023 11:01:22 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=88=86=E5=8F=B7?= =?UTF-8?q?=E5=89=8D=E7=9A=84=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EnvironmentVariablesExcludeEmptyConfigurationProvider.cs | 2 +- src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs index 3978ba5db..61dec6a96 100644 --- a/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs +++ b/src/Ray.BiliBiliTool.Config/EnvironmentVariablesExcludeEmptyConfigurationProvider.cs @@ -49,7 +49,7 @@ public override void Load() /// private string NormalizeKey(string key) { - if(_removeKeyPrefix) + if (_removeKeyPrefix) key = RemoveKeyPrefix(key); key = ReplaceKeyDelimiter(key); return key; diff --git a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs index 0feaf916f..40741ed87 100644 --- a/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs +++ b/src/Ray.BiliBiliTool.Console/BiliBiliToolHostedService.cs @@ -66,7 +66,7 @@ public async Task StartAsync(CancellationToken cancellationToken) } else { - for (int i = 0 ; i < _cookieStrFactory.Count ; i++) + for (int i = 0; i < _cookieStrFactory.Count; i++) { _cookieStrFactory.CurrentNum = i + 1; _logger.LogInformation("######### 账号 {num} #########{newLine}", _cookieStrFactory.CurrentNum, Environment.NewLine);