comparison tj.tcl @ 642:5cbff6baebef

tj: Fix handling of description updating and setting.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Feb 2021 12:58:01 +0200
parents 0b618c09063f
children 77c9feb5dcee
comparison
equal deleted inserted replaced
641:0b618c09063f 642:5cbff6baebef
240 tj_msg $upublic $unick $uchan "help_set" 240 tj_msg $upublic $unick $uchan "help_set"
241 return 1 241 return 1
242 } 242 }
243 243
244 # Check for #id prefix 244 # Check for #id prefix
245 if {[tj_get_id $rarg rindex uid]} { 245 set rdesc "*"
246 set rdesc "" 246 if {![tj_get_id $rarg rindex uid]} {
247 } else {
248 set rdesc $tj_default_desc
249 set uid [tj_get_default_id $uhand] 247 set uid [tj_get_default_id $uhand]
250 } 248 }
251 249
252 if {![utl_arg_get $rarglist rindex rarg 1]} { 250 if {![utl_arg_get $rarglist rindex rarg 1]} {
253 tj_msg $upublic $unick $uchan "help_set" 251 tj_msg $upublic $unick $uchan "help_set"
295 293
296 # Compute target timestamp 294 # Compute target timestamp
297 set rstamp [expr $uclock + ($rdays * 24 * 60 * 60) + ($rhours * 60 * 60)] 295 set rstamp [expr $uclock + ($rdays * 24 * 60 * 60) + ($rhours * 60 * 60)]
298 } else { 296 } else {
299 # Only description, if any 297 # Only description, if any
300 if {![tj_arg_rest $rarglist 1 rdesc]} { 298 incr rindex -1
301 tj_msg $upublic $unick $uchan "err_invalid_format" [list] 299 tj_arg_rest $rarglist $rindex rdesc
302 return 1
303 }
304 set rstamp "invalid" 300 set rstamp "invalid"
305 } 301 }
306 302
307 # Check if ID exists 303 # Check if ID exists
308 set umode 1 304 set umode 1
310 set usql "SELECT * FROM tj WHERE uid LIKE '[utl_escape $uid]'" 306 set usql "SELECT * FROM tj WHERE uid LIKE '[utl_escape $uid]'"
311 tj_dbh eval $usql { 307 tj_dbh eval $usql {
312 set umode 0 308 set umode 0
313 set cid $id 309 set cid $id
314 set ctarget $utarget 310 set ctarget $utarget
311 if {$rdesc == "*"} {
312 set rdesc $udesc
313 }
315 incr nres 314 incr nres
316 } 315 }
317 316
318 # Check for DB sanity 317 # Check for DB sanity
319 if {$nres > 1} { 318 if {$nres > 1} {
332 set rdate $ctarget 331 set rdate $ctarget
333 set ustamp [utl_sql_datetime_to_stamp $ctarget] 332 set ustamp [utl_sql_datetime_to_stamp $ctarget]
334 } else { 333 } else {
335 set rdate [utl_sql_stamp_to_datetime $rstamp] 334 set rdate [utl_sql_stamp_to_datetime $rstamp]
336 set ustamp $rstamp 335 set ustamp $rstamp
336 }
337
338 if {$rdesc == "*"} {
339 set rdesc $tj_default_desc
337 } 340 }
338 341
339 set utjstr [tj_get_tj_str_delta $ustamp $uclock] 342 set utjstr [tj_get_tj_str_delta $ustamp $uclock]
340 set udate [tj_ctime $ustamp] 343 set udate [tj_ctime $ustamp]
341 344
368 tj_log "tj_set $cid:$uid:$uhand:$rdesc:$rdate:$udate" 371 tj_log "tj_set $cid:$uid:$uhand:$rdesc:$rdate:$udate"
369 } else { 372 } else {
370 # Update existing entry 373 # Update existing entry
371 set usqlargs {} 374 set usqlargs {}
372 lappend usqlargs "uupdated='$ucreated'" 375 lappend usqlargs "uupdated='$ucreated'"
373 if {[string length $rdesc] > 0} { 376 if {[string length $rdesc] > 0 && $rdesc != "*"} {
374 lappend usqlargs "udesc='[utl_escape $rdesc]'" 377 lappend usqlargs "udesc='[utl_escape $rdesc]'"
375 } 378 }
376 if {$rstamp != "invalid"} { 379 if {$rstamp != "invalid"} {
377 lappend usqlargs "utarget='$rdate'" 380 lappend usqlargs "utarget='$rdate'"
378 } 381 }