随手记

账号汇总

目前為 2021-11-15 提交的版本,檢視 最新版本

// ==UserScript==
// @name           随手记
// @description    账号汇总
// @author         018([email protected])
// @contributor    Rhilip
// @connect        *
// @grant          GM_xmlhttpRequest
// @grant          GM_setClipboard
// @grant          GM_addStyle
// @grant          GM_setValue
// @grant          GM_getValue
// @grant          GM_listValues
// @grant          GM_deleteValue
// @grant          GM_registerMenuCommand
// @require        https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js
// @require        https://gf.qytechs.cn/scripts/420063-018-js/code/018js.js?version=890174
// @include        https://www.sui.com/account/account.do
// @include        https://www.sui.com/tally/new.do
// @version        0.2.0
// @icon           https://res.sui.com/favicon.ico
// @run-at         document-end
// @namespace      http://018.ai
// @license        MIT
// ==/UserScript==

// This Userscirpt can't run under Greasemonkey 4.x platform
if (typeof GM_xmlhttpRequest === 'undefined') {
    alert('不支持Greasemonkey 4.x,请换用暴力猴或Tampermonkey')
    return
}

;(function () {
    'use strict';

    $(document).ready(function () {
        $('#mainContent').css('margin', '-371px auto 0px 60px')
        $('.footer').hide()
        refresh();
    })

    function refresh() {
        if (window.location.href === 'https://www.sui.com/account/account.do') {
            handle(document)
        } else {
            $('#bg1-c').html('<dir style="padding: 30px 0 0 1090px;">...</div>')
            loadDoc('https://www.sui.com/account/account.do', {}, function(doc, responseDetail, meta) {
                handle(doc)
            })
        }
    }

    function handle(doc) {
        var html = '<table style="line-height: 1.2;padding: 10px;background: #f8f8fa;border: 1px solid rgba(255,255,255,0.68);box-shadow: 0 6px 12px 0 rgb(7 13 28 / 4%);border-radius: 0 4px 4px 4px;">'
        var first
        $(doc).find('.summary-info .l-data li').each(function() {
            var name = $(this).find('.lt-money-name').text()
            var money = $(this).find('.lt-money-num').text()
            var cls = $(this).find('.lt-money-num').attr('class').match(/font-color-.*/g)
            html += '<tr style="font-size: 14px;"><td>' + name + '</td><td class="' + cls + '" style="font-weight: bold;">' + money + '</td></tr>'
        });
        html += '<tr><td>&nbsp;</td><td>&nbsp;</td></tr>'

        $(doc).find('#l-list .l-list-in a').each(function() {
            var id = $(this).attr('id').replace('ll-', '')
            var details = $(doc).find('#r-list .j-acc-' + id)
            if (details.length > 0) {
                var name = $(this).find('.ll-name').text()
                var money = $(this).find('.ll-money').text()
                var cls = $(this).find('.ll-money').attr('class').match(/font-color-.*/g)
                html += '<tr style="font-weight: bold; font-size: 14px;"><td>' + name + '</td><td class="' + cls + '" style="font-weight: bold;">' + money + '</td></tr>'

                details.each(function() {
                    if ($(this).attr('class').includes('j-acc-show')) {
                        var name = $(this).find('.acc-name').text()
                        var money = $(this).find('.child-r1 .child-r1-money').text().replaceAll(',', '')
                        html += '<tr style="font-size: 12px;"><td> ' + name + '</td><td><span style="font-weight: bold;">' + money + '</span></td></tr>'
                    }
                });
            }
        });

        html += '</tr></table>'
        $('#bg1-c').html('<dir style="padding: 30px 0 0 1090px;">' + html + '<button id="btn-refresh" style="margin-top: 10px;">刷新</button></div>')

        $('#btn-refresh').click(function(){
            if (window.location.href === 'https://www.sui.com/account/account.do') {
                location.reload()
            } else {
                refresh()
            }
        })
    }

    // 判断,空返回空字符串
    function opt(val) {
        if (!val) return '';

        if (val instanceof Array) {
            if (val.length > 0) {
                return val[0];
            }
        } else {
            return val;
        }
    }

    // 对使用GM_xmlhttpRequest返回的html文本进行处理并返回DOM树
    function page_parser(responseText) {
        // 替换一些信息防止图片和页面脚本的加载,同时可能加快页面解析速度
        responseText = responseText.replace(/s+src=/ig, ' data-src='); // 图片,部分外源脚本
        responseText = responseText.replace(/<script[^>]*?>[\S\s]*?<\/script>/ig, ''); //页面脚本
        return (new DOMParser()).parseFromString(responseText, 'text/html');
    }

    // 加载网页
    function loadDoc (url, meta, callback, fail) {
        GM_xmlhttpRequest({
            method: 'GET',
            url: url,
            onload: function (responseDetail) {
                if (responseDetail.status === 200) {
                    let doc = page_parser(responseDetail.responseText)
                    callback(doc, responseDetail, meta)
                } else if (fail){
                    fail(responseDetail, meta);
                }
            },
            onerror: function(err) {
                if (fail) {
                    fail(err, meta);
                }
            }
        })
    }

    // get请求
    function doGet (url, meta, callback, fail) {
        GM_xmlhttpRequest({
            method: 'GET',
            url: url,
            onload: function (responseDetail) {
                if (responseDetail.status === 200) {
                    callback(JSON.parse(responseDetail.responseText), responseDetail, meta)
                } else if (fail){
                    fail(responseDetail, meta);
                }
            },
            onerror: function(err) {
                if (fail) {
                    fail(err, meta);
                }
            }
        })
    }

    // post请求
    function doPost (url, headers, data, meta, callback, fail) {
        GM_xmlhttpRequest({
            method: "POST",
            url: url,
            data: data,
            headers: headers,
            onload: function(responseDetail){
                if (responseDetail.status === 200) {
                    callback(JSON.parse(responseDetail.responseText), responseDetail, meta)
                } else if (fail){
                    fail(responseDetail, meta);
                }
            },
            onerror: function(err) {
                if (fail) {
                    fail(err, meta);
                }
            }
        })
    }
})()

QingJ © 2025

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