File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -60,7 +60,11 @@ pub fn map_search_torrent(
6060 . collect ( ) ,
6161 tags : mam_torrent. tags ,
6262 description : mam_torrent. description ,
63- categories : meta. categories . clone ( ) ,
63+ categories : meta
64+ . categories
65+ . iter ( )
66+ . map ( |c| c. as_str ( ) . to_string ( ) )
67+ . collect ( ) ,
6468 flags : flag_values,
6569 old_category,
6670 media_type : meta. media_type . as_str ( ) . to_string ( ) ,
Original file line number Diff line number Diff line change @@ -91,7 +91,11 @@ fn torrent_info_from_meta(
9191 filetypes : meta. filetypes . iter ( ) . map ( |f| f. to_string ( ) ) . collect ( ) ,
9292 size : meta. size . to_string ( ) ,
9393 num_files : meta. num_files ,
94- categories : meta. categories . clone ( ) ,
94+ categories : meta
95+ . categories
96+ . iter ( )
97+ . map ( |c| c. as_str ( ) . to_string ( ) )
98+ . collect ( ) ,
9599 old_category : meta. cat . as_ref ( ) . map ( |c| c. to_string ( ) ) ,
96100 flags : flag_values,
97101 library_path : None ,
@@ -209,7 +213,11 @@ async fn other_torrents_data(
209213 . collect ( ) ,
210214 tags : mam_torrent. tags ,
211215 description : mam_torrent. description ,
212- categories : meta. categories . clone ( ) ,
216+ categories : meta
217+ . categories
218+ . iter ( )
219+ . map ( |c| c. as_str ( ) . to_string ( ) )
220+ . collect ( ) ,
213221 flags : {
214222 let flags = mlm_db:: Flags :: from_bitfield ( meta. flags . map_or ( 0 , |f| f. 0 ) ) ;
215223 crate :: utils:: flags_to_strings ( & flags)
Original file line number Diff line number Diff line change @@ -161,7 +161,12 @@ pub async fn get_torrent_meta_edit_data(id: String) -> Result<TorrentMetaEditFor
161161 . main_cat
162162 . map ( |cat : mlm_db:: MainCat | cat. as_id ( ) . to_string ( ) )
163163 . unwrap_or_default ( ) ,
164- categories_text : meta. categories . join ( "\n " ) ,
164+ categories_text : meta
165+ . categories
166+ . iter ( )
167+ . map ( |c| c. as_str ( ) )
168+ . collect :: < Vec < _ > > ( )
169+ . join ( "\n " ) ,
165170 tags_text : meta. tags . join ( "\n " ) ,
166171 language_id : meta
167172 . language
@@ -325,14 +330,22 @@ pub async fn update_torrent_meta_edit_data(form: TorrentMetaEditForm) -> Result<
325330 lgbt : Some ( form. lgbt ) ,
326331 } ;
327332
333+ let categories = split_list ( & form. categories_text )
334+ . into_iter ( )
335+ . map ( |raw| {
336+ raw. parse :: < mlm_db:: Category > ( )
337+ . map_err ( |e| ServerFnError :: new ( format ! ( "invalid category '{raw}': {e}" ) ) )
338+ } )
339+ . collect :: < Result < Vec < _ > , _ > > ( ) ?;
340+
328341 let meta =
329342 mlm_db:: TorrentMeta {
330343 ids,
331344 vip_status : parse_vip_status ( & form. vip_mode , & form. vip_temp_date ) ?,
332345 cat : category,
333346 media_type,
334347 main_cat,
335- categories : split_list ( & form . categories_text ) ,
348+ categories,
336349 tags : split_list ( & form. tags_text ) ,
337350 language,
338351 flags : Some ( mlm_db:: FlagBits :: new ( flags. as_bitfield ( ) ) ) ,
Original file line number Diff line number Diff line change @@ -597,10 +597,10 @@ pub fn TorrentsPage() -> Element {
597597 }
598598 }
599599
600- if let Some ( value) = & value {
601- if let Some ( Ok ( data) ) = & * value. read ( ) {
602- cached . set ( Some ( data . clone ( ) ) ) ;
603- }
600+ if let Some ( value) = & value
601+ && let Some ( Ok ( data) ) = & * value. read ( )
602+ {
603+ cached . set ( Some ( data . clone ( ) ) ) ;
604604 }
605605
606606 let data_to_show = if let Some ( value) = & value {
Original file line number Diff line number Diff line change @@ -482,7 +482,12 @@ fn convert_torrent_row(t: &DbTorrent) -> TorrentsRow {
482482 media_type : t. meta . media_type . as_str ( ) . to_string ( ) ,
483483 cat_name,
484484 cat_id,
485- categories : t. meta . categories . clone ( ) ,
485+ categories : t
486+ . meta
487+ . categories
488+ . iter ( )
489+ . map ( |c| c. as_str ( ) . to_string ( ) )
490+ . collect ( ) ,
486491 flags : flag_values,
487492 edition : t. meta . edition . as_ref ( ) . map ( |( edition, _) | edition. clone ( ) ) ,
488493 authors : t. meta . authors . clone ( ) ,
You can’t perform that action at this time.
0 commit comments