您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
500.com足彩小助手,页面内显示交战双方历史和赔率信息,无需跳转页面,方便选择
// ==UserScript== // @name 500.com 小助手 // @namespace https://greasyfork.org/zh-CN/users/252532-markiiiiiiii // @version 0.0.6 // @description 500.com足彩小助手,页面内显示交战双方历史和赔率信息,无需跳转页面,方便选择 // @author kumits // @match https://trade.500.com/jczq/* // @icon https://www.google.com/s2/favicons?sz=64&domain=500.com // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js // @require https://cdn.bootcdn.net/ajax/libs/layer/3.5.1/layer.min.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @run-at document-end // @license MIT // ==/UserScript== // 移除广告层 function removeAdDiv() { GM_addStyle('#recommendAtionContainerID{display:none !important}'); // 移除专家推荐层 GM_addStyle('#floatLayerContainerID{display:none !important}'); //移除浮动app下载层 GM_addStyle('#popupContainerID{display:none !important}'); //移除遮罩顶层 } //添加信息图标并绑定动作 function addInfoBtn(){ //添加图标 $('td[class="td td-team"] > div[class="team"] > span[class="team-l"]').each((k,v)=>{ $(v).before('<i class="fa fa-info-circle" aria-hidden="true" style="color:#ff5721"></i>'); }); //监听图标点击动作 $('.fa.fa-info-circle').on({ click:function(){ //关闭之前所有的弹窗 layer.closeAll(); var targetUrl = $(this).parent().parent().parent().find('.td.td-data > a:first').attr('href'); var urlArr = getPageArray(targetUrl) getMatchInfo(urlArr[0]) getLottoInfo(urlArr) }, mouseover:function(){ layer.tips('查看', $(this), { tips: [2,'#78BA32'], time:2000 })} }); } //显示低赔率比赛 function showLowOdds(){ //清除背景图 $('.betbtn').css('background','none'); $('.betbtn').each((k,v)=>{ var o = $(v).find('span').text() switch(true){ case(o <= 1.2): $(v).css({'background-color':'#711DB0','color':'#fff'}); break; case(1.2< o && o <= 1.3 ): $(v).css({'background-color':'#C21292','color':'#fff'}); break; case(1.3< o && o <= 1.4 ): $(v).css({'background-color':'#EF4040','color':'#fff'}); break; case(1.4< o && o <= 1.5 ): $(v).css({'background-color':'#FFA732','color':'#fff'}); break; case(1.5< o ): break; } }) } //获取数据页面组 function getPageArray(pageUrlStr){ //获取页面正则 var pattern = /(\w+)(\.\w+)+(?!.*(\w+)(\.\w+)+)/ //获取页面名 var pageName = pageUrlStr.match(pattern)[0] //页面组 var pageArray = ['shuju','youliao','touzhu','ouzhi','rangqiu','yazhi','daxiao','bifen','zoushi','stat'] //url前缀 var pageUrlPrefix = 'https://odds.500.com/fenxi/' var allUrlArr = [] pageArray.map((item,index)=>{ allUrlArr.push(pageUrlPrefix+item+'-'+pageName) }) return allUrlArr } //获取比赛信息生成弹窗 async function getMatchInfo(urlpath){ let matchCont = await getMatch(urlpath) InfoDiv('主客数据','lt',matchCont); } //获取欧赔,亚盘,大小球信息生成弹窗 async function getLottoInfo(urlArr) { let oupeiCont = await getOupei(urlArr[3]) let yapanCont = await getYazhi(urlArr[5]) let daxiaoCont = await getDaxiao(urlArr[6]) lottoDatasTabDiv('rt',oupeiCont,yapanCont,daxiaoCont) } //获取欧赔 function getOupeiData(urlPath){ return new Promise((resolve,reject)=>{ GM_xmlhttpRequest({ method: "GET", responseType:'blob', url: urlPath, onload: function (res) { let reader = new FileReader() reader.readAsText(res.response,"gb2312") reader.onload=function(e){ let domObj= e.target.result; resolve(getLottoTableDiv(domObj)) } } }) }) } async function getOupei(urlpath){ return await getOupeiData(urlpath) } //获取亚盘 function getYazhiData(urlPath){ return new Promise((resolve,reject)=>{ GM_xmlhttpRequest({ method: "GET", responseType:'blob', url: urlPath, onload: function (res) { let reader = new FileReader() reader.readAsText(res.response,"gb2312") reader.onload=function(e){ let domObj= e.target.result; resolve(getLottoTableDiv(domObj)) } } }) }) } async function getYazhi(urlpath){ return await getYazhiData(urlpath) } //获取大小球 function getDaxiaoData(urlPath){ return new Promise((resolve,reject)=>{ GM_xmlhttpRequest({ method: "GET", responseType:'blob', url: urlPath, onload: function (res) { let reader = new FileReader() reader.readAsText(res.response,"gb2312") reader.onload=function(e){ let domObj= e.target.result; resolve(getLottoTableDiv(domObj)) } } }) }) } async function getDaxiao(urlpath){ return await getDaxiaoData(urlpath) } // 获取队伍信息 function getMatchData(urlpath) { return new Promise((resolve,reject)=>{ GM_xmlhttpRequest({ method: "GET", responseType:'blob', url: urlpath, onload: function (res) { let reader = new FileReader() reader.readAsText(res.response,"gb2312") reader.onload=function(e){ let domObj= e.target.result; let tmp = historyDiv(domObj) tmp +=bankingDiv(domObj) tmp +=recordDiv(domObj) tmp +=integralDiv(domObj) resolve(tmp) } } }) }) } async function getMatch(urlpath){ return await getMatchData(urlpath) } //交战历史层 function historyDiv(dom){ var filterTabel = $(dom).find('.mar_b.history.M_box') filterTabel.find('.M_content>.pub_table>tbody>tr').each( function(index,item){ if(index == 0){ $(item).find('th:gt(4)').remove() }else{ $(item).find('td:gt(4)').remove() } } ); filterTabel.find('.M_content>.pub_table>colgroup>col:gt(4)').remove() filterTabel.find('.M_content_t').remove(); filterTabel.find('.M_title>span').remove(); return filterTabel[0].innerHTML } //排名层 function bankingDiv(dom){ var homeTeamName =$(dom).find('.M_box>.M_sub_title>div:first')[0].innerText var awayTeamName =$(dom).find('.M_box>.M_sub_title>div:last')[0].innerText var homeTeamTable = $(dom).find('.M_box>.M_content>.team_a') homeTeamTable.find('table').wrap('<div><h4>主:'+homeTeamName+'</h4></div>'); var awayTeamTable =$(dom).find('.M_box>.M_content>.team_b') awayTeamTable.find('table').wrap('<div><h4>客:'+awayTeamName+'</h4></div>'); return $(homeTeamTable)[0].innerHTML+$(awayTeamTable)[0].innerHTML } //近期战绩层 function recordDiv(dom){ var homeTeamTable = $(dom).find('.M_box.record>.odds_zj_tubiao.module_cur>.team_a>form>.M_content') homeTeamTable.find('.bottom_info').remove() homeTeamTable.find('table').wrap('<div><h4>主队战绩</h4></div>'); var awayTeamTable = $(dom).find('.M_box.record>.odds_zj_tubiao.module_cur>.team_b>form>.M_content') awayTeamTable.find('.bottom_info').remove() awayTeamTable.find('table').wrap('<div><h4>客队战绩</h4></div>'); return $(homeTeamTable)[0].innerHTML+$(awayTeamTable)[0].innerHTML } //未来赛事层 function integralDiv(dom){ var homeTeamTable = $(dom).find('.M_box.integral>.M_content>.team_a') homeTeamTable.find('table').wrap('<div><h4>主队未来赛事</h4></div>'); var awayTeamTable = $(dom).find('.M_box.integral>.M_content>.team_b') awayTeamTable.find('table').wrap('<div><h4>客队未来赛事</h4></div>'); return $(homeTeamTable)[0].innerHTML+$(awayTeamTable)[0].innerHTML } //获取欧赔、亚盘、大小球数据层 function getLottoTableDiv(dom){ var lottoTable = $(dom).find('.table_cont').parent() return $(lottoTable)[0].innerHTML } //左弹出层 function InfoDiv(title,offset,contents) { layer.open({ type:1, title: title, offset:offset, shadeClose: true, shade: false, area: ['610px', '800px'], content: contents }); } //右弹出层 function lottoDatasTabDiv(offset,cont1,cont2,cont3) { layer.tab({ offset:offset, area: ['610px', '800px'], shade: false, tab:[{ title:'百家欧赔', content: cont1 },{ title:'亚盘对比', content: cont2 },{ title:'大小指数', content: cont3 }] }); } //添加css function addCss() { $(document.body).append('<link href="https://cdn.bootcdn.net/ajax/libs/layer/3.5.1/theme/default/layer.min.css" rel="stylesheet">'); $(document.body).append('<link href="https://www.500cache.com/odds/css/odds_new.css?v=2020-10-22" rel="stylesheet">'); $(document.body).append('<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.2.1/css/all.min.css" rel="stylesheet">'); } //主函数 function MainFunc() { addCss(); removeAdDiv(); addInfoBtn(); showLowOdds(); } MainFunc(); //主函数执行