wip: Begin working on CF page

gui
Robert Dailey 2 years ago
parent bd88e162ee
commit 5744ca3bba

@ -8,6 +8,13 @@ namespace Recyclarr.Gui;
public static class CompositionRoot
{
public static IContainer Setup()
{
var builder = new ContainerBuilder();
Setup(builder);
return builder.Build();
}
public static void Setup(ContainerBuilder builder)
{
builder.RegisterLogger();

@ -0,0 +1,5 @@
namespace Recyclarr.Gui.Shared;
public partial class MainLayout
{
}

@ -0,0 +1,21 @@
using ReactiveUI;
using TrashLib.Radarr.CustomFormat.Models;
namespace Recyclarr.Gui.ViewModels;
public class CustomFormatGroupViewModel : ReactiveObject
{
public string GroupName { get; set; }
public ICollection<CustomFormatGroupItem> CustomFormats { get; set; }
public CustomFormatGroupViewModel()
{
}
}
public class CustomFormatViewModel : ReactiveObject
{
public CustomFormatViewModel()
{
}
}

@ -5,6 +5,7 @@ using FluentAssertions;
using NUnit.Framework;
using TestLibrary.AutoFixture;
using TrashLib.Radarr.CustomFormat.Guide;
using TrashLib.Radarr.CustomFormat.Models;
using TrashLib.Startup;
namespace TrashLib.Tests.Radarr.CustomFormat.Guide;

@ -2,13 +2,12 @@ using System.Collections.ObjectModel;
using System.IO.Abstractions;
using System.Text.RegularExpressions;
using Common.Extensions;
using TrashLib.Radarr.CustomFormat.Models;
using TrashLib.Startup;
namespace TrashLib.Radarr.CustomFormat.Guide;
public record CustomFormatGroupItem(string Name, string Anchor);
public class CustomFormatGroupParser
public class CustomFormatGroupParser : ICustomFormatGroupParser
{
private readonly IAppPaths _paths;
private static readonly Regex TableRegex = new(@"^\s*\|(.*)\|\s*$");

@ -0,0 +1,9 @@
using System.Collections.ObjectModel;
using TrashLib.Radarr.CustomFormat.Models;
namespace TrashLib.Radarr.CustomFormat.Guide;
public interface ICustomFormatGroupParser
{
IDictionary<string, ReadOnlyCollection<CustomFormatGroupItem>> Parse();
}

@ -0,0 +1,3 @@
namespace TrashLib.Radarr.CustomFormat.Models;
public record CustomFormatGroupItem(string Name, string Anchor);

@ -0,0 +1,34 @@
using Common.Extensions;
using TrashLib.Radarr.CustomFormat.Guide;
using TrashLib.Radarr.CustomFormat.Models;
namespace TrashLib.Radarr.CustomFormat.Processors;
public class CustomFormatLookup
{
private readonly ICustomFormatGroupParser _parser;
private readonly IRadarrGuideService _guide;
public CustomFormatLookup(ICustomFormatGroupParser parser, IRadarrGuideService guide)
{
_parser = parser;
_guide = guide;
}
private static CustomFormatData? MatchDataWithCellEntry(ICollection<CustomFormatData> guideCfs,
CustomFormatGroupItem groupItem)
{
return guideCfs.FirstOrDefault(x => x.FileName.EqualsIgnoreCase(groupItem.Anchor)) ??
guideCfs.FirstOrDefault(x => x.Name.EqualsIgnoreCase(groupItem.Name));
}
public Dictionary<string, List<CustomFormatData>> MapAllCustomFormats()
{
var guideCfs = _guide.GetCustomFormatData();
var groups = _parser.Parse();
return groups.ToDictionary(
x => x.Key,
x => x.Value.Select(y => MatchDataWithCellEntry(guideCfs, y)).NotNull().ToList());
}
}
Loading…
Cancel
Save