自动查询本周代码量(内部使用)

this is inner test code

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         自动查询本周代码量(内部使用)
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  this is inner test code
// @author       You
// @match        *://*/*
// @require      https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.19/lodash.js
// @require      https://cdn.bootcdn.net/ajax/libs/dayjs/1.8.32/dayjs.min.js
// @icon         https://www.google.com/s2/favicons?sz=64&domain=110.111
// @grant        GM_xmlhttpRequest
// @grant       GM_addElement
// @grant       GM_setValue
// @grant       GM_getValue
// @grant      GM_deleteValue
// @grant        GM_registerMenuCommand
// @connect     *
// @run-at       context-menu
// @license      MIT
// ==/UserScript==
const username =  "";
const password = "";
const startDate = dayjs().day(0).format('YYYY-MM-DD');
const endDate = dayjs().day(6).format('YYYY-MM-DD');
GM_addElement('link', {
    href: 'https://blog.huangwx.cn/css/sweetalert.css',
    type: 'text/css',
    rel:"stylesheet"
});
GM_addElement('script', {
    src: 'https://blog.huangwx.cn/js/sweetalert-dev.js',
    type: 'text/javascript'
});
(function() {
    'use strict';
    let name = GM_getValue('username', username);
    let pwd = GM_getValue('password', password);
    function query(){
        return new Promise((resolve, reject) => {
            if(!name ||  !pwd){
                resolve(JSON.stringify({
                    result: {
                        msg100: true
                    }
                }))
                return;
            }
            GM_xmlhttpRequest({
                "method": "POST" ,
                "url":  "http://10.8.110.111:8001/gitcommitinfo2",
                "data": `password=${pwd}&username=${name}&startDate=${startDate}&endDate=${endDate}`,
                "headers": {
                    "Accept": " */*",
                    "Content-Type": "application/x-www-form-urlencoded;charset=utf-8"
                },
                "responseType": "json",
                "onload": result => {
                    //GM_deleteValue('username');
                    //GM_deleteValue('password');
                    resolve(result.responseText)
                },
                "onerror": err => {
                    reject(err)
                }
            });
        })
    }
    function setInfo(){
        let lock = setTimeout(() => {
            clearTimeout(lock)
            swal({
                title: "填写账号信息",
                text: `
                      <div>名字:
                        <input id="testtestname" value="${name}" type="text" name="name" style="display: flex"/>
                      </div>
                      <div>工号:
                        <div style="display:flex;align-items:center">
                          <span style="font-weight:bold">SH-</span>
                          <input id="testtestpassword" value="${pwd.substring(3)}" type="number" name="account" style="display: flex"/>
                        </div>
                      </div>
                    `,
                confirmButtonText: "保存",
                html: true
            },
                 function(isConfirm){
                let names = document.getElementById("testtestname").value
                let pwds = document.getElementById("testtestpassword").value
                GM_setValue('username', names);
                GM_setValue('password', "SH-" + pwds);
            });
        }, 1000)
        }
    query().then(res => {
        let { msg1,  msg2,  msg3,  msg4,  msg5, msg100 } = JSON.parse(res).result
        if(msg5?.length) {
            let { commit_additions, commit_deletions, commit_total } = msg5[0];
            swal({
                title: `日期:${startDate}至${endDate}`,
                text: `
                  <div>新增代码行数:
                    <strong style="color:green;font-size:20px">${commit_additions}</strong>
                  </div>
                  <div>删除代码行数:
                    <strong style="color:#3D96E2;font-size:25px">${commit_deletions}</strong>
                  </div>
                  <div>变更代码行数:
                    <strong style="color:red;font-size:30px">${commit_total}</strong>
                  </div>
                `,
                showCancelButton: true,
                html: true,
                cancelButtonText: "设置"
            }, function(flag){
                if(!flag) setInfo()
            })
        }else if(msg2){
            swal({
                title: "查询异常",
                text: msg2,
                showCancelButton: true,
                html: true,
                cancelButtonText: "设置"
            },function(flag){
                !flag && setInfo()
            })
        }else if(msg100){
            setInfo();
        }
    })
})();