【FSU】FIFA FUT FUTWEB SBC任务操作增强器

FIFAFUT模式SBC任务便捷操作增强器👍👍👍,固定球员筛选选项、近期低价一键查询、拍卖行优化等等...👍👍👍

目前為 2022-12-23 提交的版本,檢視 最新版本

// ==UserScript==
// @name         【FSU】FIFA FUT FUTWEB SBC任务操作增强器
// @namespace    https://futcd.com/
// @version      0.2.0
// @description  FIFAFUT模式SBC任务便捷操作增强器👍👍👍,固定球员筛选选项、近期低价一键查询、拍卖行优化等等...👍👍👍
// @author       Futcd_kcka
// @match        https://www.ea.com/fifa/ultimate-team/web-app/
// @icon         data:image/png;base64,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
// @require		 https://cdn.bootcss.com/jquery/2.2.1/jquery.js
// @grant        GM_addStyle
// @grant        GM_log
// @grant        GM_openInTab
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_xmlhttpRequest
// @connect      ea.com
// @connect      futbin.com
// @connect      futcd.com
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    window.requirementTarget = "";
    const futsbcup = {};
    futsbcup.keys = {
        title:{
            S:"UTSBCHubViewController",
            SC:"UTSBCChallengesViewController",
            SSS:"UTSBCSquadSplitViewController",
            H:"UTHomeHubViewController",
            CS:"UTClubSearchFiltersView",
            MF:"UTMarketSearchFiltersView",
            CSR:"UTClubSearchResultsView",
            ID:"UTItemDetailsView",
            SS:"UTSquadSplitViewController",
            CSRC:"ClubSearchResultsSplitViewController",
            TLSC:"UTTransferListSplitViewController",
            MSRSC:"UTMarketSearchResultsSplitViewController",
            MSFC:"UTMarketSearchFiltersViewController",
            CHC:"UTClubHubViewController",
            THC:"UTTransfersHubViewController",
            MCSFC:"UTMyClubSearchFiltersViewController",
            SPC:"UTStorePackViewController",
            UISC:"UTUnassignedItemsSplitViewController",
        },
        selector:{
            game:".ut-tab-bar-view.game-navigation",
            SC:".SBCChallenges",
            SCH:".sbc-status-container div.expiry",
            SS:".SquadPanel.SBCSquadPanel",
            SSH:".ut-squad-summary-info--right",
            copyButton:".FSU_copy-button",
            searchInput:".FSU_filter-input",
            positionButton:".FSU_position-button",
            getPriceButton:".pagination.getprice",
            getPriceButton3:".ut-section-header-view .getprice",
            getPriceButton4:".view-modal-container.form-modal header .getprice",
            pagingContainer:".pagingContainer",
        },
        requirements:["球隊評分最低為:","Min. Team Rating:","最低球队评分:"],
        search:["club","nation","league"],
        sytle:".FSU_copy-button,.FSU_count-button{margin: auto;background-color: #7e42f5;border-color: transparent;color: #29ffc9;padding-left: 1rem;padding-right: 1rem;line-height: 2rem; height: 2rem;font-size: 1rem; display: block; text-align: center; text-decoration: none;}.FSU_copy-button:hover{background-color: #a991f2;}.FSU_filter-input{border: 0 !important;background-color: rgba(0,0,0,0) !important;padding-left: 0 !important;}.FSU_count-button{background-color: #1a96f6;color: #f2f2f2;}.FSU_count-button:hover{background-color: #45a9f7;}.FSU_position-button{font-family:UltimateTeam-Icons,sans-serif;font-style:normal;font-variant:normal;font-weight:400;text-transform:none;color:#c4f750;width:4rem;height:4rem;flex-shrink:0;font-size:1.6em;display:flex;text-decoration:none;text-align:center;justify-content:center;align-items:center;position:absolute;right:3rem;z-index:0;top:0;}.FSU_position-button::before{content:'\\E060';}.FSU_position-button:hover{color:#f2f2f2 !important;}.ut-tab-bar-item.icon-gotoreadme:before{content:'\\E05A';}.ut-tab-bar-item.icon-gotoreadme{order:8;}html[dir=ltr] button.flat.pagination.next{order: 2;}button.flat.pagination.getprice::before{content: '\\\E04D';font-size: 1rem;margin-right: 0.2rem;font-family: UltimateTeam-Icons,sans-serif;}.pp{padding-left: 6.3rem;font-family: UltimateTeamCondensed,sans-serif;}.ppb{display: flex;margin-top: 0.4rem;align-items: center;}.ppt{font-size:.875rem;color: #a4a9b4;line-height: 1rem;padding-right: 0.3rem;}.ppv{font-size: 1rem;line-height: 1rem;}.rpp{z-index: 99;display: flex;width: 100px;left: 0;position: absolute;top: 0;flex-direction: column;font-family: UltimateTeamCondensed,sans-serif;font-size: 1em;line-height: 1.2;height: 100%;justify-content: center;align-items: flex-end;text-align: right;}.rppb{margin-top: 0.5rem;}.rppb{color: #a4a9b4;font-size: .75em;}.tns-horizontal.tns-subpixel>.tns-item{position: relative;}.SearchResults.ui-layout-left ul{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));}.SearchResults.ui-layout-left .listFUTItem.has-auction-data.selected .rowContent.has-tap-callback{background-color: #2c319b8f;}.SearchResults.ui-layout-left .listFUTItem.has-auction-data .rowContent.has-tap-callback .entityContainer{width: 100%;}.SearchResults.ui-layout-left .listFUTItem.has-auction-data .rowContent.has-tap-callback .entityContainer .player-stats-data-component{width: 44%;}.SearchResults.ui-layout-left .listFUTItem.has-auction-data .rowContent.has-tap-callback .entityContainer .player-stats-data-component ul{display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));}.SearchResults.ui-layout-left .listFUTItem.has-auction-data .rowContent.has-tap-callback .entityContainer .player-stats-data-component ul li{padding:0;margin-top: 0.2rem;}.SearchResults.ui-layout-left .listFUTItem.has-auction-data .rowContent.has-tap-callback .auction{display: flex;width: 46%;right: 0;top: 36%;}.SearchResults.ui-layout-left .ui-layout-left .listFUTItem.has-auction-data .entityContainer {box-sizing: border-box;}.SearchResults.ui-layout-left .listFUTItem .rowContent.has-tap-callback::before{display:none;}.SearchResults.ui-layout-left .pp{position: absolute;width: 23%;right: 0;font-size: 1em;top: 0.3rem;}.SearchResults.ui-layout-left .ppb{display: block;margin-top: 0.2rem;}.SearchResults.ui-layout-left .ppt{color: #a4a9b4;}button.notevents{pointer-events: none;color: #a4a9b4;}.ui-layout-left.ut-club-search-results-view .pp,.ut-transfer-list-view .pp,.ut-store-reveal-modal-list-view .pp,.ut-unassigned-view.ui-layout-left .pp{padding-left: 0;position: absolute;right: 0;top: 0;height: 100%;display: flex;align-items: center;}.ui-layout-left.ut-club-search-results-view .ppb,.ut-transfer-list-view .ppb,.ut-store-reveal-modal-list-view .ppb,.ut-unassigned-view.ui-layout-left .ppb{margin-top: 0;display: block;}.ui-layout-left.ut-club-search-results-view .ppt,.ut-transfer-list-view .ppt,.ut-store-reveal-modal-list-view .ppt,.ut-unassigned-view.ui-layout-left .ppt{font-size: 1rem;}.ui-layout-left.ut-club-search-results-view .ppv,.ut-transfer-list-view .ppv,.ut-store-reveal-modal-list-view .ppv,.ut-unassigned-view.ui-layout-left .ppv{font-size: 1.2rem;margin-top: .5rem;}.btn-standard.section-header-btn.mini.call-to-action.getprice{margin-left: 1rem;}.btn-standard.section-header-btn.mini.call-to-action.getprice:hover{background-color:#e9dfcd}.view-modal-container.form-modal header .getprice{position: absolute;top: .5rem;left: 0;height: 2rem;line-height: 2rem;}.large-picks-container > div .pp{padding-left: 0;text-align: center;display: flex;justify-content: center;}.large-picks-container > div .ppt{font-size:1rem}.large-picks-container > div .ppv{font-size:1.2rem}",
        html:{
            copyButton:"<a href=\"https://www.futbin.com/squad-building-challenges/ALL/{sbcId}\" target=\"_blank\" class=\"FSU_copy-button\">作业</a>",
            countButton:"<a id=\"goToFutCd\" href=\"javascript:void(0)\" class=\"FSU_count-button\">计算</a>",
            searchInput:"<input type=\"text\" class=\"FSU_filter-input\" placeholder=\"{text}\" maxlength=\"50\">",
            positionButton:"<button class=\"FSU_position-button\" ></button>",
            gotoreadmeButton:"<button id=\"toReadme\" class=\"ut-tab-bar-item icon-gotoreadme\"><span>插件说明</span></button>",
            getPriceButoon:"<button class=\"flat pagination getprice\">读价格</button>",
            getPriceButoon3:"<button class=\"btn-standard section-header-btn mini call-to-action getprice\">查询价格</button>",
            price:"<div class=\"pp\"><div class=\"ppb\"><div class=\"ppt\">近期低价</div><div class=\"ppv\">{price}</div></div>{price2}</div>",
            price2:"<div class=\"ppb\"><div class=\"ppt\">评分低价</div><div class=\"ppv\">{price}</div></div>",
        },
        setSrot:false,
        setUntradeable:false,
        setPosition:false,
        addBotton:false,
        getPriceButton:false,
        positionInitial:-2,
        platform:"",
        basePrice:{},
        netError:false,
        loadData:false,
    };
    futsbcup.copyButton = function(pageTitle,controller){
        var pageSeat,sbcId;
        if(pageTitle == this.keys.title.SC){
            pageSeat = this.keys.selector.SCH;
            sbcId = controller.sbset.id;
        }else if(pageTitle == this.keys.title.SSS){
            pageSeat = this.keys.selector.SSH;
            sbcId = controller._challengeId + "/" + controller._set.name;
            var requirementsText = "";
            var requirementsWait = setInterval(function(){
                requirementsText = controller._requirementsNotification.getView()._requirements.__requirements.getInnerHTML();
                if(requirementsText != ""){
                    clearInterval(requirementsWait)
                    for (let index = 0; index < futsbcup.keys.requirements.length; index++) {
                        GM_log(futsbcup.keys.requirements[index])
                        if(requirementsText.indexOf(futsbcup.keys.requirements[index]) != -1){
                            window.requirementTarget = parseInt(requirementsText.substr(requirementsText.indexOf(futsbcup.keys.requirements[index]) + futsbcup.keys.requirements[index].length,3));
                        }
                    }
                    $(pageSeat).after(futsbcup.keys.html.countButton.replace("{target}",requirementTarget))
                    $("#goToFutCd").click(function () {
                        GM_log(window.requirementTarget)
                        var playerArray = getAppMain().getRootViewController().getPresentedViewController().getCurrentViewController().getCurrentController()._squad.getFieldPlayers();
                        var playerRatingText = "";
                        var targetText = "target=" + window.requirementTarget.toString();
                        var playerNumber = [];
                        for (let index = 0; index < playerArray.length; index++) {
                            if(playerArray[index].isBrick() == false){
                                if(playerArray[index].getItem().rating !== 0){
                                    playerNumber.push(playerArray[index].getItem().rating);
                                }
                            }else{
                                playerNumber.push(0);
                            }
                        }
                        if(playerNumber.length == 0){
                            GM_log("*无评分列表*");
                        }else{
                            playerRatingText = "&ratings=" + playerNumber.join(",");
                            GM_log(playerRatingText);
                        }
                        GM_openInTab("https://futcd.com/sbc.html?" + targetText + playerRatingText, { active: true, insert: true, setParent :true });
                    });
                }
            },500)
        }
        $(pageSeat).after(this.keys.html.copyButton.replace("{sbcId}",sbcId))
    };
    futsbcup.searchInput = function(controller,positionOpen){
        for(var i=0;i<this.keys.search.length;i++){
            var searchSeat = controller.searchFilters._collection[this.keys.search[i]].__label;
            var searchLabelText = $(searchSeat).text();
            $(searchSeat).html(this.keys.html.searchInput.replace("{text}",searchLabelText))
        }
        $(this.keys.selector.searchInput).bind('input propertychange', function() {
            var targetObject = $(this).parents(".ut-search-filter-control--row").siblings("ul.inline-list");
            var targetPanel = targetObject.parent(".inline-container");
            var targetPanelTop = targetPanel.position().top;
            targetObject.css("height","14rem").css("background-color","#171826")
            targetObject.children("li").show();
            if($(this).val().length > 0){
                var targetLength = targetObject.children("li:contains('" + $(this).val() + "')").length;
                if(targetLength > 0){
                    targetObject.children("li:not(:contains('" + $(this).val() + "'))").hide();
                    GM_log(targetLength)
                    if(targetLength < 4 && targetPanelTop !== 0){
                        var targetHeight = (4 - targetLength) * 49;
                        GM_log(targetHeight + "px");
                        targetObject.css("height","calc(14rem - " + targetHeight + "px)");
                        targetPanel.css("top","calc(-224px + " + targetHeight + "px)");
                    }else{
                        targetObject.css("height","14rem");
                        if(targetPanelTop !== 0){
                            targetPanel.css("top","-224px");
                        }
                    }
                }
            }else{
                targetObject.css("height","14rem");
                if(targetPanelTop !== 0){
                    targetPanel.css("top","-224px");
                }
            }
        });
    };
    futsbcup.priceFormat = function(priceValue){
        var priceText = "";
        if(priceValue !== "无数据"){
            var priceNumber = parseInt(priceValue.replace(/,/g,''));
            if(priceNumber == 0){
                priceText = "无数据";
            }else if(priceNumber  < 10000){
                priceText = priceNumber.toLocaleString();
            }else{
                priceText = (priceNumber / 10000).toFixed(2).toLocaleString() + "万";
            }
        }else{
            priceText = priceValue;
        }
        return priceText;
    };
    futsbcup.clickGetPrice = function(type){
        var priceButton = "";
        if(type == 1 || type == 2){
            priceButton = futsbcup.keys.selector.getPriceButton;
        }else if(type == 3 || type == 6){
            priceButton = futsbcup.keys.selector.getPriceButton3;
        }else if(type == 4 || type == 5){
            priceButton = futsbcup.keys.selector.getPriceButton4;
        }
        $(priceButton).click(async function () {
            if(futsbcup.keys.loadData == false){
                futsbcup.keys.loadData = true;
                var playerPriceBox = ".pp";
                var playerArray = [];
                var playerIdList = [];
                var playerBox = ".rowContent.has-tap-callback .entityContainer";
                if(type == 4){
                    playerBox = ".rowContent .entityContainer";
                }
                if(type == 5){
                    playerBox = ".large-picks-container > div"
                }
                var getPriceBox = "";
                if(type == 1 || type ==2){
                    getPriceBox = ".pagingContainer";
                }else if(type == 3 || type == 6){
                    getPriceBox = ".ut-section-header-view";
                }else if(type == 4 || type == 5){
                    getPriceBox = ".view-modal-container.form-modal footer";
                }
                var playerNoRepIdList = [];
                var priceUrl = [];
                if(type == 1){
                    playerArray = getAppMain().getRootViewController().getPresentedViewController().getCurrentViewController().getCurrentController()._rightController._childViewControllers[2]._view._list.listRows;
                }else if(type == 2){
                    playerArray = getAppMain().getRootViewController().getPresentedViewController().getCurrentViewController().getCurrentController()._leftController._view._list.listRows;
                }else if(type == 3 || type == 6){
                    playerArray = getAppMain().getRootViewController().getPresentedViewController().getCurrentViewController().getCurrentController()._leftController._viewmodel._collection;
                }else if(type == 4){
                    let notification = getAppMain()._defaultDispatcher._observers._collection["notification.AppResume"]._observers;
                    if(notification[notification.length - 1].scope.className == 'UTStorePackRevealModalListViewController'){
                        playerArray = notification[notification.length - 1].scope._view.listRows
                    }
                }else if(type == 5){
                    let notification = getAppMain()._defaultDispatcher._observers._collection["notification.AppResume"]._observers;
                    if(notification[notification.length - 1].scope.className == 'UTPlayerPicksViewController'){
                        playerArray = notification[notification.length - 1].scope.picks
                    }
                }
                if($(playerPriceBox).length != playerArray.length && priceButton !== "" && getPriceBox !== ""){
                    $(getPriceBox).find("button").addClass("notevents")
                    let playerBoxNumber = $(playerBox).length;
                    for (let i = 0; i < playerBoxNumber; i++) {
                        if($(playerBox).eq(i).find(playerPriceBox).length == 0 ){
                            let tempId = 0;
                            if(type == 1 || type ==2){
                                tempId = playerArray[i].data.definitionId;
                            }else if(type == 3 || type == 5){
                                tempId = playerArray[i].definitionId;
                            }else if(type == 6){
                                if(playerArray[i].type == "player"){
                                    tempId = playerArray[i].definitionId;
                                }
                            }else if(type == 4){
                                if(playerArray[i].data.type == "player"){
                                    tempId = playerArray[i].data.definitionId;
                                }
                            }
                            if(tempId !== 0){
                                playerIdList.push(tempId)
                                if(playerNoRepIdList.indexOf(tempId) == -1){
                                    playerNoRepIdList.push(tempId)
                                }
                            }
                        }
                    }
                    if(playerNoRepIdList.length > 0){
                        let getRepeat = Math.ceil(playerNoRepIdList.length / 20);
                        for (let i = 0; i < getRepeat; i++) {
                            priceUrl.push("https://www.futbin.com/23/playerPrices?player=&rids=" + playerNoRepIdList.splice(-20).join())
                        }
                        var priceData = {};
                        for (const key in priceUrl) {
                            if (Object.hasOwnProperty.call(priceUrl, key)) {
                                let tempData = await getPrice(priceUrl[key]);
                                priceData = Object.assign(priceData,tempData);
                            }
                        }
                        for (let i = 0; i < playerArray.length; i++) {
                            var priceHtml = "";
                            var playerData = {};
                            if(type == 1 || type == 2 || type == 4){
                                playerData = playerArray[i].data;
                            }else if(type == 3 || type == 5 || type == 6){
                                playerData = playerArray[i];
                            }
                            if(playerData !== {}){
                                if(priceData.hasOwnProperty(playerData.definitionId) == true && $(playerBox).eq(i).length > 0 ){
                                    if(type == 4 && playerData.type !== "player") return;
                                    if(type == 6 && playerData.type !== "player") return;
                                    priceHtml = futsbcup.keys.html.price.replace("{price}",futsbcup.priceFormat(priceData[playerData.definitionId].prices[futsbcup.keys.platform].LCPrice))
                                    let priceHtml2 = "";
                                    if(type == 1){
                                        let dPrice = "无数据";
                                        if(futsbcup.keys.basePrice.hasOwnProperty(playerData.rating) == true){
                                            dPrice = futsbcup.keys.basePrice[playerData.rating]["p"];
                                        }
                                        priceHtml2 = futsbcup.keys.html.price2.replace("{price}",futsbcup.priceFormat(dPrice))
                                    }
                                    priceHtml = priceHtml.replace("{price2}",priceHtml2);
                                    $(playerBox).eq(i).append(priceHtml);
                                }
                            }
                        }
                    }
                }
                futsbcup.keys.loadData = false;
                $(getPriceBox).find("button").removeClass("notevents")
            }
        });
    };
    function getPrice(url){
        return new Promise(res => {
            GM_xmlhttpRequest({
                method:"GET",
                url:url,
                headers: {
                    "Content-type": "application/json"
                },
                onload:function(response){
                    res(JSON.parse(response.response))
                },
            })
        })
    };
    futsbcup.addGetPriceButton = function(type){
        if(type == 3){
            $(".ut-section-header-view").eq(2).append(futsbcup.keys.html.getPriceButoon3);
        }else if(type == 4 || type == 5){
            $(".view-modal-container.form-modal header").append(futsbcup.keys.html.getPriceButoon3);
        }else if(type == 6){
            $(".ut-section-header-view").eq(0).append(futsbcup.keys.html.getPriceButoon3);
        }else{
            $(futsbcup.keys.selector.pagingContainer).append(futsbcup.keys.html.getPriceButoon);
            if($(futsbcup.keys.selector.pagingContainer).is(":hidden") == true){
                $(futsbcup.keys.selector.pagingContainer).prev().addClass("paginated");
                $(futsbcup.keys.selector.pagingContainer).css('display','flex');
                $(futsbcup.keys.selector.getPriceButton).css('margin','auto');
            }
        }
        futsbcup.clickGetPrice(type);
    };
    futsbcup.callBack = function(){
        if($(futsbcup.keys.selector.game).length === 0) return;
        var controller = getAppMain().getRootViewController().getPresentedViewController().getCurrentViewController().getCurrentController();
        if(!controller || !controller.className) return;
        if(controller.className == futsbcup.keys.title.H && $(".view-navbar-clubinfo-name") !== null && futsbcup.keys.addBotton == false){
            $(".ut-tab-bar-item.icon-leaderboards").after(futsbcup.keys.html.gotoreadmeButton);
            $("#toReadme").click(function () {
                GM_openInTab("https://mfrasi851i.feishu.cn/docx/JJsjdos9go7pWxxaiaBcWNVinOf", { active: true, insert: true, setParent :true });
            });
            var user = services.User.getUser().getSelectedPersona();
            if(user.isXbox || user.isPlaystation || user.isStadia){
                futsbcup.keys.platform = "ps";
            }else{
                futsbcup.keys.platform = "pc";
            }
            services.User.maxAllowedAuctions = 100;
            GM_xmlhttpRequest({
                method:"GET",
                url:"https://futcd.com/data/futpricenew.json",
                headers: {
                    "Content-type": "application/json"
                },
                onload:function(response){
                    let data = JSON.parse(response.response);
                    if(futsbcup.keys.platform == "pc"){
                        futsbcup.keys.basePrice = data["pc"];
                    }else{
                        futsbcup.keys.basePrice = data["tv"];
                    }
                },
            })
            futsbcup.keys.addBotton = true;
        }
        if(controller.className == futsbcup.keys.title.SC || controller.className == futsbcup.keys.title.SSS){
            if($(futsbcup.keys.selector.copyButton).length === 0){
                futsbcup.copyButton(controller.className,controller);
            }
        };
        if(futsbcup.keys.getPriceButton == true){
            if(controller.className == futsbcup.keys.title.MSFC || controller.className == futsbcup.keys.title.CHC || controller.className == futsbcup.keys.title.THC || controller.className == futsbcup.keys.title.MCSFC || controller.className == futsbcup.keys.title.SPC || controller.className == futsbcup.keys.title.H){
                GM_log("*进入拍卖页面或者俱乐部页面重置读价格按钮*")
                futsbcup.keys.getPriceButton = false;
            };
        }
        // if(controller.className == futsbcup.keys.title.SPC && controller.isPreviewingPack == true){
        //     GM_log("*正在浏览包或者打开预览包*")
        //     var notification = getAppMain()._defaultDispatcher._observers._collection["notification.AppResume"]._observers;
        //     if(notification[notification.length - 1].scope.className == 'UTStorePackRevealModalListViewController' && $(futsbcup.keys.selector.getPriceButton4).length == 0){
        //         GM_log("*定位到预览包开始添加按钮和事件*")
        //         futsbcup.keys.getPriceButton = true;
        //         futsbcup.addGetPriceButton(4);
        //     }
        // }
        if($(".view-modal-container.form-modal").length == 1 && $(futsbcup.keys.selector.getPriceButton4).length == 0){
            GM_log("*正在打开球员挑选包或预览包*")
            var notification = getAppMain()._defaultDispatcher._observers._collection["notification.AppResume"]._observers;
            if(notification[notification.length - 1].scope.className == 'UTStorePackRevealModalListViewController' ){
                GM_log("*定位到预览包开始添加按钮和事件*")
                futsbcup.addGetPriceButton(4);
            }
            if(notification[notification.length - 1].scope.className == 'UTPlayerPicksViewController' ){
                GM_log("*定位到球员选择包开始添加按钮和事件*")
                futsbcup.addGetPriceButton(5);
            }
        }
        if(controller.className == futsbcup.keys.title.MSRSC || controller.className == futsbcup.keys.title.CSRC){
            let playerArray = controller._leftController._view._list.listRows;
            if(playerArray.length > 0){
                if(futsbcup.keys.getPriceButton == false){
                    futsbcup.keys.getPriceButton = true;
                    futsbcup.addGetPriceButton(2);
                }
            }
        };
        if(controller.className == futsbcup.keys.title.TLSC){
            let playerArray = controller._leftController._viewmodel._collection;
            if(playerArray.length > 0){
                if(futsbcup.keys.getPriceButton == false){
                    futsbcup.keys.getPriceButton = true;
                    futsbcup.addGetPriceButton(3);
                }
            }
        };
        if(controller.className == futsbcup.keys.title.UISC){
            let playerArray = controller._leftController._viewmodel._collection;
            if(playerArray.length > 0){
                if($(futsbcup.keys.selector.getPriceButton3).length == 0){
                    futsbcup.addGetPriceButton(6);
                }
            }
        };
        if(controller.className == futsbcup.keys.title.SSS || controller.className == futsbcup.keys.title.SS){
            var rightController = controller._rightController._currentController.getView();
            if(rightController.className == futsbcup.keys.title.CS){
                //改变排序选项
                var userSortId = GM_getValue("userSort", 2)
                if(futsbcup.keys.setSrot == false){
                    rightController.getSortDropDown().setIndexById(userSortId)
                    //改变交易选项
                    let untradeableEle = rightController.getSortOptions().toggles._collection["sort-untradeable"];
                    if(untradeableEle.getToggleState() !== futsbcup.keys.setUntradeable){
                        untradeableEle.toggle();
                        controller._rightController._currentController.viewmodel.searchCriteria._untradeables = "true";
                    }
                    //改变位置选项
                    if(futsbcup.keys.setPosition == true){
                        rightController._filterContainer.filters[2].setIndexById(-1)
                    }
                    futsbcup.keys.setSrot = true;
                }
                if($(futsbcup.keys.selector.searchInput).length === 0){
                    futsbcup.searchInput(rightController._filterContainer);
                }
                GM_log("*返回搜索页面重置getprice*")
                futsbcup.keys.getPriceButton = false;
            }
            if(rightController.className == futsbcup.keys.title.CSR){
                GM_log("*搜索结果页面*")
                var rightchildController = controller._rightController._childViewControllers;
                for (let index = 0; index < rightchildController.length; index++) {
                    if(rightchildController[index].getView().className == futsbcup.keys.title.CSR && futsbcup.keys.netError == false){
                        let playerArray = rightchildController[index]._view._list.listRows;
                        if(playerArray.length > 0){
                            if(futsbcup.keys.getPriceButton == false){
                                futsbcup.keys.getPriceButton = true;
                                futsbcup.addGetPriceButton(1);
                            }
                        }
                    }
                    if(rightchildController[index].getView().className == futsbcup.keys.title.CS){
                        var userSort = rightchildController[index].getView().getSortDropDown().getId();
                        var cookieSrot = GM_getValue("userSort", 2);
                        if(cookieSrot !== userSort && futsbcup.keys.setSrot == true){
                            GM_setValue("userSort", userSort);
                            GM_log("*发现排序条件变化进行存储*");
                            futsbcup.keys.setSrot = false;
                        }
                        var untradeable = rightchildController[index].getView().getSortOptions().toggles._collection["sort-untradeable"].getToggleState();
                        if(untradeable !== futsbcup.keys.setUntradeable){
                            GM_log("*发现交易选项变化进行存储*");
                            futsbcup.keys.setUntradeable = untradeable;
                        }
                        var positionId = rightchildController[index].getView()._filterContainer.filters[2].getId();
                        if(positionId == -1){
                            GM_log("*发现未选择位置进行移除位置操作*");
                            futsbcup.keys.setPosition = true;
                        }else{
                            GM_log("*发现选择了位置不再移除位置操作*");
                            futsbcup.keys.setPosition = false;
                        }
                    }
                }
            }
            if(rightController.className == futsbcup.keys.title.MF){
                if($(futsbcup.keys.selector.searchInput).length === 0){
                    futsbcup.searchInput(rightController._searchFilters);
                }
            }
            if(rightController.className == futsbcup.keys.title.ID){
                GM_log("*发现重新选择位置进行搜索重新填充排序*")
                futsbcup.keys.setSrot = false;
            }
        };
        if(controller.getView().className == futsbcup.keys.title.MF){
            if(controller.getView()._tabMenu.selectedItemId === 0){
                if($(futsbcup.keys.selector.searchInput).length === 0){
                    futsbcup.searchInput(controller.getView()._searchFilters,1);
                }
            }
        };
    };
    futsbcup.start = function(){
        GM_addStyle(this.keys.sytle);
        //选择一个需要观察的节点
        var targetNode = $(document)[0],
        // 设置observer的配置选项
            config = {childList: true,characterData: true,attributes: false,subtree: true},
            observer = new MutationObserver(this.callBack);
        //使用配置文件对目标节点进行观测
        observer.observe(targetNode, config);
    };
    GM_log("**加载插件成功**")
    futsbcup.start()
})();

QingJ © 2025

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