NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name MineThings backlight melds
// @namespace zzzz
// @include http://*.minethings.com/*
// @exclude http://*.minethings.com/miners/profile*
// @exclude http://*.minethings.com/*/map/*
// @exclude http://*.minethings.com/*/login/*
// @version 1.1.3
// @grant GM_deleteValue
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
var debug_text;
var debug_need = false;
var city ="";
var serv = "";
var do_reload_inventory =false;
var do_print_inventory =false;
var need_select_all = false;
setTimeout(main,1000);
function create_div(){
text =
"<div style='font-family: \"Courier New\", Courier, monospace; font-size: 13px; position: fixed; top: 5px; right: 5px; background: #fff;'>" +
"{<input type='checkbox' id='click_check_box' /> select}" +
"<div name='work_speace'> <ul id='ul_inventory'> </ul> </div>" +
"<div style='font-family: \"Courier New\", Courier, monospace; font-size: 13px;' id='debug_text'>"+
"0"+
"</div></div>";
var opts = document.createElement("span");
opts.innerHTML = text;
opts.style.zIndex = "50";
document.body.insertBefore(opts, document.body.firstChild);
}
function debuger(txt){
if(!debug_need)return;
var inner = debug_text.innerHTML;
if(inner.length>1000) inner = inner.substr(50);
debug_text.innerHTML = inner +"<br/>" + txt;
}
function delete_from_inventory(){
debuger("del in " + city);
var q=0;
while(GM_getValue(get_id(q), "")!==""){
GM_deleteValue(get_id(q));
GM_deleteValue(get_id_q(q));
q++;
}
debuger("delete " + q);
}
function have_in_inventory(txt){
var q=0;
while(GM_getValue(get_id(q), "")!=="") {
if(GM_getValue(get_id(q))==txt) return q;
q++;
}
return -1;
}
function have_city(new_city){
var q=0;
while(GM_getValue(get_city_id(q), "")!=="") {
if(GM_getValue(get_city_id(q), "")==new_city) return q;
q++;
}
debuger("no city=" + new_city);
return -1;
}
function last_city(){
var q=0;
while(GM_getValue(get_city_id(q), "")!=="") {
q++;
}
return q;
}
function add_city() {
var navcontainer = document.getElementById("navcontainer");
new_city = navcontainer.getElementsByTagName("img")[0].alt;
if(have_city(new_city)<0){
GM_setValue(get_city_id(last_city()), new_city);
debuger("add city=" + new_city + " id=" + get_city_id(last_city()));
}
return new_city;
}
function get_city_id(q) {
return "city_"+serv+"_" +q;
}
function get_id(q, any_city) {
return (any_city?any_city:city) + "_" + q;
}
function get_id_q(q, any_city) {
return (any_city?any_city:city) + "_" + q + "_q";
}
function reload_inventory(ThingsDiv) {
if(do_reload_inventory) return;
delete_from_inventory();
var ash = ThingsDiv.getElementsByTagName("a");
debuger("find " + ash.length + " in " + city);
var q=0;
for(var z=0;z<ash.length;z++){
var item = ash[z].innerHTML;
var id = have_in_inventory(item);
if(id < 0) { id = q; q++;}
GM_setValue(get_id(id), item);
GM_setValue(get_id_q(id), GM_getValue(get_id_q(id), 0) + 1);
debuger(id +"="+ item + " q=" +GM_getValue(get_id_q(id), 0) );
}
do_reload_inventory = true;
}
function print_inventory(){
var ul = document.getElementById('ul_inventory');
debuger("last_city=" +last_city());
for(var s=0; s<last_city();s++) {
var li = document.createElement("li");
var current =false;
if(s!=0) {
li.innerHTML = " ";
ul.appendChild(li);
li = document.createElement("li");
}
var this_city = GM_getValue(get_city_id(s));
if(this_city == city) current=true;
li.innerHTML = "===="+this_city+"====";
if(current) li.style.fontWeight = "bold";
li.style.fontSize = "16px";
ul.appendChild(li);
var q=0;
while(GM_getValue(get_id(q, this_city),"")!==""){
li = document.createElement("li");
if(current) li.style.fontWeight = "bold";
if(current) li.style.background = '#df1';
// if(current) li.style.fontSize = "16px";
li.innerHTML = GM_getValue(get_id_q(q, this_city), 0) + " - " + GM_getValue(get_id(q, this_city), "");
ul.appendChild(li);
q++;
}
}
do_print_inventory = true;
}
// <b style="background: #df1;">Bolt</b>
function select_all(ItemsDiv) {
if(!need_select_all) return;
var q=0;
var txt = ItemsDiv.innerHTML;
while(GM_getValue(get_id(q),"")!=="") { // #df1
txt =txt.replace(new RegExp(GM_getValue(get_id(q),""), 'g'), "<b style='background: #df1;'>" + GM_getValue(get_id(q),"") + "</b>");
q++;
}
ItemsDiv.innerHTML = txt;
need_select_all = false;
}
function add_serv() {
// debuger("url=" + document.URL);
// url=http://ebeko.minethings.com/miners/list_miners
var url= document.URL;
debuger(url);
url = url.substr(url.indexOf("://")+3, url.indexOf(".") - url.indexOf("://")-3);
return url;
}
function main(){
setTimeout(main,900);
debug_text = document.getElementById("debug_text");
if(!debug_text){ create_div(); return; }
if(serv==="") serv = add_serv();
if(city==="") city = add_city();
var ThingsDiv = document.getElementById("ThingsDiv");
if(ThingsDiv) reload_inventory(ThingsDiv);
if(!do_print_inventory)print_inventory();
var chb = document.getElementById('click_check_box');
if(chb.checked){
need_select_all = true;
chb.checked = false;
}
var ItemsDiv = document.getElementById('ItemsDiv');
if(ItemsDiv) select_all(ItemsDiv);
}