forked from jmug/stoatchat
Compare commits
3
Commits
20241002-3
...
20241002-6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
520fb02fb6 | ||
|
|
2cb12a3d59 | ||
|
|
18888eae5f |
No files matched your search
@@ -124,13 +124,24 @@ pub fn image_size(f: &NamedTempFile) -> Option<(usize, usize)> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Determine size of image with buffer
|
/// Determine size of image with buffer
|
||||||
pub fn image_size_vec(v: &[u8]) -> Option<(usize, usize)> {
|
pub fn image_size_vec(v: &[u8], mime: &str) -> Option<(usize, usize)> {
|
||||||
if let Ok(size) = imagesize::blob_size(v)
|
match mime {
|
||||||
.inspect_err(|err| tracing::error!("Failed to generate image size! {err:?}"))
|
"image/svg+xml" => {
|
||||||
{
|
let tree =
|
||||||
Some((size.width, size.height))
|
report_internal_error!(usvg::Tree::from_data(v, &Default::default())).ok()?;
|
||||||
} else {
|
|
||||||
None
|
let size = tree.size();
|
||||||
|
Some((size.width() as usize, size.height() as usize))
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
if let Ok(size) = imagesize::blob_size(v)
|
||||||
|
.inspect_err(|err| tracing::error!("Failed to generate image size! {err:?}"))
|
||||||
|
{
|
||||||
|
Some((size.width, size.height))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +189,7 @@ pub fn decode_image<R: Read + BufRead + Seek>(reader: &mut R, mime: &str) -> Res
|
|||||||
jxl_image.height(),
|
jxl_image.height(),
|
||||||
frame.image().buf().to_vec(),
|
frame.image().buf().to_vec(),
|
||||||
)
|
)
|
||||||
.ok_or_else(|| create_error!(LabeImageProcessingFailedlMe))?,
|
.ok_or_else(|| create_error!(ImageProcessingFailed))?,
|
||||||
)
|
)
|
||||||
.to_rgba8(),
|
.to_rgba8(),
|
||||||
)),
|
)),
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ impl Request {
|
|||||||
let Request { response, mime } = Request::new(url).await?;
|
let Request { response, mime } = Request::new(url).await?;
|
||||||
|
|
||||||
if matches!(mime.type_(), mime::IMAGE | mime::VIDEO) {
|
if matches!(mime.type_(), mime::IMAGE | mime::VIDEO) {
|
||||||
let bytes = report_internal_error!(response.bytes().await)?;
|
let bytes = report_internal_error!(response.bytes().await);
|
||||||
|
|
||||||
let result = match bytes {
|
let result = match bytes {
|
||||||
Ok(bytes) => {
|
Ok(bytes) => {
|
||||||
@@ -122,20 +122,21 @@ impl Request {
|
|||||||
_ => Ok(None),
|
_ => Ok(None),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let response = if let Some(Request { response, .. }) = request {
|
let request = if let Some(request) = request {
|
||||||
response
|
request
|
||||||
} else {
|
} else {
|
||||||
let Request { response, mime } = Request::new(url).await?;
|
let request = Request::new(url).await?;
|
||||||
if matches!(mime.type_(), mime::IMAGE) {
|
if matches!(request.mime.type_(), mime::IMAGE) {
|
||||||
response
|
request
|
||||||
} else {
|
} else {
|
||||||
return Err(create_error!(FileTypeNotAllowed));
|
return Err(create_error!(FileTypeNotAllowed));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some((width, height)) =
|
if let Some((width, height)) = image_size_vec(
|
||||||
image_size_vec(&report_internal_error!(response.bytes().await)?)
|
&report_internal_error!(request.response.bytes().await)?,
|
||||||
{
|
request.mime.as_ref(),
|
||||||
|
) {
|
||||||
Ok(Some(Image {
|
Ok(Some(Image {
|
||||||
url: url.to_owned(),
|
url: url.to_owned(),
|
||||||
width,
|
width,
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ docker build -t ghcr.io/revoltchat/base:latest -f Dockerfile.useCurrentArch .
|
|||||||
docker build -t ghcr.io/revoltchat/server:$TAG - < crates/delta/Dockerfile
|
docker build -t ghcr.io/revoltchat/server:$TAG - < crates/delta/Dockerfile
|
||||||
docker build -t ghcr.io/revoltchat/bonfire:$TAG - < crates/bonfire/Dockerfile
|
docker build -t ghcr.io/revoltchat/bonfire:$TAG - < crates/bonfire/Dockerfile
|
||||||
docker build -t ghcr.io/revoltchat/autumn:$TAG - < crates/services/autumn/Dockerfile
|
docker build -t ghcr.io/revoltchat/autumn:$TAG - < crates/services/autumn/Dockerfile
|
||||||
|
docker build -t ghcr.io/revoltchat/january:$TAG - < crates/services/january/Dockerfile
|
||||||
|
|
||||||
if [ "$DEBUG" = "true" ]; then
|
if [ "$DEBUG" = "true" ]; then
|
||||||
git restore Cargo.toml
|
git restore Cargo.toml
|
||||||
@@ -32,3 +33,4 @@ fi
|
|||||||
docker push ghcr.io/revoltchat/server:$TAG
|
docker push ghcr.io/revoltchat/server:$TAG
|
||||||
docker push ghcr.io/revoltchat/bonfire:$TAG
|
docker push ghcr.io/revoltchat/bonfire:$TAG
|
||||||
docker push ghcr.io/revoltchat/autumn:$TAG
|
docker push ghcr.io/revoltchat/autumn:$TAG
|
||||||
|
docker push ghcr.io/revoltchat/january:$TAG
|
||||||
Reference in new issue
Block a user