Rating Grab - 17lands.com

2021/7/16下午6:58:30 抓取17lands评分,在console打印出来

目前为 2021-10-04 提交的版本。查看 最新版本

// ==UserScript==
// @name        Rating Grab - 17lands.com
// @namespace   Douxt Scripts
// @match       https://www.17lands.com/tier_list/*
// @grant       none
// @version     1.0
// @author      非瑞克西亚食尸鬼
// @description 2021/7/16下午6:58:30  抓取17lands评分,在console打印出来
// ==/UserScript==
// @requrie     https://libs.baidu.com/jquery/2.0.0/jquery.min.js


(function(){
  'use strict';
  console.log('hello world!');
  //makeBox();
  
  //setInterval(loopCheck,500);
  
  setTimeout(grabRating,5000);
  
  $(document).keydown(function (event) {
    console.log(event.keyCode);
    let key = event.keyCode;
    if(key == 72){
      toggleHide();
    } else if(key == 82){
      grabRating();
    }
    else {
      setTimeout(startWork,200);
    }
    
  });
})();


  let nt=0,nf=0,nb=0;

  let hide = false;

  let legend = ['A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-','F','备','玄'];

  function grabRating(){
    console.log('grabRating');
    
    
    let bucks = document.getElementsByClassName('tier_bucket');
    
    
    
    console.log('bucks length:',bucks.length);
    //console.log('children:',buck.children);
    
    let rating = {};
    
    for(let i = 0; i < bucks.length; i++){
      
      let buck = bucks[i];
      for(let j = 0; j< buck.children.length; j++){
        let text = buck.children[j].children[0].innerHTML;
        console.log('text:',text,i,legend[i%15]);
        rating[text] = {Rate:legend[i%15],Desc:''};
      }      
      
    }
    
    console.log('rating:',JSON.stringify(rating));
  }

  function toggleHide(){
      hide = !hide;
      if(hide){
        $(".rate").hide();
        $(".rate2").hide();
        //$(".ref").hide();
        $(".fix-top").hide();
      } else {
        $(".rate").show();
        $(".rate2").show(); 
        //$(".ref").show();
        $(".fix-top").show();
        startWork();
      }
  }

  function loopCheck(){
    
    //return;
    //console.log('loopCheck');
    let nnt = $("img.card_slot_2").length;
    let nnf = $("img.card_slot_2.front").length;
    let nnb = $("img.card_slot_2.behind").length;
    
    if(nnt!=nt || nnf!=nf || nnb!= nb){
      console.log('changed!refresh!');
      startWork();
    }
    
    nt = nnt;nf = nnf; nb = nnb;
    //console.log(nnt,nnf,nnb);
  }

  function makeMap(){
    for(var i = 0; i < reviews.length; i ++){
      map[reviews[i][0]] = i;
    }
    //console.log('map:',map);
    for(var i = 0; i < reviews2.length; i ++){
      map2[reviews2[i][0]] = i;
    }
    //console.log('map2:',map);
  }

  function makeBox(){
    let bd = $("body");
    let div = $('<div class="fix-top" id="review-box"><div class="zone">MTGAZone:<span id="zone-review"></span></div><div class="white"><div id="close">[关闭]</div></div></div>');
    div.appendTo(bd[0]);
    //console.log('bd:',bd);
    
    let hd = $("head");
    let st = $('<style>.pre{height:100px;}.t1{color:#0F0;}.t2{color:#83fa4d;}.t3{color:#a8fb4e;}.t4{color:#ddfc52;}.t5{color:#fbe14c;}.t6{color:#f19c38;}.t7{color:#ed5e2a;}.t8{color:#FF0000;}.tno{color:#444;}.rate{position:absolute;left:5px;bottom:5px;width:20px;height:20px;background-color:black;text-align:center;line-height:20px;z-index:9;}.rate2{position:absolute;right:5px;bottom:5px;width:20px;height:20px;background-color:black;text-align:center;line-height:20px;z-index:9;}.white{color:white;float:right;width:34%;margin:5px;position:relative;}.zone{color:white;float:left;width:64%;border:1px solid yellow;margin:5px;}.fix-top{position:fixed;top:0;left:0;right:0;background:#000;}.ref{color:white;border:1px solid yellow;}#close{position:absolute;right:5px;bottom:-20px;color:yellow;}</style>');
    st.appendTo(hd[0]);
    
    $("#close").mouseover(function(){
      //console.log('mouseOverReview');
      $("#review-box").hide();
    });
    
    let ref = $('<div class="ref"><div>鼠标移动到牌面上显示评价,按方向键←→翻页,按h键隐藏/显示评分内容。有异常可以尝试浏览器刷新。&nbsp;&nbsp; ——非瑞克西亚食尸鬼<br/><br/></div>参考资料:<div><a target="_blank" href="https://mp.weixin.qq.com/s/AKVi2V5_vI8nS779f0aCzQ">大白:【限制】2天到秘稀——AFR限制攻略</a></div><div><a target="_blank" href="https://mtgazone.com/innistrad-midnight-hunt-limited-set-review-white/">MTGAZone:Innistrad: Midnight Hunt Limited Set Review</a></div><br /><br /></div>');
    ref.appendTo(bd[0]);
    
    let url = window.location.href;
    if(url.indexOf("site_draft")!=-1){
      let pre = $('<div class="pre"></div>');
      pre.prependTo($("div#site_draft_app"));
    }
  }


  

  function startWork(){
    //console.log('startWork');
    
    $("div.card_slot_2").each(function(){
      
      if(hide){
        return;
      }
      let ch = $(this).children("img");
      //console.log('ch:',ch[0].alt);
      //ch[0].info = ch[0].alt + 'is good';
      let name = ch[0].alt;
      
      let children = $(this).children(".rate");
      //console.log('children:',children.length,children);
      let zrt = getZoneRating(name);
      //console.log(name,":",zrt);
      
      if(zrt){
        let cc = getColorClass(zrt);
        if(children.length==0){
          let div = $('<div class="rate"><span class="' + cc + '">' + zrt + '</span></div>');
          div.appendTo($(this));      
        } else {
          children.html('<span class="' + cc + '">' + zrt + '</span>');
        }        
      }
      
      let children2 = $(this).children(".rate2");
      //console.log('children:',children.length,children);
      let brt = getBaiRating(name);
      //console.log(name,":",brt);
      
      if(brt){
        let cc = getColorClass(brt);
        if(children2.length==0){
          let div = $('<div class="rate2"><span class="' + cc + '">' + brt + '</span></div>');
          div.appendTo($(this));      
        } else {
          children2.html('<span class="' + cc + '">' + brt + '</span>');;
        }        
      }
      

      $(this).mouseover(function(){
        console.log('mouse over:',name);
        
        if(hide){
          return;
        }
        
        let text = showReviewText(name);

        $("#review-box").show();

      });
    });
  }

  function showReviewText(name){
    
    if(name in reviews){
      let rv = reviews[name];
      //console.log('review:',rv);
      $("#zone-review").text('Rating: ' + rv["Rate"] + '. ' + name + '. ' + rv["Desc"]); 
    } else {
      $("#zone-review").text('no comment!'); 
    }
    
    // if(name in map2){
    //   let idx = map2[name];
    //   let rv = reviews2[idx];
    //   //console.log('review2:',rv);
    //   $("#bai-review").text('第' + rv[1] + '梯队' + '。' + rv[2] + '。' + rv[3]); 
    // } else {
    //   $("#bai-review").text('此牌有玄机!欲知详情请备好礼物与我面谈!'); 
    // }
    
  }

  function getZoneRating(name){
    if(name in reviews){
      let rv = reviews[name];
      return rv["Rate"];
    } else {
      return '?';
    }  
  }

  function getBaiRating(name){
    return '';
    if(name in map2){
      let idx = map2[name];
      let rv = reviews2[idx];
      return rv[1];
    } else {
      return '玄';
    }  
  }

  function getColorClass(rate){
    let cc;
    switch(rate){
        case "A+":
        case "A":
        case "5.0":
        case "4.5":
          cc = "t1";
          break;
        case "A-":
        case "B+":
        case "4.0":
          cc = "t2";
          break;
        case "B-":
        case "C+":
        case "3.5":
          cc = "t3";
          break;
        case "C":
        case "C-":
        case "3.0":
          cc = "t4";
          break;
        case "D+":
        case "2.5":
          cc = "t5";
          break;
        case "D":
        case "2.0":
          cc = "t6";
          break;
        case "D-":
        case "1.5":
          cc = "t7";
          break;
        case "F":
        case "F+":
        case "F-":
        case "1.0":
        case "0.5":
        case "0.0":
          cc = "t8";
          break;
        
        default:
          cc = "tno";
    }
    //console.log('ColorClass:',cc);
    
    return cc;
  }


  






QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址