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

From Caiyun Wiki
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
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 = {
 
    '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>";
 
}
 
 
function poetryBuilder(lines) {
 
    return function(translations) {
 
        var result = "<link href='https://fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css'><div class='card'>";
 
        for(var idx in translations) {
 
            var o = lines[idx];
 
            var t = translations[idx];
 
            result = result + "<div>" + o + "</div>" + "<div>" + t + "</div>";
 
        }
 
        result = result + "</div>";
 
        $('.poetry').html(result);
 
    }
 
}
 
 
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, poetryBuilder(response));
 
    }
 
});
 

Latest revision as of 08:44, 23 January 2019

//  _________________________________________________________________________________________
// |                                                                                         |
// |                    === 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. |
// |_________________________________________________________________________________________|
//