package Ġorg . du ke con . aspect s . twitter Ċ Ċ class ĠTwitter Links Ġ{ ĊĊĠĠĠ Ġfun Ġget Normalized Twitter Url ( twitter : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( twitter . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( twitter . startsWith ("@ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// twitter . com /${ twitter . substring ( 1 )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// https :// math ias b yn ens . be / demo / url - regex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ@ ro dn ey re hm Ġ( 1 0 9 Ġchars ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtw iter Reg Ex Ġ= Ġ" (( https ? :// | ftp :// | www \\ .| [^ \\ s := ]+ @ www \\. ). * ?[ a - z _ \\/ 0 - 9 \\ - \\ # =& ]) (? =( \\ .| , |; | \\ ?| \\ ! )? (\" |' | Â « | Â» | \\ [ | \\ s | \\ r | \\ n |\ $ )) ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tw iter Reg Ex . matches ( twitter )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtwitter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// twitter . com /$ twitter " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtwitter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Handle ( twitter : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( twitter . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( twitter . startsWith ("@ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtwitter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ@ ro dn ey re hm Ġ( 1 0 9 Ġchars ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtw iter Reg Ex Ġ= Ġ" (( https ? :// | ftp :// | www \\ .| [^ \\ s := ]+ @ www \\. ). * ?[ a - z _ \\/ 0 - 9 \\ - \\ # =& ]) (? =( \\ .| , |; | \\ ?| \\ ! )? (\" |' | Â « | Â» | \\ [ | \\ s | \\ r | \\ n |\ $ )) ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tw iter Reg Ex . matches ( twitter )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġ"@ ${ twitter . substring ( twitter . lastIndexOf ("/") Ġ+ Ġ 1 )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" @ ". equals ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġa ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"@ $ twitter " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtwitter ĊĠĠĠ Ġ} Ċ }