@@ -30,7 +30,11 @@ use crate::{
30
30
general_settings:: { GeneralSettingsStore , PostDeletionBehaviour , PostStudioRecordingBehaviour } ,
31
31
open_external_link,
32
32
presets:: PresetsStore ,
33
- upload:: { InstantMultipartUpload , build_video_meta, create_or_get_video, upload_video} ,
33
+ upload:: {
34
+ InstantMultipartUpload , PresignedS3PutRequest , PresignedS3PutRequestMethod ,
35
+ build_video_meta, bytes_into_stream, compress_image, create_or_get_video,
36
+ do_presigned_upload, upload_video,
37
+ } ,
34
38
web_api:: ManagerExt ,
35
39
windows:: { CapWindowId , ShowCapWindow } ,
36
40
} ;
@@ -754,7 +758,6 @@ async fn handle_recording_finish(
754
758
let video_upload_info = video_upload_info. clone ( ) ;
755
759
756
760
async move {
757
- // if let Some(progressive_upload) = progressive_upload {
758
761
let video_upload_succeeded = match progressive_upload
759
762
. handle
760
763
. await
@@ -776,27 +779,30 @@ async fn handle_recording_finish(
776
779
let _ = screenshot_task. await ;
777
780
778
781
if video_upload_succeeded {
779
- // let resp = prepare_screenshot_upload(
780
- // &app,
781
- // &video_upload_info.config.clone(),
782
- // display_screenshot,
783
- // )
784
- // .await;
785
-
786
- // match resp {
787
- // Ok(r)
788
- // if r.status().as_u16() >= 200 && r.status().as_u16() < 300 =>
789
- // {
790
- // info!("Screenshot uploaded successfully");
791
- // }
792
- // Ok(r) => {
793
- // error!("Failed to upload screenshot: {}", r.status());
794
- // }
795
- // Err(e) => {
796
- // error!("Failed to upload screenshot: {e}");
797
- // }
798
- // }
799
- todo ! ( ) ;
782
+ if let Ok ( result) =
783
+ compress_image ( display_screenshot) . await
784
+ . map_err ( |err|
785
+ error ! ( "Error compressing thumbnail for instant mode progressive upload: {err}" )
786
+ ) {
787
+ let ( stream, total_size) = bytes_into_stream ( result) ;
788
+ do_presigned_upload (
789
+ & app,
790
+ stream,
791
+ total_size,
792
+ crate :: upload:: PresignedS3PutRequest {
793
+ video_id : video_upload_info. id . clone ( ) ,
794
+ subpath : "screenshot/screen-capture.jpg" . to_string ( ) ,
795
+ method : PresignedS3PutRequestMethod :: Put ,
796
+ meta : None ,
797
+ } ,
798
+ |p| { } // TODO: Progress reporting
799
+ )
800
+ . await
801
+ . map_err ( |err| {
802
+ error ! ( "Error updating thumbnail for instant mode progressive upload: {err}" )
803
+ } )
804
+ . ok ( ) ;
805
+ }
800
806
} else {
801
807
if let Ok ( meta) = build_video_meta ( & output_path)
802
808
. map_err ( |err| error ! ( "Error getting video metdata: {}" , err) )
@@ -824,7 +830,6 @@ async fn handle_recording_finish(
824
830
}
825
831
}
826
832
}
827
- // }
828
833
}
829
834
} ) ;
830
835
0 commit comments