This commit is contained in:
2023-08-09 02:47:52 +02:00
parent 7f3fb20cb8
commit 041ff80313
2 changed files with 11 additions and 2 deletions

View File

@@ -83,6 +83,7 @@ pub async fn cache_file(
pub async fn download_from_cache(
cached_data: cached_file::Data,
db: Database
) -> Option<DownloadResult> {
let response_task = tokio::task::spawn(download_from_telegram_files(cached_data.message_id, cached_data.chat_id));
let filename_task = tokio::task::spawn(get_filename(cached_data.object_id, cached_data.object_type.clone()));
@@ -91,6 +92,14 @@ pub async fn download_from_cache(
let response = match response_task.await.unwrap() {
Ok(v) => v,
Err(err) => {
db.cached_file()
.delete(cached_file::object_id_object_type(cached_data.object_id, cached_data.object_type.clone()))
.exec()
.await
.unwrap();
tokio::spawn(cache_file(cached_data.object_id, cached_data.object_type, db));
log::error!("{:?}", err);
return None;
},

View File

@@ -27,12 +27,12 @@ async fn download_cached_file(
Path((object_id, object_type)): Path<(i32, String)>,
Extension(Ext { db }): Extension<Ext>
) -> impl IntoResponse {
let cached_file = match get_cached_file_or_cache(object_id, object_type, db).await {
let cached_file = match get_cached_file_or_cache(object_id, object_type, db.clone()).await {
Some(cached_file) => cached_file,
None => return StatusCode::NO_CONTENT.into_response(),
};
let data = match download_from_cache(cached_file).await {
let data = match download_from_cache(cached_file, db).await {
Some(v) => v,
None => {
return StatusCode::NO_CONTENT.into_response();