[libgweather] Switch to new METAR data provider
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgweather] Switch to new METAR data provider
- Date: Mon, 29 Aug 2016 00:08:56 +0000 (UTC)
commit 283afc2d23355def1c1bab70a641f40cea52ba7f
Author: Frank Dana <ferdnyc gmail com>
Date: Wed Aug 24 19:19:00 2016 -0700
Switch to new METAR data provider
NOAA shut down their METAR service, so we need to switch to their
recommended service, aviationweather.gov, for our data.
https://bugzilla.gnome.org/show_bug.cgi?id=770321
libgweather/weather-metar.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/libgweather/weather-metar.c b/libgweather/weather-metar.c
index 2263b82..9d782da 100644
--- a/libgweather/weather-metar.c
+++ b/libgweather/weather-metar.c
@@ -580,7 +580,7 @@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
loc = &priv->location;
- searchkey = g_strdup_printf ("\n%s", loc->code);
+ searchkey = g_strdup_printf ("<raw_text>%s", loc->code);
p = strstr (msg->response_body->data, searchkey);
g_free (searchkey);
if (p) {
@@ -592,8 +592,8 @@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
metar = g_strdup (p);
success = metar_parse (metar, info);
g_free (metar);
- } else if (!strstr (msg->response_body->data, "National Weather Service")) {
- /* The response doesn't even seem to have come from NWS...
+ } else if (!strstr (msg->response_body->data, "aviationweather.gov")) {
+ /* The response doesn't even seem to have come from NOAA...
* most likely it is a wifi hotspot login page. Call that a
* network error.
*/
@@ -620,8 +620,14 @@ metar_start_open (GWeatherInfo *info)
loc = &priv->location;
msg = soup_form_request_new (
- "GET", "http://weather.noaa.gov/mgetmetar.php",
- "cccc", loc->code,
+ "GET", "https://www.aviationweather.gov/adds/dataserver_current/httpparam",
+ "dataSource", "metars",
+ "requestType", "retrieve",
+ "format", "xml",
+ "hoursBeforeNow", "3",
+ "mostRecent", "true",
+ "fields", "raw_text",
+ "stationString", loc->code,
NULL);
_gweather_info_begin_request (info, msg);
soup_session_queue_message (priv->session, msg, metar_finish, info);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]