refactor: Quality Definition parsers use files from local clone

pull/92/head
Robert Dailey 2 years ago
parent 0d71e341d5
commit 20b6921b0f

@ -1,21 +1,33 @@
using System.IO.Abstractions;
using System.Text.RegularExpressions;
using Common.Extensions;
using Flurl.Http;
namespace TrashLib.Radarr.QualityDefinition;
internal class RadarrQualityDefinitionGuideParser : IRadarrQualityDefinitionGuideParser
{
private readonly IFileSystem _fs;
private readonly IAppPaths _paths;
private readonly Regex _regexHeader = new(@"^#+", RegexOptions.Compiled);
private readonly Regex _regexTableRow =
new(@"\| *(.*?) *\| *([\d.]+) *\| *([\d.]+) *\|", RegexOptions.Compiled);
public RadarrQualityDefinitionGuideParser(IFileSystem fs, IAppPaths paths)
{
_fs = fs;
_paths = paths;
}
public async Task<string> GetMarkdownData()
{
return await
"https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Radarr/Radarr-Quality-Settings-File-Size.md"
.GetStringAsync();
var repoDir = _fs.DirectoryInfo.FromDirectoryName(_paths.RepoDirectory);
var file = repoDir
.SubDirectory("docs")
.SubDirectory("Radarr")
.File("Radarr-Quality-Settings-File-Size.md").OpenText();
return await file.ReadToEndAsync();
}
public IDictionary<RadarrQualityDefinitionType, List<RadarrQualityData>> ParseMarkdown(string markdown)

@ -1,6 +1,6 @@
using System.IO.Abstractions;
using System.Text.RegularExpressions;
using Common.Extensions;
using Flurl.Http;
namespace TrashLib.Sonarr.QualityDefinition;
@ -11,11 +11,24 @@ internal class SonarrQualityDefinitionGuideParser : ISonarrQualityDefinitionGuid
private readonly Regex _regexTableRow =
new(@"\| *(.*?) *\| *([\d.]+) *\| *([\d.]+) *\|", RegexOptions.Compiled);
private readonly IFileSystem _fs;
private readonly IAppPaths _paths;
public SonarrQualityDefinitionGuideParser(IFileSystem fs, IAppPaths paths)
{
_fs = fs;
_paths = paths;
}
public async Task<string> GetMarkdownData()
{
return await
"https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Sonarr/Sonarr-Quality-Settings-File-Size.md"
.GetStringAsync();
var repoDir = _fs.DirectoryInfo.FromDirectoryName(_paths.RepoDirectory);
var file = repoDir
.SubDirectory("docs")
.SubDirectory("Sonarr")
.File("Sonarr-Quality-Settings-File-Size.md").OpenText();
return await file.ReadToEndAsync();
}
public IDictionary<SonarrQualityDefinitionType, List<SonarrQualityData>> ParseMarkdown(string markdown)

@ -14,6 +14,7 @@
<PackageReference Include="System.Data.HashFunction.FNV" />
<PackageReference Include="System.IO.Abstractions" />
<PackageReference Include="System.Reactive" />
<PackageReference Include="TestableIO.System.IO.Abstractions.Extensions" />
</ItemGroup>
<ItemGroup>

Loading…
Cancel
Save