您需要先安装一个扩展,例如 篡改猴、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);