Difference between revisions of "MediaWiki:Gadget-site.js"

From Caiyun Wiki
Jump to: navigation, search
Line 6: Line 6:
 
// |_________________________________________________________________________________________|
 
// |_________________________________________________________________________________________|
 
//
 
//
 +
 +
function translate(texts, func, direction) {
 +
direction = direction || 'en2zh';
 +
 +
var url = "https://api.interpreter.caiyunai.com/v1/translator";
 +
 +
var headers = {
 +
"content-type": "application/json",
 +
"X-Authorization": "token o4msd3dw3q6rh3bcdrm1",
 +
};
 +
 +
var replaced_config = {
 +
"per": {"replaced": true, "replaced_before_rnn": false},
 +
"num": {"replaced": false, "replaced_before_rnn": false},
 +
"loc": {"replaced": false, "replaced_before_rnn": false},
 +
"noun": {"replaced": false, "replaced_before_rnn": false},
 +
"addition": {"replaced": true, "replaced_before_rnn": false}
 +
};
 +
 +
var payload = {
 +
"source": texts,
 +
"trans_type": direction, "cached": false,
 +
"replaced_config": replaced_config,
 +
"request_id": "web-translate",
 +
"url": 'https://apidocs.caiyunapp.com'
 +
};
 +
 +
$.post({
 +
"url": url,
 +
"headers": headers,
 +
"data": JSON.stringify(payload),
 +
"dataType": "json",
 +
"success": function (data, textStatus, jqXHR) {
 +
var translations = data["target"];
 +
try {
 +
func(translations);
 +
} catch (e) {
 +
console.log(e);
 +
//throw e; // intentionally re-throw (caught by window.onerror)
 +
}
 +
},
 +
});
 +
}
  
 
var skyconword = {
 
var skyconword = {
Line 49: Line 92:
 
     "dataType": "json",
 
     "dataType": "json",
 
     "success": function( response ) {
 
     "success": function( response ) {
         console.log(response);
+
         translate(response, console.log);
 
     }
 
     }
 
});
 
});

Revision as of 08:04, 31 August 2018

//  _________________________________________________________________________________________
// |                                                                                         |
// |                    === WARNING: GLOBAL GADGET FILE ===                                  |
// |                  Changes to this page affect many users.                                |
// | Please discuss changes on the talk page or on [[Wikipedia_talk:Gadget]] before editing. |
// |_________________________________________________________________________________________|
//

function translate(texts, func, direction) {
	direction = direction || 'en2zh';

	var url = "https://api.interpreter.caiyunai.com/v1/translator";

	var headers = {
		"content-type": "application/json",
		"X-Authorization": "token o4msd3dw3q6rh3bcdrm1",
	};

	var replaced_config = {
		"per": {"replaced": true, "replaced_before_rnn": false},
		"num": {"replaced": false, "replaced_before_rnn": false},
		"loc": {"replaced": false, "replaced_before_rnn": false},
		"noun": {"replaced": false, "replaced_before_rnn": false},
		"addition": {"replaced": true, "replaced_before_rnn": false}
	};

	var payload = {
		"source": texts,
		"trans_type": direction, "cached": false,
		"replaced_config": replaced_config,
		"request_id": "web-translate",
		"url": 'https://apidocs.caiyunapp.com'
	};

	$.post({
		"url": url,
		"headers": headers,
		"data": JSON.stringify(payload),
		"dataType": "json",
		"success": function (data, textStatus, jqXHR) {
			var translations = data["target"];
			try {
				func(translations);
			} catch (e) {
				console.log(e);
				//throw e; // intentionally re-throw (caught by window.onerror)
			}
		},
	});
}

var skyconword = {
    'RAIN': 'rain',
    'SNOW': 'snow',
    'HAZE': 'fog',
    'WIND': 'wind',
    'CLOUDY': 'cloudy',
    'PARTLY_CLOUDY_DAY': 'partly cloudy',
    'PARTLY_CLOUDY_NIGHT': 'partly cloudy',
    'CLEAR_DAY': 'clear',
    'CLEAR_NIGHT': 'clear',
};

function buildTianqi(placename, skycon, temp) {
    var desc = skyconword[skycon];
    return "<link href='https://fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css'><div class='card'><div class='city'>" + placename + "</div><div class='temp'>" + temp + "&#176;C</div><div class='skycon'>" + desc + "</div></div>";
}

var latlng = $('.tianqi').text();
var pair = latlng.split(',');
var lat = pair[0], lng = pair[1];

var url = 'https://api.caiyunapp.com/v2/5AoOwKgLgmqmy=2i/' + lng + ',' + lat + '/weather.jsonp';

$.ajax({
    "url": url,
    "jsonp": "callback",
    "dataType": "jsonp",
    "data": {
        "getplacename": "True",
        "lang": "en"
    },
    "success": function( response ) {
        $('.tianqi').html(buildTianqi(response.placename, response.result.realtime.skycon, response.result.realtime.temperature));
    }
});


var url = 'http://apidocs.caiyunapp.com/poetry';
$.ajax({
    "url": url,
    "dataType": "json",
    "success": function( response ) {
        translate(response, console.log);
    }
});