NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name arbitrage-helper // @version 0.0.3 // @description arbitrage helper for sosobtc/aicoin // @description 简化并优化 sosobtc/aicoin 的显示效果以提供(搬砖)套利比价参考. // @description 要求买一价和卖一价必须在6, 7两列. 目前只对自选产品有效. // @namespace userscripts.henryfour.com // @homepageURL https://github.com/henryfour/userscripts // @supportURL https://github.com/henryfour/userscripts/issues // @author HenryFour // @copyright 2017+, HenryFour // @license MIT // // @run-at document-end // @grant GM_addStyle // @include https://*.sosobtc.com/* // @include *://*.aicoin.net.cn/* // @icon https://www.aicoin.net.cn/favicon.ico // @require https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js // ==/UserScript== // 设定列的位置, 买一价, 卖一价, 涨幅 var posBuy = 6, posSell = 7, posChange = 3; // GM_addStyle("body { background-color: black; }"); // 买一价, 卖一价, 涨幅等突出显示 GM_addStyle( //"#market_tabs .tab-content { background-color: #E6E6FA;font-weight:bold; }" + // 设置币种和交易平台(交易商)名字颜色 "#market_tabs .tab-content table tr td.market_name span { color:blue; }" + "#market_tabs .tab-content table tr td.market_name span.name { color:black; }" + // 设置 买入, 卖出, 涨幅背景色 "#market_tabs .tab-content table td:nth-child(" + posBuy + ") { background-color: #009688;font-weight:bold; }" + "#market_tabs .tab-content table td:nth-child("+ posSell +") { background-color: #CC6600;font-weight:bold; }" + "#market_tabs .tab-content table td:nth-child("+ posChange +") { background-color: #B0E0E6;font-weight:bold; }" + // 设置行 hover 的背景色 "#market_tabs .tab-content table tr:hover { background-color:grey; }" + "" ); (function() { 'use strict'; var $markets = $("#market_tabs"); // console.log($markets.nextAll()); // 隐藏行情下面内容(各个币种市值) $markets.nextAll().hide(); // 删除右边的导航和挖矿数据等内容 $markets.parent().nextAll().hide(); // 隐藏 footer $("footer").hide(); // 隐藏导航下面的内容 $(".header-container").parent().nextAll().hide(); // 隐藏 logo 和标语 $("._3GrMQ7i3tFoJgOqEacuMyt").hide(); $("._9mJU0WMvJKiO0r8w5UoBV").hide(); // 添加价格显示区域 $("._3QGExTshWJ53K_WZIr05vm").append("<div><p class=price1 style='color:white;font-weight:bold;line-height:20px;margin:10px 0 0 0'></p>" + "<p class=price2 style='color:white;font-weight:bold;line-height:20px;margin:5px 0 0 0'></p></div>"); var $price1 = $("._3QGExTshWJ53K_WZIr05vm").find("div .price1"); var $price2 = $("._3QGExTshWJ53K_WZIr05vm").find("div .price2"); $price1.text("提示信息区1: ...."); $price2.text("提示信息区2: ...."); // 背景色设置 var colorBuy="#009688", colorSell="#CC6600", colorFocus="red", rowFocus="lightgray"; var compareTwoPrice = function($x1, $x2) { // 计算价格的比率 var pBuy = $x1.cell.find(".main").text(), pSell = $x2.cell.find(".main").text(); var rate = (((pSell-pBuy)/pBuy) * 100).toFixed(2); // 获取币种信息 var name = $x1.cell.parent().find(".market_name .name").parent().clone().children().remove().end().text(); name = name.substring(name.indexOf("-")+1); return name + ": " + pBuy + " -> " + pSell + " 获利比 " + rate + "%"; }; // 点击买卖价格时显示颜色并计算差价 var priceQ = []; // 刷新选择的价格比率 var refreshPricePairs = function() { var len = priceQ.length; var text; if (len == 4) { text = compareTwoPrice(priceQ[0], priceQ[1]); console.log(text); $price1.text(text); } if (len >= 2) { text = compareTwoPrice(priceQ[len-2], priceQ[len-1]); console.log(text); $price2.text(text); } }; setInterval(refreshPricePairs, 400); var onClickPrice = function(bs, $x) { priceQ.push({ bs: bs, cell: $x, }); // 弹出前面第5个点击点 if (priceQ.length > 4) { // 重置前面第5个点击的格子(如果连续点击同一个格子, 那么下一次重置会有问题) var pop = priceQ.shift(); // 取消行高亮 pop.cell.parent().css("background-color", ""); if (pop.bs == "buy") { pop.cell.css("background-color", colorBuy); } else { pop.cell.css("background-color", colorSell); } } // 高亮当前的格子 $x.css("background-color", colorFocus); // 高亮当前的行 $x.parent().css("background-color", rowFocus); refreshPricePairs(); }; var $buy1s = $("#market_tabs .tab-content table td:nth-child("+posBuy+")"); var $sell1s = $("#market_tabs .tab-content table td:nth-child("+posSell+")"); // 禁用各行的链接 $buy1s.parent().off("click"); $sell1s.parent().off("click"); // 直接禁用行的点击事件, 会导致最后一个操作也没法点击, 该操作图标的 click 事件应该是绑定在 tr 的祖先元素上的 //$buy1s.parent().click(function(e){e.stopPropagation();}); //$sell1s.parent().click(function(e){e.stopPropagation();}); // 禁用除了操作按钮列之外的其他单元格的点击跳转 //$("#market_tabs .tab-content table td:not(.opts)").click(function(e){e.stopPropagation();}); $("#market_tabs .tab-content table").on("click", "td:not(.opts)", function(e) { e.stopPropagation(); }); $("#market_tabs .tab-content table").on("click", "td:nth-child("+posBuy+")", function(e) { onClickPrice("buy", $(this)); e.stopPropagation(); }); $("#market_tabs .tab-content table").on("click", "td:nth-child("+posSell+")", function(e) { onClickPrice("sell", $(this)); e.stopPropagation(); }); })(); (function afterLoad(){ var marketMore = $(".market_more"); })();