您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
sort items in inventory
当前为
- // ==UserScript==
- // @name wod item sorter
- // @namespace org.holer.webgame.util.wod
- // @version 0.1.22
- // @description sort items in inventory
- // @include http://*.world-of-dungeons.org/wod/spiel/hero/items.php*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
- // @grant none
- // @copyright 2012+, Russell
- // ==/UserScript==
- function main() {
- window.wisMsgg = {
- applySortRule: "apply sort rules",
- autoSort: "auto sort",
- append: "append",
- exception: "exception",
- deleteStr: "delete",
- generateRule: "generate rule",
- saveRule: "save rule",
- loadRule: "load rule",
- noLocalStorageSupport: "browser do not support localStorage, can't save settings"
- };
- window.wisMsg = {
- applySortRule: "整理",
- autoSort: "自动整理",
- append: "增加规则",
- exception: "增加子规则",
- deleteStr: "删除",
- generateRule: "生成规则",
- saveRule: "保存规则",
- loadRule: "加载已保存的规则",
- noLocalStorageSupport: "浏览器不支持localStorage,无法保存设置。"
- };
- window.statsHtml = '<div class=item_sort_stats></div>';
- window.taHtml = '<textarea id="wiscj" style="width:100%;height:5em;"></textarea>';
- window.uiHtml = '<hr><div id="wisc" class="gadget_body">'+taHtml+'</div>';
- window.btnsHtml = '<div><button id="wisawrb" onclick="applyWisRule()" class="button">'+wisMsg.applySortRule+'</button></div>';
- window.eolHtml = '<ol></ol>';
- window.counts = {
- go_lager : 0,
- go_group_2 : 0,
- go_group : 0,
- go_keller : 0,
- npc : 0
- };
- window.out_alias = {
- "仓库":"go_lager",
- "go_lager":"go_lager",
- "贮藏室":"go_keller",
- "go_keller":"go_keller",
- "团队仓库":"go_group_2",
- "go_group_2":"go_group_2",
- "宝库":"go_group",
- "go_group":"go_group",
- "npc":"npc",
- };
- window.ruleObj = null;
- window.strToRegexI = function () {
- ruleObj = jQuery.parseJSON(ruleObj);
- if (ruleObj.regex) return;
- strToRegex(ruleObj.rules);
- ruleObj.regex = true;
- };
- RegExp.escape = function(text) {
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- };
- // add r:regular exp pair to the dictionary l
- window.strToRegex = function (l){
- for (var i =0; i<l.length;i++){
- //var c;
- //c = l[i];
- // 1 :
- // 2 : uses left
- // 3 :
- l[i].r = new RegExp("^\n*?"+RegExp.escape(l[i].n) +"!?\n*? *?\n*? *?(\\(([\\d]+)\\/([\\d]+)\\))?\n*?$");
- }
- };
- // convert textarea (in JSON) into dictionary
- // and add regular expression obj
- window.wisLoadRule = function () {
- var rule = $("#wiscj").val();
- ruleObj = rule;
- strToRegexI();
- };
- window.getOperation = function (name, list){
- var c;
- for(var i=0;i<list.length;i++){
- c = list[i];
- var c_out = out_alias[c.o];
- //if (c.r.test(name)) {
- //return c.o;
- //}
- var result = c.r.exec(name);
- if (result !== null){
- if (c.geq && result[2] && Number(result[2])>=Number(c.geq)){
- return c_out;
- } else if (c.leq && result[2] && Number(result[2])<=Number(c.leq)){
- return c_out;
- } else if (!c.geq && !c.leq){
- return c_out;
- };
- }
- }
- }
- window.applyWisRule = function () {
- wisLoadRule();
- resetCount();
- $("div.layout_clear > table.content_table > tbody > tr").each(function () {
- var t = $(this);
- // o = where the item should go if rule matches
- //console.log('wod sort item: '+t.children("td").eq(1).children("a").text());
- //var o = getOperation(t.children("td").eq(1).children("a").text(), ruleObj.rules);
- //console.log('465667 '+t.children("td").eq(1).text());
- var o = getOperation(t.children("td").eq(1).text(), ruleObj.rules);
- if (o) {
- applyOperation(t,o);
- }
- });
- $("div.item_sort_stats").focus().text(" 仓库" + counts.go_lager + " 贮藏室" +counts.go_keller+ " 宝库 "+counts.go_group+" 团队仓库"+counts.go_group_2+" NPC "+counts.npc);
- }
- window.resetCount = function () {
- counts.go_lager = 0;
- counts.go_group_2 = 0;
- counts.go_group = 0;
- counts.go_keller = 0;
- counts.npc = 0;
- };
- window.applyOperation = function(t,o){
- var s;
- if ("NUL" == o) {
- return;
- }
- var c;
- if ("npc"==o) {
- //s = t.children().eq(3).children("input:checkbox");
- s = t.children("td").has("img[title='金币']").eq(0).children("input:checkbox");
- s.attr('checked', true);
- c = "rgba(255,34,34,0.9)";
- s.parent().css("color",c);
- t.children().eq(1).children("a").css("background-color",c);
- counts.npc += 1;
- } else {
- s = t.children().eq(2).children("select");
- if ("-"+o != s.val()) {
- s.val(o);
- c = "rgba(127,127,127,0.5)";
- s.css("border-color",c);
- t.children().eq(1).children("a").css("background-color",c);
- counts[o] += 1;
- }
- }
- };
- window.injectUi = function (){
- $("div#main_content").after(uiHtml);
- $("div#main_content").after(btnsHtml);
- //$("#main_content form input[type='submit']:eq(0)").after(statsHtml);
- $("#wisawrb:eq(0)").after(statsHtml);
- };
- window.rowOnMouseColor = function () {
- $("div.layout_clear table.content_table tbody tr").each(function () {
- $(this).addClass("tr_mouse");
- });
- $("div.gadget_body form table.content_table tbody tr").each(function () {
- $(this).addClass("tr_mouse");
- });
- };
- 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 hoverToggleSelect () {
- $("table.content_table tbody tr td input[value=do]").mouseover(function () {
- $(this).prop("checked",!$(this).is(":checked"));
- });
- }
- addGlobalStyle('.tr_mouse:hover { background-color:rgba(248,248,23,0.5); }');
- window.addEventListener("load",injectUi,false);
- //window.addEventListener("load",autoSort,false);
- window.addEventListener("load", rowOnMouseColor,false);
- //window.addEventListener("load", hoverToggleSelect,false);
- };
- $(document).ready(main);