Skip to content

Commit fdd745e

Browse files
committed
Replaced --verbose logging option with --log-level option, file logging is now logging at the same level as console logs, file logging is now controlled via --log-save option, replaced CookieContainer with CookieCollection, downgraded PuppeteerSharp back to 6.2.0, updated UniversalDownloaderPlatform (HttpCookieClient)
1 parent bc1a85b commit fdd745e

File tree

10 files changed

+45
-18
lines changed

10 files changed

+45
-18
lines changed
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace PatreonDownloader.App.Enums
8+
{
9+
internal enum LogLevel
10+
{
11+
Default,
12+
Debug,
13+
Trace
14+
}
15+
}

PatreonDownloader.App/Models/CommandLineOptions.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using CommandLine;
2+
using PatreonDownloader.App.Enums;
23
using UniversalDownloaderPlatform.Common.Enums;
34

45
namespace PatreonDownloader.App.Models
@@ -20,8 +21,8 @@ class CommandLineOptions
2021
[Option("download-directory", Required = false, HelpText = "Directory to save all downloaded files in, default: #AppDirectory#/downloads/#CreatorName#.")]
2122
public string DownloadDirectory { get; set; }
2223

23-
[Option("verbose", Required = false, HelpText = "Enable verbose (debug) logging", Default = false)]
24-
public bool Verbose { get; set; }
24+
[Option("log-level", Required = false, HelpText = "Logging level. Possible options: Default, Debug, Trace. Affects both console and file logging.", Default = LogLevel.Default)]
25+
public LogLevel LogLevel { get; set; }
2526

2627
[Option("overwrite-files", Required = false, HelpText = "Overwrite already existing files (recommended if creator might have files multiple files with the same filename or makes changes to already existing posts)", Default = false)]
2728
public bool OverwriteFiles { get; set; }

PatreonDownloader.App/NlogManager.cs

+15-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace PatreonDownloader.App
99
{
1010
internal static class NLogManager
1111
{
12-
public static void ReconfigureNLog(bool debug = false)
12+
public static void ReconfigureNLog(Enums.LogLevel logLevel = Enums.LogLevel.Default)
1313
{
1414
LoggingConfiguration configuration = new LoggingConfiguration();
1515
ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget("console")
@@ -25,9 +25,21 @@ public static void ReconfigureNLog(bool debug = false)
2525
};
2626
configuration.AddTarget(fileTarget);
2727

28-
configuration.AddRule(debug ? LogLevel.Debug : LogLevel.Info, LogLevel.Fatal, consoleTarget, debug ? "*" : "PatreonDownloader.App.*");
28+
LogLevel nlogLogLevel = LogLevel.Info;
29+
switch (logLevel)
30+
{
31+
case Enums.LogLevel.Debug:
32+
nlogLogLevel = LogLevel.Debug;
33+
break;
34+
case Enums.LogLevel.Trace:
35+
nlogLogLevel = LogLevel.Trace;
36+
break;
37+
}
38+
39+
configuration.AddRule(nlogLogLevel, LogLevel.Fatal, consoleTarget, nlogLogLevel != LogLevel.Info ? "*" : "PatreonDownloader.App.*");
40+
configuration.AddRule(nlogLogLevel, LogLevel.Fatal, fileTarget, nlogLogLevel != LogLevel.Info ? "*" : "PatreonDownloader.App.*");
2941
//configuration.AddRule(debug ? LogLevel.Debug : LogLevel.Info, LogLevel.Fatal, consoleTarget, debug ? "*" : "PatreonDownloader.PuppeteerEngine.*");
30-
configuration.AddRuleForAllLevels(fileTarget);
42+
//configuration.AddRuleForAllLevels(fileTarget);
3143

3244
LogManager.Configuration = configuration;
3345
}

PatreonDownloader.App/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static async Task Main(string[] args)
5757
CommandLineOptions commandLineOptions = null;
5858
parserResult.WithParsed(options =>
5959
{
60-
NLogManager.ReconfigureNLog(options.Verbose);
60+
NLogManager.ReconfigureNLog(options.LogLevel);
6161
commandLineOptions = options;
6262
});
6363

PatreonDownloader.Common/Interfaces/ICaptchaSolver.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ namespace PatreonDownloader.Common.Interfaces
99
{
1010
public interface ICaptchaSolver
1111
{
12-
Task<CookieContainer> SolveCaptcha(string url);
12+
Task<CookieCollection> SolveCaptcha(string url);
1313
}
1414
}

PatreonDownloader.Implementation/PatreonWebDownloader.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,14 @@ private async Task<bool> SolveCaptchaAndUpdateCookies(string url)
8888
_logger.Warn("Captcha has been triggered, the browser window will be opened now. Please solve the captcha there.");
8989

9090
PuppeteerCaptchaSolver captchaSolver = new PuppeteerCaptchaSolver(_proxyServerAddress);
91-
CookieContainer cookies = await captchaSolver.SolveCaptcha(url);
91+
CookieCollection cookieCollection = await captchaSolver.SolveCaptcha(url);
9292
captchaSolver.Dispose();
9393
captchaSolver = null;
9494

95-
if (cookies == null)
95+
if (cookieCollection == null)
9696
return false;
9797

98-
UpdateCookies(cookies);
98+
UpdateCookies(cookieCollection);
9999

100100
return true;
101101
}

PatreonDownloader.PuppeteerEngine/PatreonDownloader.PuppeteerEngine.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageReference Include="Ninject" Version="3.3.6" />
1010
<PackageReference Include="ninject.extensions.conventions" Version="3.3.0" />
1111
<PackageReference Include="NLog" Version="5.0.0" />
12-
<PackageReference Include="PuppeteerSharp" Version="7.0.0" />
12+
<PackageReference Include="PuppeteerSharp" Version="6.2.0" />
1313
</ItemGroup>
1414

1515
<ItemGroup>

PatreonDownloader.PuppeteerEngine/PuppeteerCaptchaSolver.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,11 @@ private async Task<IWebBrowser> RestartBrowser(bool headless)
3636
return await _puppeteerEngine.GetBrowser();
3737
}
3838

39-
public async Task<CookieContainer> SolveCaptcha(string url)
39+
public async Task<CookieCollection> SolveCaptcha(string url)
4040
{
4141
try
4242
{
43-
CookieContainer cookieContainer = new CookieContainer();
44-
43+
CookieCollection cookieCollection = new CookieCollection();
4544

4645
_logger.Debug("Calling captcha check");
4746
try
@@ -69,7 +68,7 @@ public async Task<CookieContainer> SolveCaptcha(string url)
6968
{
7069
_logger.Debug($"Adding cookie: {browserCookie.Name}");
7170
Cookie cookie = new Cookie(browserCookie.Name, browserCookie.Value, browserCookie.Path, browserCookie.Domain);
72-
cookieContainer.Add(cookie);
71+
cookieCollection.Add(cookie);
7372
}
7473
}
7574
else
@@ -80,7 +79,7 @@ public async Task<CookieContainer> SolveCaptcha(string url)
8079

8180
await page.CloseAsync();
8281

83-
return cookieContainer;
82+
return cookieCollection;
8483
}
8584
catch (TimeoutException ex)
8685
{

PatreonDownloader.PuppeteerEngine/PuppeteerEngine.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ private async Task<IWebBrowser> StartLocalBrowser()
134134
_logger.Debug("Launching browser");
135135

136136
List<string> browserArguments = new List<string>();
137-
browserArguments.Add("--user-agent=\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4889.0 Safari/537.36\"");
137+
browserArguments.Add("--user-agent=\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.0 Safari/537.36\"");
138138

139139
if(!string.IsNullOrWhiteSpace(_proxyServerAddress))
140140
browserArguments.Add($"--proxy-server=\"{_proxyServerAddress}\"");

0 commit comments

Comments
 (0)