Skip to content

Commit f150341

Browse files
committed
weather updated every 30 minutes
1 parent 87692cb commit f150341

File tree

2 files changed

+30
-29
lines changed

2 files changed

+30
-29
lines changed

src/Indicator.vala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,14 @@ public class Weather.Indicator : Wingpanel.Indicator {
8585
}
8686

8787
private async void monitor_weather() {
88-
get_weather(30 ,"",key, display_widget);
89-
88+
//Fetch Report every 30 Minutes
89+
//TODO: Should be read from configuration file
90+
get_weather("",key, display_widget);
91+
GLib.Timeout.add_seconds (1800, () => {
92+
get_weather("",key, display_widget);
93+
return true;
94+
},GLib.Priority.DEFAULT);
95+
yield;
9096
}
9197

9298
public void connections () {}

src/lib/Weather.vala

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ string get_ip(Soup.Session session) {
1616

1717
}
1818

19-
async void get_weather(uint interval, string location, string secret_key, Weather.Widgets.DisplayWidget display_widget) {
19+
async void get_weather(string location, string secret_key, Weather.Widgets.DisplayWidget display_widget) {
2020

2121
//Init the session.
2222
var session = new Soup.Session ();
@@ -27,8 +27,6 @@ string get_ip(Soup.Session session) {
2727
string uri = "https://api.darksky.net/forecast/" + secret_key + "/";
2828

2929

30-
31-
GLib.Timeout.add_seconds (interval, () => {
3230
// Get Location.
3331
double lat=0, lon=0;
3432
var query_location = new Soup.Message ("GET", loc_uri);
@@ -53,33 +51,30 @@ string get_ip(Soup.Session session) {
5351
}
5452

5553

56-
var weather_uri = uri + lat.to_string() + "," + lon.to_string();
57-
var message = new Soup.Message ("GET", weather_uri);
58-
session.send_message (message);
54+
var weather_uri = uri + lat.to_string() + "," + lon.to_string();
55+
var message = new Soup.Message ("GET", weather_uri);
56+
session.send_message (message);
57+
5958

59+
try {
60+
var parser = new Json.Parser ();
6061

61-
try {
62-
var parser = new Json.Parser ();
62+
parser.load_from_data ((string) message.response_body.flatten().data, -1);
63+
64+
var root_object = parser.get_root ().get_object ();
65+
var currently = root_object.get_object_member ("currently");
66+
var summary = currently.get_string_member ("summary");
67+
var temp = currently.get_double_member("temperature");
6368

64-
parser.load_from_data ((string) message.response_body.flatten().data, -1);
65-
66-
var root_object = parser.get_root ().get_object ();
67-
var currently = root_object.get_object_member ("currently");
68-
var summary = currently.get_string_member ("summary");
69-
var temp = currently.get_double_member("temperature");
70-
71-
stderr.printf("current : %s\n", summary);
72-
info.short_discription = summary;
73-
info.temperature = temp;
74-
75-
76-
} catch (Error e) {
77-
stderr.printf ("I guess something is not working... %s \n", e.message);
78-
}
79-
display_widget.update_state(info.short_discription,info.temperature);
80-
return false;
81-
},GLib.Priority.DEFAULT);
82-
yield;
69+
stderr.printf("current : %s\n", summary);
70+
info.short_discription = summary;
71+
info.temperature = temp;
72+
73+
74+
} catch (Error e) {
75+
stderr.printf ("I guess something is not working... %s \n", e.message);
76+
}
77+
display_widget.update_state(info.short_discription,info.temperature);
8378

8479
return;
8580
}

0 commit comments

Comments
 (0)