Mercurial > hg > egg-tcls
changeset 625:5eca657134a5
tj: Implement command to set/reset default ID for TJs.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 11 Feb 2021 10:32:51 +0200 |
parents | e7c88d4e917c |
children | 319c2e73860c |
files | config.tj.example tj.tcl |
diffstat | 2 files changed, 61 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/config.tj.example Thu Feb 11 10:02:55 2021 +0200 +++ b/config.tj.example Thu Feb 11 10:32:51 2021 +0200 @@ -24,6 +24,7 @@ "remind" {^(remind|muist)} "list" {^(list|listaa?)$} "delete" {^(del|delete|poista)$} + "default" {^(def|default|vakio)$} "show" {^(show|näytä|nayta)$} } @@ -71,14 +72,18 @@ "help" "@cmd@ \[#<id>\] \[nimi\]" "help_set" "@cmd@ set \[#<id>\] <\[-\]päivät \[+/-<tunnit>\] | dd.mm.yyyy \[hh:mm\]> [<kuvaus>]" "help_list" "@cmd@ list \[nimi\] -- listaa TJ:t (muiden listaus vain admineille)" - "help_delete" "@cmd@ delete #<id>" + "help_delete" "@cmd@ del #<id> -- poistaa TJ:n annetulla ID:llä" + "help_default" "@cmd@ def #<id> -- asettaa käyttäjän vakio TJ-ID:n" "help_remind_add" "@cmd@ muistuta <id>" "help_remind_delete" "@cmd@ poista <id>" + "err_no_such_id" "@nick@:llä ei ole tuollaista TJ-ID:tä '@1@'." "err_invalid_user" "pyh, mene pois." "err_unknown_user" "en tunne käyttäjää @1@" + "default_set" "@nick@:n vakio-id asetettu: '@1@'." + "list_item" "#@1@/@2@: @3@ : \002@4@\002 / @5@" "tj_set" "@3@:n @2@-TJ asetettu @5@ (@6@): @4@"
--- a/tj.tcl Thu Feb 11 10:02:55 2021 +0200 +++ b/tj.tcl Thu Feb 11 10:32:51 2021 +0200 @@ -88,8 +88,8 @@ } +# ------------------------------------------------------------------------ proc tj_get_id {rstr rindex rid} { - global tj_default_id upvar $rindex uindex upvar $rid uid @@ -98,12 +98,23 @@ incr uindex return 1 } else { - set uid $tj_default_id return 0 } } +proc tj_get_default_id {uhand} { + global tj_default_id + + set uid [getuser $uhand XTRA "tj_default_id"] + if {$uid == "" || $uid == "{}" || $uid == "*"} { + return $tj_default_id + } else { + return $uid + } +} + + proc tj_ctime {ustamp} { return [clock format $ustamp -format [tj_qm "datefmt"]] } @@ -167,6 +178,7 @@ } +# ------------------------------------------------------------------------ proc tj_display_tjs {upublic unick uchan uname uid uclock} { set nresults 0 @@ -230,6 +242,7 @@ set rdesc "" } else { set rdesc $tj_default_desc + set uid [tj_get_default_id $uhand] } if {![utl_arg_get $rarglist rindex rarg 1]} { @@ -392,7 +405,6 @@ set uname $uhand } - set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uname]'" if {[catch {set nitems [tj_dbh onecolumn $usql]} uerrmsg]} { tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] @@ -434,11 +446,40 @@ } tj_msg $upublic $unick $uchan "items_deleted" [list $uid $nitems] + + } elseif {[tj_cmd_match "default" $rcmd]} { + # !tj default #<id> + # Check for #id prefix + if {![utl_arg_get $rarglist rindex rarg 0] || ![tj_get_id $rarg rindex uid]} { + tj_msg $upublic $unick $uchan "help_default" + return 1 + } + + if {$uid == "" || $uid == "{}" || $uid == "*"} { + set uid $tj_default_id + } else { + set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]' AND uid='[utl_escape $uid]'" + if {[catch {set nids [tj_dbh onecolumn $usql]} uerrmsg]} { + tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] + tj_log "$uerrmsg on SQL:\n$usql" + return 1 + } + + if {$nids < 1} { + tj_msg $upublic $unick $uchan "err_no_such_id" [list $uid] + return 1 + } + } + + setuser $uhand XTRA "tj_default_id" $uid + + tj_msg $upublic $unick $uchan "default_set" [list $uid] + } elseif {[tj_cmd_match "show" $rcmd]} { # !tj show [#<id>] <name> # Check for #id prefix if {[utl_arg_get $rarglist rindex rarg 0]} { - tj_get_id $rarg rindex uid + set notdefault [tj_get_id $rarg rindex uid] } if {![utl_arg_get $rarglist rindex rarg 0]} { @@ -452,14 +493,19 @@ return 1 } + if {!$notdefault} { + set uid [tj_get_default_id $uname] + } + tj_display_tjs $upublic $unick $uchan $uname $uid $uclock } else { # !tj [#<id>] [name] + set notdefault 0 set uname $uhand set rindex 0 if {[utl_arg_get $rarglist rindex rarg 0]} { # Check for #id prefix - tj_get_id $rarg rindex uid + set notdefault [tj_get_id $rarg rindex uid] if {[utl_arg_get $rarglist rindex rarg 0]} { set uname [tj_correct_handle $rarg] @@ -468,8 +514,10 @@ return 1 } } - } else { - set uid $tj_default_id + } + + if {!$notdefault} { + set uid [tj_get_default_id $uname] } tj_display_tjs $upublic $unick $uchan $uname $uid $uclock