using System.Text.RegularExpressions; namespace HyperBooru.Client.Services; public interface ISourceService { public string? GetUrlFromFilename(string filename); } public class SourceService : ISourceService { private Regex PixivRegex = new(@"^([0-9]+)_p[0-9]+(_master1200)?\.[^.]+$", RegexOptions.Compiled); public string? GetUrlFromFilename(string filename) { var pixivMatch = PixivRegex.Match(filename); if(pixivMatch.Success) return $"https://pixiv.net/en/artworks/{pixivMatch.Groups[1].Value}"; return null; } }