// ==UserScript== // @name eRepublik Licenses and taxes // @version 0.2.1 // @include *http://www.erepublik.com/*/economy/inventory // @description Table with licenses and taxes in the inventory. Scan for prices in sortable table. You must have at least one item in the store to see the prices. Also checks for the old license bug, when aliens are on top of the list of sellers. // @home https://greasyfork.org/bg/scripts/4990-erepublik-licenses-and-taxes // @require http://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.18.3/js/jquery.tablesorter.min.js // @namespace https://greasyfork.org/users/2402 // @downloadURL none // ==/UserScript== function AddStyle(t) { $("head").append("") } Object.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; function ImproveInventory() { var f = { createTable: function() { $("#sell_offers").after('
' + '' + "" + "" + '' + '" + '" + '" + '" + '" + '" + '" + '" + '" + "" + "" + "" + "
' + '' + "' + '' + "' + '' + "' + '' + "' + '' + "' + '' + "' + '' + "' + '' + "' + '' + "
" + "
"); f.populateTable(); $("#inventory_overview .taxTable table tbody td").each(function() { var e = $(this).width(); $(".taxLinkHolder", this).width(e - 4) }) }, populateTable: function() { $("#market_licenses_select .ml_repeat li").each(function() { function e(e, t, n) { return '
Q' + n + "
" } var t = img_country[$(this).find("img").attr("src").split("/")[6].split(".")[0]], n = { 1: parseFloat(unsafeWindow.countryList[t].taxes["1"].value_added_tax), 2: parseFloat(unsafeWindow.countryList[t].taxes["2"].value_added_tax), 3: parseFloat(unsafeWindow.countryList[t].taxes["3"].value_added_tax), 4: parseFloat(unsafeWindow.countryList[t].taxes["4"].value_added_tax), 5: parseFloat(unsafeWindow.countryList[t].taxes["5"].value_added_tax), 6: parseFloat(unsafeWindow.countryList[t].taxes["6"].value_added_tax), 7: parseFloat(unsafeWindow.countryList[t].taxes["7"].value_added_tax), 12: parseFloat(unsafeWindow.countryList[t].taxes["12"].value_added_tax), 17: parseFloat(unsafeWindow.countryList[t].taxes["17"].value_added_tax) }; if (t != unsafeWindow.citizenshipCountry) { n["1"] += parseFloat(unsafeWindow.countryList[t].taxes["1"].import_tax); n["2"] += parseFloat(unsafeWindow.countryList[t].taxes["2"].import_tax); n["3"] += parseFloat(unsafeWindow.countryList[t].taxes["3"].import_tax); n["4"] += parseFloat(unsafeWindow.countryList[t].taxes["4"].import_tax); n["5"] += parseFloat(unsafeWindow.countryList[t].taxes["5"].import_tax); n["6"] += parseFloat(unsafeWindow.countryList[t].taxes["6"].import_tax); n["7"] += parseFloat(unsafeWindow.countryList[t].taxes["7"].import_tax); n["12"] += parseFloat(unsafeWindow.countryList[t].taxes["12"].import_tax); n["17"] += parseFloat(unsafeWindow.countryList[t].taxes["17"].import_tax) }; image = "http://s3.www.erepublik.net/images/flags_png/M/" + $(this).find("img").attr("src").split("/")[6].split(".")[0] + ".png" $("#inventory_overview .taxTable table tbody").append("" + '' + ' ' + $("img", this).attr("alt") + "" + '' + '
' + '
' + e(t, 1, 1) + e(t, 1, 2) + e(t, 1, 3) + e(t, 1, 4) + e(t, 1, 5) + e(t, 1, 6) + e(t, 1, 7) + "
" + "" + n["1"] + "%" + "" + '' + '
' + '
' + e(t, 2, 1) + e(t, 2, 2) + e(t, 2, 3) + e(t, 2, 4) + e(t, 2, 5) + e(t, 2, 6) + e(t, 2, 7) + "
" + "" + n["2"] + "%" + "" + '' + '
' + '
' + e(t, 3, 1) + e(t, 3, 2) + e(t, 3, 3) + e(t, 3, 4) + e(t, 3, 5) + "
" + "" + n["3"] + "%" + "" + '' + '
' + '
' + e(t, 4, 1) + e(t, 4, 2) + e(t, 4, 3) + e(t, 4, 4) + e(t, 4, 5) + "
" + "" + n["4"] + "%" + "" + '' + '
' + '
' + e(t, 5, 1) + e(t, 5, 2) + e(t, 5, 3) + e(t, 5, 4) + e(t, 5, 5) + "
" + "" + n["5"] + "%" + "" + '' + '
' + '
' + e(t, 6, 1) + e(t, 6, 2) + e(t, 6, 3) + e(t, 6, 4) + e(t, 6, 5) + "
" + "" + n["6"] + "%" + "" + '' + '' + n["7"] + "%" + "" + '' + '' + n["12"] + "%" + "" + '' + '' + n["17"] + "%" + "" + "") }) } }; f.createTable(); $("#sell_offers").before("
"); $("#pitanka").click(function() { var s = $("#sell_product").attr("src"), i = s.split("/")[6], q = s.split("/")[7]; q = parseInt(q.split("_")[0].replace(/[^0-9]/g, "")); $(".pricesTable").remove(); getPrices(i, q); $j(document).ready(function() {}); }) } function getUserInfo(c, u) { $.ajax({ url: u, }) .success(function(t) { country = $(t).find('.citizen_info.auth a:eq(2)').attr("href"); country = img_country[country.split("/")[6]]; fclass = c != country ? "prcgreen" : ""; $("#prc" + c).addClass(fclass); ww = Math.round(boz / usl * 100); $('#ctProgress div').css("width", ww + "%").text(ww + "%"); boz++; }) } function getCountryInfo(countryId, industry, quality, countryName) { var price = 0, taxes = 0, stock = 0; function e(c, i, q, cn) { q = isNaN(q) ? 1 : q; return ' ' + cn + "" } $.ajax({ url: "/" + LANG + "/economy/market/" + countryId + "/" + industry + "/" + quality, }) .success(function(t) { price = 0; stock = 0; i = 1; table = $(t).find('#content table td.m_product').parent(); $(table).each(function() { var row = $(this); if (i == 1) { UserLink[countryId] = $(t).find(".m_provider a").attr("href"); } stockr = parseInt($.trim($(row[0]).find('.m_stock').text()).replace(/[^0-9]/g, "")); pricer = $(row[0]).find('.m_price'); pricer = parseFloat($.trim(pricer.find('> strong').text()) + $.trim(pricer.find('sup').contents().filter(function() { return this.nodeType == 3 }).text())); if (price == 0) { stock = stockr; price = pricer; } else { if (pricer > price) { return false; } else { stock = stock + stockr; i++; } } }) war = unsafeWindow.countryList[countryId].war == 1 ? " war" : ""; embargo = unsafeWindow.countryList[countryId].embargo == 1 ? " embargo" : ""; conquered = unsafeWindow.countryList[countryId].conquered == 1 ? " conquered" : ""; if (unsafeWindow.countryList[countryId].taxes[industry] != undefined) { vat = parseFloat(unsafeWindow.countryList[countryId].taxes[industry].value_added_tax); imp = parseFloat(unsafeWindow.countryList[countryId].taxes[industry].import_tax); taxes = countryName != CScountry ? vat + imp : (industry == 7 || industry == 12 || industry == 17) ? 0 : vat; noVat = price / (1 + taxes / 100); taxes = taxes + " %"; } else { taxes = "no license"; noVat = 0; } stock = i == 10 ? ">" + stock : stock; local = CS == countryId ? " local" : ""; image = "http://s3.www.erepublik.net/images/flags_png/M/" + countryName + ".png" $("#inventory_overview .pricesTable table tbody").append("" + '' + ' ' + e(countryId, industry, quality, countryName) + "" + '' + taxes + "" + '' + stock + "" + '' + price.toFixed(2) + "" + '' + noVat.toFixed(4) + "" + "") ww = Math.round(ct / ctl * 100); $('#ctProgress div').css("width", ww + "%").text(ww + "%"); if (ct == ctl) { setTimeout(function() { $("#marketPrices").tablesorter({ sortList: [ [3] ] }); }, 500); boz = 1; usl = UserLink.length - 1; usl = ctl; if ($("#dalavera").attr("checked")) { $(UserLink).each(function (c, u) { getUserInfo(c, u); }) } } else { ct++; } }) // market page } function getPrices(industry, quality) { img = $("#sell_product").attr("src"); $("#sell_offers").after('
' + '' + "" + "" + '' + '' + '' + '' + '' + "" + "" + "" + "
Taxes (import+vat) Stock (total) Sell price Price w.o. taxes
" + "
"); ct = 1; UserLink = []; $.each(img_country, function(countryName, countryId) { getCountryInfo(countryId, industry, quality, countryName); }) } var img_country = { Romania: 1, Brazil: 9, Italy: 10, France: 11, Germany: 12, Hungary: 13, China: 14, Spain: 15, Canada: 23, USA: 24, Mexico: 26, Argentina: 27, Venezuela: 28, "United-Kingdom": 29, Switzerland: 30, Netherlands: 31, Belgium: 32, Austria: 33, "Czech-Republic": 34, Poland: 35, Slovakia: 36, Norway: 37, Sweden: 38, Finland: 39, Ukraine: 40, Russia: 41, Bulgaria: 42, Turkey: 43, Greece: 44, Japan: 45, "South-Korea": 47, India: 48, Indonesia: 49, Australia: 50, "South-Africa": 51, "Republic-of-Moldova": 52, Portugal: 53, Ireland: 54, Denmark: 55, Iran: 56, Pakistan: 57, Israel: 58, Thailand: 59, Slovenia: 61, Croatia: 63, Chile: 64, Serbia: 65, Malaysia: 66, Philippines: 67, Singapore: 68, "Bosnia-Herzegovina": 69, Estonia: 70, Latvia: 71, Lithuania: 72, "North-Korea": 73, Uruguay: 74, Paraguay: 75, Bolivia: 76, Peru: 77, Colombia: 78, "Republic-of-Macedonia-FYROM": 79, Montenegro: 80, "Republic-of-China-Taiwan": 81, Cyprus: 82, Belarus: 83, "New-Zealand": 84, "Saudi-Arabia": 164, Egypt: 165, "United-Arab-Emirates": 166, Albania: 167, Georgia: 168, Armenia: 169, Nigeria: 170, Cuba: 171 } var $ = jQuery, CScountry = $("#menu5 li a:eq(0)").attr("href").split("/").pop(), LANG = erepublik.settings.culture, CS = erepublik.citizen.country, ID = erepublik.citizen.citizenId, CC = erepublik.citizen.currency, countryId = 0, industry = 0, quality = 0, countryName = "", ctl = Object.keys(img_country).length; AddStyle("#inventory_overview #sell_offers table th span#netPriceG,#inventory_overview #sell_offers table th span#netPrice, #inventory_overview #sell_offers table th span#totalNetPriceG,#inventory_overview #sell_offers table th span#totalNetPrice { float: left; height: 14px; clear: both; padding: 8px 0px; padding-left: 5px; color: #88AFC9; font-size: 12px; font-weight: bold; }"); AddStyle("#inventory_overview #sell_offers table td.total_net_price { text-align: right; padding-right: 25px; padding-left: 0; }"); AddStyle("#inventory_overview .taxTable { background-color: #BAE7F9; float: left; width: 730px; position: relative; -moz-border-radius: 5px; -webkit-border-radius: 5px;border-radius: 5px; margin-top: 11px; margin-left: 15px; }"); AddStyle("#inventory_overview .taxTable table { width: 718px; border: 1px solid #95D4ED; background: white; margin: 5px auto; }"); AddStyle("#inventory_overview .taxTable table th { background: #F7FCFF; }"); AddStyle("#inventory_overview .taxTable table tbody td { border-top: 1px solid #E2F3F9; color: #5E5E5E; padding: 5px 0 5px 25px; }"); AddStyle("#inventory_overview .taxTable table tbody tr:hover td { background-color: #FFFFE7; }"); AddStyle("#inventory_overview .taxTable table .taxLink { cursor: pointer; }"); AddStyle("#inventory_overview .taxTable table .taxLink .taxLinkHolder { border: 2px solid #CFEFFB; border-radius: 3px; -moz-border-radius: 3px; position: absolute; margin-top: -7px; display: none; z-index: 100; }"); AddStyle("#inventory_overview .taxTable table .taxLink:hover .taxLinkHolder { display: block; }"); AddStyle("#inventory_overview .taxTable table .taxLink .taxLinkHolder .taxLinkItemTransparent { background: none repeat scroll 0 0 transparent; text-align: center; height: 25px; }"); AddStyle("#inventory_overview .taxTable table .taxLink .taxLinkHolder .taxLinkItem { background-color: #FFFFE7; text-align: center; }"); AddStyle("#inventory_overview .taxTable table .taxLink .taxLinkHolder .taxLinkItem:hover { background-color: #F7FCFF !important; }"); AddStyle("#inventory_overview .pricesTable { background-color: #BAE7F9; float: left; width: 730px; position: relative; -moz-border-radius: 5px; -webkit-border-radius: 5px;border-radius: 5px; margin-top: 11px; margin-left: 15px; }"); AddStyle("#inventory_overview .pricesTable table { width: 718px; border: 1px solid #95D4ED; background: white; margin: 5px auto; }"); AddStyle("#inventory_overview .pricesTable table th { background: #F7FCFF; cursor: pointer; }"); AddStyle("#inventory_overview .pricesTable table tbody td { border-top: 1px solid #E2F3F9; color: #5E5E5E; padding: 5px 0 5px 25px; }"); AddStyle("#inventory_overview .pricesTable table tbody tr:hover td { background-color: #FFFFE7; }"); AddStyle("#inventory_overview .pricesTable .conquered { text-decoration: line-through; }"); AddStyle("#inventory_overview .pricesTable .war { color: red; }"); AddStyle("#inventory_overview .pricesTable .embargo { color: red; }"); AddStyle(".tablesorter-headerUnSorted { background: transparent url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==) no-repeat center right !important; }"); AddStyle(".tablesorter-headerDesc { background: transparent url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7) no-repeat center right !important; }"); AddStyle(".tablesorter-headerAsc { background: transparent url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7) no-repeat center right !important; }"); AddStyle("#inventory_overview .pricesTable .local { background-color: #efefef; }"); AddStyle("#inventory_overview .pricesTable .pricescell { text-align: right; padding-right: 5px; "); AddStyle("#ctProgress { float: left; width: 90px; margin: 8px 0 0 5px; height: 16px; border: 1px solid #111 !important; background-color: #292929 !important; }"); AddStyle("#ctProgress div { height: 100%; color: #fff; text-align: right; line-height: 16px; width: 0; background-color: #0099ff !important; }"); AddStyle(".prcgreen { color: green !important; }"); AddStyle("#newfield {float: left; height: 37px; width: 147px; margin-left: 11px; padding: 10px; border-radius: 5px 5px 5px 5px; -moz-border-radius: 5px 5px 5px 5px; -webkit-border-radius: 5px 5px 5px 5px; background: rgba(231,247,253,1); background: -moz-linear-gradient(top, rgba(231,247,253,1) 0%, rgba(186,231,249,1) 100%); background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(231,247,253,1)), color-stop(100%, rgba(186,231,249,1))); background: -webkit-linear-gradient(top, rgba(231,247,253,1) 0%, rgba(186,231,249,1) 100%); background: -o-linear-gradient(top, rgba(231,247,253,1) 0%, rgba(186,231,249,1) 100%); background: -ms-linear-gradient(top, rgba(231,247,253,1) 0%, rgba(186,231,249,1) 100%); background: linear-gradient(to bottom, rgba(231,247,253,1) 0%, rgba(186,231,249,1) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e7f7fd', endColorstr='#bae7f9', GradientType=0 );}"); AddStyle("#pitanka {border-radius: 5px 5px 5px 5px; -moz-border-radius: 5px 5px 5px 5px; -webkit-border-radius: 5px 5px 5px 5px; margin: 3px 0;}"); AddStyle("#pitanka, #bugchk {cursor: pointer;}") ImproveInventory();