您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A better Deckbox.org experience.
// ==UserScript== // @name BitFn's Better Deckbox Script // @namespace dlras.net // @version 0.1 // @description A better Deckbox.org experience. // @author Daniel Rasmussen // @match *://deckbox.org/* // @grant none // @require http://code.jquery.com/jquery-latest.js // @require http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js // ==/UserScript== $.noConflict(); function spriteToClass(spriteName, className, remove) { jQuery('li.submenu_entry.deck img.'+spriteName).each(function() { var $this = jQuery(this); var $li = $this.closest('li.submenu_entry.deck'); if (remove) $this.remove(); $li.addClass(className); }); } function colorPrices($prices) { var getPrice = function($this) { return Number($this.text().replace(/[^0-9\.]+/g, '')); } var max = 0; var sum = 0; var count = 0; $prices.each(function() { var price = getPrice(jQuery(this)); if (price === 0) return; count++; sum += price; if (price > max) max = price; }); if (count === 0) return; var avg = sum / count; $prices.each(function() { var $this = jQuery(this); var price = getPrice($this); if (price === 0) return; $this.attr('data-title',$this.text()); if (price < 1) { //$this.text(Math.round(price*100)+'¢'); $this.text('¢'); $this.addClass('muted'); } else { $this.text('$'+Math.round(price)); } }); } function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) return; style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } (function($) { addGlobalStyle('.muted { color:#ccc; }'); $(document).on('click', 'a[target=_blank][href*="/mtg/"]', function(e) { var url = 'http://magiccards.info/query?q=!'+encodeURIComponent($(this).text().toLowerCase()); window.open(url); e.preventDefault(); return false; }); spriteToClass('s_lightbulb', 'idea', true); spriteToClass('s_brick', 'built'); spriteToClass('s_delete', 'private'); spriteToClass('s_key', 'protected'); $('.submenu_entry.deck [data-title], .submenu_entry [id^=folder_name][data-title]').html(function() { var $this = $(this); return $this.html().replace($this.text(), $this.data('title')); }); $('td.card_count').each(function() { var $this = $(this); if ($this.text().trim() === '0') $this.addClass('muted'); }); colorPrices($('td.price:not(.price_min):not(.price_avg)')); colorPrices($('td.price_min')); colorPrices($('td.price_avg')); $('[id^=time_]').each(function() { var $this = $(this); var text = $this.text(); $this.attr('data-title',text); $this.text(moment(text, 'DD-MMM-YYYY HH:mm').fromNow()); }); $('table.set_cards').each(function() { var $this = $(this); var $pTh, $tTh; $('th a', $this).each(function() { var $this = $(this); var text = $this.text().trim(); if (text === 'P') $pTh = $this.parent(); if (text === 'T') $tTh = $this.parent(); }); if (!$pTh || !$tTh) return; var pIndex = $('th', $this).index($pTh); var tIndex = $('th', $this).index($tTh); if (pIndex+1!=tIndex) return; $('tr[id]', $this).each(function() { var $this = $(this); var $pTd = $('td:eq('+pIndex+')', $this); var $tTd = $('td:eq('+tIndex+')', $this); var p = $pTd.text().trim(); var t = $tTd.text().trim(); if (p && t) $pTd.text(p+'\xA0/\xA0'+t); $pTd.attr('colspan','2'); $tTd.remove(); }); }); })(jQuery);