您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
// ==UserScript== // @name ACGN-stock營利統計外掛 // @namespace http://tampermonkey.net/ // @version 2.002 // @description try to take over the world! // @author SoftwareSing // @match http://acgn-stock.com/* // @match https://acgn-stock.com/* // @grant none // ==/UserScript== //版本號為'主要版本號 + "." + 次要版本號 + 錯誤修正版本號(兩位),ex 1.801 //修復導致功能失效的錯誤或更新重大功能提升主要或次要版本號 //優化UI,優化效能,優化小錯誤更新錯誤版本號 //兩個錯誤修正版本號防止迫不得已進位到次要版本號 //本腳本修改自 "ACGN股票系統每股營利外掛 2.200 by papago89" var wasCompany, wasStockSummary, wasaccountInfo, wasfoundationPlan, oldUrl; // 程式進入點 (function mainfunction() { //設定狀態 wasCompany = (document.location.href.search("company") != -1); wasStockSummary = (document.location.href.search("stockSummary") != -1); //wasaccountInfo = (document.location.href.search("accountInfo") != -1); //wasfoundationPlan = document.location.href.search("foundationPlan") != -1; oldUrl = document.location.href; //針對現在的頁面做反應 if (wasCompany) { setTimeout(addCompanyClickListener, 1000); } else if (wasStockSummary) { //setTimeout(computeProfit, 1000); setTimeout(addStockSummaryListener, 1000); } /*else if (wasaccountInfo) { setTimeout(AddTaxListener, 1000); setTimeout(addShowSubscribesListener,1000); } else if (wasfoundationPlan) setTimeout(addFPEvent, 1000);*/ //全域事件 setTimeout(addEvent, 5000); checkDividendUpdataTime(); })(); //Header新增按鈕並監聽 -----已刪除 // 監測main的變化並判斷當前屬於哪個頁面加入正確的事件監聽 function addEvent() { $('#main').bind("DOMNodeInserted DOMNodeRemoved", function() { // 因AJAX動態生成不斷執行,所以有時候main的變動並不代表換頁,此時無須重新加入事件 if (oldUrl != document.location.href && document.location.href.search("company") != -1) { setTimeout(addCompanyClickListener, 1000); } else if (oldUrl != document.location.href && document.location.href.search("stockSummary") != -1) { //setTimeout(computeProfit, 1000); setTimeout(addStockSummaryListener, 1000); } /*else if (oldUrl != document.location.href && document.location.href.search("accountInfo") != -1) { setTimeout(AddTaxListener, 1000); setTimeout(addShowSubscribesListener,1000); } else if (oldUrl != document.location.href && document.location.href.search("foundationPlan") != -1) setTimeout(addFPEvent, 1000);*/ wasCompany = (document.location.href.search("company") != -1); wasStockSummary = (document.location.href.search("stockSummary") != -1); //wasaccountInfo = (document.location.href.search("accountInfo") != -1); //wasfoundationPlan = document.location.href.search("foundationPlan") != -1; oldUrl = document.location.href; }); } function get_abcd1357_JsonObj() { var request = new XMLHttpRequest(); request.open("GET", "https://jsonbin.org/abcd1357/ACGNstock-company", false); // 連線 POST到該連線位址 request.send(); abcd1357_jsonObj = JSON.parse(request.responseText); } function checkDividendUpdataTime() { get_abcd1357_JsonObj(); //window.localStorage.removeItem ("Dividend_UpdataTime"); var Dividend_UpdataTime = null !== window.localStorage.getItem ("Dividend_UpdataTime") ? JSON.parse(window.localStorage.getItem ("Dividend_UpdataTime")) : null; if (abcd1357_jsonObj.updataTime === Dividend_UpdataTime) { console.log("dont need updata " + Dividend_UpdataTime); } else { console.log("server updata time: " + abcd1357_jsonObj.updataTime); console.log("local updata time: " + Dividend_UpdataTime); console.log("start updata data"); updataDividendData(); } } function updataDividendData() { get_abcd1357_JsonObj(); var Dividends = abcd1357_jsonObj.companys; window.localStorage.setItem ("Dividend", JSON.stringify(Dividends)); window.localStorage.setItem ("Dividend_UpdataTime", JSON.stringify(abcd1357_jsonObj.updataTime)); console.log("Dividend Cookie Updata Success!!"); } /************UpdateScript*************/ // -----已刪除 /************UpdateScript*************/ /************stockSummary*************/ function addStockSummaryListener() { setTimeout(computeProfit, 2100); $(".btn.btn-secondary.mr-1")[0].addEventListener("click", ComputeEvt); $(".btn.btn-secondary.mr-1")[1].addEventListener("click", ComputeEvt); var pagesbtn = $(".page-item"); for (var i = 0; i < pagesbtn.length; i++) { pagesbtn[i].addEventListener("click", ComputeEvt); } console.log("Triggered StockSummary"); } function ComputeEvt() { setTimeout(addStockSummaryListener, 2000); } //總獲利計算--加入分紅計算 function computeProfit() { //加入變數 profit為總獲利, ID是公司網址, earnPerShare是每股獲利 var profit = 0, tag, price, hold, classProfit, ID, earnPerShare, index; var Dividends = null !== window.localStorage.getItem ("Dividend") ? JSON.parse(window.localStorage.getItem ("Dividend")) : []; //方格模式 if ($(".col-12.col-md-6.col-lg-4.col-xl-3").length > 0) { for (var i = 0; i < $('.company-card').length; ++i) { price = Number($('.company-card')[i].innerText.match(/\$ [0-9]+\(([0-9]+)\)/)[1]); hold = Number($('.company-card')[i].innerText.match(/([0-9]+).+%.+/)[1]); ID = $('.company-card')[i].innerHTML.match(/<a href="\/company\/([0-z]+)">/)[1]; console.log("companyID = " + ID); index = Dividends.findIndex(x => x.companyID == ID); if (index == -1) { earnPerShare = 0; } else { earnPerShare = Dividends[index].companyDividend; profit += earnPerShare * hold; } //console.log("companyID = " + ID); console.log("earnPerShare = " + earnPerShare); console.log(""); } console.log("本頁預計分紅: " + profit); classProfit = $("#totalProfitNumber"); if (classProfit.length === 0) { $('<div class="media company-summary-item border-grid-body" id = "totalProfit"><div class="col-6 text-right border-grid" id = "totalProfitTitle"><h2>' + Dict[lan].totalProfitInThisPage + '</h2></div></div>').insertAfter($('.card-title.mb-1')[0]); $('<div class="col-6 text-right border-grid" id = "totalProfitNumber"><h2>$ ' + profit.toFixed() + '</h2></div>').insertAfter($('#totalProfitTitle')[0]); } else { $("#totalProfitNumber")[0].innerHTML = "<h2>$ " + profit.toFixed() + "</h2>"; } } /*else { //列表模式 //列表模式暫不開放 //console.log($(".col-8.col-lg-3.text-right.border-grid")); for (var j = 0; j < $('.media-body.row.border-grid-body').length; ++j) { price = Number($('.media-body.row.border-grid-body')[j].innerText.match(/\$ [0-9]+\(([0-9]+)\)/)[1]); hold = Number($('.media-body.row.border-grid-body')[j].innerText.match(/您在該公司持有([0-9]+)數量的股份/)[1]); // 找出持股量 console.log("價= " + price + ",持= " + hold + ",總= " + (price * hold) ); assets += price * hold; } console.log("本頁持股價值: " + assets); classAssets = $("#totalAssetsNumber"); if (classAssets.length === 0) { $('<div class="media company-summary-item border-grid-body" id = "totalAssets"><div class="col-6 text-right border-grid" id = "totalAssetsTitle"><h2>' + Dict[lan].totalAssetsInThisPage + '</h2></div></div>').insertAfter($('.card-title.mb-1')[0]); $('<div class="col-6 text-right border-grid" id = "totalAssetsNumber"><h2>$ ' + assets + '</h2></div>').insertAfter($('#totalAssetsTitle')[0]); } else { $("#totalAssetsNumber")[0].innerHTML = "<h2>$ " + assets + "</h2>"; } }*/ //setTimeout(computeAssets,1000); } /************stockSummary*************/ /*************************************/ /**************company****************/ //---------------按鍵區---------------// function addCompanyClickListener() { if ($('.d-block.h4').length === 6) { // 初始化 先看使用者有沒有預設打開資料夾 folderOpenString = "fa-folder-open"; folderCloseString = "12345678"; //chartEvent(); numbersEvent(); //orderEvent(); //productEvent(); //directorEvent(); //logEvent(); folderOpenString = "fa-folder"; folderCloseString = "fa-folder-open"; // 註冊事件 //$('.d-block.h4')[0].addEventListener("click", chartEvent); //股價趨勢 $('.d-block.h4')[1].addEventListener("click", numbersEvent); //數據資訊 //$('.d-block.h4')[2].addEventListener("click", orderEvent); //交易訂單 //$('.d-block.h4')[3].addEventListener("click", productEvent); //產品中心 //$('.d-block.h4')[4].addEventListener("click", directorEvent); //董事會 //$('.d-block.h4')[5].addEventListener("click", logEvent); //所有紀錄 console.log("OnclickListener Registered"); } else { setTimeout(addCompanyClickListener, 500); } console.log("Triggered Company"); } var folderOpenString, folderCloseString; // 數據資訊 function numbersEvent() { var folderstate = $(".d-block.h4 i")[1].classList[1]; if (folderstate === folderOpenString) { //Open Event console.log("Open numbersfolder"); //setTimeout(addSomeInfo, 1000); setTimeout(AddDividendCookie, 1000); //總獲利計算--紀錄分紅 } else if (folderstate === folderCloseString) { //Close Event console.log("close numbersfolder"); } } //總獲利計算--紀錄分紅cookie 09/27 function AddDividendCookie() { //window.localStorage.removeItem ("Dividend"); var revenue, totalStock, earnPerShare, ID; revenue = $('.col-8.col-md-4.col-lg-2.text-right.border-grid')[3].innerHTML.match(/[0-9]+/); totalStock = $('.col-8.col-md-4.col-lg-2.text-right.border-grid')[4].innerHTML.match(/[0-9]+/); earnPerShare = 0.8075 * revenue / totalStock; //name = $('.card-title.text-truncate')[0].innerText; ID = document.location.href.substr(31,99); var Dividends = null !== window.localStorage.getItem ("Dividend") ? JSON.parse(window.localStorage.getItem ("Dividend")) : []; //如果先前紀錄過該公司,則刪除重記 var index = Dividends.findIndex(x => x.companyID == ID); if (index != -1) { if (Dividends[index].companyDividend == earnPerShare) { console.log(ID + "---" + earnPerShare); console.log("dont need updata cookie"); } else { Dividends.splice(index, 1); console.log("AddDividendCookie---splice"); Dividends.push({"companyID":ID, "companyDividend":earnPerShare}); window.localStorage.setItem ("Dividend", JSON.stringify(Dividends)); console.log(ID + "---" + earnPerShare); console.log("Add Dividend Cookie!!"); } } else { Dividends.push({"companyID":ID, "companyDividend":earnPerShare}); window.localStorage.setItem ("Dividend", JSON.stringify(Dividends)); console.log(ID + "---" + earnPerShare); console.log("AddDividendCookie!!"); } } /**************company****************/ /*************************************/ /************accountInfo**************/ // -----已刪除 /************accountInfo**************/ /*************************************/ /************foundationPlan***********/ //-----已刪除 /************foundationPlan***********/ /**************aboutMe****************/ // -----已刪除 /**************aboutMe****************/ /*************Language***************/ var lan = ""; lan = null !== window.localStorage.getItem ("PM_language") ? window.localStorage.getItem ("PM_language") : "tw"; function ChangeLanguage(l){ if(lan === l)return; lan = l; window.localStorage.setItem ("PM_language",l); window.location.reload(); } var Dict = { tw: { totalProfitInThisPage: "本頁預計分紅:", }, en: { totalProfitInThisPage: "Total profit in this page :", }, jp: { totalProfitInThisPage: "本頁預計分紅:", }, marstw: { totalProfitInThisPage: "這ㄘ可yee拿ㄉ$$:", } }; /*************Language***************/ /*************Subscribe***************/ // -----已刪除 /*************Subscribe***************/
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址