Mercurial > hg > egg-tcls
annotate tj.tcl @ 698:6ba9f961e463 default tip
quotedb: Bump version and copyright.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 18 Sep 2023 11:38:41 +0300 |
parents | 299a17b98f84 |
children |
rev | line source |
---|---|
70 | 1 ########################################################################## |
0 | 2 # |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
3 # TJ v2.0 by ccr/TNSP <ccr@tnsp.org> |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
4 # (C) Copyright 2021 Tecnic Software productions (TNSP) |
0 | 5 # |
6 # This script is freely distributable under GNU GPL (version 2) license. | |
7 # | |
70 | 8 ########################################################################## |
0 | 9 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
10 ### The configuration should be in config.tj in same directory |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
11 ### as this script. Or change the line below to point where ever |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
12 ### you wish. See "config.tj.example" for an example config file. |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
13 source [file dirname [info script]]/config.tj |
0 | 14 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
15 ### Required utillib.tcl |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
16 source [file dirname [info script]]/utillib.tcl |
0 | 17 |
18 | |
70 | 19 ########################################################################## |
0 | 20 # No need to look below this line |
70 | 21 ########################################################################## |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
22 package require sqlite3 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
23 package require textutil::split |
0 | 24 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
25 set tj_name "TJ" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
26 set tj_message "$tj_name v2.0 (C) 2021 ccr/TNSP" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
27 |
0 | 28 |
70 | 29 # ------------------------------------------------------------------------ |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
30 ### Utility functions |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
31 proc tj_log {umsg} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
32 global tj_log_enable tj_name |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
33 if {$tj_log_enable != 0} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
34 putlog "${tj_name}: $umsg" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
35 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
36 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
37 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
38 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
39 proc tj_qm {uid} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
40 global tj_messages |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
41 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
42 if {[info exists tj_messages($uid)]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
43 return $tj_messages($uid) |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
44 } else { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
45 return $uid |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
46 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
47 } |
0 | 48 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
49 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
50 proc tj_smsg {apublic anick achan amsg {aargs {}}} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
51 global tj_preferredmsg tj_cmd_name |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
52 set amsg [string map [list "@cmd@" $tj_cmd_name] $amsg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
53 utl_msg_args $tj_preferredmsg $apublic $anick $achan $amsg $aargs |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
54 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
55 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
56 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
57 proc tj_msg {apublic anick achan aid {aargs {}}} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
58 tj_smsg $apublic $anick $achan [tj_qm $aid] $aargs |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
59 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
60 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
61 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
62 proc tj_correct_handle {uhand} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
63 set ulower [string tolower $uhand] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
64 foreach uuser [userlist] { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
65 if {[string tolower $uuser] == $ulower} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
66 return $uuser |
0 | 67 } |
68 } | |
69 return "" | |
70 } | |
71 | |
72 | |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
73 proc tj_cmd_match {uid ustr} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
74 global tj_commands |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
75 return [utl_cmd_match tj_commands $uid $ustr] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
76 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
77 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
78 |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
79 # ------------------------------------------------------------------------ |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
80 proc tj_get_id {rstr rindex rid} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
81 upvar $rindex uindex |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
82 upvar $rid uid |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
83 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
84 if {[string index $rstr 0] == "#"} { |
615
1dac9129eb0f
tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents:
614
diff
changeset
|
85 set uid [string range $rstr 1 end] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
86 incr uindex |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
87 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
88 } else { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
89 return 0 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
90 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
91 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
92 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
93 |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
94 proc tj_get_default_id {uhand} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
95 global tj_default_id |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
96 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
97 set uid [getuser $uhand XTRA "tj_default_id"] |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
98 if {$uid == "" || $uid == "{}" || $uid == "*"} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
99 return $tj_default_id |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
100 } else { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
101 return $uid |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
102 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
103 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
104 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
105 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
106 proc tj_ctime {ustamp} { |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
107 return [clock format $ustamp -format [tj_qm "datefmt_long"]] |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
108 } |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
109 |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
110 |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
111 proc tj_ctimes {ustamp} { |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
112 return [clock format $ustamp -format [tj_qm "datefmt_short"]] |
0 | 113 } |
114 | |
115 | |
70 | 116 # ------------------------------------------------------------------------ |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
117 proc tj_str_append { qlist qvalue qsingular qplural } { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
118 upvar $qlist ulist |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
119 if {$qvalue > 0} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
120 if {$qvalue > 1} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
121 set qfmt $qplural |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
122 } else { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
123 set qfmt $qsingular |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
124 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
125 lappend ulist [utl_str_map_values [tj_qm "tj_str_${qfmt}"] [list $qvalue]] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
126 } |
0 | 127 } |
128 | |
129 | |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
130 # Return string describing how many years,days,hours,etc |
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
131 # the given number of seconds consists of |
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
132 proc tj_get_tj_str {useconds} { |
505 | 133 |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
134 set uyears [expr ($useconds / (365*24*60*60))] |
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
135 set urem [expr ($useconds % (365*24*60*60))] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
136 set udays [expr ($urem / (24*60*60))] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
137 set urem [expr ($urem % (24*60*60))] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
138 set uhours [expr ($urem / (60*60))] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
139 set urem [expr ($urem % (60*60))] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
140 set uminutes [expr ($urem / 60)] |
0 | 141 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
142 set ulist {} |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
143 tj_str_append ulist $uyears "year" "years" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
144 tj_str_append ulist $udays "day" "days" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
145 tj_str_append ulist $uhours "hour" "hours" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
146 tj_str_append ulist $uminutes "minute" "minutes" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
147 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
148 set ustr [join [lrange $ulist 0 end-1] [tj_qm "tj_str_sep"]] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
149 if {[llength $ulist] > 1} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
150 append ustr [tj_qm "tj_str_sep_last"] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
151 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
152 append ustr [lindex $ulist end] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
153 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
154 return $ustr |
0 | 155 } |
156 | |
157 | |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
158 proc tj_get_tj_str_delta {ustamp uclock} { |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
159 set udelta [expr $ustamp - $uclock] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
160 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
161 if {$udelta < 0} { |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
162 set ufmt "tjs_past" |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
163 set useconds [expr -$udelta] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
164 } else { |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
165 set ufmt "tjs_future" |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
166 set useconds $udelta |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
167 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
168 |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
169 return [utl_str_map_values [tj_qm $ufmt] [list [tj_get_tj_str $useconds] [tj_ctime $ustamp]]] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
170 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
171 |
0 | 172 |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
173 # ------------------------------------------------------------------------ |
624 | 174 proc tj_display_tjs {upublic unick uchan uname uid uclock} { |
175 | |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
176 set nresults 0 |
615
1dac9129eb0f
tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents:
614
diff
changeset
|
177 set usql "SELECT * FROM tj WHERE uuser='[utl_escape $uname]' AND utype=0 AND uid LIKE '[utl_escape $uid]'" |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
178 tj_dbh eval $usql { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
179 incr nresults |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
180 set ustamp [utl_sql_datetime_to_stamp $utarget] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
181 set udelta [expr $ustamp - $uclock] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
182 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
183 if {$udelta < 0} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
184 set ufmt "tj_past" |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
185 set useconds [expr -$udelta] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
186 } else { |
678
7ff41e458ee0
tj: Fix future TJ date displays.
Matti Hamalainen <ccr@tnsp.org>
parents:
665
diff
changeset
|
187 set ufmt "tj_future" |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
188 set useconds $udelta |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
189 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
190 |
614
8c61b4032648
tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents:
613
diff
changeset
|
191 tj_msg $upublic $unick $uchan $ufmt [list $uname $uid [tj_get_tj_str $useconds] [tj_ctime $ustamp]] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
192 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
193 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
194 if {!$nresults} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
195 tj_msg $upublic $unick $uchan "tj_not_set" [list $uname $uid] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
196 } |
0 | 197 } |
198 | |
199 | |
70 | 200 # ------------------------------------------------------------------------ |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
201 proc tj_cmd {unick $uhost uhand uchan uargs upublic} { |
633
bc87660aa400
tj: Add max items as configurable setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
632
diff
changeset
|
202 global tj_messages tj_default_id tj_default_time tj_default_desc tj_max_items |
0 | 203 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
204 # Check if we have a valid user |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
205 if {![utl_valid_user $uhand]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
206 tj_msg $upublic $unick $uchan "err_invalid_user" [list $uhand] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
207 return 1 |
0 | 208 } |
209 | |
624 | 210 set uclock [clock seconds] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
211 set uhand [tj_correct_handle $uhand] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
212 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
213 # Check and handle arguments |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
214 set rarglist [::textutil::split::splitx $uargs {\s+}] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
215 set rcmd [lindex $rarglist 0] |
617
ce7a666991e3
tj: Cleanup, set rindex only once.
Matti Hamalainen <ccr@tnsp.org>
parents:
616
diff
changeset
|
216 set rindex 1 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
217 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
218 if {[tj_cmd_match "help" $rcmd]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
219 # Show help |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
220 foreach ukey $tj_messages(help_full) { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
221 tj_msg $upublic $unick $uchan $ukey |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
222 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
223 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
224 } elseif {[tj_cmd_match "set" $rcmd]} { |
620 | 225 # !tj set [#<id>] <[-/+]days [[+/-]<hours>] | dd.mm.yyyy [hh:mm]> [<desc>] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
226 if {![utl_arg_get $rarglist rindex rarg 0]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
227 tj_msg $upublic $unick $uchan "help_set" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
228 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
229 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
230 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
231 # Check for #id prefix |
642
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
232 set rdesc "*" |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
233 if {![tj_get_id $rarg rindex uid]} { |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
234 set uid [tj_get_default_id $uhand] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
235 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
236 |
644 | 237 # Do we have any arguments left? |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
238 if {![utl_arg_get $rarglist rindex rarg 1]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
239 tj_msg $upublic $unick $uchan "help_set" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
240 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
241 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
242 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
243 # Is it a time stamp? |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
244 if {[regexp {\d+\.\d+\.\d\d\d\d} $rarg rdate]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
245 # Seems so .. check for hours |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
246 set rtime $tj_default_time |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
247 if {[utl_arg_get $rarglist rindex rarg 0]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
248 if {[regexp {\d+:\d+} $rarg rtime]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
249 incr rindex |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
250 } else { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
251 set rtime $tj_default_time |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
252 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
253 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
254 |
665
4156adacdc31
tj: Use utl_arg_rest instead of tj_arg_rest.
Matti Hamalainen <ccr@tnsp.org>
parents:
647
diff
changeset
|
255 utl_arg_rest $rarglist $rindex rdesc |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
256 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
257 # Check the timestamp validity |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
258 if {[catch {set rstamp [clock scan "${rdate} ${rtime}" -format "%d.%m.%Y %H:%M"]} uerrmsg]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
259 tj_msg $upublic $unick $uchan "err_timestamp" [list $uerrmsg $rdate $rtime] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
260 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
261 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
262 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
263 } elseif {[regexp {(\+|\-)?(\d+)} $rarg -> dsign rdays]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
264 # Check for days |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
265 if {$dsign == "-"} { set rdays [expr -$rdays] } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
266 |
644 | 267 # Check for hours |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
268 set rhours 0 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
269 if {[utl_arg_get $rarglist rindex rarg 0]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
270 if {[regexp {(\+|\-)?(\d+)} $rarg -> hsign rhours]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
271 if {$hsign == "-"} { set rhours [expr -$rhours] } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
272 incr rindex |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
273 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
274 |
644 | 275 # Get description, if any |
665
4156adacdc31
tj: Use utl_arg_rest instead of tj_arg_rest.
Matti Hamalainen <ccr@tnsp.org>
parents:
647
diff
changeset
|
276 utl_arg_rest $rarglist $rindex rdesc |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
277 |
644 | 278 # Validate hours parameters a bit |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
279 if {$rhours < -24 || $rhours > 24} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
280 tj_msg $upublic $unick $uchan "err_invalid_hours" [list $rhours] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
281 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
282 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
283 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
284 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
285 # Compute target timestamp |
634
fd1c56676648
tj: Use uclock uniformly in tj_cmd.
Matti Hamalainen <ccr@tnsp.org>
parents:
633
diff
changeset
|
286 set rstamp [expr $uclock + ($rdays * 24 * 60 * 60) + ($rhours * 60 * 60)] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
287 } else { |
644 | 288 # Only description was specified |
642
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
289 incr rindex -1 |
665
4156adacdc31
tj: Use utl_arg_rest instead of tj_arg_rest.
Matti Hamalainen <ccr@tnsp.org>
parents:
647
diff
changeset
|
290 utl_arg_rest $rarglist $rindex rdesc |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
291 set rstamp "invalid" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
292 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
293 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
294 # Check if ID exists |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
295 set umode 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
296 set nres 0 |
615
1dac9129eb0f
tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents:
614
diff
changeset
|
297 set usql "SELECT * FROM tj WHERE uid LIKE '[utl_escape $uid]'" |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
298 tj_dbh eval $usql { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
299 set umode 0 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
300 set cid $id |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
301 set ctarget $utarget |
644 | 302 |
303 # If description has not been set, fetch previous | |
642
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
304 if {$rdesc == "*"} { |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
305 set rdesc $udesc |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
306 } |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
307 incr nres |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
308 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
309 |
644 | 310 # Check for DB sanity at this point |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
311 if {$nres > 1} { |
644 | 312 # If we have more than one result for this ID, there's been |
313 # some kind of mistake at some point. | |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
314 tj_msg $upublic $unick $uchan "err_db_corrupt" [list $nres] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
315 tj_log "too many $nres fatal error piip" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
316 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
317 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
318 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
319 # Check if we are trying to add a new entry without valid timestamp |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
320 if {$rstamp == "invalid"} { |
644 | 321 # Yes, if mode is "new", we should error out |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
322 if {$umode} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
323 tj_msg $upublic $unick $uchan "err_missing_timestamp" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
324 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
325 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
326 |
644 | 327 # Otherwise we are updating, so just use the old timestamp |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
328 set rdate $ctarget |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
329 set ustamp [utl_sql_datetime_to_stamp $ctarget] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
330 } else { |
644 | 331 # Timestamp was okay |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
332 set rdate [utl_sql_stamp_to_datetime $rstamp] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
333 set ustamp $rstamp |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
334 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
335 |
644 | 336 # If description has not been set, use default |
642
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
337 if {$rdesc == "*"} { |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
338 set rdesc $tj_default_desc |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
339 } |
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
340 |
641
0b618c09063f
tj: Use ustamp instead of rstamp here.
Matti Hamalainen <ccr@tnsp.org>
parents:
639
diff
changeset
|
341 set utjstr [tj_get_tj_str_delta $ustamp $uclock] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
342 set udate [tj_ctime $ustamp] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
343 |
644 | 344 # Check against max reminders .. |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
345 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]'" |
632 | 346 if {[catch {set nitems [tj_dbh onecolumn $usql]} uerrmsg]} { |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
347 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
348 tj_log "$uerrmsg on SQL:\n$usql" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
349 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
350 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
351 |
633
bc87660aa400
tj: Add max items as configurable setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
632
diff
changeset
|
352 if {$nitems >= $tj_max_items} { |
644 | 353 # User has too many set already |
633
bc87660aa400
tj: Add max items as configurable setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
632
diff
changeset
|
354 tj_msg $upublic $unick $uchan "err_too_many" [list $nitems $tj_max_items] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
355 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
356 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
357 |
634
fd1c56676648
tj: Use uclock uniformly in tj_cmd.
Matti Hamalainen <ccr@tnsp.org>
parents:
633
diff
changeset
|
358 set ucreated [utl_sql_stamp_to_datetime $uclock] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
359 if {$umode} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
360 # Insert new entry |
631
9596cd122639
tj: Adjust database schema a bit, add new field 'uupdated'.
Matti Hamalainen <ccr@tnsp.org>
parents:
630
diff
changeset
|
361 set usql "INSERT INTO tj (uid,uuser,ucreated,uupdated,udesc,utype,utarget) VALUES ('[utl_escape $uid]', '[utl_escape $uhand]', '$ucreated', '$ucreated', '[utl_escape $rdesc]', 0, '$rdate')" |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
362 if {[catch {tj_dbh eval $usql} uerrmsg]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
363 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
364 tj_log "$uerrmsg on SQL:\n$usql" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
365 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
366 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
367 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
368 set cid [tj_dbh last_insert_rowid] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
369 tj_msg $upublic $unick $uchan "tj_set" [list $cid $uid $uhand $rdesc $udate $utjstr] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
370 tj_log "tj_set $cid:$uid:$uhand:$rdesc:$rdate:$udate" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
371 } else { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
372 # Update existing entry |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
373 set usqlargs {} |
631
9596cd122639
tj: Adjust database schema a bit, add new field 'uupdated'.
Matti Hamalainen <ccr@tnsp.org>
parents:
630
diff
changeset
|
374 lappend usqlargs "uupdated='$ucreated'" |
642
5cbff6baebef
tj: Fix handling of description updating and setting.
Matti Hamalainen <ccr@tnsp.org>
parents:
641
diff
changeset
|
375 if {[string length $rdesc] > 0 && $rdesc != "*"} { |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
376 lappend usqlargs "udesc='[utl_escape $rdesc]'" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
377 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
378 if {$rstamp != "invalid"} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
379 lappend usqlargs "utarget='$rdate'" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
380 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
381 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
382 if {[llength $usqlargs] > 0} { |
636
c3911a8c28e5
tj: Oops, in 'set' command UPDATE clause we had forgotten to specify
Matti Hamalainen <ccr@tnsp.org>
parents:
635
diff
changeset
|
383 set usql "UPDATE tj SET [join $usqlargs ,] WHERE uuser='[utl_escape $uhand]' AND uid LIKE '[utl_escape $uid]'" |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
384 if {[catch {tj_dbh eval $usql} uerrmsg]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
385 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
386 tj_log "$uerrmsg on SQL:\n$usql" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
387 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
388 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
389 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
390 |
644 | 391 # Do a query |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
392 set usql "SELECT * FROM tj WHERE uuser='[utl_escape $uhand]' AND uid LIKE '[utl_escape $uid]'" |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
393 tj_dbh eval $usql { |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
394 set utjstr [tj_get_tj_str_delta [utl_sql_datetime_to_stamp $utarget] $uclock] |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
395 tj_msg $upublic $unick $uchan "tj_updated" [list $id $uid $uhand $udesc $udate $utjstr] |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
396 tj_log "tj_updated $id:$uid:$uhand:$udesc:$utarget" |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
397 } |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
398 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
399 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
400 } elseif {[tj_cmd_match "remind" $rcmd]} { |
644 | 401 # XXX TODO MAYBE .. reminder functionality .. perhaps some day. |
620 | 402 # !tj remind #<id> <<dd.mm.yyyy [hh:mm]>|<message>> |
403 # !tj remind #<id> <<dd.mm [hh:mm]>|<message>> | |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
404 if {[llength $rarglist] < 3} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
405 tj_msg $upublic $unick $uchan "help_add" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
406 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
407 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
408 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
409 } elseif {[tj_cmd_match "list" $rcmd]} { |
622
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
410 # !tj list [name] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
411 # List reminders |
622
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
412 if {[utl_arg_get $rarglist rindex uname 1]} { |
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
413 set uname [tj_correct_handle $uname] |
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
414 } else { |
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
415 set uname $uhand |
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
416 } |
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
417 |
644 | 418 # First, get count of items |
622
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
419 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uname]'" |
616
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
420 if {[catch {set nitems [tj_dbh onecolumn $usql]} uerrmsg]} { |
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
421 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
422 tj_log "$uerrmsg on SQL:\n$usql" |
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
423 return 1 |
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
424 } |
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
425 |
644 | 426 # Then, list items |
616
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
427 set nitem 0 |
622
84a30765baa1
tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
621
diff
changeset
|
428 set usql "SELECT * FROM tj WHERE uuser='[utl_escape $uname]' ORDER BY ucreated" |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
429 tj_dbh eval $usql { |
616
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
430 incr nitem |
639
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
431 set qtarget [utl_sql_datetime_to_stamp $utarget] |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
432 set ustr [tj_get_tj_str_delta $qtarget $uclock] |
c11ee9fea4b8
tj: Use new datefmt_short and datefmt_long and fix up/implement rest of the
Matti Hamalainen <ccr@tnsp.org>
parents:
638
diff
changeset
|
433 tj_msg $upublic $unick $uchan "list_item" [list $nitem $nitems [tj_ctime $qtarget] [tj_ctimes [utl_sql_datetime_to_stamp $ucreated]] [tj_ctimes [utl_sql_datetime_to_stamp $uupdated]] $uid $udesc $ustr] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
434 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
435 |
616
20dba2c757de
tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
615
diff
changeset
|
436 if {!$nitem} { |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
437 tj_msg $upublic $unick $uchan "no_results" [list $uname] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
438 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
439 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
440 } elseif {[tj_cmd_match "delete" $rcmd]} { |
621
a1efc28ef5a4
tj: Require #-prefix for ids in 'delete' command.
Matti Hamalainen <ccr@tnsp.org>
parents:
620
diff
changeset
|
441 # !tj delete #<id> |
a1efc28ef5a4
tj: Require #-prefix for ids in 'delete' command.
Matti Hamalainen <ccr@tnsp.org>
parents:
620
diff
changeset
|
442 if {![utl_arg_get $rarglist rindex rarg 0] || ![tj_get_id $rarg rindex uid]} { |
618
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
443 tj_msg $upublic $unick $uchan "help_delete" |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
444 return 1 |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
445 } |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
446 |
644 | 447 # Check if the desired item exists |
618
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
448 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]' AND uid LIKE '[utl_escape $uid]'" |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
449 if {[catch {set nitems [tj_dbh onecolumn $usql]} uerrmsg]} { |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
450 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
451 tj_log "$uerrmsg on SQL:\n$usql" |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
452 return 1 |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
453 } |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
454 |
626
319c2e73860c
tj: When deleting a TJ, check if it exists and say so if it does not.
Matti Hamalainen <ccr@tnsp.org>
parents:
625
diff
changeset
|
455 if {$nitems == 0} { |
644 | 456 # No, error out |
626
319c2e73860c
tj: When deleting a TJ, check if it exists and say so if it does not.
Matti Hamalainen <ccr@tnsp.org>
parents:
625
diff
changeset
|
457 tj_msg $upublic $unick $uchan "err_no_such_id" [list $uid] |
319c2e73860c
tj: When deleting a TJ, check if it exists and say so if it does not.
Matti Hamalainen <ccr@tnsp.org>
parents:
625
diff
changeset
|
458 return 1 |
319c2e73860c
tj: When deleting a TJ, check if it exists and say so if it does not.
Matti Hamalainen <ccr@tnsp.org>
parents:
625
diff
changeset
|
459 } |
319c2e73860c
tj: When deleting a TJ, check if it exists and say so if it does not.
Matti Hamalainen <ccr@tnsp.org>
parents:
625
diff
changeset
|
460 |
644 | 461 # Delete it |
618
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
462 set usql "DELETE FROM tj WHERE uuser='[utl_escape $uhand]' AND uid LIKE '[utl_escape $uid]'" |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
463 if {[catch {set ndone [tj_dbh onecolumn $usql]} uerrmsg]} { |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
464 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
465 tj_log "$uerrmsg on SQL:\n$usql" |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
466 return 1 |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
467 } |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
468 |
3b1fdba9a95c
tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents:
617
diff
changeset
|
469 tj_msg $upublic $unick $uchan "items_deleted" [list $uid $nitems] |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
470 |
628
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
471 # Check if we deleted the default ID |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
472 set udefid [tj_get_default_id $uhand] |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
473 if {[string tolower $uid] == [string tolower $udefid]} { |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
474 setuser $uhand XTRA "tj_default_id" $tj_default_id |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
475 |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
476 tj_msg $upublic $unick $uchan "default_reset" [list $uid $tj_default_id] |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
477 } |
eaf766018133
tj: If user deletes his or her default TJ ID, re-set the default to global default.
Matti Hamalainen <ccr@tnsp.org>
parents:
626
diff
changeset
|
478 |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
479 } elseif {[tj_cmd_match "default" $rcmd]} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
480 # !tj default #<id> |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
481 # Check for #id prefix |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
482 if {![utl_arg_get $rarglist rindex rarg 0] || ![tj_get_id $rarg rindex uid]} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
483 tj_msg $upublic $unick $uchan "help_default" |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
484 return 1 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
485 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
486 |
637 | 487 # If given ID is empty or *, clear to global default id |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
488 if {$uid == "" || $uid == "{}" || $uid == "*"} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
489 set uid $tj_default_id |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
490 } else { |
630 | 491 # Check if a TJ exists with this id? |
638
5260156d9521
tj: Oops, forgot to use LIKE instead of '=' here for comparing uid. Fixed.
Matti Hamalainen <ccr@tnsp.org>
parents:
637
diff
changeset
|
492 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]' AND uid LIKE '[utl_escape $uid]'" |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
493 if {[catch {set nids [tj_dbh onecolumn $usql]} uerrmsg]} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
494 tj_msg $upublic $unick $uchan "err_sql" [list $uerrmsg] |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
495 tj_log "$uerrmsg on SQL:\n$usql" |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
496 return 1 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
497 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
498 |
647 | 499 if {$nids == 0} { |
500 # No, error out | |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
501 tj_msg $upublic $unick $uchan "err_no_such_id" [list $uid] |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
502 return 1 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
503 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
504 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
505 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
506 setuser $uhand XTRA "tj_default_id" $uid |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
507 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
508 tj_msg $upublic $unick $uchan "default_set" [list $uid] |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
509 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
510 } elseif {[tj_cmd_match "show" $rcmd]} { |
620 | 511 # !tj show [#<id>] <name> |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
512 # Check for #id prefix |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
513 if {[utl_arg_get $rarglist rindex rarg 0]} { |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
514 set notdefault [tj_get_id $rarg rindex uid] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
515 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
516 |
646 | 517 # Check for name argument |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
518 if {![utl_arg_get $rarglist rindex rarg 0]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
519 tj_msg $upublic $unick $uchan "help_show" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
520 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
521 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
522 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
523 set uname [tj_correct_handle $rarg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
524 if {$uname == ""} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
525 tj_msg $upublic $unick $uchan "err_unknown_user" [list $rcmd] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
526 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
527 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
528 |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
529 if {!$notdefault} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
530 set uid [tj_get_default_id $uname] |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
531 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
532 |
624 | 533 tj_display_tjs $upublic $unick $uchan $uname $uid $uclock |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
534 } else { |
620 | 535 # !tj [#<id>] [name] |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
536 set notdefault 0 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
537 set uname $uhand |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
538 set rindex 0 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
539 if {[utl_arg_get $rarglist rindex rarg 0]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
540 # Check for #id prefix |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
541 set notdefault [tj_get_id $rarg rindex uid] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
542 |
647 | 543 # Check if name is specified |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
544 if {[utl_arg_get $rarglist rindex rarg 0]} { |
647 | 545 # Validate it |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
546 set uname [tj_correct_handle $rarg] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
547 if {$uname == ""} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
548 tj_msg $upublic $unick $uchan "err_unknown_user" [list $rcmd] |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
549 return 1 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
550 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
551 } |
625
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
552 } |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
553 |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
554 if {!$notdefault} { |
5eca657134a5
tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents:
624
diff
changeset
|
555 set uid [tj_get_default_id $uname] |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
556 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
557 |
624 | 558 tj_display_tjs $upublic $unick $uchan $uname $uid $uclock |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
559 } |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
560 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
561 return 1 |
0 | 562 } |
563 | |
564 | |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
565 #------------------------------------------------------------------------- |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
566 # Script initialization |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
567 #------------------------------------------------------------------------- |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
568 putlog "$tj_message" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
569 |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
570 if {[catch {sqlite3 tj_dbh $tj_db_file} uerrmsg]} { |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
571 putlog "Could not open SQLite3 database '${tj_db_file}': ${uerrmsg}" |
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
572 exit 2 |
125
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
573 } |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
574 |
613
ea6ebcf42b47
TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
575 # end of script |