联通内网-法治在沃,自动刷积分

在UI界面点击开始以自动刷积分。通过联通OA进入法治在沃首页,点击开始即可。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         联通内网-法治在沃,自动刷积分
// @namespace    https://gitee.com/zouyongs/js-liantongdangxiao
// @version      2.2
// @description  在UI界面点击开始以自动刷积分。通过联通OA进入法治在沃首页,点击开始即可。
// @author       Zouys
// @match        http://lawplatform.unicom.local/unitework/pf/*.do
// @icon         http://aiportal.unicom.local/portal/v1/assets/images/icon/favicon.ico
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    // Your code here...
    //http://lawplatform.unicom.local/law/tpfLike/toLike.do
    window.onload = function () {
        let show = 0
        let showWindow = document.createElement('button')
        showWindow.style.width = '60px'
        showWindow.style.height = '40px'
        showWindow.innerText = '开刷!'
        showWindow.style.position = 'fixed'
        showWindow.style.left = '0px'
        showWindow.style.top = '150px'
        showWindow.style.zIndex = '111'
        showWindow.addEventListener('click', ()=>{
            fuc_show()
        })
        function fuc_show() {
            let myWindow=document.getElementById('mywin')
          // let is_show=document.querySelector('#myWindow')
          show++
          if (show == 1) {
            myWindow.style.display = 'block'
    
          }
          else {
            show = 0
            myWindow.style.display = 'none'
          }
        }
        document.body.appendChild(showWindow)
        let myWindow = document.createElement('div')
        myWindow.id = 'mywin'
        myWindow.style.width = '300px'
        myWindow.style.height = '400px'
        myWindow.style.backgroundColor = '#efefef'
        myWindow.style.position = 'fixed'
        myWindow.style.left = '50px'
        myWindow.style.top = '150px'
        myWindow.style.zIndex = '111'
        myWindow.style.display = 'none'
        myWindow.innerHTML = `<button id="btn-begining">开始</button>
睡眠时间:<input id="sleeptime" value="3" style="display: inline-block;width: 40px;"> 秒
<br>捕获条数:<div id="c-total"  style="display: inline-block;width: 20px;color: #f5083f;">36</div>
<br><div>日志信息:</div>
<div style="width:90%;margin: auto auto;border-radius: 10px;position: relative;border: 1px solid grey;height: 200px;margin-top: 0px;">

<ul id="ul" style=" overflow-x: auto;white-space: nowrap;margin:0px 0px 0px 0px; overflow: auto;height:100%;">
</ul>
当前进度:
<div id="myProgress" style="width: 0%; height: 20px; background-color: green; position: relative; bottom: 0;">
        
    </div>
    <div id="progrssNum" style="display: flex;justify-content: center;position: relative; top: -20px;">0%</div>
</div>`
    document.body.appendChild(myWindow)
    var readyCheck=true
    var arrAll = getID();
    document.getElementById('c-total').innerText=arrAll.length || 0
    
    var myUl=document.getElementById('ul')
       //进度条
     var myProgress=document.getElementById('myProgress')
     var myProgressNum=document.getElementById('progrssNum')

    var list=document.createElement('li')
    list.innerHTML=`等待开始...`
    myUl.appendChild(list)
    document.getElementById('btn-begining').addEventListener('click', () => {
        if(readyCheck==true)
        {
            readyCheck=false
            myProgress.style.width=`0%`
            myProgressNum.innerText=`0%`
            doMain(document.getElementById('sleeptime').value * 1000 || 3000).then(v=>{
                readyCheck=true
            })
        }
        else{
            alert('请等待本次操作完成~')
        }
      })

        // 设置全局cookie
    $.ajaxSetup({
        xhrFields: {
            withCredentials: true
        }
    });

    //签到
    $.ajax({
        url: 'http://lawplatform.unicom.local/law/TpfAttendance/sgin.do',  // 请求的URL地址
        type: 'POST',  // 请求的方式(GET、POST等)
        dataType: 'json',  // 响应的数据类型(json、xml等)
        success: function (data) {
            // 请求成功时的回调函数,data参数包含相应的数据
            console.log(data.msg)
            let mylist=document.createElement('li')
            mylist.innerHTML= data.msg==='积分+10'?`签到成功~积分+10`:`${data.msg}` || ``
            myUl.appendChild(mylist)
        },
        error: function (xhr, status, error) {
            // 请求失败时的回调函数,xhr参数包含XMLHttpRequest对象,status参数包含错误状态,error参数包含错误信息
            console.log('请求失败:' + status + ' - ' + error);
        }
    });
    async function sleep(time) {
        return await new Promise((resolve) => {
            console.log('睡眠'+time/1000+'s') 
            var list=document.createElement('li')
            list.innerHTML=`睡眠${time/1000}s...`
            myUl.appendChild(list)
            setTimeout(resolve, time)
        });
    }
    var index = 0;
    //获取首页30个文章id
    function getID() {
        var arr;
        var as = document.querySelectorAll('li');
        var ps = document.querySelectorAll('p');
        var needArr=[];
        arr = Array.from(as);
        for(var i of arr){if(i && i.innerHTML && i.innerHTML.split('opendetail')[1] ){
        // console.log(i.innerHTML.split('opendetail')[1].split('(\'')[1].split('\')')[0])
        needArr.push(i.innerHTML.split('opendetail')[1].split('(\'')[1].split('\')')[0])
        }}
        var arrp = Array.from(ps);
        for(var j of arrp){if(j && j.outerHTML && j.outerHTML.split('opendetail')[1] ){
        // console.log(j.outerHTML.split('opendetail')[1].split('(\'')[1].split('\')')[0])
        needArr.push(j.outerHTML.split('opendetail')[1].split('(\'')[1].split('\')')[0])
        }}
        //去重
        return [...new Set(needArr)];
    }
    //每3s发送一次点赞请求v
    
    async function sendResPre3s(id) {
        let mylist=document.createElement('li')
        let listring
           await $.ajax({
                url: 'http://lawplatform.unicom.local/law/tpfLike/toLike.do',  // 请求的URL地址
                type: 'POST',  // 请求的方式(GET、POST等)
                dataType: 'json',  // 响应的数据类型(json、xml等)
                data: {
                    infoId: id
                },
                success: function (data) {
                    // 请求成功时的回调函数,data参数包含相应的数据
                    console.log(++index + '   点赞-- ' + data.status + ' id=', id)   
                    listring=`第${index}  点赞=>${data.status} `
                },
                error: function (xhr, status, error) {
                    // 请求失败时的回调函数,xhr参数包含XMLHttpRequest对象,status参数包含错误状态,error参数包含错误信息
                    console.log('请求失败:' + status + ' - ' + error);
                    listring=`点赞请求失败`
                }
            });
        //完整浏览文章
        //浏览积分
        // var url = "http://lawplatform.unicom.local/law/tpfIntegralDetail/addBrowseIntegral.do"
        var url="http://lawplatform.unicom.local/law/tpfIntegralDetail/addBrowseIntegralDetail.do"
        await  $.ajax({
            url: url,
            type: "POST",
            data: {
                infoId: id
            },
            success: function (data) {
                console.log('浏览--' + data.massege + '  id=', id)
                listring+=`      浏览=>${data.massege}  id=${id}`
                
            }
        });
        mylist.innerHTML=listring
        myUl.appendChild(mylist)
        let pgr=Math.round(index/arrAll.length *100)
        console.log('pgr:'+pgr)
        myProgress.style.width=`${pgr}%`
        myProgressNum.innerText=`${pgr}%`
    }
    async function doMain(ms) {
        index=0
        //主运行代码
        for (var i of arrAll) {
                await sendResPre3s(i);
                await sleep(ms);
        }
    }
    }
})();