This commit is contained in:
2023-08-09 09:44:20 +02:00
parent 1617c7624b
commit 7d46bb6de2
3 changed files with 5 additions and 4 deletions

View File

@@ -179,7 +179,7 @@ pub async fn create_archive_task(key: String, data: CreateTask) {
return; return;
} }
let final_filename = match get_filename(data.object_type, data.object_id).await { let final_filename = match get_filename(data.object_type, data.object_id, data.file_format.clone()).await {
Ok(v) => v, Ok(v) => v,
Err(err) => { Err(err) => {
set_task_error(key.clone(), "Can't get archive name!".to_string()).await; set_task_error(key.clone(), "Can't get archive name!".to_string()).await;

View File

@@ -4,6 +4,7 @@ use tempfile::SpooledTempFile;
use bytes::{Buf, Bytes}; use bytes::{Buf, Bytes};
use async_stream::stream; use async_stream::stream;
use translit::{gost779b_ru, Transliterator, CharsMapping}; use translit::{gost779b_ru, Transliterator, CharsMapping};
use smartstring::alias::String as SmartString;
use std::io::{Seek, SeekFrom, Write, Read}; use std::io::{Seek, SeekFrom, Write, Read};
@@ -73,7 +74,7 @@ pub fn get_stream(mut temp_file: Box<dyn Read + Send>) -> impl futures_core::Str
} }
pub async fn get_filename(object_type: ObjectType, object_id: u32) -> Result<String, Box<dyn std::error::Error + Send + Sync>> { pub async fn get_filename(object_type: ObjectType, object_id: u32, file_format: SmartString) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
let result_filename = match object_type { let result_filename = match object_type {
ObjectType::Sequence => { ObjectType::Sequence => {
match get_sequence(object_id).await { match get_sequence(object_id).await {
@@ -128,7 +129,7 @@ pub async fn get_filename(object_type: ObjectType, object_id: u32) -> Result<Str
let normal_filename = normal_filename.replace(|c: char| !c.is_ascii(), ""); let normal_filename = normal_filename.replace(|c: char| !c.is_ascii(), "");
let right_part = ".zip".to_string(); let right_part = format!(".{file_format}.zip");
let normal_filename_slice = std::cmp::min(64 - right_part.len() - 1, normal_filename.len() - 1); let normal_filename_slice = std::cmp::min(64 - right_part.len() - 1, normal_filename.len() - 1);
let left_part = if normal_filename_slice == normal_filename.len() - 1 { let left_part = if normal_filename_slice == normal_filename.len() - 1 {

View File

@@ -12,7 +12,7 @@ pub enum TaskStatus {
Failled Failled
} }
#[derive(Serialize, Deserialize, Clone)] #[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")] #[serde(rename_all = "snake_case")]
pub enum ObjectType { pub enum ObjectType {
Sequence, Sequence,