phantomjs/examples/weather.js

43 lines
1.6 KiB
JavaScript

if (phantom.state.length === 0) {
var city = 'Mountain View';
if (phantom.args.length > 0) {
city = phantom.args.join(' ');
}
phantom.state = city;
console.log('Loading ' + city);
phantom.open(encodeURI('http://www.google.com/ig/api?weather=' + city));
} else {
if (phantom.loadStatus === 'fail') {
console.log('Unable to access network');
} else {
if (document.querySelectorAll('problem_cause').length > 0) {
console.log('No data available for ' + phantom.state);
} else {
function data (s, e) {
var el;
e = e || document;
el = e.querySelector(s);
return el ? el.attributes.data.value : undefined;
};
console.log('');
console.log('City: ' + data('weather > forecast_information > city'));
console.log('Current condition: ' + data('weather > current_conditions > condition'));
console.log('Temperature: ' + data('weather > current_conditions > temp_f') + ' F');
console.log(data('weather > current_conditions > humidity'));
console.log(data('weather > current_conditions > wind_condition'));
console.log('');
var forecasts = document.querySelectorAll('weather > forecast_conditions');
for (var i = 0; i < forecasts.length; ++i) {
var f = forecasts[i];
console.log(data('day_of_week', f) + ': ' +
data('low', f) + '-' + data('high', f) + ' F ' +
data('condition', f));
}
}
}
phantom.exit();
}