package Ġcom . github . w um o . b ilib ili . util Ċ Ċ import Ġokhttp 3 . Http Url . Companion . to Http Url Ċ import Ġjava . nio . file . Invalid Path Exception Ċ import Ġjava . nio . file . Paths Ċ Ċ // val Ġescape Regex Ġ= ĠRegex (""" [^\ w \ p { sc = Han } Ġ! ï¼ģ ãĢĲ ãĢĳ \- \ [\ ]. ï½ŀ # âĢľ âĢĿ () ï½ ľ ï½ ¥ ï¼Ł ? ãģ® ] """) Ċ val Ġescape Regex Ġ= ĠRegex (""" [ \\/ ] """) Ċ Ċ // val Ġescape Regex Ġ= ĠRegex (""" [^\ w ] """) Ċ val Ġwhite Regex Ġ= ĠRegex (""" \ s + """) Ċ fun ĠString . escape Path (): ĠString Ġ{ ĊĠ Ġreturn Ġthis . replace ( escape Regex , Ġ"") Ċ } Ċ Ċ fun ĠString . to Valid FileName (): ĠString Ġ{ ĊĠ Ġvar Ġprocessed Ġ= Ġthis . escape Path () ĊĠĠĊĠ Ġwhile ( true ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ ĠPaths . get ( processed ) ĊĠĠĠĠĠ Ġbreak ĊĠĠĠ Ġ} Ġcatch ( e : ĠInvalid Path Exception ) Ġ{ ĊĠĠĠĠĠ Ġprocessed Ġ= Ġprocessed . replace ( e . input [ e . index ]. toString (), Ġ"") ĊĠĠĠĠĠĠĠ Ġ. replace ( white Regex , Ġ" Ġ") ĊĠĠĠĠĠ Ġif ( processed . isBlank ()) ĊĠĠĠĠĠĠĠ Ġprocessed Ġ= Ġ"( Ġ)" ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġreturn Ġprocessed Ċ } Ċ Ċ fun ĠString . ext (): ĠString Ġ{ ĊĠ Ġval Ġurl Ġ= Ġto Http Url () ĊĠ Ġval Ġdot Ext Ġ= Ġurl . path Segments . last OrNull () Ġ?: Ġ". mp 4 " ĊĠ Ġval Ġidx Ġ= Ġdot Ext . lastIndexOf ('.') ĊĠ Ġval Ġext Ġ= Ġif ( idx Ġ== Ġ- 1 ) Ġ" mp 4 " ĊĠ Ġelse Ġdot Ext . substring ( idx Ġ+ Ġ 1 ) ĊĠ Ġreturn Ġwhen ( ext ) Ġ{ ĊĠĠĠ Ġ" fl v " Ġ-> Ġ" fl v " ĊĠĠĠ Ġelse Ġ-> Ġ" mp 4 " ĊĠ Ġ} Ċ }