summaryrefslogtreecommitdiff
path: root/Services/SourceService.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2026-03-17 03:04:36 +1100
committerJake Mannens <jake@asger.xyz>2026-06-15 10:45:35 +1000
commitdd818d5ce5bf1254efd2d91b8b594d6773b21c96 (patch)
treec04e9601a15cff5f1fe9980e8f2ff41bae351635 /Services/SourceService.cs
Initial commit
Diffstat (limited to 'Services/SourceService.cs')
-rw-r--r--Services/SourceService.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/Services/SourceService.cs b/Services/SourceService.cs
new file mode 100644
index 0000000..d145346
--- /dev/null
+++ b/Services/SourceService.cs
@@ -0,0 +1,20 @@
+using System.Text.RegularExpressions;
+
+namespace HyperBooru.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;
+ }
+}