diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-19 00:36:30 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2025-08-18 17:03:21 +1000 |
| commit | d7bc8b58f750c1a5c629915ed2097e477d204a67 (patch) | |
| tree | c46146abd1261f28319f5973ad9182da57276347 /Pages/Gallery.razor | |
| parent | 7dcc15cb52c29cc1c0112e3af2cf985b26cd7653 (diff) | |
Added basic search engine functionality
Diffstat (limited to 'Pages/Gallery.razor')
| -rw-r--r-- | Pages/Gallery.razor | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor new file mode 100644 index 0000000..8b1954f --- /dev/null +++ b/Pages/Gallery.razor @@ -0,0 +1,61 @@ +@page "/" +@page "/Gallery" +@inject IDbContextFactory<HBContext> dbFactory +@inject ISearchService searchService + +<PageTitle>@Title</PageTitle> + +<link rel="stylesheet" href="@(nameof(HyperBooru)).styles.css"/> + +<form id="upload" action="/media" method="post" enctype="multipart/form-data"> + <input type="file" id="myFile" name="filename"/> + <input type="submit" /> +</form> + +@foreach(var media in Media) { + <a href="/ViewMedia?m=@(media.Guid)"> + <img src="/media/thumb/@(media.Guid)?h=200" /> + </a> +} + +@code { + [Parameter] + [SupplyParameterFromQuery(Name = "q")] + public string? Query { get; set; } + + [Parameter] + [SupplyParameterFromQuery] + public bool? Ingest { get; set; } + + private string Title { + get { + if(Query is null) + return Ingest ? "Ingest Feed" : "Gallery"; + else + return "Search Results"; + } + } + + private Media[] Media; + + protected override void OnParametersSet() => LoadMedia(); + + private void LoadMedia() { + using var db = dbFactory.CreateDbContext(); + + if(Ingest is not null && Ingest == true) { + Media = db.Media + .OrderByDescending(m => m.ObjectId) + .ToArray() + .Where(m => m.IsIngest) + .ToArray(); + } else { + if(Query is null) + Media = db.Media + .OrderByDescending(m => m.ObjectId) + .ToArray(); + else + Media = searchService.Search(Query); + } + } +} |
