Mercurial > hg > egg-tcls
annotate tj.tcl @ 578:14dfb925a64a
Bump copyright years.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 04 Jan 2021 12:00:44 +0200 |
parents | 4f2bf10ceaa2 |
children | ea6ebcf42b47 |
rev | line source |
---|---|
70 | 1 ########################################################################## |
0 | 2 # |
151 | 3 # TJ (Army Mornings Left-counter) v0.70 by ccr/TNSP <ccr@tnsp.org> |
578 | 4 # (C) Copyright 2000,2009,2011,2021 Tecnic Software productions (TNSP) |
0 | 5 # |
6 # This script is freely distributable under GNU GPL (version 2) license. | |
7 # | |
8 # Laskee aamuja tiettyyn paivamaaraan. TJ-paivamaara annettava | |
9 # tietenkin etta toimii, oletuksena skripti asettaa (uudelle kayttajalle) | |
10 # sen hetkisen ajan + 180 aamua. Esimerkkeja kaytosta: | |
11 # !tj [nick] | |
12 # /msg TheBot tj [nick] | |
13 # | |
14 # Ja TJ:n asetus toimii nain: | |
15 # !tjaamut <[-]aamujen lkm tasta hetkesta laskien> [+/- tunnit] | |
16 # !tjset dd.mm.yyyy hh:mm | |
17 # | |
70 | 18 ########################################################################## |
0 | 19 |
20 # Default starting TJ | |
21 set tj_defstarttj 180 | |
22 | |
23 | |
24 | |
70 | 25 ########################################################################## |
0 | 26 # No need to look below this line |
70 | 27 ########################################################################## |
126 | 28 set tj_message "TJ (SA-INT model) v0.70 by ccr/TNSP" |
0 | 29 set tj_dateident "tjdate" |
30 set tj_preferredmsg "PRIVMSG" | |
31 | |
32 putlog "$tj_message" | |
33 bind pub - !tj tj_pubmsg | |
34 bind pub - !tjaamut tj_pubaamut | |
35 bind pub - !tjset tj_pubset | |
36 | |
70 | 37 # ------------------------------------------------------------------------ |
0 | 38 proc tj_correctnickcase { jnick } { |
39 | |
40 if {![validuser $jnick]} { return "" } | |
41 set nicklwr [string tolower $jnick] | |
42 foreach juser [userlist] { | |
43 if {[string tolower $juser] == $nicklwr} { | |
44 unset nicklwr | |
45 return "$juser" | |
46 } | |
47 } | |
48 | |
49 return "" | |
50 } | |
51 | |
52 | |
70 | 53 # ------------------------------------------------------------------------ |
0 | 54 proc tj_smsg {udest umsg} { |
55 global tj_preferredmsg | |
56 | |
57 putserv "$tj_preferredmsg $udest :$umsg" | |
58 } | |
59 | |
60 | |
70 | 61 # ------------------------------------------------------------------------ |
0 | 62 proc tj_pubmsg {nick uhost hand chan args} { |
5
5ac4fd6d011a
tj: Handle command arguments better.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
63 set args [string trim [join $args ""]] |
5ac4fd6d011a
tj: Handle command arguments better.
Matti Hamalainen <ccr@tnsp.org>
parents:
0
diff
changeset
|
64 if {$args == ""} { set args $hand } |
0 | 65 |
66 tj_smsg $chan [tj_gettj $args $chan] | |
67 return 1 | |
68 } | |
69 | |
70 | |
70 | 71 # ------------------------------------------------------------------------ |
0 | 72 proc tj_ctime { utime } { |
73 return [clock format $utime -format "%d.%m.%Y %H:%M"] | |
74 } | |
75 | |
76 | |
70 | 77 # ------------------------------------------------------------------------ |
0 | 78 proc tj_pubaamut {unick uhost uhand uchan uargs} { |
79 set foo [split $uargs " "] | |
80 set tjdays [lindex $foo 0] | |
81 set tjhours [lindex $foo 1] | |
505 | 82 |
0 | 83 if {$tjdays == ""} { |
272 | 84 tj_smsg $uchan "Hälärm." |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
272
diff
changeset
|
85 return 1 |
0 | 86 } |
87 | |
88 if {$tjhours == ""} { set tjhours 0 } | |
89 | |
90 set udate [expr [unixtime] + ($tjdays * 86400) + ($tjhours * 3600)] | |
91 tj_smsg $uchan [tj_settj $uhand $unick $udate] | |
92 return 1 | |
93 } | |
94 | |
95 | |
70 | 96 # ------------------------------------------------------------------------ |
0 | 97 proc tj_pubset {unick uhost uhand uchan uargs} { |
98 | |
99 set udate [clock scan $uargs -format "%d.%N.%Y %H:%M"] | |
100 tj_smsg $uchan [tj_settj $uhand $unick $udate] | |
101 return 1 | |
102 } | |
103 | |
104 | |
70 | 105 # ------------------------------------------------------------------------ |
0 | 106 proc tj_settj { uuser unick udate } { |
107 global tj_dateident | |
108 | |
109 if {![validuser $uuser]} { | |
505 | 110 return "Tuntematon käyttäjä ${uuser}." |
0 | 111 } |
112 | |
113 setuser $uuser XTRA $tj_dateident $udate | |
114 return "$unick:n ($uuser) TJ asetettu. ([tj_ctime $udate])" | |
115 } | |
116 | |
117 | |
70 | 118 # ------------------------------------------------------------------------ |
125
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
119 proc tj_append { qlause qaika qstr qadd } { |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
120 upvar $qlause lause |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
121 if {$qaika > 0} { |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
122 if {$lause != ""} { append lause $qadd } |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
123 append lause $qstr |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
124 } |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
125 } |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
126 |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
127 # ------------------------------------------------------------------------ |
0 | 128 proc tj_gettj {ihandle ichan} { |
129 global tj_defstarttj | |
130 global tj_dateident | |
131 | |
132 # Tarkistetaan onko kayttaja OK | |
133 if {![validuser $ihandle]} { | |
134 if {$ichan == ""} { | |
505 | 135 return "${ihandle}, Mene pois." |
0 | 136 } else { |
137 if {$ihandle == "*"} { | |
272 | 138 return "En tiedä kuka olet, mene pois." |
0 | 139 } else { |
505 | 140 return "En tiedä kuka ${ihandle} on." |
0 | 141 } |
142 } | |
143 } | |
144 | |
145 set chandle [tj_correctnickcase $ihandle] | |
146 | |
147 # Haetaan TJ aloitus paivamaara | |
148 set tjpaiva [getuser $chandle XTRA $tj_dateident] | |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
272
diff
changeset
|
149 |
0 | 150 if {$tjpaiva == ""} { |
272 | 151 return "$chandle ei ole asettanut itselleen TJ päivämäärää." |
0 | 152 } |
153 | |
154 # Lasketaan tamanhetkinen TJ aika | |
155 set deltatj [expr $tjpaiva - [unixtime]] | |
156 | |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
272
diff
changeset
|
157 if {$deltatj < 0} { |
0 | 158 set tmp [expr [unixtime] - $tjpaiva] |
159 } else { | |
160 set tmp $deltatj | |
161 } | |
162 | |
163 # Lasketaan TJ aamut, tunnit jne | |
125
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
164 set vuodet [expr ($tmp / (365*24*60*60))] |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
165 set rem [expr ($tmp % (365*24*60*60))] |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
166 set aamut [expr ($rem / (24*60*60))] |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
167 set rem [expr ($rem % (24*60*60))] |
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
168 set tunnit [expr ($rem / (60*60))] |
0 | 169 |
170 # Maaritetaan sanalause | |
171 if {$ichan != ""} { | |
272 | 172 set tjmt "${chandle}:lla on" |
173 set tjmi "${chandle} on" | |
0 | 174 } else { |
175 set tjmt "Sinulla on" | |
272 | 176 set tjmi "Sinä olet" |
0 | 177 } |
178 | |
125
42cf6a768c46
tj: Add support for years in the output.
Matti Hamalainen <ccr@tnsp.org>
parents:
108
diff
changeset
|
179 set lause "" |
505 | 180 tj_append lause $vuodet "${vuodet} vuotta" "" |
181 tj_append lause $aamut "${aamut} aamua" ", " | |
182 tj_append lause $tunnit "${tunnit} tuntia" " ja " | |
0 | 183 |
184 if {$aamut == 0 && $deltatj > 0} { | |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
272
diff
changeset
|
185 if {$tunnit == 0} { |
272 | 186 return "$tjmt TOSI WÄINÖ! TJ 0!!" |
0 | 187 } else { |
505 | 188 return "$tjmt AIKA WÄBÄ -- TJ ${tunnit} tuntia!" |
0 | 189 } |
190 } else { | |
191 if {$deltatj > 0} { | |
505 | 192 return "${tjmt} ${lause} jäljellä... ([tj_ctime $tjpaiva])" |
0 | 193 } else { |
505 | 194 return "${tjmi} ollut reservissä jo ${lause}! ([tj_ctime $tjpaiva])" |
0 | 195 } |
196 } | |
197 | |
198 } | |
199 | |
70 | 200 # ------------------------------------------------------------------------ |