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-07 12:32:37 +1000
commitc51ff4e755f009ca0bc8e935a92c04e583c4ee8a (patch)
tree0a9a311c5404a96495df1047e613dc3aea3d0f15 /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;
+ }
+}