@@ -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