NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Wofh attack export // @namespace https://ru.waysofhistory.com/ // @version 0.1 // @description Export attack list to Google // @author simplexe // @match https://*.waysofhistory.com/gen/html/* // @grant unsafeWindow // @license MIT // ==/UserScript== (function() { 'use strict'; var $ = unsafeWindow.jQuery; if (!$) { return; } var global = unsafeWindow; if (!unsafeWindow.vArmy) { if (global.console) { global.console.log('Unknown window'); } return; } var playerName = ''; var currentHost = ''; insertButtons(); function _setValue(key, value) { window.localStorage.setItem(key + '_' + playerName + '_' + currentHost, value); } function _getValue(key, defaultValue) { var itm = window.localStorage.getItem(key + '_' + playerName + '_' + currentHost); return itm != null ? itm == 'false' ? false : itm : defaultValue; } function getActiveWindow() { var aWindow = global.wndMgr.getActiveWnd(); if (aWindow && aWindow.name === "army") { return aWindow; } else { return null; } } function loadGoogleKey() { var aWindow = getActiveWindow(); if (!aWindow) { if (global.console) { global.console.log('Unknown window'); } return; } return _getValue('key', ''); } function loadGoogleEntry() { var aWindow = getActiveWindow(); if (!aWindow) { if (global.console) { global.console.log('Unknown window'); } return; } return _getValue('entry', ''); } function checkGoogleKey() { playerName = wofh.account.name; currentHost = location.host; if (playerName.length < 1 && currentHost.length < 1) { return; } var keyGoogle = loadGoogleKey(); if (keyGoogle.length > 0) { $('.attack-key-export-input').val(keyGoogle); } var curAttack = getAttack(); if (curAttack.length > 1) { $('.attack-export-btn').removeClass('-disabled') } } function checkGoogleID() { if (playerName.length < 1 && currentHost.length < 1) { return; } var idGoogle = loadGoogleEntry(); var keyGoogle = loadGoogleKey(); if (idGoogle.length > 0) { $('.attack-entry-export-input').val(idGoogle); } var curAttack = getAttack(); if (curAttack.length > 2 && keyGoogle.length > 0) { $('.attack-export-btn').removeClass('-disabled') } } function getAttack() { var attack = JSON.stringify(wofh.events.list.filter(function(o){return 101==o.type}).map(function(o){return{id:o.id,speed:o.data.speed,start:o.start,arrival:o.time,atid:o.town1,dtid:o.town2,atname:wofh.world.towns[o.town1].name,aaname:wofh.world.towns[o.town1].account.name,aaid:wofh.world.towns[o.town1].account.id,acid:wofh.world.towns[o.town1].country,dtname:wofh.world.towns[o.town2].name,daname:wofh.world.towns[o.town2].account.name,daid:wofh.world.towns[o.town2].account.id,dcid:wofh.world.towns[o.town2].country}})); return attack; } function saveGoogleKey() { if ($('.attack-key-save-btn').hasClass('-disabled')) { return; } var aWindow = getActiveWindow(); if (!aWindow) { alert("Unknown window"); return; } _setValue('key', $('.attack-key-export-input').val()); $('.attack-key-save-btn').addClass('-disabled'); } function saveGoogleID() { if ($('.attack-entry-save-btn').hasClass('-disabled')) { return; } var aWindow = getActiveWindow(); if (!aWindow) { alert("Unknown window"); return; } _setValue('entry', $('.attack-entry-export-input').val()); $('.attack-entry-save-btn').addClass('-disabled'); } function toGoogle() { if ($('.attack-export-btn').hasClass('-disabled')) { return; } var aWindow = getActiveWindow(); if (!aWindow) { alert("Unknown window"); return; } var curAttack = getAttack(); var key = loadGoogleKey(); var entry = loadGoogleEntry(); if (curAttack.length < 3 && key.length < 1 && entry.length < 1) { return; } $.ajax({ url: 'https://docs.google.com/forms/d/e/' + key + '/formResponse', data: { [entry] : curAttack }, type: 'POST', dataType: 'xml', success: function(data, textStatus, XMLHttpRequest) { console.log('success'); console.log(data); }, error: function(XMLHttpRequest, textStatus, errorThrown) { console.log('error'); console.log(textStatus); }, }); alert ("Выгружено!"); } // div with stuff function addHTML() { var exportAttackContainer = $('.page_army').parent(); if (exportAttackContainer.length > 0) { if (exportAttackContainer.find('.attack-export').length === 0) { exportAttackContainer.prepend($('<div class="page_army_u_cont attack-export"/>')); exportAttackContainer.find('.attack-export').append($('<table class="attack-export-table"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-key-td-p"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-key-td-input"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-key-td-span"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-key-td-save-btn"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-entry-td-p"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-entry-td-input"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-entry-td-span"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-entry-td-save-btn"/>')); exportAttackContainer.find('.attack-export-table').append($('<td class="attack-td-export-btn"/>')); exportAttackContainer.find('.attack-key-td-p').append($('<p class="attack-key-export-p"/>').text('Ключ')); exportAttackContainer.find('.attack-key-td-input').append($('<input type=text class="attack-key-export-input"/>')); exportAttackContainer.find('.attack-key-td-span').append($('<span class="helpIcon attack-key-export-span"/>').attr('data-title', "Вставьте ключ вашей формы атак Google")); exportAttackContainer.find('.attack-key-td-save-btn').append($('<button class="button1 attack-key-save-btn -disabled"/>').attr('style','bottom: 12px;').text('Сохранить').on('click', saveGoogleKey)); exportAttackContainer.find('.attack-entry-td-p').append($('<p class="attack-entry-export-p"/>').text('ID')); exportAttackContainer.find('.attack-entry-td-input').append($('<input type=text class="attack-entry-export-input"/>')); exportAttackContainer.find('.attack-entry-td-span').append($('<span class="helpIcon attack-entry-export-span"/>').attr('data-title', "Вставьте ID вашей формы атак Google")); exportAttackContainer.find('.attack-entry-td-save-btn').append($('<button class="button1 attack-entry-save-btn -disabled"/>').attr('style','bottom: 12px;').text('Сохранить').on('click', saveGoogleID)); exportAttackContainer.find('.attack-td-export-btn').append($('<button class="button1 attack-export-btn"/>').attr('style','bottom: 12px;').text('Выгрузить').on('click', toGoogle)); exportAttackContainer.find('.attack-key-export-input').on('input', function() {$('.attack-key-save-btn').removeClass('-disabled');}); exportAttackContainer.find('.attack-entry-export-input').on('input', function() {$('.attack-entry-save-btn').removeClass('-disabled');}); } } } function insertButtons() { var orig = tblArmyOper.prototype.afterShow; tblArmyOper.prototype.afterShow = function () { orig.apply(this, arguments); addHTML(); checkGoogleKey(); checkGoogleID(); }; if (global.console) { global.console.log('Done!'); } } })();