annotate tj.tcl @ 631:9596cd122639

tj: Adjust database schema a bit, add new field 'uupdated'.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 15 Feb 2021 13:42:10 +0200
parents b7e3a47ed072
children 68b8cf87e86e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
1 ##########################################################################
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 #
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 # This script is freely distributable under GNU GPL (version 2) license.
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 #
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
8 ##########################################################################
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
19 ##########################################################################
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 # No need to look below this line
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 return ""
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
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
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
79 proc tj_arg_rest {rarglist rindex rstr} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
80 upvar $rstr dstr
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
81
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
82 if {$rindex < [llength $rarglist]} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
83 set dstr [join [lrange $rarglist $rindex end] " "]
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
84 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
85 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
86 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
87 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
88 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
89
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
91 # ------------------------------------------------------------------------
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
92 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
93 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
94 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
95
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
96 if {[string index $rstr 0] == "#"} {
615
1dac9129eb0f tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents: 614
diff changeset
97 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
98 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
99 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
100 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
101 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
102 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
103 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
104
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
105
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
106 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
107 global tj_default_id
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
108
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
109 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
110 if {$uid == "" || $uid == "{}" || $uid == "*"} {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
111 return $tj_default_id
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
112 } else {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
113 return $uid
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
114 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
115 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
116
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
117
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
118 proc 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
119 return [clock format $ustamp -format [tj_qm "datefmt"]]
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
123 # ------------------------------------------------------------------------
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
124 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
125 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
126 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
127 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
128 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
129 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
130 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
131 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
132 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
133 }
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
137 # 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
138 # 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
139 proc tj_get_tj_str {useconds} {
505
4f2bf10ceaa2 tj: Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 424
diff changeset
140
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
141 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
142 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
143 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
144 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
145 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
146 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
147 set uminutes [expr ($urem / 60)]
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
149 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
150 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
151 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
152 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
153 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
154
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
155 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
156 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
157 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
158 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
159 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
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 return $ustr
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
165 proc tj_get_tj_str_delta { ustamp } {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
166 set udelta [expr $ustamp - [clock seconds]]
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 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
169 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
170 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
171 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
172 set ufmt "tj_remaining"
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
173 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
174 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
175
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
176 # return [utl_str_map_values [tj_qm $ufmt] [list ]]
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
177 return [tj_get_tj_str $useconds]
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 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
179
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
181 # ------------------------------------------------------------------------
624
e7c88d4e917c tj: Only get clock once.
Matti Hamalainen <ccr@tnsp.org>
parents: 622
diff changeset
182 proc tj_display_tjs {upublic unick uchan uname uid uclock} {
e7c88d4e917c tj: Only get clock once.
Matti Hamalainen <ccr@tnsp.org>
parents: 622
diff changeset
183
613
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 nresults 0
615
1dac9129eb0f tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents: 614
diff changeset
185 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
186 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
187 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
188 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
189 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
190
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
191 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
192 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
193 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
194 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
195 set ufmt "tj_remaining"
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
196 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
197 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
198
614
8c61b4032648 tj: Cleanup. Rename some variables to be more descriptive. Add a comment.
Matti Hamalainen <ccr@tnsp.org>
parents: 613
diff changeset
199 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
200 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
201
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
202 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
203 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
204 }
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
205 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
206
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
207
70
15fc72bc3f3e More cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 5
diff changeset
208 # ------------------------------------------------------------------------
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
209 proc tj_cmd {unick $uhost uhand uchan uargs upublic} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
210 global tj_messages tj_default_id tj_default_time tj_default_desc
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
211
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
212 # 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
213 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
214 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
215 return 1
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
216 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
217
624
e7c88d4e917c tj: Only get clock once.
Matti Hamalainen <ccr@tnsp.org>
parents: 622
diff changeset
218 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
219 set uhand [tj_correct_handle $uhand]
622
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
220 set qadmin [matchattr $uhand n]
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
221
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
222 # 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
223 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
224 set rcmd [lindex $rarglist 0]
617
ce7a666991e3 tj: Cleanup, set rindex only once.
Matti Hamalainen <ccr@tnsp.org>
parents: 616
diff changeset
225 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
226
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
227 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
228 # 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
229 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
230 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
231 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
232 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
233 } elseif {[tj_cmd_match "set" $rcmd]} {
620
47b15186373f tj: Clarify some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 618
diff changeset
234 # !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
235 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
236 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
237 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
238 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
239
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
240 # 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
241 if {[tj_get_id $rarg rindex uid]} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
242 set rdesc ""
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
243 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
244 set rdesc $tj_default_desc
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
245 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
246 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
247
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 {![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
249 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
250 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
251 }
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 # 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
254 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
255 # 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
256 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
257 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
258 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
259 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
260 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
261 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
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 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
264
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
265 tj_arg_rest $rarglist $rindex rdesc
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
266
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
267 # 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
268 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
269 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
270 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
271 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
272
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
273 } 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
274 # 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
275 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
276
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
277 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
278 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
279 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
280 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
281 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
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 tj_arg_rest $rarglist $rindex rdesc
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
285
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
286 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
287 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
288 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
289 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
290 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
291
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
292 # Compute target timestamp
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
293 set rstamp [expr [clock seconds] + ($rdays * 24 * 60 * 60) + ($rhours * 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
294 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
295 # Only description, if any
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
296 if {![tj_arg_rest $rarglist 1 rdesc]} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
297 tj_msg $upublic $unick $uchan "err_invalid_format" [list]
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
298 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
299 }
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 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
301 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
302
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
303 # 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
304 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
305 set nres 0
615
1dac9129eb0f tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents: 614
diff changeset
306 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
307 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
308 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
309 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
310 set ctarget $utarget
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
311 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
312 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
313
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
314 # Check for DB sanity
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
315 if {$nres > 1} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
316 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
317 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
318 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
319 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
320
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
321 # 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
322 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
323 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
324 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
325 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
326 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
327
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 {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
331 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
332 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
333 }
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 set utjstr [tj_get_tj_str_delta $rstamp]
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
336 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
337
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
338 # Max reminders ..
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
339 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]'"
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
340 if {[catch {set nreminders [tj_dbh onecolumn $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
341 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
342 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
343 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
344 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
345
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
346 # Check for maximum reminders
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
347 if {$nreminders > 5} {
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_msg $upublic $unick $uchan "err_too_many" [list $nreminders]
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
631
9596cd122639 tj: Adjust database schema a bit, add new field 'uupdated'.
Matti Hamalainen <ccr@tnsp.org>
parents: 630
diff changeset
352 set ucreated [utl_sql_stamp_to_datetime [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
353 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
354 # Insert new entry
631
9596cd122639 tj: Adjust database schema a bit, add new field 'uupdated'.
Matti Hamalainen <ccr@tnsp.org>
parents: 630
diff changeset
355 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
356 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
357 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
358 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
359 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
360 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
361
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
362 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
363 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
364 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
365 } else {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
366 # 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
367 set usqlargs {}
631
9596cd122639 tj: Adjust database schema a bit, add new field 'uupdated'.
Matti Hamalainen <ccr@tnsp.org>
parents: 630
diff changeset
368 lappend usqlargs "uupdated='$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
369 if {[string length $rdesc] > 0} {
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
370 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
371 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
372 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
373 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
374 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
375
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
376 if {[llength $usqlargs] > 0} {
615
1dac9129eb0f tj: Change #id handling to be case-insensitive.
Matti Hamalainen <ccr@tnsp.org>
parents: 614
diff changeset
377 set usql "UPDATE tj SET [join $usqlargs ,] 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
378 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
379 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
380 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
381 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
382 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
383 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
384
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 "tj_updated" [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
386 tj_log "tj_updated $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
387 }
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 } elseif {[tj_cmd_match "remind" $rcmd]} {
620
47b15186373f tj: Clarify some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 618
diff changeset
390 # !tj remind #<id> <<dd.mm.yyyy [hh:mm]>|<message>>
47b15186373f tj: Clarify some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 618
diff changeset
391 # !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
392 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
393 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
394 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
395 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
396
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
397 } 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
398 # !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
399 # List reminders
622
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
400 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
401 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
402 if {$uname != $uhand && !$qadmin} {
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
403 tj_msg $upublic $unick $uchan "access_denied"
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
404 return 1
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
405 }
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
406 } else {
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
407 set uname $uhand
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
408 }
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
409
84a30765baa1 tj: Add ability for administrator users to 'list' other peoples TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 621
diff changeset
410 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
411 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
412 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
413 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
414 return 1
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
415 }
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
416
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
417 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
418 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
419 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
420 incr nitem
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
421 set ustamp [utl_sql_datetime_to_stamp $utarget]
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
422 tj_msg $upublic $unick $uchan "list_item" [list $nitem $nitems [tj_ctime $ustamp] $uid $udesc]
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
423 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
424
616
20dba2c757de tj: Improve output of 'list' command, and make it configurable.
Matti Hamalainen <ccr@tnsp.org>
parents: 615
diff changeset
425 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
426 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
427 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
428
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
429 } 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
430 # !tj delete #<id>
a1efc28ef5a4 tj: Require #-prefix for ids in 'delete' command.
Matti Hamalainen <ccr@tnsp.org>
parents: 620
diff changeset
431 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
432 tj_msg $upublic $unick $uchan "help_delete"
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
433 return 1
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
434 }
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
435
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
436 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
437 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
438 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
439 tj_log "$uerrmsg on SQL:\n$usql"
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
440 return 1
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
441 }
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
442
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
443 if {$nitems == 0} {
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
444 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
445 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
446 }
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
447
618
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
448 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
449 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
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
3b1fdba9a95c tj: Implement initial 'delete' command functionality.
Matti Hamalainen <ccr@tnsp.org>
parents: 617
diff changeset
455 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
456
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
457 # 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
458 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
459 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
460 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
461
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
462 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
463 }
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
464
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
465 } 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
466 # !tj default #<id>
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
467 # Check for #id prefix
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
468 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
469 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
470 return 1
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
471 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
472
630
b7e3a47ed072 tj: Add few comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 628
diff changeset
473 # If empty, 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
474 if {$uid == "" || $uid == "{}" || $uid == "*"} {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
475 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
476 } else {
630
b7e3a47ed072 tj: Add few comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 628
diff changeset
477 # Check if a TJ exists with this id?
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
478 set usql "SELECT COUNT(*) FROM tj WHERE uuser='[utl_escape $uhand]' AND uid='[utl_escape $uid]'"
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
479 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
480 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
481 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
482 return 1
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
483 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
484
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
485 if {$nids < 1} {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
486 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
487 return 1
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
488 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
489 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
490
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
491 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
492
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
493 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
494
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
495 } elseif {[tj_cmd_match "show" $rcmd]} {
620
47b15186373f tj: Clarify some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 618
diff changeset
496 # !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
497 # 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
498 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
499 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
500 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
501
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
502 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
503 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
504 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
505 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
506
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
507 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
508 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
509 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
510 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
511 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
512
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
513 if {!$notdefault} {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
514 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
515 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
516
624
e7c88d4e917c tj: Only get clock once.
Matti Hamalainen <ccr@tnsp.org>
parents: 622
diff changeset
517 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
518 } else {
620
47b15186373f tj: Clarify some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 618
diff changeset
519 # !tj [#<id>] [name]
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
520 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
521 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
522 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
523 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
524 # 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
525 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
526
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
527 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
528 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
529 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
530 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
531 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
532 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
533 }
625
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
534 }
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
535
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
536 if {!$notdefault} {
5eca657134a5 tj: Implement command to set/reset default ID for TJs.
Matti Hamalainen <ccr@tnsp.org>
parents: 624
diff changeset
537 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
538 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
539
624
e7c88d4e917c tj: Only get clock once.
Matti Hamalainen <ccr@tnsp.org>
parents: 622
diff changeset
540 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
541 }
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
542
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
543 return 1
0
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
544 }
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
545
1c4e2814cd41 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
546
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
547 #-------------------------------------------------------------------------
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
548 # 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
549 #-------------------------------------------------------------------------
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
550 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
551
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
552 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
553 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
554 exit 2
125
42cf6a768c46 tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents: 108
diff changeset
555 }
42cf6a768c46 tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents: 108
diff changeset
556
613
ea6ebcf42b47 TJ: Initial commit of the TJ2.0 refactoring effort. Instead of using Eggdrop
Matti Hamalainen <ccr@tnsp.org>
parents: 578
diff changeset
557 # end of script