mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 03:39:26 +00:00
Add translation controls
This commit is contained in:
@@ -5,6 +5,7 @@ import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.PrePersist;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.PreUpdate;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Locale;
|
||||
@@ -19,6 +20,9 @@ public class Asset {
|
||||
@Column(nullable = false)
|
||||
private String broadcaster;
|
||||
|
||||
@Column(nullable = false)
|
||||
private String name;
|
||||
|
||||
@Column(columnDefinition = "TEXT")
|
||||
private String url;
|
||||
private double x;
|
||||
@@ -32,9 +36,10 @@ public class Asset {
|
||||
public Asset() {
|
||||
}
|
||||
|
||||
public Asset(String broadcaster, String url, double width, double height) {
|
||||
public Asset(String broadcaster, String name, String url, double width, double height) {
|
||||
this.id = UUID.randomUUID().toString();
|
||||
this.broadcaster = normalize(broadcaster);
|
||||
this.name = name;
|
||||
this.url = url;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
@@ -46,6 +51,7 @@ public class Asset {
|
||||
}
|
||||
|
||||
@PrePersist
|
||||
@PreUpdate
|
||||
public void prepare() {
|
||||
if (this.id == null) {
|
||||
this.id = UUID.randomUUID().toString();
|
||||
@@ -54,6 +60,9 @@ public class Asset {
|
||||
this.createdAt = Instant.now();
|
||||
}
|
||||
this.broadcaster = normalize(broadcaster);
|
||||
if (this.name == null || this.name.isBlank()) {
|
||||
this.name = this.id;
|
||||
}
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
@@ -68,6 +77,14 @@ public class Asset {
|
||||
this.broadcaster = normalize(broadcaster);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
@@ -75,9 +75,13 @@ public class ChannelDirectoryService {
|
||||
if (image == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
String name = Optional.ofNullable(file.getOriginalFilename())
|
||||
.map(filename -> filename.replaceAll("^.*[/\\\\]", ""))
|
||||
.filter(s -> !s.isBlank())
|
||||
.orElse("Asset " + System.currentTimeMillis());
|
||||
String contentType = Optional.ofNullable(file.getContentType()).orElse("application/octet-stream");
|
||||
String dataUrl = "data:" + contentType + ";base64," + Base64.getEncoder().encodeToString(bytes);
|
||||
Asset asset = new Asset(channel.getBroadcaster(), dataUrl, image.getWidth(), image.getHeight());
|
||||
Asset asset = new Asset(channel.getBroadcaster(), name, dataUrl, image.getWidth(), image.getHeight());
|
||||
assetRepository.save(asset);
|
||||
messagingTemplate.convertAndSend(topicFor(broadcaster), AssetEvent.created(broadcaster, asset));
|
||||
return Optional.of(asset);
|
||||
|
||||
Reference in New Issue
Block a user