@@ -192,12 +192,14 @@ async fn get_ext(
192192 file_name : FileName ,
193193 delete_at : Option < DateTime > ,
194194 owner : bool ,
195+ copy : Option < String > ,
195196 }
196197
197198 Image {
198199 file_name,
199200 delete_at,
200201 owner,
202+ copy : None ,
201203 }
202204 . to_response ( )
203205 }
@@ -212,6 +214,7 @@ async fn get_ext(
212214 file_name : FileName ,
213215 delete_at : Option < DateTime > ,
214216 owner : bool ,
217+ copy : Option < String > ,
215218 }
216219
217220 if let Some ( syntax) = syntax {
@@ -229,10 +232,11 @@ async fn get_ext(
229232 . is_err ( )
230233 {
231234 return Ok ( UnHighlighted {
232- code : file,
235+ code : file. clone ( ) ,
233236 file_name,
234237 delete_at,
235238 owner,
239+ copy : Some ( file) ,
236240 }
237241 . to_response ( )
238242 . customize ( ) ) ;
@@ -246,21 +250,24 @@ async fn get_ext(
246250 file_name : FileName ,
247251 delete_at : Option < DateTime > ,
248252 owner : bool ,
253+ copy : Option < String > ,
249254 }
250255
251256 Highlighted {
252257 code : html_generator. finalize ( ) ,
253258 file_name,
254259 delete_at,
255260 owner,
261+ copy : Some ( file) ,
256262 }
257263 . to_response ( )
258264 } else {
259265 UnHighlighted {
260- code : file,
266+ code : file. clone ( ) ,
261267 file_name,
262268 delete_at,
263269 owner,
270+ copy : Some ( file) ,
264271 }
265272 . to_response ( )
266273 }
@@ -271,12 +278,14 @@ async fn get_ext(
271278 file_name : FileName ,
272279 delete_at : Option < DateTime > ,
273280 owner : bool ,
281+ copy : Option < String > ,
274282 }
275283
276284 WrongType {
277285 file_name,
278286 delete_at,
279287 owner,
288+ copy : None ,
280289 }
281290 . to_response ( )
282291 }
@@ -288,12 +297,14 @@ async fn get_ext(
288297 file_name : FileName ,
289298 delete_at : Option < DateTime > ,
290299 owner : bool ,
300+ copy : Option < String > ,
291301 }
292302
293303 TooLarge {
294304 file_name,
295305 delete_at,
296306 owner,
307+ copy : None ,
297308 }
298309 . to_response ( )
299310 }
@@ -357,7 +368,7 @@ async fn delete_entry(
357368 . map_err ( ErrorInternalServerError ) ?;
358369 }
359370
360- Ok ( HttpResponse :: Found ( )
371+ Ok ( HttpResponse :: SeeOther ( )
361372 . append_header ( ( header:: LOCATION , "/" ) )
362373 . finish ( ) )
363374}
@@ -427,16 +438,16 @@ fn response(
427438 extension : Option < String > ,
428439 config : & Data < Config > ,
429440) -> impl Responder {
430- let name = name. clone ( ) + & extension. map ( |e| format ! ( ".{e}" ) ) . unwrap_or_default ( ) ;
431- HttpResponse :: Found ( )
441+ let name = name + & extension. map ( |e| format ! ( ".{e}" ) ) . unwrap_or_default ( ) ;
442+ HttpResponse :: SeeOther ( )
432443 . append_header ( ( header:: LOCATION , name. clone ( ) ) )
433444 . cookie_delta ( & cookies)
434445 . body ( format ! (
435446 "{}{name}\n " ,
436447 if !config. base_url. is_empty( ) && !config. base_url. ends_with( '/' ) {
437448 format!( "{}{}" , config. base_url, "/" )
438449 } else {
439- format! ( "{}" , config. base_url)
450+ config. base_url. to_string ( )
440451 }
441452 ) )
442453}
@@ -509,7 +520,7 @@ async fn post_form(
509520 }
510521
511522 Ok ( response (
512- file. ok_or_else ( || UploadError :: NoData ) ?,
523+ file. ok_or ( UploadError :: NoData ) ?,
513524 cookies,
514525 extension,
515526 & config,
0 commit comments