annotate weather.tcl @ 167:3a375ee7c106

weather: More flexible data handling.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 02 Jun 2014 21:43:46 +0300
parents ff64ef21c20d
children 5434903331df
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 #
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 # Weather v0.1 by Matti 'ccr' Hamalainen <ccr@tnsp.org>
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 #
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 # Requires get_weather.tcl to be run as a cronjob, for example
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 # 15 * * * * /absolute/path/to/get_weather.tcl
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
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 set weather_default_locations "raahe"
157
c8fa73ba67da weather: Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 156
diff changeset
14
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
15 set weather_datafile "/home/niinuska/bot/weather.data"
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
16 set weather_aliasfile "/home/niinuska/bot/weather.alias"
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
17 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
18
156
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
19 set weather_max_results 3
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
20
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 set weather_logmsg 1
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 set weather_preferredmsg "PRIVMSG"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24
157
c8fa73ba67da weather: Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 156
diff changeset
25 ###
c8fa73ba67da weather: Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 156
diff changeset
26 ### Messages
c8fa73ba67da weather: Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 156
diff changeset
27 ###
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
28 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
29 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
30
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
31 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
32 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
33 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
34
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
35 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
36
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_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
38 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
39 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
40
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_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
42 set weather_msg_unaliased "Unaliasoitiin \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
43
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 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
45 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
46
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
47
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_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
49 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
50
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 ##########################################################################
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 # 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
54 ##########################################################################
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 set weather_name "Weather"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 set weather_version "0.1"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 ### 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
59 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
60 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
61 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
62 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
63
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 ### Initialization messages
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 package require textutil::split
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 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
68 putlog "$weather_message"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 #-------------------------------------------------------------------------
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 proc weather_log {arg} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 global weather_logmsg weather_name
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 if {$weather_logmsg != 0} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 putlog "$weather_name: $arg"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79
163
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_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
81 global weather_preferredmsg
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82 if {$apublic == 1} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 putserv "$weather_preferredmsg $achan :$amsg"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 } else {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 putserv "$weather_preferredmsg $anick :$amsg"
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 }
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
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
90 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
91 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
92 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
93 foreach aline [split $amsg "\n"] {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
94 if {$nline == 0} {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
95 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
96 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
97 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
98 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
99 incr nline
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
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
104 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
105 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
106 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
107 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
108 incr narg
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 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
111 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
112
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
113
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 proc weather_ctime {utime} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 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
116 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
119 proc weather_valid_user {uhand} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
120 if {$uhand != "" && $uhand != "{}" && $uhand != "*"} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
121 return 1
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
122 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
123 return 0
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
124 }
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
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
127 #-------------------------------------------------------------------------
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
128 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
129 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
130
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
131 # Create dict
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
132 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
133 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
134
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
135 # Read datafile
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
136 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
137 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
138 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
139 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
140 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
141 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
142 }
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 close $ufile
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
145 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
146 weather_log "Could not open data file: $uerrmsg"
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
147 }
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
148 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
149
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
150
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
151 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
152 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
153
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
154 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
155 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
156 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
157 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
158 close $ufile
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
159 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
160 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
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
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
165 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
166 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
167 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
168 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
169 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
170 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
171 return $uname
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
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
175 #-------------------------------------------------------------------------
167
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
176 proc weather_item {udata uindex ufmt} {
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
177 if {[llength $udata] > $uindex && [lindex $udata $uindex] != ""} {
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
178 set utmp [lindex $udata $uindex]
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
179 return [string map [list "@@" $utmp] $ufmt]
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
180 }
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
181 return ""
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
182 }
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
183
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
184 proc weather_get_data {ukey udata} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
185 set str "\002[lindex $udata 0]\002, mitattu klo [weather_ctime [lindex $udata 1]]: \002[lindex $udata 2]°C\002"
167
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
186 append str [weather_item $udata 4 ", @@"]
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
187 append str [weather_item $udata 5 ", kosteus \002@@%\002"]
3a375ee7c106 weather: More flexible data handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 165
diff changeset
188 append str [weather_item $udata 3 ", tien pinta @@°C"]
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
189 return "${str}."
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
190 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
191
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
192
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
193 proc weather_get_key {ukey} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
194 global weather_data
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
195 return [weather_get_data $ukey $weather_data($ukey)]
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
196 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
197
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
198
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
199 #-------------------------------------------------------------------------
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
200 proc weather_update {} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
201 global weather_datafile weather_data
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
202
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
203 # Create dict
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
204 array unset weather_data
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
205 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
206
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
207 set wtemp_min_val 500000
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
208 set wtemp_max_val -500000
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
209 set wtemp_min_key ""
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
210 set wtemp_max_key ""
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
211
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
212 # Read datafile
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
213 if {![catch {set ufile [open $weather_datafile r 0600]} uerrmsg]} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
214 while {![eof $ufile]} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
215 gets $ufile uline
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
216 set udata [split $uline "|"]
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
217 if {[llength $udata] > 0} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
218 set utemp [lindex $udata 2]
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
219 set ukey [lindex $udata 0]
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
220
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
221 set weather_data($ukey) $udata
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
222
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
223 if {[string is double -strict $utemp]} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
224 if {$utemp < $wtemp_min_val} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
225 set wtemp_min_key $ukey
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
226 set wtemp_min_val $utemp
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
227 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
228 if {$utemp > $wtemp_max_val} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
229 set wtemp_max_key $ukey
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
230 set wtemp_max_val $utemp
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
231 }
153
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 close $ufile
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
236
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
237 # Store min/max
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
238 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
239 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
240 } else {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
241 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
242 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
243 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
244
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
245
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 proc weather_exec {} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
248 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
249
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
250 # Perform update
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
251 weather_update
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 # Schedule next update
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
254 set weather_running [clock seconds]
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
255 timer $weather_check_period weather_update
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
256 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
257
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
258
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
259 #-------------------------------------------------------------------------
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
260 if {![info exists weather_data]} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
261 array set weather_data {}
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
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
264 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
265 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
266 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
267
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
268 if {[info exists weather_running]} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
269 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
270 } else {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
271 set weather_last -1
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
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
274 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
275 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
276
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
277 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
278 weather_log "Starting weather update."
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
279 weather_exec
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
280 } else {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
281 weather_update
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
282 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
283
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
284
153
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 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
287 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
288 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
289 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
290 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
291 global weather_msg_aliased weather_msg_unaliased weather_msg_no_access
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
292 global weather_msg_def_set weather_msg_def_not_set
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
293
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
294 # Check and handle arguments
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
295 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
296 set rarg [lindex $rarglist 0]
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
297
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
298 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
299 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
300 return 0
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
301 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
302
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
303 # Setting the location
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
304 if {$rarg == "vakio" || $rarg == "default" || $rarg == "vakiot"} {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
305 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
306 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
307 return 0
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
308 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
309
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
310 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
311 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
312 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
313 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
314 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
315 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
316 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
317 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
318 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
319 # 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
320 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
321 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
322
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
323 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
324 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
325 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
326 } else {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
327 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
328 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
329 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
330 return 0
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
331 } elseif {$rarg == "alias"} {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
332 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
333 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
334 return 0
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
335 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
336
163
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*}]
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
338 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
339 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
340 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
341 return 0
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
342 }
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
343
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
344 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
345 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
346 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
347 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
348
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
349 weather_save_aliases
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
350 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
351 } elseif {$rarg == "unalias"} {
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
352 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
353 weather_msg $upublic $unick $uchan $weather_msg_no_access
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
354 return 0
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
355 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
356
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 $rarglist] < 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_unalias
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
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
360 }
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
361
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 $rarglist 1]
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
363 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
364 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
365
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
366 weather_save_aliases
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
367 return 0
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
368 }
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
369
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
370 # 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
371 set rargs [join $rarglist " "]
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
372 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
373 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
374 }
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
375 if {$rargs == ""} {
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
376 set rargs $weather_default_locations
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
377 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
378
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
379 # Handle argument list
156
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
380 set nresults 0
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
381 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
382 foreach rarg $rarglist {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
383 if {$rarg == "min"} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
384 # Min temp
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
385 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
386 weather_msg $upublic $unick $uchan "Min: $umin"
156
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
387 incr nresults
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
388 } elseif {$rarg == "max"} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
389 # Max temp
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
390 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
391 weather_msg $upublic $unick $uchan "Max: $umax"
156
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
392 incr nresults
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
393 } 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
394 # Min & Max temps
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
395 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
396 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
397 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
398 incr nresults
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
399 } else {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
400 # Location match
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
401 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
402 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
403 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
404 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
405 if {[llength $uvalue] > 0} {
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
406 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
407 incr nresults
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
408 } else {
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
409 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
410 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
411 incr ufound
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
412 }
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
413
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
414 # Check for results limit
161
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
415 if {$nresults >= $weather_max_results} {
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
416 return 0
2c9db9a29429 weather: More work, bugfixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 157
diff changeset
417 }
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
418 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
419
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
420 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
421 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
422 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
423 }
163
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
424
bee5cd89d41c weather: Moar work on getting the frontend script code up and running.
Matti Hamalainen <ccr@tnsp.org>
parents: 161
diff changeset
425 # Check for results limit
156
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
426 if {$nresults >= $weather_max_results} {
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
427 return 0
a1f4c163e48c weather: Add max results limit.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
428 }
153
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
429 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
430 return 0
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
431 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
432
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
433
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
434
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
435 #-------------------------------------------------------------------------
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
436 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
437 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
438 }
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
439
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
440 #-------------------------------------------------------------------------
8b888a9f07df New script, weather.tcl. Needs backend stuff to be implemented.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
441 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
442 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
443 }
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 # end of script