Mercurial > hg > egg-tcls
annotate weather.tcl @ 428:04021e2e26c3
utillib: Fix silly bugs.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 08 Jan 2017 04:15:50 +0200 |
parents | 84d3d7abeb8a |
children | 1ada0cb9bdd9 |
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 # |
415 | 3 # Weather v0.9.5 by Matti 'ccr' Hamalainen <ccr@tnsp.org> |
408 | 4 # (C) Copyright 2014-2017 Tecnic Software productions (TNSP) |
153
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 |
273
38a5bce4b078
weather: Move configuration to separate file.
Matti Hamalainen <ccr@tnsp.org>
parents:
248
diff
changeset
|
13 ### The configuration should be in config.weather in same directory |
38a5bce4b078
weather: Move configuration to separate file.
Matti Hamalainen <ccr@tnsp.org>
parents:
248
diff
changeset
|
14 ### as this script. Or change the line below to point where ever |
38a5bce4b078
weather: Move configuration to separate file.
Matti Hamalainen <ccr@tnsp.org>
parents:
248
diff
changeset
|
15 ### you wish. See "config.weather.example" for an example config file. |
38a5bce4b078
weather: Move configuration to separate file.
Matti Hamalainen <ccr@tnsp.org>
parents:
248
diff
changeset
|
16 source [file dirname [info script]]/config.weather |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 |
344
25fc5a2b42ae
weather: Use utillib for matching enabled channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
335
diff
changeset
|
18 ### Required utillib.tcl |
25fc5a2b42ae
weather: Use utillib for matching enabled channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
335
diff
changeset
|
19 source [file dirname [info script]]/utillib.tcl |
25fc5a2b42ae
weather: Use utillib for matching enabled channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
335
diff
changeset
|
20 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 # 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
|
24 ########################################################################## |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 set weather_name "Weather" |
415 | 26 set weather_version "0.9.5" |
184 | 27 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 ### Initialization messages |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 package require textutil::split |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 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
|
32 putlog "$weather_message" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 proc weather_log {arg} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 global weather_logmsg weather_name |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 if {$weather_logmsg != 0} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 putlog "$weather_name: $arg" |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 |
426
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
421
diff
changeset
|
44 proc weather_msg {apublic anick achan amsg {aargs {}}} { |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 global weather_preferredmsg |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
46 set narg 1 |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
47 foreach marg $aargs { |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
48 set amsg [string map [list "%$narg" $marg] $amsg] |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
49 incr narg |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
50 } |
426
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
421
diff
changeset
|
51 utl_msg_do $weather_preferredmsg $apublic $anick $achan $amsg |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
52 } |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
53 |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
54 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
55 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
|
56 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
|
57 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
|
58 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
|
59 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
|
60 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
|
61 } 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
|
62 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
|
63 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
64 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
|
65 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
66 incr nline |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
67 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
68 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
69 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
70 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
71 proc weather_valid_user {uhand} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
72 if {$uhand != "" && $uhand != "{}" && $uhand != "*"} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
73 return 1 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
74 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
75 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
76 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
77 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
78 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
79 #------------------------------------------------------------------------- |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
80 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
|
81 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
|
82 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
83 # Create dict |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
84 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
|
85 array set weather_aliases {} |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
86 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
87 # Read datafile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
88 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
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
95 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
96 close $ufile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
97 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
98 weather_log "Could not open data file: $uerrmsg" |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
99 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
100 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
101 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
102 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
103 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
|
104 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
|
105 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
106 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
|
107 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
|
108 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
|
109 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
110 close $ufile |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
111 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
112 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
|
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 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
117 # 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
124 return $uname |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
125 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
126 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
127 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
128 #------------------------------------------------------------------------- |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
129 # Produce one location of weather data as a string |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
130 proc weather_get_str {udata umsg} { |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
131 |
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
132 array unset uvals |
287
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
133 set uvals(station) [lindex $udata 0] |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
134 set uvals(type) [lindex $udata 1] |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
135 set uvals(c_lat) [lindex $udata 2] |
419
3566fdca974b
weather: Rename a string token.
Matti Hamalainen <ccr@tnsp.org>
parents:
418
diff
changeset
|
136 set uvals(c_lng) [lindex $udata 3] |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
137 set uvals(c_height) [lindex $udata 4] |
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
138 set uvals(vtime) [lindex $udata 5] |
360
2f7f18371b65
weather: Adjust time handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
139 |
2f7f18371b65
weather: Adjust time handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
140 if {[expr [clock seconds] - $uvals(vtime)] < 3600} { |
357
b1e7ffeaacef
weather: Adjust time output handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
345
diff
changeset
|
141 set uvals(ctime) [clock format $uvals(vtime) -format "%H:%M"] |
b1e7ffeaacef
weather: Adjust time output handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
345
diff
changeset
|
142 } else { |
360
2f7f18371b65
weather: Adjust time handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
358
diff
changeset
|
143 set uvals(ctime) [clock format $uvals(vtime) -format "%H:%M (%d.%m.%Y)"] |
357
b1e7ffeaacef
weather: Adjust time output handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
345
diff
changeset
|
144 } |
b1e7ffeaacef
weather: Adjust time output handling.
Matti Hamalainen <ccr@tnsp.org>
parents:
345
diff
changeset
|
145 |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
146 set uvals(temp) [lindex $udata 6] |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
147 |
238
a1d6e2d8789e
Add new data from FMI service and change datafile format.
Matti Hamalainen <ccr@tnsp.org>
parents:
233
diff
changeset
|
148 if {[lindex $udata 1] == 0} { |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
149 set uvals(road_temp) [lindex $udata 7] |
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
150 set uvals(weather1) [lindex $udata 8] |
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
151 set uvals(weather2) [lindex $udata 9] |
287
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
152 } else { |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
153 set uvals(humidity) [lindex $udata 7] |
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
154 set uvals(wind_speed) [lindex $udata 8] |
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
155 set uvals(cloud_cover) [lindex $udata 9] |
287
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
156 } |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
157 |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
158 set astr "" |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
159 foreach aitem $umsg { |
287
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
160 set atmp $aitem |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
161 foreach {akey aval} [array get uvals] { |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
162 if {$aval != ""} { |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
163 set atmp [string map [list "@${akey}@" $aval] $atmp] |
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
164 } |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
165 } |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
166 if {$atmp != $aitem || [string first "@" $aitem] < 0} { |
287
748c6b44f572
weather: Fix translation routine.
Matti Hamalainen <ccr@tnsp.org>
parents:
286
diff
changeset
|
167 append astr $atmp |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
168 } |
238
a1d6e2d8789e
Add new data from FMI service and change datafile format.
Matti Hamalainen <ccr@tnsp.org>
parents:
233
diff
changeset
|
169 } |
285
259f093c9503
weather: Make some more messages configurable.
Matti Hamalainen <ccr@tnsp.org>
parents:
280
diff
changeset
|
170 |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
171 return $astr |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
172 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
173 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
174 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
175 # Get data by location key |
279
f6dc673adfa1
weather: Reorder some function arguments.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
176 proc weather_get_by_key {ukey} { |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
177 global weather_data weather_msg_result |
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
178 return [weather_get_str $weather_data($ukey) $weather_msg_result] |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
179 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
180 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
181 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
182 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
183 proc weather_update {} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 global weather_datafile weather_data |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 |
172
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
186 # 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
|
187 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
|
188 # Create dict |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
189 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
|
190 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
|
191 |
172
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
192 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
|
193 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
|
194 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
|
195 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
|
196 |
2c89e47739e8
weather: Change weather data loading to not discard current data if data
Matti Hamalainen <ccr@tnsp.org>
parents:
171
diff
changeset
|
197 # Read in the data |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
198 while {![eof $ufile]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
199 gets $ufile uline |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
200 set udata [split $uline "|"] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
201 if {[llength $udata] > 0} { |
414
d623652df6b5
fetch_weather / weather: Add weather measurement station location data (GPS WGS-84 lat/long/height) to weather cache. Not used in weather.tcl yet, tho.
Matti Hamalainen <ccr@tnsp.org>
parents:
409
diff
changeset
|
202 set utemp [lindex $udata 6] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 set ukey [lindex $udata 0] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 set weather_data($ukey) $udata |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
207 if {[string is double -strict $utemp]} { |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
208 if {$utemp < $wtemp_min_val} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
209 set wtemp_min_key $ukey |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
210 set wtemp_min_val $utemp |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
211 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
212 if {$utemp > $wtemp_max_val} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
213 set wtemp_max_key $ukey |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
214 set wtemp_max_val $utemp |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
215 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
216 } |
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 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 close $ufile |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
220 |
334
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
221 # Store min/max |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
222 if {$wtemp_min_key != "" && $wtemp_max_key != ""} { |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
223 set weather_data(w_min) $weather_data($wtemp_min_key) |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
224 set weather_data(w_max) $weather_data($wtemp_max_key) |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
225 } else { |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
226 set weather_data(w_min) 0 |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
227 set weather_data(w_max) 0 |
088bb2621595
weather: Do not attempt to access weather data through unset / invalid
Matti Hamalainen <ccr@tnsp.org>
parents:
287
diff
changeset
|
228 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
229 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
230 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
|
231 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
232 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
233 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 #------------------------------------------------------------------------- |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
236 # Weather data update loop |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
237 proc weather_exec {} { |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
238 global weather_check_period weather_running |
153
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 # Perform update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
241 weather_update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
242 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
243 # Schedule next update |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
244 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
|
245 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
|
246 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
247 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
248 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
249 #------------------------------------------------------------------------- |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
250 # Script initialization |
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
251 #------------------------------------------------------------------------- |
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
252 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
253 if {![info exists weather_data]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
254 array set weather_data {} |
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 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
257 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
|
258 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
|
259 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
260 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
261 if {[info exists weather_running]} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
262 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
|
263 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
264 set weather_last -1 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
265 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
266 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
267 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
|
268 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
|
269 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
270 if {$weather_last < 0 || $weather_last > [expr $weather_check_period * 60]} { |
364
3b67c66fe0dc
weather: Add debugging prints.
Matti Hamalainen <ccr@tnsp.org>
parents:
360
diff
changeset
|
271 weather_log "Starting weather update timer." |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
272 weather_exec |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
273 } else { |
364
3b67c66fe0dc
weather: Add debugging prints.
Matti Hamalainen <ccr@tnsp.org>
parents:
360
diff
changeset
|
274 weather_log "Continuing weather updates." |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
275 weather_update |
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 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
278 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
279 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
280 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
|
281 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
|
282 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
|
283 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
|
284 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
|
285 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
|
286 global weather_msg_def_set weather_msg_def_not_set weather_msg_aliases |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
287 global weather_msg_usage_stations weather_msg_stations weather_msg_list_station |
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
288 global weather_msg_result |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
289 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
290 # Check and handle arguments |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
291 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
|
292 set rarg [lindex $rarglist 0] |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
293 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
294 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
|
295 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
|
296 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
297 } |
217
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
298 |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
299 if {$rarg == "asemat" || $rarg == "stations"} { |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
300 # List stations/locations matching the given pattern |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
301 if {[llength $rarglist] < 2} { |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
302 weather_usage $upublic $unick $uchan $weather_msg_usage_stations |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
303 return 0 |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
304 } |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
305 |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
306 set rarg [join [lrange $rarglist 1 end] " "] |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
307 set result {} |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
308 |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
309 foreach {ukey uvalue} [array get weather_data] { |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
310 if {![string match "w_*" $ukey] && [string match -nocase "*${rarg}*" $ukey]} { |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
311 lappend result [weather_get_str $uvalue $weather_msg_list_station] |
217
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
312 } |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
313 } |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
314 |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
315 set res [join $result " ; "] |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
316 weather_msg $upublic $unick $uchan $weather_msg_stations [list $res] |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
317 return 0 |
273
38a5bce4b078
weather: Move configuration to separate file.
Matti Hamalainen <ccr@tnsp.org>
parents:
248
diff
changeset
|
318 } elseif {$rarg == "vakio" || $rarg == "default" || $rarg == "vakiot" || $rarg == "defaults"} { |
217
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
319 # List or set the default weather station name patterns for this user |
67018e353536
weather: Add new sub-command for listing measurement stations matching given name pattern.
Matti Hamalainen <ccr@tnsp.org>
parents:
215
diff
changeset
|
320 |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
321 # 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
|
322 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
|
323 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
|
324 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
325 } |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
326 |
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 {[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
|
328 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
|
329 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
|
330 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
|
331 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
332 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
|
333 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
|
334 } |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
335 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
336 # 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
|
337 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
|
338 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
|
339 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
340 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
|
341 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
|
342 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
|
343 } else { |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
344 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
|
345 } |
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 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
348 } elseif {$rarg == "alias"} { |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
349 # 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
|
350 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
|
351 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
|
352 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
353 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
354 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
355 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
|
356 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
|
357 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
|
358 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
|
359 return 0 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
360 } |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
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 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
|
363 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
|
364 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
|
365 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
|
366 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
367 weather_save_aliases |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
368 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
|
369 } elseif {$rarg == "unalias"} { |
171
5434903331df
weather: Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents:
167
diff
changeset
|
370 # 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
|
371 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
|
372 weather_msg $upublic $unick $uchan $weather_msg_no_access |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
373 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
374 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
375 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
376 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
|
377 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
|
378 return 0 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
379 } |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
380 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
381 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
|
382 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
|
383 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
|
384 |
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
385 weather_save_aliases |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
386 return 0 |
174
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
387 } elseif {$rarg == "list"} { |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
388 # List all currently defined aliases |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
389 set ulist {} |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
390 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
|
391 lappend ulist "\002'$ukey' = '$uvalue'\002" |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
392 } |
d94be9a1be6a
weather: Add support for listing currently defined aliases.
Matti Hamalainen <ccr@tnsp.org>
parents:
173
diff
changeset
|
393 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
|
394 return 0 |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
395 } |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
396 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
397 # 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
|
398 set rargs [join $rarglist " "] |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
399 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
|
400 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
|
401 } |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
402 if {$rargs == ""} { |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
403 set rargs $weather_default_locations |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
404 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
405 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
406 # Handle argument list |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
407 set nresults 0 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
408 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
|
409 foreach rarg $rarglist { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
410 if {$rarg == "min"} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
411 # Min temp |
279
f6dc673adfa1
weather: Reorder some function arguments.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
412 set umin [weather_get_by_key "w_min"] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
413 weather_msg $upublic $unick $uchan "Min: $umin" |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
414 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
415 } elseif {$rarg == "max"} { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
416 # Max temp |
279
f6dc673adfa1
weather: Reorder some function arguments.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
417 set umax [weather_get_by_key "w_max"] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
418 weather_msg $upublic $unick $uchan "Max: $umax" |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
419 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
420 } 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
|
421 # Min & Max temps |
279
f6dc673adfa1
weather: Reorder some function arguments.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
422 set umin [weather_get_by_key "w_min"] |
f6dc673adfa1
weather: Reorder some function arguments.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
423 set umax [weather_get_by_key "w_max"] |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
424 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
|
425 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
426 } else { |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
427 # Location match |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
428 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
|
429 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
|
430 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
|
431 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
|
432 if {[llength $uvalue] > 0} { |
418
e904b453a06a
weather: Show weather station coordinates and Google Maps link in the station list search.
Matti Hamalainen <ccr@tnsp.org>
parents:
415
diff
changeset
|
433 weather_msg $upublic $unick $uchan [weather_get_str $uvalue $weather_msg_result] |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
434 incr nresults |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
435 } else { |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
436 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
|
437 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
438 incr ufound |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
439 } |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
440 |
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
441 # Check for results limit |
161
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
442 if {$nresults >= $weather_max_results} { |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
443 return 0 |
2c9db9a29429
weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents:
157
diff
changeset
|
444 } |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
445 } |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
446 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
447 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
|
448 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
|
449 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
450 } |
421
0f7524550aa2
weather: Cosmetics, stray whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
419
diff
changeset
|
451 |
163
bee5cd89d41c
weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents:
161
diff
changeset
|
452 # Check for results limit |
156
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
453 if {$nresults >= $weather_max_results} { |
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
454 return 0 |
a1f4c163e48c
weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents:
153
diff
changeset
|
455 } |
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 return 0 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
458 } |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
459 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
460 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
461 |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
462 #------------------------------------------------------------------------- |
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
463 proc weather_cmd_pub {unick uhost uhand uchan uargs} { |
220
03579553233b
weather: Add setting for specifying channels where weather commands are available.
Matti Hamalainen <ccr@tnsp.org>
parents:
218
diff
changeset
|
464 global weather_channels |
03579553233b
weather: Add setting for specifying channels where weather commands are available.
Matti Hamalainen <ccr@tnsp.org>
parents:
218
diff
changeset
|
465 |
344
25fc5a2b42ae
weather: Use utillib for matching enabled channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
335
diff
changeset
|
466 if {[utl_match_delim_list $weather_channels $uchan]} { |
25fc5a2b42ae
weather: Use utillib for matching enabled channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
335
diff
changeset
|
467 return [weather_cmd $unick $uhand $uchan $uargs 1] |
220
03579553233b
weather: Add setting for specifying channels where weather commands are available.
Matti Hamalainen <ccr@tnsp.org>
parents:
218
diff
changeset
|
468 } |
03579553233b
weather: Add setting for specifying channels where weather commands are available.
Matti Hamalainen <ccr@tnsp.org>
parents:
218
diff
changeset
|
469 |
03579553233b
weather: Add setting for specifying channels where weather commands are available.
Matti Hamalainen <ccr@tnsp.org>
parents:
218
diff
changeset
|
470 return 0 |
153
8b888a9f07df
New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
471 } |
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 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
|
475 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
|
476 } |
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 # end of script |