🏠 Home 

Greasy Fork is available in English.

GN_ShowLastTask

Показ последнего задания такого типа

// ==UserScript==
// @name        GN_ShowLastTask
// @namespace   Gradient
// @description Показ последнего задания такого типа
// @include     /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15)\/mercenary_guild\.php/
// @version     1.0.4
// ==/UserScript==
"use strict";
//----------------------------------------------------------------------------//
var script_name = 'GN_ShowLastTask'; // Enter your script name here
//----------------------------------------------------------------------------//
(function(){ try{ // wrapper start
//----------------------------------------------------------------------------//
// UnifiedLibrary 1.7.0 start
//----------------------------------------------------------------------------//
//----------------------------------------------------------------------------//
// SysUtils
//----------------------------------------------------------------------------//
var GN_SysUtils = new SysUtils(script_name);
var SU = GN_SysUtils;
//----------------------------------------------------------------------------//
function SysUtils(name){  // wrapper start
//----------------------------------------------------------------------------//
this.show_error = function(error_string, use_alert){
if(use_alert)
alert(error_string);
throw new Error(error_string);
};
if(arguments.length != 1)
this.show_error('Wrong SysUtils arguments');
if(!arguments[0])
this.show_error('Empty SysUtils argument');
//----------------------------------------------------------------------------//
this.load_value = function(value, def){
var div = document.getElementById('GN_GM_Handler');
div.setAttribute('desc',      value);
div.setAttribute('operation', 'load');
div.click();
if(div.getAttribute('state') != 'complete')
this.show_error('Ошибка при загрузке значения');
return (div.getAttribute('is_null') == 'true' ? def : div.getAttribute('value'));
};
//----------------------------------------------------------------------------//
var current_id = null;
this.current_id = function(){
return current_id;
};
//----------------------------------------------------------------------------//
function check_mandatory_scripts(alerter){
var persistent_storage_sign = document.getElementById('GN_GM_Handler');
var common_values_sign      = document.getElementById('GN_CommonValuesSign');
var alert_sign              = document.getElementById('GN_AlertSign');
if(!alert_sign){
alert_sign = document.createElement('div');
alert_sign.id = 'GN_AlertSign';
alert_sign.setAttribute('alerted', 'false');
document.body.appendChild(alert_sign);
}
var alerted = alert_sign.getAttribute('alerted') != 'false';
if(!persistent_storage_sign){
alert_sign.setAttribute('alerted', 'true');
alerter('Скрипт ' + name + ' требует для своей работы скрипт управления данными (GN_PersistentStorage), который должен стоять первым в порядке выполнения скриптов.\n'
+ 'Подробнее здесь: "https://greasyfork.org/ru/scripts/14049-Как-устанавливать-скрипты-читать-здесь"', !alerted);
}
if(!common_values_sign){
alert_sign.setAttribute('alerted', 'true');
alerter('Скрипт ' + name + ' требует для своей работы скрипт, хранящий данные (GN_CommonValuesFiller), который должен стоять вторым в порядке выполнения скриптов.\n'
+ 'Подробнее здесь: "https://greasyfork.org/ru/scripts/14049-Как-устанавливать-скрипты-читать-здесь"', !alerted);
}
}
this.check_login = function(){
var re = /.*?pl_id=(\d+)[^\d]*?/gmi;
var matches = re.exec(document.cookie.toString());
if(matches){
current_id = +matches[1];
check_mandatory_scripts(this.show_error);
}
};
//----------------------------------------------------------------------------//
this.check_login();
//----------------------------------------------------------------------------//
} // wrapper end
//----------------------------------------------------------------------------//
// UnifiedLibrary end
//----------------------------------------------------------------------------//
var current_user_id = SU.current_id();
var completed_tasks = JSON.parse(SU.load_value('GN_ShowLastTask_Tasks' + current_user_id, '[]'));
var merc_table = document.querySelector('table[width="970"] table.wbwhite td[valign="top"][align="left"]');
var b = merc_table.querySelectorAll('b');
var tasks = [];
for(var i = 0; i < b.length; ++i)
if(/.+?\s{\d+}/.test(b[i].innerHTML))
tasks.push(b[i]);
for(var i = 0; i < tasks.length; ++i){
var task = tasks[i];
var str  = /(.+)\s{\d+}/.exec(task.innerHTML)[1];
for(var j = 0; j < completed_tasks.length; ++j){
var c_task = completed_tasks[j];
if(c_task.str == str){
var a = document.createElement('a');
a.href = '/war.php?lt=-1&warid=' + c_task.battle;
a.textContent = ' (пред. бой, уровень ' + c_task.lvl + ')';
task.parentNode.insertBefore(a, task.nextSibling);
}
}
}
//----------------------------------------------------------------------------//
} catch(e){
alert('Ошибка в скрипте ' + script_name + ', обратитесь к разработчику:\n' + e);
throw e;
}}()); // wrapper end
//----------------------------------------------------------------------------//