123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- function get() {
- let result = new Promise((resolve, reject) => {
- request = new XMLHttpRequest();
- request.open('GET', 'https://raw.githubusercontent.com/David-Haim/CountriesToCitiesJSON/master/countriesToCities.json', true);
- request.onreadystatechange = function(){
- if (request.readyState != 4){
- return;
- }
- if (request.status == 200){
- resolve(request);
- }
- else {
- reject(request);
- }
- }
- request.send();
- })
- return result;
- }
- get()
- .then(
- response => {
- var data = JSON.parse(response.responseText);
- for(key in data) {
- let option = document.createElement("option");
- option.innerText = key;
- country.appendChild(option);
- }
- country.onchange = function() {
- let currentKey = country.value;
- city.innerHTML = "";
- for(let i = 0; i < data[currentKey].length; i++) {
- let option = document.createElement("option");
- option.innerText = data[currentKey][i];
- city.appendChild(option);
- }
- city.onchange();
- }
- },
- error => {
- console.log("Rejected 1");
- }
- )
- city.onchange = function() {
- new Promise((resolve, reject) => {
- let currentCity = city.value;
- request = new XMLHttpRequest();
- request.open('GET', "https://query.yahooapis.com/v1/public/yql?" + 'q=' + encodeURIComponent("select * from weather.forecast where woeid in (select woeid from geo.places(1) where text='" + currentCity + "') and u='c'") + '&format=json', true);
- request.onreadystatechange = function() {
- if(request.readyState != 4) {
- return;
- }
- if(request.status == 200) {
- resolve(request);
- }
- else {
- reject(request);
- }
- }
-
- request.send();
- }).then(
- response => {
- let city = (this.value);
- let base_URL = 'https://query.yahooapis.com/v1/public/yql?q=';
- let yql_query = 'select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.' +
- 'places(1)%20where%20text%3D%22';
- let yql_query_final = base_URL + yql_query + city + "%22)&format=json&env=store%3A%2F%2Fdatatables." +
- "org%2Falltableswithkeys";
- $.get(yql_query_final, function (data) {
- let loc = data.query.results.channel.location.city;
- let country = data.query.results.channel.location.country;
- let temp = Math.round((data.query.results.channel.item.condition.temp - 32) / 1.8).toFixed(1);
- let wind = (data.query.results.channel.wind.speed*0.44704).toFixed (2);
- let presure = (data.query.results.channel.atmosphere.pressure/1.3378).toFixed(2);
- let humidity = data.query.results.channel.atmosphere.humidity;
- document.getElementById("location").innerHTML = loc + ', ' + country;
- document.getElementById("temp").innerHTML = temp + ' °C';
- document.getElementById("wind").innerHTML = wind + ' м/с';
- document.getElementById("bar").innerHTML = presure + ' мм';
- document.getElementById("humidity").innerHTML = humidity + ' %';
- })
- },
- error => {
- console.log("Rejected 2");
- }
- )
- };
|