您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
выделяет технологии изученные вами, а так же добавляет кнопку продажи лицензий в итоги торгов лицензиями
当前为
// ==UserScript== // @name Virtonomica: "Обзор рынка лицензий: Спрос" и "Итоги торгов лицензиями" // @namespace virtonomica // @version 2.35 // @description выделяет технологии изученные вами, а так же добавляет кнопку продажи лицензий в итоги торгов лицензиями // @include http*://*virtonomic*.*/*/main/globalreport/technology/*/*/target_market_summary // @include http*://*virtonomic*.*/*/main/globalreport/technology/*/*/target_market_summary/* // @include http*://*virtonomic*.*/*/main/management_action/*/investigations/technologies // @include http*://*virtonomic*.*/*/main/globalreport/technology_target_market/total // @include http*://*virtonomic*.*/*/main/globalreport/technology_target_market/total?old // @include http*://*virtonomic*.*/*/main/globalreport/technology_market/total // @include http*://*virtonomic*.*/*/window/technology_market/ask/by_unit/*/offer/set // @include http*://*virtonomic*.*/*/main/management_action/*/technology_target_market/technologies // @include http*://*virtonomic*.*/*/window/technology_market/bid/*/*/*/set // ==/UserScript== var run = function() { var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window); $ = win.$; //резделитель разрядов function commaSeparateNumber(val, sep){ var separator = sep || ','; while (/(\d+)(\d{3})/.test(val.toString())){ val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"+separator); } return val; } function getLast(str){ var matches = str.match(/\/(\d+)$/); return matches[1]; } function getRealm(){ var svHref = window.location.href; var matches = svHref.match(/\/(\w+)\/main\//); if (matches == null){ matches = svHref.match(/\/(\w+)\/window\//); } return matches[1]; } function getVal(spName){ return JSON.parse(window.localStorage.getItem(getRealm() + '_' + spName)); } function setVal(spName, pValue){ window.localStorage.setItem(getRealm() + '_' + spName, JSON.stringify(pValue)); } function trim(str) { return str.replace(/^\s+|\s+$/g,""); } function getLvl(str) { var first = str.indexOf('</') + 4; var perc = trim(str.substr(0, first)); var second = str.substr(first+1).indexOf('</') + 4; //var lvl = parseFloat(trim(str.substr(first+1, second)).replace("<b>","").replace("</b>",""), 10); var matches = str.substr(first+1, second).match(/([0-9]+\.[0-9]+)/); var lvl; if(matches == null || matches.length == 0){ lvl = 0; }else{ lvl = parseFloat(matches[1], 10); } // console.log("'"+ lvl+"'" ); return lvl; } function sort_table(tbody, col, asc){ var rows = tbody.rows; var rlen = rows.length; var arr = []; var i, j, cells; // fill the array with values from the table for(i = 0; i < rlen; i++){ cells = rows[i].cells; arr.push([rows[i], cells[col].innerHTML]); } // sort the array by the specified column number (col) and order (asc) arr.sort(function(a, b){ return asc*compareSpec(a[1], b[1]); }); for(i = 0; i < rlen; i++){ tbody.appendChild(arr[i][0]); } } function getCurrDate(){ return new Date().getDate(); } function setTechList(callback) { var stab = getVal('techList'); //console.log(Object.keys(stab).length); if (stab == null || stab['update_date'] != getCurrDate() || Object.keys(stab).length == 1) { stab = {}; // получение информации о своих изученных технах var tmurl=$( 'ul.main_menu a:contains("Предприятия")').attr('href').slice(0,-10); var numpos=tmurl.indexOf("company"); var tmurl0=tmurl.substring(numpos+12); // tmurl=tmurl.substring(0,numpos); // tmurl=tmurl+"management_action"+tmurl0+"/investigations/technologies"; $.get(tmurl,function(data){ $('div[class="tech_row"] > div > div > a', data).each(function(){ var link = $(this); //http://virtonomica.ru/olga/window/management_action/4207337/investigations/technology_offer_create/5/370088 var matches = link.attr('href').match(/technology_offer_create\/(\d+)\/(\d+)/); var nteh = matches[1]; var techId = matches[2]; //console.log(link.attr('href')); stab[techId + '|' + nteh] = 1; //купленные $('> div.tech_cell > div.tech_b', link.parent().parent().parent()).first().children().remove(); var fromTech = parseFloat(nteh); var maxTech = parseFloat($('> div.tech_cell > div.tech_b', link.parent().parent().parent()).first().text()) || 0; while(maxTech > fromTech) { if(stab[techId + '|' + maxTech] !== 1) { stab[techId + '|' + maxTech] = 2; } --maxTech; } }); stab['update_date'] = getCurrDate(); setVal('techList', stab); //alert(stab); if(callback != null) { callback(); } }); } else { if(callback != null) { callback(); } } } function sortTable(){ var rows = $('table[class="list"] > tbody > tr:has(td):has(a)'); //console.log(rows.length); var path = '> td[style="background: rgb(154, 255, 154);"]'; rows.sort(function(a, b) { //console.log($(path, a).length +' > '+ $(path, b).length); return $(path, b).length - $(path, a).length; }); rows.each(function() { var row = $(this); $('table[class="list"] > tbody:last-child').append(row); }); } function getSum(obj) { var sum = 0; for(var i=0, n=obj.length; i < n; i++) { sum += obj[i].p * obj[i].q; } return sum; } function getRowSum(cells) { var sum = 0; cells.each( function() { var cell = $(this); //console.log('sum = ' + sum); sum += parseFloat(cell.attr('asksum')); }); return sum; } function sellLicense(spTechID, spTechLvl, npPrice, opBtn){ opBtn.attr('disabled', true); opBtn.attr('value', 'Ожидаем подтверждения'); var unit_list_url = $('a[href*="/unit_list"]').first().attr('href'); var matches = unit_list_url.match(/\/(\d+)\/unit_list$/); var svCompanyID = matches[1]; //https://virtonomica.ru/olga/main/company/view/4207337/unit_list //https://virtonomica.ru/olga/window/technology_market/bid/4207337/359894/17/set var svUrl = unit_list_url.replace('/main/company/view/'+svCompanyID+'/unit_list', '/window/technology_market/bid/'+svCompanyID+'/'+spTechID+'/'+spTechLvl+'/set'); var data = {}; data['data[min_price]'] = round(npPrice, 1000) || 1000; data['data[license_count]'] = 1; data['data[offer_type]'] = 1; data['data[trade_type]'] = 1; data['data[is_polimorphic]'] = 0; console.log( 'price = ' + data['data[min_price]'] ); $.post( svUrl, data ) .done(function() { opBtn.remove(); console.log( "success" ); }) .fail(function() { console.log( "error" ); }); } function set_color_teh() { var stab = getVal('techList'); $('table[class="list"] > tbody > tr > td > a').each( function() { var link = $(this); var href = link.attr('href'); var matches = href.match(/technology\/(\d+)\/(\d+)\//); var techId = matches[1]; var nteh = matches[2]; //console.log(techId+'|'+nteh); // названия техн совпали var exist = stab[techId+'|'+nteh]; if (exist != null && exist == 1){ link.parent().css('background','#9AFF9A'); } else if (exist != null && exist == 2){ link.parent().css('background','#ddd'); } link.parent().attr('title','lvl: '+nteh); }); //sortTable(); var techPrices = []; $.getJSON('https://cobr123.github.io/tech/'+getRealm()+'/technology_market.json', function (data) { $.each(data, function (key, val) { techPrices[val.i+'|'+val.l] = val.p; }); }); var sellAllBtn7perc = $('<input type="button" value="all by 7%">'); sellAllBtn7perc.click(function(){ if(confirm('Продать все лицензии по цене 7% от минимальной стоимости технологии?')){ sellAllBtn7perc.attr('disabled', true); $('input[name="sell7perc"]').show(); $('input[name="sell7perc"]').click(); } return false; }); var sellAllBtn1k = $('<input type="button" value="all by 1k">'); sellAllBtn1k.click(function(){ if(confirm('Продать все лицензии по 1000?')){ sellAllBtn1k.attr('disabled', true); $('input[name="sell1k"]').show(); $('input[name="sell1k"]').click(); } return false; }); var showTechBtns = $('<input type="checkbox" id="show_all_sell_buttons"><label for="show_all_sell_buttons">Показать кнопки продажи для каждой технологии отдельно</label>'); showTechBtns.change(function(){ if($('#show_all_sell_buttons:checked').length === 1){ $('input[name="sell7perc"]').show(); $('input[name="sell1k"]').show(); } else { $('input[name="sell7perc"]').hide(); $('input[name="sell1k"]').hide(); } return false; }); $('#childMenu').append(sellAllBtn1k).append(sellAllBtn7perc).append(showTechBtns); $.getJSON('https://cobr123.github.io/tech/'+getRealm()+'/license_ask_wo_bid.json', function (data) { var found = false; $.each(data, function (key, val) { //console.log(val.i+'/'+val.l); //console.log(JSON.stringify(val)); $('table[class="list"] > tbody > tr > td[style="background: rgb(154, 255, 154);"] > a[href*="/globalreport/technology/'+val.i+'/'+val.l+'/target_market_summary/"]').each( function() { var link = $(this); link.parent().css('background','#ffff6b'); var sum = getSum(val.awb); //console.log('sum = ' + sum); link.parent().attr('asksum', sum); link.parent().attr('title', commaSeparateNumber(sum, ' ')); found = true; var sellBtn7perc = $('<input type="button" value="7%" name="sell7perc">'); var sellBtn1k = $('<input type="button" value="1k" name="sell1k">'); sellBtn7perc.click(function(){ var nvPrice = parseFloat(techPrices[val.i+'|'+val.l]) * 0.02 * 0.07; sellLicense(val.i, val.l, nvPrice, sellBtn7perc); return false; }); sellBtn7perc.hide(); sellBtn1k.click(function(){ var nvPrice = 1000; sellLicense(val.i, val.l, nvPrice, sellBtn1k); return false; }); sellBtn1k.hide(); link.append(sellBtn1k).append(sellBtn7perc); }); }); if (found) { var rows = $('table[class="list"] > tbody > tr:has(td):has(a)'); //console.log(rows.length); var pathSum = '> td[asksum]'; var pathSelf = '> td[style="background: rgb(154, 255, 154);"]'; rows.sort(function(a, b) { var sumA = getRowSum($(pathSum, a)); var sumB = getRowSum($(pathSum, b)); if (sumB === sumA){ return $(pathSelf, b).length - $(pathSelf, a).length; } else { return sumB - sumA; } }); rows.each(function() { var row = $(this); $('table[class="list"] > tbody:last-child').append(row); }); } }); } function addSellLicenseLink() { var stab = getVal('techList'); //http://virtonomica.ru/olga/main/globalreport/technology/380082/2/target_market_summary var svHref = window.location.href; var matches = svHref.match(/technology\/(\d+)\/(\d+)\//); var techId = matches[1]; var nteh = matches[2]; var exist = stab[techId+'|'+nteh]; if (exist != null && exist == 1) { //http://virtonomica.ru/olga/main/globalreport/technology/422577/2/target_market_summary/2015-05-01/bid //http://virtonomica.ru/olga/window/technology_market/bid/4207337/422577/5/set //http://virtonomica.ru/olga/main/company/view/4207337/dashboard matches = $('a[class="dashboard"]').attr('href').match(/([0-9]+)/); var companyId = matches[1]; var svSellHref = svHref.replace('main/globalreport/technology/','window/technology_market/bid/'+companyId+'/').replace(/\/target_market_summary(\/\d+-\d+-\d+\/\w+)?/,'/set'); var svSellLink = '<b><a href="'+svSellHref+'" onclick="return doWindow(this, 1000, 800);">Продать лицензии</a></b>'; //http://virtonomica.ru/olga/main/management_action/4207337/technology_target_market/technologies var svOpenListHref = svHref.replace(/\/globalreport\/technology\/\w+\/\w+\/target_market_summary(\/\d+-\d+-\d+\/\w+)?/,'/management_action/'+companyId+'/technology_target_market/technologies'); var svOpenListLink = '<b><a href="'+svOpenListHref+'" target="_blank">Список лицензий</a></b>'; $('table[class="list"] > tbody > tr:last').after('<tr><td colspan="2">'+svSellLink+'</td><td colspan="3">'+svOpenListLink+'</td></tr>'); $('#mainContent > table > tbody > tr > td > b > a[href$=bid]').each(function(){ var link = $(this); link.attr('href', link.attr('href')+'?old'); }); $('#mainContent > table > tbody > tr > td > b > a[href$=ask]').each(function(){ var link = $(this); link.attr('href', link.attr('href')+'?old'); }); } } function addTargetMarketSummaryLink(){ //http://virtonomica.ru/olga/main/globalreport/technology/380082/2/target_market_summary //http://virtonomica.ru/olga/graph/globalreport/technology_market/summary/423170/4 var svDate = new Date().toISOString().slice(0, 10); var svUrl = $('img#graphreport').attr('src').replace('/graph/globalreport/technology_market/summary/','/main/globalreport/technology/') + '/target_market_summary/'+svDate+'/bid'; var svTargetMarketSummaryLink = '<b><a href="'+svUrl+'" target="_blank">Итоги торгов лицензиями</a></b>'; $('table[class="list"] > tbody > tr:last').after('<tr><td colspan="5">'+svTargetMarketSummaryLink+'</td></tr>'); } var postCount = 0; var postDoneCount = 0; var total = 0; function cancelBid(delAllBidsBtn, svUrl){ postCount += 1; delAllBidsBtn.val('Отправляю запросы: ' + postCount + ' / ' + total); //console.log("svUrl = " + svUrl); $.get( svUrl ) .done(function() { console.log( "success" ); }) .fail(function() { console.log( "error" ); }) .always(function() { console.log( "always" ); postDoneCount += 1; delAllBidsBtn.val('Ожидаю ответы: ' + postDoneCount + ' / ' + total); if(postCount === postDoneCount){ window.location = window.location.href; } }); } function updDelAllBidsBtnTitle(){ var confirmMsg = ''; var checkedCnt = $('input[name="cancel_bid"]:checked').length; if(checkedCnt === 0) { confirmMsg = 'Удалить все предложения отображаемые на странице'; } else { confirmMsg = 'Удалить ' + checkedCnt + ' предложения(й) отображаемые на странице'; } $('input#del_all_bids').val(confirmMsg); } function addDelAllBidsBtn(){ var links = $('table.grid > tbody > tr > td > a:has(img[src="/img/icon/cancel.gif"])'); if(links.length === 0) return; $('#technologyListTable > tbody > tr:nth-child(1) > th:nth-child(7)').append('<input type="checkbox" id="cancel_all_bid">'); $('input#cancel_all_bid').click(function() { var checked = $(this).is(':checked'); $('input[name="cancel_bid"]').each(function() { $(this).attr('checked', checked); }); updDelAllBidsBtnTitle(); }); var confirmMsg = 'Удалить все предложения отображаемые на странице'; var delAllBidsBtn = $('<input id="del_all_bids" type="button" value="Удалить все предложения отображаемые на странице"/>').click(function() { if(confirm(confirmMsg + '?')) { delAllBidsBtn.attr('disabled', true); postCount = 0; postDoneCount = 0; var checkedCnt = $('input[name="cancel_bid"]:checked').length; if(checkedCnt === 0) { total = links.length; links.each(function() { var svUrl = $(this).attr('href'); cancelBid(delAllBidsBtn, svUrl); }); } else { total = checkedCnt; $('input[name="cancel_bid"]:checked').each(function() { var svUrl = $(this).prev().attr('href'); cancelBid(delAllBidsBtn, svUrl); }); } delAllBidsBtn.val('Ожидаю ответы: ' + postDoneCount + ' / ' + total); } }); var linkImgs = $('img[src="/img/icon/cancel.gif"]'); linkImgs.each(function() { var img = $(this); var checkbox = $('<input type="checkbox" name="cancel_bid">').click(function() { updDelAllBidsBtnTitle(); }); img.parent().after(checkbox); }); $('label[for="groupByUnitType"]').after(delAllBidsBtn).after(' '); } function formatMoney(spSum) { var rounded = Math.abs(parseFloat(spSum,10)); var idx = 0; while (rounded >= 1000) { rounded = rounded / 1000; idx += 1; } if (idx === 1) { return rounded.toFixed(0) + 'Th'; } else if (idx === 2) { return rounded.toFixed(0) + 'M'; } else if (idx === 3) { return rounded.toFixed(0) + 'B'; } else if (idx === 4) { return rounded.toFixed(0) + 'Tr'; } else if (idx === 5) { return rounded.toFixed(0) + 'Qua'; } else if (idx === 6) { return rounded.toFixed(0) + 'Qui'; } else if (idx === 7) { return rounded.toFixed(0) + 'Sex'; } else if (idx === 8) { return rounded.toFixed(0) + 'Sep'; } else { return rounded; } } function sumMoneyToNumber(spSum){ return parseFloat(spSum.replace('$','').replace(/\s+/g,''),10); } function getShortSum(spSum) { return formatMoney(sumMoneyToNumber(spSum)); } function sortTechTable(){ function toNumber(spSum){ if(spSum == null) { return 0; } else { return parseFloat(spSum.replace('$','').replace(/\s+/g,''),10) || 0; } } function getMin(spNum1, npNum2){ var tmp = toNumber(spNum1); if(tmp > 0){ if(npNum2 > 0){ return Math.min(npNum2, tmp); } else { return tmp; } } else { return npNum2; } } var rows = $('table[class="list"] > tbody > tr:has(td):has(th)'); //наиболее изученные вверху var pathByKnown = '> td[style="background: rgb(154, 255, 154);"]'; if($('#toggleSortByPrice').is(':checked')){ var len = 0; var prcA = 0; var prcB = 0; var cellA = null; var cellB = null; //наиболее дешевые для покупки вверху var path = '> td[price]'; rows.sort(function(a, b) { prcA = 0; prcB = 0; len = $('> td', a).length; if(len === $('> td', b).length){ for(var idx = 0; idx < len; ++idx){ cellA = $(path, a).eq(idx); cellB = $(path, b).eq(idx); if(cellA.attr('known') != '1' && cellA.attr('style') !== 'background: rgb(154, 255, 154);'){ prcA = getMin(cellA.attr('price'), prcA); } if(cellB.attr('known') != '1' && cellB.attr('style') !== 'background: rgb(154, 255, 154);'){ prcB = getMin(cellB.attr('price'), prcB); } } } //console.log($('>th', a).text() + ' > ' + $('>th', b).text() + ' = ' + (prcA > prcB) ); if(prcA !== 0 && prcB !== 0) { return prcA - prcB; } else { return $(pathByKnown, b).length - $(pathByKnown, a).length; } }); } else { rows.sort(function(a, b) { //console.log($(path, a).length +' > '+ $(path, b).length); return $(pathByKnown, b).length - $(pathByKnown, a).length; }); } rows.each(function() { var row = $(this); $('table[class="list"] > tbody:last-child').append(row); }); } function sortAndColorTechTable(){ var stab = getVal('techList'); var svLabStartFilterArray = getVal('labStartFilterArray'); var avLabStartFilterArray = []; if(svLabStartFilterArray !== null && svLabStartFilterArray != ''){ var tmp = svLabStartFilterArray.split('|'); $.each(tmp, function (key, val) { var values = val.split(';'); if(values != ''){ var nteh = Math.floor(parseFloat(values[2])); avLabStartFilterArray[values[1]+'|'+nteh] = parseFloat(values[2]); //console.log(values[1] + ': ' + Math.floor(parseFloat(values[2]))); } }); } var techLvls = $('table[class="list"] > tbody > tr:nth-child(2) > th'); //$('table[class="list"] > tbody > tr > td[title^="$"]').each( function() { $('table[class="list"] > tbody > tr > td[title]').each( function() { var cell = $(this); //console.log('techIdlink = ' + $('> th > a:has(img)', cell.parent()).attr('href')); var techId = getLast($('> th > a:has(img)', cell.parent()).attr('href')); var nteh = techLvls.eq(cell.index()).text(); var techName = $('> th', cell.parent()).text(); //console.log(techName); //console.log(techId+'|'+nteh); cell.attr('price', cell.attr('title')); // названия техн совпали var exist = stab[techId+'|'+nteh]; if (Math.floor(avLabStartFilterArray[techName+'|'+nteh]) === parseFloat(nteh)) { cell.attr('known', '1'); cell.attr('title', cell.attr('title') + ' ('+ avLabStartFilterArray[techName+'|'+nteh] +')'); cell.css('background','#bb88ee'); } else if (exist != null && exist == 1) { cell.attr('known', '1'); cell.css('background','#9AFF9A'); } else if (exist != null && exist == 2) { cell.attr('known', '1'); cell.css('background','#ddd'); } else if (sumMoneyToNumber(cell.attr('title')) <= 500000000) { cell.css('background','#ffff6b'); } else if (sumMoneyToNumber(cell.attr('title')) <= 5000000000) { cell.css('background','#ffaa6b'); } cell.attr('title', nteh + ': ' + cell.attr('title')); }); hideFirstEmptyColumns(); var svToggleHideMinableAndGrown = '<label><input id="toggleHideMinableAndGrown" type="checkbox">Скрыть ресурсы</label>'; $('table.list').first().before(svToggleHideMinableAndGrown); $('#toggleHideMinableAndGrown').change( function(){ var bvChecked = $(this).is(':checked'); if (bvChecked) { $('table[class="list"] > tbody > tr > th > a:contains(рудник)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(карьер)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(шахта)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Шахта)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Плантация)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Лесопилка)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Земледельческая ферма)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Золотодобывающее предприятие)').parent().parent().hide(); $('table[class="list"] > tbody > tr > th > a:contains(Нефтедобывающее предприятие)').parent().parent().hide(); } else { $('table[class="list"] > tbody > tr > th > a:contains(рудник)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(карьер)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(шахта)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Шахта)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Плантация)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Лесопилка)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Земледельческая ферма)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Золотодобывающее предприятие)').parent().parent().show(); $('table[class="list"] > tbody > tr > th > a:contains(Нефтедобывающее предприятие)').parent().parent().show(); } }); $('#toggleHideMinableAndGrown').click(); var svToggleSortByPrice = '<label><input id="toggleSortByPrice" type="checkbox">Сортировать по цене</label>'; $('table.list').first().before(svToggleSortByPrice); $('#toggleSortByPrice').change( function(){ sortTechTable(); }); $('#toggleSortByPrice').click(); } function addQuickPriceBtns(){ var ov7perc = $('<button>7%</button>').click(function() { var minPrc = sumMoneyToNumber($('body > form > table > tbody > tr > td:nth-child(1) > table > tbody > tr:nth-child(2) > td:nth-child(2) > div').text()); minPrc = round(minPrc * 0.07, 1000); $('input#min_price').val(minPrc.toFixed(0)); return false; }); var ovBtn1k = $('<button>1k</button>').click(function() { $('input#min_price').val(1000); return false; }); var ovBtn10k = $('<button>10k</button>').click(function() { $('input#min_price').val(10000); return false; }); var ovBtn100k = $('<button>100k</button>').click(function() { $('input#min_price').val(100000); return false; }); var ovBtn1m = $('<button>1m</button>').click(function() { $('input#min_price').val(1000000); return false; }); var ovBtn10m = $('<button>10m</button>').click(function() { $('input#min_price').val(10000000); return false; }); var ovBtn100m = $('<button>100m</button>').click(function() { $('input#min_price').val(100000000); return false; }); $('input#min_price').after(ovBtn100m).after(ovBtn10m).after(ovBtn1m).after(ovBtn100k).after(ovBtn10k).after(ovBtn1k).after(ov7perc); } function addQuickMaxPriceBtns(){ var ov7perc = $('<button>7%</button>'); //https://virtonomica.ru/olga/graph/globalreport/technology_market/summary/16042/20 var matches = window.location.href.match(/\/(\w+)\/window\//); var svRealm = matches[1]; var minPrc = 0; matches = $('img#graphreport').attr('src').match(/\/(\d+)\/(\d+)$/); var svTechId = matches[1]; var nvTechLvl = parseFloat(matches[2]); $.getJSON('https://cobr123.github.io/tech/'+ svRealm +'/technology_market.json', function (data) { $.each(data, function (key, val) { if(val.i == svTechId && parseFloat(val.l) == nvTechLvl){ minPrc = round(parseFloat(val.p) * 0.02 * 0.07, 1000); ov7perc.text(commaSeparateNumber(minPrc.toFixed(0), ' ') + ' (7%)'); ov7perc.click(function() { $('input#max_price').val(minPrc.toFixed(0)); return false; }); } }); }); var ovBtn1m = $('<button>1m</button>').click(function() { $('input#max_price').val(1000000); return false; }); var ovBtn10m = $('<button>10m</button>').click(function() { $('input#max_price').val(10000000); return false; }); var ovBtn100m = $('<button>100m</button>').click(function() { $('input#max_price').val(100000000); return false; }); $('input#max_price').after(ovBtn100m).after(ovBtn10m).after(ovBtn1m).after(ov7perc); } function hideFirstEmptyColumns(){ var idx = 0; var notEmptyFound = false; var total = $('table.list > tbody > tr[class]:eq(0) > td').length; while(idx < total) { $('table.list > tbody > tr[class]').each(function(){ var row = $(this); var cell = $('> td', row).eq(idx); if(!notEmptyFound && cell.text() !== '--'){ notEmptyFound = true; } }); if(notEmptyFound) { break; } //hide column $('table.list > tbody > tr[class]').each(function(){ var row = $(this); var cell = $('> td', row).eq(idx); cell.hide(); }); $('table.list > tbody > tr:eq(1)').each(function(){ var row = $(this); var cell = $('> th', row).eq(idx + 1); cell.hide(); }); ++idx; } //console.log(idx); hideLastKnownColumns(); } function hideLastKnownColumns(){ var notEmptyFound = false; var idx = $('table.list > tbody > tr[class]:eq(0) > td').length - 1; while(idx > 0) { $('table.list > tbody > tr[class]').each(function(){ var row = $(this); var cell = $('> td', row).eq(idx); if(!notEmptyFound && cell.text() !== '--' && cell.attr('style') !== 'background: rgb(154, 255, 154);'){ notEmptyFound = true; } }); if(notEmptyFound) { break; } //hide column $('table.list > tbody > tr[class]').each(function(){ var row = $(this); var cell = $('> td', row).eq(idx); cell.hide(); }); $('table.list > tbody > tr:eq(1)').each(function(){ var row = $(this); var cell = $('> th', row).eq(idx + 1); cell.hide(); }); --idx; } //console.log(idx); sortTechTable(); } // if (/\w*virtonomic\w+.\w+\/\w+\/main\/globalreport\/technology_target_market\/total\?old/.test(window.location)) { setTechList(set_color_teh); var link = null; $('table[class="list"] > tbody > tr > td > a').each(function(){ link = $(this); link.attr('href', link.attr('href')+'/ask?old'); link.attr('onclick', 'return doWindow(this, 1000, 600);'); //console.log(link.attr('href')); }); } if (/\w*virtonomic\w+.\w+\/\w+\/main\/globalreport\/technology_market\/total\?old/.test(window.location)) { var cell = null; var svNewVal = ''; $('table[class="list"] > tbody > tr > td[title^="$"]').each(function(){ cell = $(this); svNewVal = getShortSum(cell.attr('title')); cell.html(svNewVal); cell.attr('style',''); }); setTechList(sortAndColorTechTable); } if (/\w*virtonomic\w+.\w+\/\w+\/main\/globalreport\/technology\/\w+\/\w+\/target_market_summary/.test(window.location) ||/\w*virtonomic\w+.\w+\/\w+\/main\/globalreport\/technology\/\w+\/\w+\/target_market_summary\/\w+\/\w+/.test(window.location) ) { setTechList(addSellLicenseLink); } if (/\w*virtonomic\w+.\w+\/\w+\/window\/technology_market\/ask\/by_unit\/\w+\/offer\/set/.test(window.location) ) { addTargetMarketSummaryLink(); addQuickMaxPriceBtns(); } if (/\w*virtonomic\w+.\w+\/\w+\/main\/management_action\/\w+\/technology_target_market\/technologies/.test(window.location) ) { addDelAllBidsBtn(); } if (/\w*virtonomic\w+.\w+\/\w+\/window\/technology_market\/bid\/\w+\/\w+\/\w+\/set/.test(window.location) ) { addQuickPriceBtns(); } } if(window.top == window) { var script = document.createElement("script"); script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址