GN_ShowLastTask

Показ предыдущих заданий ГН

当前为 2015-11-20 提交的版本,查看 最新版本

// ==UserScript==
// @name        GN_ShowLastTask
// @namespace   Gradient
// @description Показ предыдущих заданий ГН
// @include     /.+(heroeswm|178\.248\.235\.15).+\/mercenary_guild\.php/
// @version     1.0.0
// ==/UserScript==

"use strict";

//----------------------------------------------------------------------------//

(function(){ // wrapper start

//----------------------------------------------------------------------------//
// UnifiedLibrary 1.4.0 start
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
// SysUtils
//----------------------------------------------------------------------------//

var GN_SysUtils = new SysUtils();
var SU = GN_SysUtils;

//----------------------------------------------------------------------------//

function SysUtils(){  // wrapper start
  
//----------------------------------------------------------------------------//
  
this.show_error = function(error_string){
  throw new Error(error_string);
};
  
//----------------------------------------------------------------------------//  

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'));
};
  
//----------------------------------------------------------------------------//

this.check_login = function(){
  var re = /.*?pl_id=\d+?.*?/gmi;
  
  if(!re.test(document.cookie.toString()))
    this.show_error('Пользователь не авторизован');
};

//----------------------------------------------------------------------------//

this.check_login();
  
//----------------------------------------------------------------------------//  
  
} // wrapper end

//----------------------------------------------------------------------------//
// UnifiedLibrary end
//----------------------------------------------------------------------------//
  
var current_user_id = /.*?pl_id=(\d+)[^\d]*?/gmi.exec(document.cookie.toString())[1];
var mercenaries     = 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 < mercenaries.length; ++j){
    var merc = mercenaries[j];
    
    if(merc.str == str){
      var a = document.createElement('a');
      a.href = '/war.php?lt=-1&warid=' + merc.battle;
      a.textContent = ' (пред. бой, уровень ' + merc.lvl + ')';
      task.parentNode.insertBefore(a, task.nextSibling);
    }
  }
}
  
//----------------------------------------------------------------------------//
  
}()); // wrapper end

//----------------------------------------------------------------------------//