Mercurial > hg > egg-tcls
annotate weather.tcl @ 215:1b58c4a28a79
More adjustments.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 24 Sep 2014 21:57:26 +0300 |
parents | f3f2363d8686 |
children | 67018e353536 |
rev | line source |
---|---|
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 # |
202 | 3 # Weather v0.6 by Matti 'ccr' Hamalainen <ccr@tnsp.org> |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
4 # (C) Copyright 2014 Tecnic Software productions (TNSP) |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 # |
183 | 6 # Requires data fetcher to be run as a cronjob, see fetch_weather.pl |
7 # for more information. | |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 # |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 # This script is freely distributable under GNU GPL (version 2) license. |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 # |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 |
183 | 13 # Default location if none given and none set by user. |
14 # Multiple can be specified as "foo;bar;etc" | |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 set weather_default_locations "raahe" |
157 | 16 |
183 | 17 # Weather data file, must match the one in fetch_weather.pl's config |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
18 set weather_datafile "/home/niinuska/bot/weather.data" |
183 | 19 |
20 # Alias data file | |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
21 set weather_aliasfile "/home/niinuska/bot/weather.alias" |
183 | 22 |
23 # How often to check the weather data file for updates (in minutes) | |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
24 set weather_check_period 2 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 |
183 | 26 # Max number of results to be listed |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
27 set weather_max_results 3 |
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
28 |
183 | 29 # ... |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 set weather_logmsg 1 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 set weather_preferredmsg "PRIVMSG" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 |
157 | 34 ### |
35 ### Messages | |
36 ### | |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
37 set weather_msg_usage_prefix_1 "Käyttö: !sää " |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
38 set weather_msg_usage_prefix_2 " !sää " |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
39 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
40 set weather_msg_usage_def_set "vakio <paikka>\[;<paikka2>\] -- asettaa vakiohavaintoaseman\nvakio -- näyttää nykyisen" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
41 set weather_msg_usage_alias "alias <alias> = <nimi> (Lisää alias-nimen, esim. alias perse = turku)" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
42 set weather_msg_usage_unalias "unalias <alias> (Poistaa aliaksen)" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
43 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
44 set weather_msg_usage_full "\[paikka\]\n$weather_msg_usage_def_set\n$weather_msg_usage_alias\n$weather_msg_usage_unalias" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
45 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
46 set weather_msg_def_set "Vakio-havaintoasemiksi asetettu: \002%1\002." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
47 set weather_msg_defloc "Käyttäjän \002%1\002 vakio-havaintoasemat ovat: \002%2\002." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
48 set weather_msg_def_not_set "Vakio-havaintoasemia ei asetettu käyttäjälle \002%1\002." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
49 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
50 set weather_msg_aliased "Aliasoitiin \002%1\002 = \002%2\002." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
51 set weather_msg_unaliased "Unaliasoitiin \002%1\002." |
174
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
52 set weather_msg_aliases "Aliakset: %1" |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
53 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 set weather_msg_user_not_known "Tuntematon käyttäjä." |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
55 set weather_msg_no_access "Ei oikeuksia muuttaa asetuksia." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
56 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
57 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
58 set weather_msg_no_results "\002%1\002: Ei mittaustietoja." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
59 set weather_msg_no_data_for_location "\002%1\002: Paikkakunnan tietoja ei saatu." |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 # No need to look below this line |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 set weather_name "Weather" |
202 | 66 set weather_version "0.6" |
184 | 67 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 ### Binding initializations |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
70 bind pub - !sää weather_cmd_pub |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
71 bind pub - !saa weather_cmd_pub |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
72 bind msg - !sää weather_cmd_msg |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
73 bind msg - !saa weather_cmd_msg |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 ### Initialization messages |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 package require textutil::split |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 set weather_message "$weather_name v$weather_version by ccr/TNSP" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 putlog "$weather_message" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
80 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 proc weather_log {arg} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 global weather_logmsg weather_name |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 if {$weather_logmsg != 0} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 putlog "$weather_name: $arg" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
91 proc weather_msg_do {apublic anick achan amsg} { |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 global weather_preferredmsg |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 if {$apublic == 1} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 putserv "$weather_preferredmsg $achan :$amsg" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 putserv "$weather_preferredmsg $anick :$amsg" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
101 proc weather_usage {apublic anick achan amsg} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
102 global weather_msg_usage_prefix_1 weather_msg_usage_prefix_2 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
103 set nline 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
104 foreach aline [split $amsg "\n"] { |
203
28ee3578a6d1
Weather: Add support for usage messages without default prefix.
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
105 if {[string range $aline 0 1] == ":"} { |
28ee3578a6d1
Weather: Add support for usage messages without default prefix.
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
106 weather_msg_do $apublic $anick $achan $aline |
28ee3578a6d1
Weather: Add support for usage messages without default prefix.
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
107 } elseif {$nline == 0} { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
108 weather_msg_do $apublic $anick $achan "$weather_msg_usage_prefix_1$aline" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
109 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
110 weather_msg_do $apublic $anick $achan "$weather_msg_usage_prefix_2$aline" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
111 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
112 incr nline |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
113 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
114 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
115 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
116 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
117 proc weather_msg {apublic anick achan amsg {aargs {}}} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
118 set narg 1 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
119 foreach marg $aargs { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
120 set amsg [string map [list "%$narg" $marg] $amsg] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
121 incr narg |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
122 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
123 weather_msg_do $apublic $anick $achan $amsg |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
124 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
125 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
126 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 proc weather_ctime {utime} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 return [clock format $utime -format "%H:%M"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
132 proc weather_valid_user {uhand} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
133 if {$uhand != "" && $uhand != "{}" && $uhand != "*"} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
134 return 1 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
135 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
136 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
137 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
138 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
139 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
140 #------------------------------------------------------------------------- |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
141 proc weather_load_aliases {} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
142 global weather_aliasfile weather_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
143 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
144 # Create dict |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
145 array unset weather_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
146 array set weather_aliases {} |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
147 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
148 # Read datafile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
149 if {![catch {set ufile [open $weather_aliasfile r 0600]} uerrmsg]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
150 while {![eof $ufile]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
151 gets $ufile uline |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
152 set udata [split $uline "|"] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
153 if {[llength $udata] == 2} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
154 set weather_aliases([lindex $udata 0]) [lindex $udata 1] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
155 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
156 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
157 close $ufile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
158 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
159 weather_log "Could not open data file: $uerrmsg" |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
160 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
161 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
162 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
163 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
164 proc weather_save_aliases {} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
165 global weather_aliasfile weather_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
166 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
167 if {![catch {set ufile [open $weather_aliasfile w 0600]} uerrmsg]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
168 foreach {ukey uvalue} [array get weather_aliases] { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
169 puts $ufile "$ukey|$uvalue" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
170 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
171 close $ufile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
172 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
173 weather_log "Could not open data file: $uerrmsg" |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
174 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
175 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
176 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
177 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
178 # If there exists an alias for given string/name, return it |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
179 proc weather_get_alias {uname} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
180 global weather_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
181 set utmp [array get weather_aliases $uname] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
182 if {[llength $utmp] > 0} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
183 return [lindex $utmp 1] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
184 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
185 return $uname |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
186 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
187 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
188 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
189 #------------------------------------------------------------------------- |
167
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
190 proc weather_item {udata uindex ufmt} { |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
191 if {[llength $udata] > $uindex && [lindex $udata $uindex] != ""} { |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
192 set utmp [lindex $udata $uindex] |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
193 return [string map [list "@@" $utmp] $ufmt] |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
194 } |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
195 return "" |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
196 } |
3a375ee7c106
weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
197 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
198 |
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
199 # Produce one location of weather data as a string |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
200 proc weather_get_data {ukey udata} { |
201 | 201 set str "\002[lindex $udata 0]\002, mitattu klo [weather_ctime [lindex $udata 2]]: \002[lindex $udata 3]°C\002" |
202 append str [weather_item $udata 5 ", @@"] | |
203 append str [weather_item $udata 6 ", kosteus \002@@%\002"] | |
215 | 204 append str [weather_item $udata 7 ", keli @@"] |
201 | 205 append str [weather_item $udata 4 ", tien pinta @@°C"] |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
206 return "${str}." |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
207 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
208 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
209 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
210 # Get data by location key |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
211 proc weather_get_key {ukey} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
212 global weather_data |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
213 return [weather_get_data $ukey $weather_data($ukey)] |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
214 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
215 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
216 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
217 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
218 proc weather_update {} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 global weather_datafile weather_data |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 |
172
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
221 # Check if we can open the weather data file |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
222 if {![catch {set ufile [open $weather_datafile r 0600]} uerrmsg]} { |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
223 # Create dict |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
224 array unset weather_data |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
225 array set weather_data {} |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
226 |
172
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
227 set wtemp_min_val 500000 |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
228 set wtemp_max_val -500000 |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
229 set wtemp_min_key "" |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
230 set wtemp_max_key "" |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
231 |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
232 # Read in the data |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
233 while {![eof $ufile]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 gets $ufile uline |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 set udata [split $uline "|"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
236 if {[llength $udata] > 0} { |
201 | 237 set utemp [lindex $udata 3] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
238 set ukey [lindex $udata 0] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
239 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
240 set weather_data($ukey) $udata |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
241 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
242 if {[string is double -strict $utemp]} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
243 if {$utemp < $wtemp_min_val} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
244 set wtemp_min_key $ukey |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
245 set wtemp_min_val $utemp |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
246 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
247 if {$utemp > $wtemp_max_val} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
248 set wtemp_max_key $ukey |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
249 set wtemp_max_val $utemp |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
250 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
251 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
252 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
253 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
254 close $ufile |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
255 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
256 # Store min/max |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
257 set weather_data(w_min) $weather_data($wtemp_min_key) |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
258 set weather_data(w_max) $weather_data($wtemp_max_key) |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
259 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
260 weather_log "Could not open data file: $uerrmsg" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
261 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
262 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
263 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
264 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
265 #------------------------------------------------------------------------- |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
266 # Weather data update loop |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
267 proc weather_exec {} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
268 global weather_check_period weather_running |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
269 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
270 # Perform update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
271 weather_update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
272 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
273 # Schedule next update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
274 set weather_running [clock seconds] |
173
3ea14355e2d4
weather: Fix a silly bug in the weather data update loop. :S
Matti Hamalainen <ccr@tnsp.org>
parents:
172
diff
changeset
|
275 timer $weather_check_period weather_exec |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
276 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
277 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
278 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
279 #------------------------------------------------------------------------- |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
280 # Script initialization |
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
281 #------------------------------------------------------------------------- |
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
282 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
283 if {![info exists weather_data]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
284 array set weather_data {} |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
285 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
286 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
287 if {![info exists weather_aliases]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
288 array set weather_aliases {} |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
289 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
290 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
291 if {[info exists weather_running]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
292 set weather_last [expr [clock seconds] - $weather_running] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
293 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
294 set weather_last -1 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
295 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
296 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
297 weather_log "Loading aliases." |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
298 weather_load_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
299 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
300 if {$weather_last < 0 || $weather_last > [expr $weather_check_period * 60]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
301 weather_log "Starting weather update." |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
302 weather_exec |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
303 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
304 weather_update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
305 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
306 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
307 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
308 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
309 proc weather_cmd {unick uhand uchan uargs upublic} { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
310 global weather_default_locations weather_data weather_max_results weather_aliases |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
311 global weather_msg_usage_full weather_msg_usage_def_set weather_msg_user_not_known |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
312 global weather_msg_no_results weather_msg_no_data_for_location |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
313 global weather_msg_usage_alias weather_msg_usage_unalias weather_msg_defloc |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
314 global weather_msg_aliased weather_msg_unaliased weather_msg_no_access |
174
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
315 global weather_msg_def_set weather_msg_def_not_set weather_msg_aliases |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
316 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
317 # Check and handle arguments |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
318 set rarglist [::textutil::split::splitx $uargs {\s+}] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
319 set rarg [lindex $rarglist 0] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
320 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
321 if {$rarg == "?" || $rarg == "help" || $rarg == "apua"} { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
322 weather_usage $upublic $unick $uchan "$weather_msg_usage_full" |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
323 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
324 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
325 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
326 # List or set the default weather station name patterns for this user |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
327 if {$rarg == "vakio" || $rarg == "default" || $rarg == "vakiot"} { |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
328 # Access check |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
329 if {![weather_valid_user $uhand]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
330 weather_msg $upublic $unick $uchan $weather_msg_user_not_known |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
331 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
332 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
333 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
334 if {[llength $rarglist] == 1} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
335 set lista [getuser $uhand XTRA "weather_locations"] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
336 if {$lista == "" || $lista == "{}"} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
337 weather_msg $upublic $unick $uchan $weather_msg_def_not_set [list $uhand] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
338 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
339 set lista [join [split $lista ";"] " ; "] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
340 weather_msg $upublic $unick $uchan $weather_msg_defloc [list $uhand $lista] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
341 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
342 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
343 # Split the list of desired locations |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
344 set qlist [::textutil::split::splitx [join [lrange $rarglist 1 end] " "] {\s*\;\s*}] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
345 set nlist [lsearch -all -inline -not -exact $qlist ""] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
346 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
347 if {[llength $nlist] > 0} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
348 weather_msg $upublic $unick $uchan $weather_msg_def_set [list [join $nlist " ; "]] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
349 setuser $uhand XTRA "weather_locations" [join $nlist ";"] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
350 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
351 weather_usage $upublic $unick $uchan $weather_msg_usage_def_set |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
352 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
353 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
354 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
355 } elseif {$rarg == "alias"} { |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
356 # Alias a string to another, only certain users have access (+n flag) |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
357 if {![weather_valid_user $uhand] || ![matchattr $uhand n]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
358 weather_msg $upublic $unick $uchan $weather_msg_no_access |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
359 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
360 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
361 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
362 set qlist [::textutil::split::splitx [join [lrange $rarglist 1 end] " "] {\s*=\s*}] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
363 set nlist [lsearch -all -inline -not -exact $qlist ""] |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
364 if {[llength $nlist] < 2} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
365 weather_usage $upublic $unick $uchan $weather_msg_usage_alias |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
366 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
367 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
368 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
369 set ualias [lindex $nlist 0] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
370 set uname [lindex $nlist 1] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
371 set weather_aliases($ualias) $uname |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
372 weather_msg $upublic $unick $uchan $weather_msg_aliased [list $ualias $uname] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
373 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
374 weather_save_aliases |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
375 return 0 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
376 } elseif {$rarg == "unalias"} { |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
377 # Remove one alias, only certain users have access (+n flag) |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
378 if {![weather_valid_user $uhand] || ![matchattr $uhand n]} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
379 weather_msg $upublic $unick $uchan $weather_msg_no_access |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
380 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
381 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
382 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
383 if {[llength $rarglist] < 2} { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
384 weather_usage $upublic $unick $uchan $weather_msg_usage_unalias |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
385 return 0 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
386 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
387 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
388 set ualias [lindex $rarglist 1] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
389 unset weather_aliases($ualias) |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
390 weather_msg $upublic $unick $uchan $weather_msg_unaliased [list $ualias] |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
391 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
392 weather_save_aliases |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
393 return 0 |
174
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
394 } elseif {$rarg == "list"} { |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
395 # List all currently defined aliases |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
396 set ulist {} |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
397 foreach {ukey uvalue} [array get weather_aliases] { |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
398 lappend ulist "\002'$ukey' = '$uvalue'\002" |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
399 } |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
400 weather_msg $upublic $unick $uchan $weather_msg_aliases [list [join $ulist ", "]] |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
401 return 0 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
402 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
403 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
404 # Get args or default location(s) |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
405 set rargs [join $rarglist " "] |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
406 if {$rargs == "" && $uhand != "" && $uhand != "{}" && $uhand != "*"} { |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
407 set rargs [getuser $uhand XTRA "weather_locations"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
408 } |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
409 if {$rargs == ""} { |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
410 set rargs $weather_default_locations |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
411 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
412 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
413 # Handle argument list |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
414 set nresults 0 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
415 set rarglist [::textutil::split::splitx $rargs "\s*\;\s*"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
416 foreach rarg $rarglist { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
417 if {$rarg == "min"} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
418 # Min temp |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
419 set umin [weather_get_key "w_min"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
420 weather_msg $upublic $unick $uchan "Min: $umin" |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
421 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
422 } elseif {$rarg == "max"} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
423 # Max temp |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
424 set umax [weather_get_key "w_max"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
425 weather_msg $upublic $unick $uchan "Max: $umax" |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
426 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
427 } elseif {$rarg == "minmax" || $rarg == "min max" || $rarg == "maxmin" || $rarg == "max min"} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
428 # Min & Max temps |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
429 set umin [weather_get_key "w_min"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
430 set umax [weather_get_key "w_max"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
431 weather_msg $upublic $unick $uchan "Min: $umin | Max: $umax" |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
432 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
433 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
434 # Location match |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
435 set ufound 0 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
436 set rarg [weather_get_alias $rarg] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
437 foreach {ukey uvalue} [array get weather_data] { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
438 if {![string match "w_*" $ukey] && [string match -nocase "*${rarg}*" $ukey]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
439 if {[llength $uvalue] > 0} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
440 weather_msg $upublic $unick $uchan [weather_get_data $ukey $uvalue] |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
441 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
442 } else { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
443 weather_msg $upublic $unick $uchan $weather_msg_no_results [list $ukey] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
444 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
445 incr ufound |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
446 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
447 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
448 # Check for results limit |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
449 if {$nresults >= $weather_max_results} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
450 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
451 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
452 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
453 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
454 if {$ufound == 0} { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
455 weather_msg $upublic $unick $uchan $weather_msg_no_data_for_location [list $rarg] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
456 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
457 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
458 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
459 # Check for results limit |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
460 if {$nresults >= $weather_max_results} { |
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
461 return 0 |
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
462 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
463 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
464 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
465 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
466 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
467 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
468 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
469 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
470 proc weather_cmd_pub {unick uhost uhand uchan uargs} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
471 return [weather_cmd $unick $uhand $uchan $uargs 1] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
472 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
473 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
474 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
475 proc weather_cmd_msg {unick uhost uhand uargs} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
476 return [weather_cmd $unick $uhand "PRIV" $uargs 0] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
477 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
478 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
479 # end of script |