Greasy Fork

Greasy Fork is available in English.

WarframeMarketTranslation

WarframeMarket Translation ,翻译 WarframeMarket 的商品对照中英文,英文游戏购买可以直接快速看见商品名,不需要开两个网页对照了

当前为 2024-10-03 提交的版本,查看 最新版本

// ==UserScript==
// @name         WarframeMarketTranslation
// @version      0.2
// @description  WarframeMarket Translation ,翻译 WarframeMarket 的商品对照中英文,英文游戏购买可以直接快速看见商品名,不需要开两个网页对照了
// @author       Boomer
// @match        https://warframe.market/zh-hans/profile/*
// @icon         https://warframe.market/favicon.ico
// @grant        none
// @license      MIT
// @namespace http://greasyfork.icu/users/1327824
// ==/UserScript==

(function () {
    "use strict";
    // todo: 方法二
    // 监听滚轮事件
    window.addEventListener("wheel", function () {

        var commonProductPath = document.querySelector("#panel > section.user__profile.content--UwhYJ.grow--Q24fj > div.content__header--mFlr5.flex-root > div.container > div > ul > li:nth-child(1) > a");
        var crackTheCommodityPath = document.querySelector("#panel > section.user__profile.content--UwhYJ.grow--Q24fj > div.content__header--mFlr5.flex-root > div.container > div > ul > li:nth-child(2) > a");

        // 判断当前是否在普通 "订单" 页面
        if (commonProductPath.className == "link smartLink--bBcyL active") {

            // 商品内容
            let ProductContents = document.getElementsByClassName("infinite-translate");
            let WarframeMarketWantToSell = ProductContents[0];
            let WarframeMarketWantToSellNode = Array.from(WarframeMarketWantToSell.childNodes);
            // 测试使用
            // console.log("WarframeMarketWantToSellNode 长度为 :" + WarframeMarketWantToSellNode.length);

            // 使用 for 循环遍历WarframeMarketWantToSellNode并修改匹配的元素
            for (let i = 0; i < WarframeMarketWantToSellNode.length; i++) {

                // 选择 商品的超链接 从中截取英文名称
                let selector = `#panel > section.user__profile.content--UwhYJ.grow--Q24fj > div.content__body--qkyqR.flex--root > div.container > div.order__content--ORU7n > div.sellOrders--nsRSO.listingSell > div.infinite-scroll > div > div:nth-child(${i + 1}) > div.order-own__item-name--K7IDS > a`;
                let selectorElement = document.querySelector(selector);
                let SelectorTheEnglishNameOfTheProduct = selectorElement.getAttribute("href").replace("/zh-hans/items/", "");


                // 选择 商品名称
                let elementToModify = selector + ` > span`;
                let elementToModifyElement = document.querySelector(elementToModify);

                let formattedName = SelectorTheEnglishNameOfTheProduct.replace(/(?:^|_)(\w)/g, (match, p1) => p1.toUpperCase()).replace(/_/g, '').replace(/(\w)([A-Z])/g, '$1 $2');
                formattedName = formattedName.charAt(0).toUpperCase() + formattedName.slice(1);
                // 将首字母大写

                // 如果该行已经插入过内容则跳过,判断条件为 被插入了 " | "
                if (elementToModifyElement.innerHTML.includes("|")) {
                    continue; // 包含 "|"
                } else {
                    // 执行插入语句
                    (function (index) {
                        // 在这里执行你想要的修改操作,例如:
                        elementToModifyElement.innerHTML = elementToModifyElement.innerHTML + " | " + "( "+formattedName+" )";
                    })(i);
                }
            }

        }

        // 判断当前是否在裂罅 "拍卖" 页面
        if (crackTheCommodityPath.className == "link smartLink--bBcyL active") {

            // 商品内容
            let ProductContents = document.getElementsByClassName("infinite-translate");
            let WarframeMarketWantToSell = ProductContents[0];
            let WarframeMarketWantToSellNode = Array.from(WarframeMarketWantToSell.childNodes);
            console.log("WarframeMarketWantToSellNode 长度为 :" + WarframeMarketWantToSellNode.length);

            // 使用 for 循环遍历WarframeMarketWantToSellNode并修改匹配的元素
            for (let i = 0; i < WarframeMarketWantToSellNode.length; i++) {

                // 裂罅商品路径
                let crackTheCommodityPath = `#panel > section.user__profile.content--UwhYJ.grow--Q24fj > div.content__body--qkyqR.flex--root > div.container > div.infinite-scroll > div > section:nth-child(${i + 1}) > div.row.auction-entry__header.no-gutters > div:nth-child(1) > div > a`;
                // 图片路径
                var crackProductImagePath = crackTheCommodityPath + " > img";
                // 名称路径
                var crackTradeNamePath = crackTheCommodityPath + " > span";
                // 选择商品的超链接从中截取英文名称
                // 裂罅商品图片元素
                let crackedProductImageElements = document.querySelector(crackProductImagePath);
                // 获取到当前图片src里面的文字文本
                var attribute = crackedProductImageElements.getAttribute("src");
                // 处理文字文本取出英文武器名称
                var theEnglishCrackNameObtained = attribute.substring(attribute.indexOf("/thumbs/") + "/thumbs/".length, attribute.indexOf(".", attribute.indexOf("/thumbs/")));
                // 一行代码实现找到/thumbs/和第一个.之间的内容

                let elementToModifyElement = document.querySelector(crackTradeNamePath);
                // 如果该行已经插入过内容则跳过,判断条件为 被插入了 " | "
                if (elementToModifyElement.innerHTML.includes("|")) {
                    continue; // 包含 "|"
                } else {
                    // 执行插入语句
                    (function (index) {
                        // 在这里执行你想要的修改操作,例如:
                        theEnglishCrackNameObtained.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
                        var name = elementToModifyElement.innerHTML.substring(elementToModifyElement.innerHTML.indexOf(" ") + 1);
                        // 转驼峰
                        theEnglishCrackNameObtained = theEnglishCrackNameObtained.charAt(0).toUpperCase() + theEnglishCrackNameObtained.slice(1);

                        elementToModifyElement.innerHTML = elementToModifyElement.innerHTML + " |  武器名称:( " + theEnglishCrackNameObtained + " ) 裂罅编号:( " + name +" )";
                    })(i);
                }
            }

        }

    });

})();