Статті: ODE випадково згадав про таку річ як userscripts

13.09.2014

Якщо комусь хочеться легко й невимушено завантажувати сюди дані з PPM, потрібно:

  • додати розширення браузера для userscripts (я особисто користуюся зараз Tampermonkey, також ставив Greasemonkey, але є й інші варіанти)
  • інсталювати цей сценарій — http://ukrainiansideofppm.is-best.net/db/ppm2ntdb.user.js

Код версії 0.1:

$(function() {
    // Визначення виду спорту, щоб звернутися до правильного файлу на сайті NTDB
    var sport = ''
    var tmp = {
        hockey   :   $('[href*=hockey]').length,
        football :   $('[href*=soccer]').length,
        handball :   $('[href*=handball]').length,
        basketball : $('[href*=basketball]').length,
    }
    
    var tmp_arr = Object.keys( tmp ).map(function ( key ) { return tmp[key] })
    var tmp_max = Math.max.apply( null, tmp_arr )
    
    if (tmp_max > 3) {
        $.each(Object.keys(tmp), function(i, key) {
            if (tmp_max == tmp[key]) {
                sport = key
                return false
            }
        })
    }
    
    if (sport) {
        // Визначення типу сторінки, щоб знати, чи потрібно дозволити завантаження цієї сторінки (чи потрібно показати кнопку завантаження)
        var pagetype = ''
        if 		($('.profile_player_right').length) 							pagetype = 'player-profile'		// Профіль гравця 
        else if ($('.facility').length) 										pagetype = 'team-facilities'	// Споруди команди
        else if ($('.ppm_menu_top_profil_name a[href*=national-team]').length)	pagetype = 'nt-players'			// Збірна — гравці
        else if ($('img[src*=captain_yes]').length)								pagetype = 'team-players'		// Команда — гравці
        
        if (pagetype) {
            // Кнопка запуску завантаження
            var html = '<input id="ode-btn-ppm2ntdb-upload" style="position: fixed; right: 10px; top: 10px; opacity: 0.5; z-index: 2;" type="button" value="Upload to NTDB" />'
            $('body').append(html)
            $('#ode-btn-ppm2ntdb-upload').hover(function(e) { $(this).css('opacity', e.type === "mouseenter" ? 1 : 0.5)})
$('#ode-btn-ppm2ntdb-upload').click(function() { $('#ode-btn-ppm2ntdb-upload').hide() var responseMsg = '' var jqxhr = $.post( "http://ukrainiansideofppm.is-best.net/ntdb/" + sport + ".php?do=upload&ajax=1", { gamepage: $("html").html(), action: 'upload' }, function(response) { var msgWrapper = $(response).find('.msgbox_error') // це у мене клас для будь-якого повідомлення (байдуже, про успіх чи про помилку) if (msgWrapper) { // Відповідь прийде мовою, рекомендованою браузером (якщо це укр. або рос.), або англійською responseMsg = $(msgWrapper).text() } else { // На випадок, якщо повідомлення про успіх/помилку у відповіді сервера NTDB не буде responseMsg = 'Something went wrong' } }) .done(function() { alert('Response: ' + responseMsg) }) .fail(function() { alert( "Upload error" ) }) .always(function() { $('#ode-btn-ppm2ntdb-upload').fadeIn() }) }) } } })