@@ -40,14 +40,6 @@ fn parse_duration(s: &str) -> Result<Duration> {
4040 Ok ( Duration :: from_secs ( seconds) )
4141}
4242
43- fn looks_like_duration ( s : & str ) -> bool {
44- if s. len ( ) < 2 {
45- return false ;
46- }
47- let ( num_str, unit) = s. split_at ( s. len ( ) - 1 ) ;
48- num_str. parse :: < u64 > ( ) . is_ok ( ) && matches ! ( unit, "s" | "m" | "h" | "d" | "w" )
49- }
50-
5143fn format_duration ( secs : i64 ) -> String {
5244 let secs = secs. unsigned_abs ( ) ;
5345 if secs < 60 {
@@ -160,7 +152,7 @@ impl RemindPlugin {
160152 }
161153 return self . handle_cancel ( ctx, parts[ 1 ] ) . await ;
162154 }
163- if parts. len ( ) < 2 {
155+ if parts. len ( ) < 3 {
164156 ctx. mention_reply ( "Usage: remind <user|me> <time> <message>" ) . await ?;
165157 return Ok ( ( ) ) ;
166158 }
@@ -169,26 +161,13 @@ impl RemindPlugin {
169161 . sender ( )
170162 . ok_or_else ( || format_err ! ( "Could not determine sender" ) ) ?;
171163
172- let ( target_user, duration_str, message) = if looks_like_duration ( parts[ 0 ] ) {
173- let msg = if parts. len ( ) > 1 { parts[ 1 ..] . join ( " " ) } else { String :: new ( ) } ;
174- ( sender. to_string ( ) , parts[ 0 ] , msg)
164+ let target_user = if parts[ 0 ] . eq_ignore_ascii_case ( "me" ) {
165+ sender. to_string ( )
175166 } else {
176- if parts. len ( ) < 3 {
177- ctx. mention_reply ( "Usage: remind <user|me> <time> <message>" ) . await ?;
178- return Ok ( ( ) ) ;
179- }
180- let target = if parts[ 0 ] . eq_ignore_ascii_case ( "me" ) {
181- sender. to_string ( )
182- } else {
183- parts[ 0 ] . to_string ( )
184- } ;
185- ( target, parts[ 1 ] , parts[ 2 ] . to_string ( ) )
167+ parts[ 0 ] . to_string ( )
186168 } ;
187-
188- if message. is_empty ( ) {
189- ctx. mention_reply ( "Please provide a reminder message" ) . await ?;
190- return Ok ( ( ) ) ;
191- }
169+ let duration_str = parts[ 1 ] ;
170+ let message = parts[ 2 ] ;
192171
193172 let duration = match parse_duration ( duration_str) {
194173 Ok ( d) => d,
0 commit comments