Greasy Fork

Greasy Fork is available in English.

英雄联盟 云顶之弈 资料站优化

在 lolalytics.com op.gg lolchess.gg 汉化英雄联盟英雄名称 云顶之弈羁绊名称,在lolchess.gg对棋子数量进行着色,按平均排名进行排序

当前为 2021-01-24 提交的版本,查看 最新版本

// ==UserScript==
// @name         英雄联盟 云顶之弈 资料站优化
// @description 在 lolalytics.com op.gg lolchess.gg 汉化英雄联盟英雄名称 云顶之弈羁绊名称,在lolchess.gg对棋子数量进行着色,按平均排名进行排序
// @version      2
// @namespace   https://space.bilibili.com/482343
// @author      古海沉舟
// @license     古海沉舟
// @include      **lolalytics.com**
// @include      **lolchess.gg**
// @include      **op.gg**
// @require      https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js
// @run-at       document-end
// ==/UserScript==
var a = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","jungle","bottom","middle","Popular","Unpopular","Niche","Broad","Depth (Games per player)","Breadth (How much a champion is picked)","Normalised Champion Ranked Player Base","Passive","Early Items (10min)","Synergy","Bad Synergy","Good Synergy","Common Teammates","Counter","Weak Against","Strong Against","Common Matchups","Solo/Duo","DISCORD","TIER LIST","Grid","Tier","List","Lane","PBI","SUP","BOT","MID","JNG","TOP","MAIN","CHALLENGER","MASTER+","MASTER","Summoner Spells","Starting Items","Core Build","support","DIAMOND+","PLATINUM+","Skill Order","Most Common Build","Highest Win Build","Most Common Runes","Highest Win Runes","Runes","Pro Builds","Counters","Game Length Distribution","Win Rate vs Game Length","Most Picked Rune Page","Highest Win Rune Page","Build, Runes & Counters","Mode","Patch","Ban","Pick","Win","Tier","Name","Icon","Rank","Win Rate","Ranked","ARAM","NEXUS","All Items","Winning Items","Popular Items","Diamond+","Win Rate","Pick Rate","Boots","Item","Games","Time","Level","Build","Highest Win","Most Common","Skill Priority","Primary Runes","Secondary","Stat Mods","Overall","Diamond","Platinum","Gold","Silver","Bronze","Iron","Leaderboard","Overview","top"];
var b = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","打野","下路","中路","流行","冷门","专精","广泛","深度 (每玩家选择数)","广度 (一个英雄被选数)","标准化英雄排位玩家基数","被动","早期物品 (10分钟)","协同","弱势协同","强势协同","常见队友","对抗","劣势对局","优势对局","常见对局","单双排","讨论","等级列表","矩阵","等级","列表","路线","选禁指数","辅","下","中","野","上","主要","王者","大师+","大师","召唤师技能","起始物品","核心物品","辅助","钻石+","白金+","技能顺序","最多选择出装","最高胜率出装","最多选择符文","最高胜率符文","符文","职业出装","克制","游戏时长分布","时长胜率曲线","最多选择符文","最高胜率符文","出装 符文 克制","模式","版本","禁","选","胜","等级","名称","图标","排名","胜率","排位","极地大乱斗","极限闪击","所有物品","胜率物品","常用物品","钻石+","胜率","选取率","鞋子","物品","游戏数","时间","等级","出装","最高胜率","最常用","技能优先级","主要符文","次要","属性加成","全部","钻石","白金","黄金","白银","青铜","黑铁","排行榜","概况","上路"];
var x = ["","","","","","","","","","","","","","","","","","","","","cost","Viego","Rell","Items","Mythic","Seraphine","Winrate","Meta Trends","Item Trends","Item Priority","TwistedFate","Samira","Morgana","Lux","Nami","Jinx","Nasus","Ziggs","Soraka","Teemo","Fiora","Vayne","Thresh","Veigar","Sivir","Caitlyn","Maokai","Graves","Xayah","Ashe","Galio","Skarner","Lucian","Miss Fortune","Sona","Annie","Vel'Koz","Yorick","Brand","Jhin","Yasuo","Hecarim","Orianna","Kayle","Yone","Kled","Neeko","Malzahar","Ahri","Xin Zhao","Swain","Senna","Zilean","Heimerdinger","Jax","Cassiopeia","Nautilus","Varus","Poppy","Mordekaiser","Zoe","Kai'Sa","Ekko","Rammus","Kindred","Olaf","Zyra","Trundle","Twitch","Urgot","Aurelion Sol","Sett","Alistar","Janna","Zed","Aatrox","Shaco","Cho'Gath","Darius","Singed","Vladimir","Gnar","Volibear","Karthus","Kassadin","Riven","Shen","Kog'Maw","Diana","Jarvan IV","Vi","Kha'Zix","Sylas","Anivia","Taric","Amumu","Leona","Fizz","Lillia","Syndra","Pantheon","Dr Mundo","Xerath","Viktor","Renekton","Fiddlesticks","Irelia","Malphite","Ezreal","Evelynn","Zac","Warwick","Illaoi","Akali","Lissandra","Rengar","Kayn","Aphelios","Nocturne","Sion","Camille","Master Yi","Ryze","Draven","Tristana","Ornn","Talon","Udyr","Rek'Sai","Taliyah","Rakan","Garen","Tryndamere","Wukong","Gragas","Katarina","Quinn","Tahm Kench","Elise","Jayce","Nunu","Kalista","Pyke","LeBlanc","Twisted Fate","Yuumi","Lulu","Nidalee","Sejuani","Lee Sin","Qiyana","Shyvana","Kennen","Bard","Blitzcrank","Azir","Rumble","Karma","Gangplank","Corki","Braum"];
var y = ["","","","","","","","","","","","","","","","","","","","","费用","破败王者","镕铁少女","物品","神话","星籁歌姬","胜率","版本趋势","物品趋势","物品优先级","卡牌大师","沙漠玫瑰","堕落天使","光辉女郎","唤潮鲛姬","暴走萝莉","沙漠死神","爆破鬼才","众星之子","迅捷斥候","无双剑姬","暗夜猎手","魂锁典狱长","邪恶小法师","战争女神","皮城女警","扭曲树精","法外狂徒","逆羽","寒冰射手","正义巨像","水晶先锋","圣枪游侠","赏金猎人","琴瑟仙女","黑暗之女","虚空之眼","牧魂人","复仇焰魂","戏命师","疾风剑豪","战争之影","发条魔灵","正义天使","封魔剑魂","暴怒骑士","万花通灵","虚空先知","九尾妖狐","德邦总管","诺克萨斯统领","涤魂圣枪","时光守护者","大发明家","武器大师","魔蛇之拥","深海泰坦","惩戒之箭","圣锤之毅","铁铠冥魂","暮光星灵","虚空之女","时间刺客","披甲龙龟","永猎双子","狂战士","荆棘之兴","巨魔之王","瘟疫之源","无畏战车","铸星龙王","腕豪","牛头酋长","风暴之怒","影流之主","暗裔剑魔","恶魔小丑","虚空恐惧","诺克萨斯之手","炼金术士","猩红收割者","迷失之牙","不灭狂雷","死亡颂唱者","虚空行者","放逐之刃","暮光之眼","深渊巨口","皎月女神","德玛西亚皇子","皮城执法官","虚空掠夺者","解脱者","冰晶凤凰","瓦洛兰之盾","殇之木乃伊","曙光女神","潮汐海灵","含羞蓓蕾","暗黑元首","不屈之枪","祖安狂人","远古巫灵","机械先驱","荒漠屠夫","远古恐惧","刀锋舞者","熔岩巨兽","探险家","痛苦之拥","生化魔人","祖安怒兽","海兽祭司","离群之刺","冰霜女巫","傲之追猎者","影流之镰","残月之肃","永恒梦魇","亡灵战神","青钢影","无极剑圣","符文法师","荣耀行刑官","麦林炮手","山隐之焰","刀锋之影","兽灵行者","虚空遁地兽","岩雀","幻翎","德玛西亚之力","蛮族之王","齐天大圣","酒桶","不祥之刃","德玛西亚之翼","河流之王","蜘蛛女皇","未来守护者","雪原双子","复仇之矛","血港鬼影","诡术妖姬","卡牌大师","魔法猫咪","仙灵女巫","狂野女猎手","北地之怒","盲僧","元素女皇","龙血武姬","狂暴之心","星界游神","蒸汽机器人","沙漠皇帝","机械公敌","天启者","海洋之灾","英勇投弹手","弗雷尔卓德之心"];
var q = ["","","","","","","View","TOP4%","Avg.","There are no decks using that champion.","Syphoner","Executioner","Dragonsoul","Fabled","Blacksmith","Daredevil","Slayer","Level","Tier","Warlord","Tormented","The Boss","Spirit","Ninja","Moonlight","Fortune","Exile","Enlightened","Elderwood","Dusk","Divine","Cultist","Vanguard","Sharpshooter","Shade","Mystic","Mage","Keeper","Hunter","Emperor","Duelist","Dazzler","Brawler","Assassin","Adept"];
var w = ["","","","","","","查看","前四率","平均排名","此英雄无卡组使用","神使","裁决使","龙魂","山海绘卷","铁匠","主宰","战神","等级","级别","三国猛将","天煞","霸王","灵魂莲华明昼","忍者","月神","福星","浪人","玉剑仙","永恒之森","灵魂莲华夜幽","天神","腥红之月","重装战士","神射手","夜影","秘术师","魔法师","神盾使","猎人","枭雄","决斗大师","耀光使","斗士","刺客","宗师"];
var zz=0;
function conv(str){
     if(!str)return "";
     var ret=str, index, cha,l=str.length;
     for(var i=0;i<a.length;i++){
          if (a[i]!="" && ret.toLowerCase()==a[i].toLowerCase()){
               return b[i];
          }
     }
     for(i=0;i<x.length;i++){
          if (x[i]!=""){
               cha =new RegExp("(?<![a-zA-Z])"+x[i]+"(?![a-zA-Z])","gi");
               ret=ret.replace(cha,y[i]);
          }
     }
     if (zz==1) {
          for(i=0;i<q.length;i++){
               if (q[i]!=""){
                    cha =new RegExp("(?<![a-zA-Z])"+q[i]+"s?(?![a-zA-Z])","gi");
                    ret=ret.replace(cha,w[i]);
               }
          }
     }
     return ret;
}

function handleTextNode(pNode){
     var childs;
     if(pNode){
          childs=pNode.childNodes;
     }else{
          childs=document.documentElement.childNodes;
     }
     if(childs){
          for(var i=0;i<childs.length;i++){
               var child=childs.item(i);
               if(/SCRIPT|HR|TEXTAREA|STYLE/.test(child.tagName))continue;
               if(child.title){
                    let title=conv(child.title);
                    if(child.title != title){
                         child.title=title;
                    }
               }
               if(child.alt){
                    let alt=conv(child.alt);
                    if(child.alt != alt){
                         child.alt=alt;
                    }
               }
               if(child.tagName == "INPUT" && child.value !== "" && child.type != "text" && child.type != "search" && child.type != "hidden"){
                    let value=conv(child.value);
                    if(child.value != value){
                         child.value=value;
                    }
               }else if(child.nodeType == 3){
                    let data=conv(child.data);
                    if(child.data != data){
                         child.data=data;
                    }
               }else handleTextNode(child);
          }
     }
}

const progress = function(){
     if (window.location.href.indexOf("lolchess.gg")>-1) {  color(); zz=1; }
     handleTextNode();
     var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
     var observer = new MutationObserver(function(records){
          records.map(function(record) {
               if(record.addedNodes){
                    [].forEach.call(record.addedNodes,function(item){
                         handleTextNode(item);
                    });
               }
          });
     });
     var option = {
          'childList': true,
          'subtree': true
     };
     observer.observe(document.body, option);
}
window.addEventListener('load', progress, false);
function color(){ //对棋子数量进行着色,按平均排名进行排序
let wdstyle = document.createElement('style');
wdstyle.innerHTML = `div[class="unit unit--cost--5"] div[class="unit__image has-tooltip"],div[class|="unit unit--cost-5"] img,.tft-champion.cost-5{border: 3px solid #ff8e00 !important;}
div[class="unit unit--cost--4"] div[class="unit__image has-tooltip"],div[class|="unit unit--cost-4"] img,.tft-champion.cost-4{border: 3px solid #b500ae !important;}
div[class="unit unit--cost--3"] div[class="unit__image has-tooltip"],div[class|="unit unit--cost-3"] img,.tft-champion.cost-3{border: 3px solid #30c9ff !important;}
div[class="unit unit--cost--2"] div[class="unit__image has-tooltip"],div[class|="unit unit--cost-2"] img,.tft-champion.cost-2{border: 3px solid #2cbf4c !important;}
div[class="unit unit--cost--1"] div[class="unit__image has-tooltip"],div[class|="unit unit--cost-1"] img,.tft-champion.cost-1{border: 3px solid #aaa !important;}`;
     var co=new Array("#222","#222","#222","#222","#222","#222","#063c2d","#3c0635","#163544","#151515","#000");
     var fl,fv,x,i,j,k;
     var sz=new Array();
     fv=new Array();
     sz.push("0");
     function swap(a,b){
          var n = a.next(), p = b.prev();
          b.insertBefore(n);
          a.insertAfter(p);
     };
     fl=document.querySelectorAll("#decks > div > section > div.col-12.col-xl-9 > div > div > div.deck__stats > dl:nth-child(3) > dd > span");
     $(fl).each(function () {
          x=$(this).text().split("#")[1];
          sz.push(x);
          //console.log(sz);
     });
     fl=document.querySelectorAll("#decks > div > section > div.col-12.col-xl-9 > div");
     $(fl).each(function () {
          fv.push($(this).html());
     });
     for (i=1;i<sz.length-1;i++){
          for (j=i+1;j<sz.length;j++){
               if (sz[i]>sz[j]){
                    x=fv[i];               fv[i]=fv[j];               fv[j]=x;
                    x=sz[i];               sz[i]=sz[j];               sz[j]=x;
               }
          }
     }
     fl=document.querySelectorAll("#decks > div > section > div.col-12.col-xl-9 > div");
     for (i=1;i<fv.length;i++)fl[i].innerHTML=fv[i];

     fl=document.querySelectorAll("#decks > div > section > div.col-12.col-xl-9 > div > div > div.deck__units");
     $(fl).each(function () {
          x=$(this).children("div").length;
          $(this).parent().parent().css("background",co[x])
     });
     document.body.appendChild(wdstyle);
}