< Summary

Information
Class: Anichron.Worker.Infrastructure.HostApplicationBuilderExtensions
Assembly: Anichron.Worker
File(s): /home/runner/work/anichron/anichron/src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs
Tag: 228_36821334185
Line coverage
0%
Covered lines: 0
Uncovered lines: 22
Coverable lines: 22
Total lines: 35
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddAppConfiguration(...)100%210%

File(s)

/home/runner/work/anichron/anichron/src/Anichron.Worker/Infrastructure/HostApplicationBuilderExtensions.cs

#LineLine coverage
 1using Anichron.Infrastructure.Configuration;
 2using System.IO.Abstractions;
 3
 4namespace Anichron.Worker.Infrastructure;
 5
 6public static class HostApplicationBuilderExtensions
 7{
 8    extension(HostApplicationBuilder builder)
 9    {
 10        public HostApplicationBuilder AddAppConfiguration()
 011        {
 012            var iniPath = Path.Combine(builder.Environment.ContentRootPath, "configuration", "app.ini");
 013            new AppIniInitializer(new FileSystem()).EnsureUpToDate(iniPath,
 014            [
 015                new IniEntry("Worker", "User", () => string.Empty),
 016                new IniEntry("Worker", "RootPath", () => "/data/originals"),
 017                new IniEntry("Worker", "CrawlIntervalHours", () => "4"),
 018                new IniEntry("Worker", "MaxConcurrentFiles", () => "4"),
 019                new IniEntry("Worker", "TokenCleanupIntervalHours", () => "24"),
 020                new IniEntry("Worker", "ProxyPath", () => "/data/proxies"),
 021                new IniEntry("Worker", "ThumbnailMaxWidth", () => "300"),
 022                new IniEntry("Worker", "ThumbnailJpegQuality", () => "75"),
 023                new IniEntry("Worker", "PreviewMaxWidth", () => "1920"),
 024                new IniEntry("Worker", "PreviewJpegQuality", () => "85"),
 025                new IniEntry("Worker", "BlurhashSampleWidth", () => "64"),
 026                new IniEntry("Worker", "FfmpegPath",          () => "ffmpeg"),
 027                new IniEntry("Worker", "VideoMaxHeight",      () => "720"),
 028                new IniEntry("Worker", "VideoBitrateKbps",    () => "2000"),
 029            ]);
 030            builder.Configuration.AddIniFile(iniPath, optional: false, reloadOnChange: false);
 031            builder.Configuration.AddEnvironmentVariables();
 032            return builder;
 33        }
 34    }
 35}