Add media url to MediaModel+Start work on tonenized search query model
Some checks failed
Build and Push Image / build-and-push (push) Has been cancelled
Some checks failed
Build and Push Image / build-and-push (push) Has been cancelled
This commit is contained in:
@@ -14,8 +14,13 @@ pub fn MediaItem(props: MediaItemProps) -> Element {
|
|||||||
let filename = item.file_name;
|
let filename = item.file_name;
|
||||||
let id = item.id.unwrap().value;
|
let id = item.id.unwrap().value;
|
||||||
let thumb = item.thumb_url;
|
let thumb = item.thumb_url;
|
||||||
|
let url = item.media_url;
|
||||||
return rsx! {
|
return rsx! {
|
||||||
a { class: "mediaItem", href: "{HOST}/m/{id}", target: "_blank",
|
a {
|
||||||
|
class: "mediaItem",
|
||||||
|
href: "{HOST}/{url}",
|
||||||
|
target: "_blank",
|
||||||
|
"data-id" : id,
|
||||||
img { src: "{HOST}{thumb}" }
|
img { src: "{HOST}{thumb}" }
|
||||||
span { class: "info",
|
span { class: "info",
|
||||||
span { class: "name", "{filename}" }
|
span { class: "name", "{filename}" }
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using MongoDB.Bson;
|
using MongoDB.Bson;
|
||||||
using MongoDB.Bson.Serialization.Attributes;
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
|
||||||
namespace AobaCore.Models;
|
namespace AobaCore.Models;
|
||||||
|
|
||||||
[BsonIgnoreExtraElements]
|
[BsonIgnoreExtraElements]
|
||||||
@@ -16,6 +18,7 @@ public class Media
|
|||||||
public ObjectId Owner { get; set; }
|
public ObjectId Owner { get; set; }
|
||||||
public DateTime UploadDate { get; set; }
|
public DateTime UploadDate { get; set; }
|
||||||
public string[] Tags { get; set; } = [];
|
public string[] Tags { get; set; } = [];
|
||||||
|
public Size? Dimensions { get; set; }
|
||||||
public Dictionary<ThumbnailSize, ObjectId> Thumbnails { get; set; } = [];
|
public Dictionary<ThumbnailSize, ObjectId> Thumbnails { get; set; } = [];
|
||||||
|
|
||||||
|
|
||||||
@@ -82,7 +85,7 @@ public class Media
|
|||||||
{
|
{
|
||||||
return this switch
|
return this switch
|
||||||
{
|
{
|
||||||
//Media { MediaType: MediaType.Raw or MediaType.Text or MediaType.Code} => $"/i/dl/{MediaId}/{Filename}",
|
Media { MediaType: MediaType.Raw or MediaType.Text or MediaType.Code } => $"/m/{MediaId}/{Uri.EscapeDataString(Filename)}",
|
||||||
_ => $"/m/{MediaId}"
|
_ => $"/m/{MediaId}"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ namespace AobaServer.Controllers;
|
|||||||
public class MediaController(AobaService aobaService, ILogger<MediaController> logger) : Controller
|
public class MediaController(AobaService aobaService, ILogger<MediaController> logger) : Controller
|
||||||
{
|
{
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
|
[HttpGet("{id}/*")]
|
||||||
[ResponseCache(Duration = int.MaxValue)]
|
[ResponseCache(Duration = int.MaxValue)]
|
||||||
public async Task<IActionResult> MediaAsync(ObjectId id, [FromServices] MongoClient client, CancellationToken cancellationToken)
|
public async Task<IActionResult> MediaAsync(ObjectId id, [FromServices] MongoClient client, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
@@ -58,6 +59,7 @@ public class MediaController(AobaService aobaService, ILogger<MediaController> l
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("/t/{id}")]
|
[HttpGet("/t/{id}")]
|
||||||
|
[ResponseCache(Duration = int.MaxValue)]
|
||||||
public async Task<IActionResult> ThumbAsync(ObjectId id, [FromServices] ThumbnailService thumbnailService, CancellationToken cancellationToken = default)
|
public async Task<IActionResult> ThumbAsync(ObjectId id, [FromServices] ThumbnailService thumbnailService, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
var thumb = await thumbnailService.GetThumbnailByFileIdAsync(id, cancellationToken);
|
var thumb = await thumbnailService.GetThumbnailByFileIdAsync(id, cancellationToken);
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ message MediaModel {
|
|||||||
int32 viewCount = 5;
|
int32 viewCount = 5;
|
||||||
Id owner = 6;
|
Id owner = 6;
|
||||||
string thumbUrl = 7;
|
string thumbUrl = 7;
|
||||||
|
string mediaUrl = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum MediaType {
|
enum MediaType {
|
||||||
@@ -99,3 +100,14 @@ message ShareXResponse {
|
|||||||
string error = 2;
|
string error = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message SearchQuery {
|
||||||
|
optional string queryText = 1;
|
||||||
|
repeated Filter filters = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Filter {
|
||||||
|
string key = 1;
|
||||||
|
repeated string values = 2;
|
||||||
|
}
|
||||||
@@ -56,6 +56,7 @@ public static class ProtoExtensions
|
|||||||
Owner = media.Owner.ToId(),
|
Owner = media.Owner.ToId(),
|
||||||
ViewCount = media.ViewCount,
|
ViewCount = media.ViewCount,
|
||||||
ThumbUrl = thumbUrl,
|
ThumbUrl = thumbUrl,
|
||||||
|
MediaUrl = media.GetMediaUrl()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user