懒人必备

懒得回帖之人必备

目前為 2022-03-14 提交的版本,檢視 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         懒人必备
// @namespace    https://www.bmt.pub/
// @version      1.3
// @description  懒得回帖之人必备
// @author       。。。。
// @require      https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
// @require      https://cdn.bootcss.com/sweetalert/2.1.2/sweetalert.min.js
// @require      https://code.jquery.com/jquery-latest.js
// @match        http://yaohuo.me/*
// @match        https://yaohuo.me/*
// @include      https://yaohw.com/*
// @include      http://yaohw.com/*
// @run-at       document-start
// @grant           GM_getValue
// @grant           GM.getValue
// @grant           GM_setValue
// @grant           GM.setValue
// @grant			GM_addStyle
// @grant           GM_xmlhttpRequest
// @grant           GM_getResourceText
// @grant           GM_registerMenuCommand
// @grant           unsafeWindow
// ==/UserScript==



//当前时间
var nowdate= function() {
    //获取当前时间
    var date = new Date();
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    if (month < 10) {
        month = "0" + month;
    }
    if (day < 10) {
        day = "0" + day;
    }
    var nowDate = year + "-" + month + "-" + day;
    return nowDate;
}


//正文
$(document).ready(function(){
    //楼主ID
    var userid;
    //一个帖子内吃肉次数
    var count=0;
    //当天时间信息
    var time;
    //吃肉时回复内容
    var context=new Array("吃","吃肉","吃了","再吃","感谢肉肉~","感谢","吃完再说","真香","我是来吃肉的","ok,吃完");
    //匹配所有妖火成员回复的url和参数
    var action,siteid,lpage,classid,sid,id;
    //得到楼主ID方法
    var f1=function(){
        //获取楼主空间地址操作,得到ID
        var request = $.ajax({
            //请求方式
            type:'GET',
            async: false,
            //发送请求的地址以及传输的数据
            url:"https://yaohuo.me",
            success:function(data){
                //请求成功函数内容
                //匹配首页空间a标签
                //匹配a标签
                var aReg=/<a[^>]*href=['"]([^"]*)['"][^>]*>([\u7A7A\u95F4]{2})<\/a>/g;
                //获取楼主ID
                var arrA = data.match(aReg);
                var indexof1=arrA[0].indexOf('id=');
                var indexof2=arrA[0].indexOf('\">空间');
                //获取到id
                userid =arrA[0].substring(indexof1+3,indexof2);

            },
            error:function(jqXHR){
                //请求失败函数内容
            }
        });
        //终止请求动作.
        request.abort();
        return userid;
    }

    //统计楼主存在的吃肉回复次数方法
    var f2=function(){
        f1();
        //这里要匹配帖子是否有回帖记录,若有再匹配楼主ID,是否吃过肉同时在子字节a标签中可以找到getTotal参数
        var moreDiv=document.getElementsByClassName('more');
        if(moreDiv.length==0){
            count=0;
            return count;
        }

        //匹配所有妖火成员回复的url和参数
        action=$("input[name='action']").val();
        siteid=$("input[name='siteid']").val();
        lpage=$("input[name='lpage']").val();
        sid=$("input[name='sid']").val();
        classid=$("input[name='classid']").val();
        id=$("input[name='id']").val();

        //因没有getTotal参数,所以另需寻找
        var getTotalElement=moreDiv[0].firstElementChild.href;//div子标签a标签中有
        var getTotalElementindexof1=getTotalElement.indexOf('getTotal=');
        var getTotalElementindexof2=getTotalElement.indexOf('&id=');
        var getTotal =getTotalElement.substring(getTotalElementindexof1+9,getTotalElementindexof2);

        for(var i=1;i<=getTotal/15+1;i++){
            var hrefUrl='https://yaohuo.me/bbs/book_re.aspx?action='+ action +'&siteid='+siteid+'&classid='+classid+'&id='+id+'&lpage='+lpage+'&getTotal='+getTotal+'&ot=&mainuserid=&page='+i;
            var request1= $.ajax({
                //请求方式
                type:'GET',
                //发送请求的地址以及传输的数据
                url:hrefUrl,
                async:false,
                success: function(data){
                    //匹配所有用户回复链接,如<a href="/bbs/Book_re.aspx?siteid=1000&amp;classid=177&amp;lpage=1&amp;page=1&amp;reply=76&amp;id=776920&amp;touserid=7021&amp;ot=">回</a>
                    var aReg=/<a[^>]*href=['"]([^"]*)['"][^>]*>([\u56DE])<\/a>/g;
                    var tempArr= data.match(aReg);
                    for(var k=0;k<tempArr.length;k++){
                        var touserIdIndexOf1=tempArr[k].indexOf('touserid=');
                        var touserIdIndexOf2=tempArr[k].indexOf('\&amp;ot=\">回');
                        //获取到id
                        var tempid =tempArr[k].substring(touserIdIndexOf1+9,touserIdIndexOf2);
                        if(userid==tempid){
                            count++;
                            console.log("您回复帖子次数:第"+count+"次");
                        }
                    }
                },
                error:function(jqXHR){
                    //请求失败函数内容
                    console.log('错误原因:'+jqXHR);
                },
                failure:function (result) {
                    console.log('失败原因:'+result);
                },
            });
            //终止请求动作.
            request1.abort();
        }
        return count;
    }

    //回复贴子方法
    var f3=function(){
        console.log("发言次数:"+count);
        if(count<=0){
            //执行发言
            $("textarea[name='content']").val(context[Math.floor(Math.random()*(11 - 1) + 1)]);
            $("input[name='g']").click();
            //存储时间文本和吃肉信息
            localStorage.setItem("会员:"+id,nowdate());
            return;
        }
    }

    //判断肉是否吃完,以及调用f3()吃肉方法
    var f4= function(){
        //匹配肉是否吃完,查看"余0"和“礼金”
        var lijinReg=/\u793C\u91D1/g;//礼金
        var remainderReg=/\(\u4F59[0]\)/g;//(余0)
        var data=$(".dashed").parent()[0].innerText;
        var lijin= data.match(lijinReg);
        var remainder= data.match(remainderReg);
        if(data==undefined){
            return;
        }
        //匹配是否为肉贴
        if(lijin!=null)
            if(lijin[0]=='礼金')
                //若肉的余数为零则不吃不回复
                if(remainder==null){
                    f3();
                }
                else if(remainder[0]=='(余0)'){
                    return;
                }else{
                    return;
                }
    }



    //比较当天时间信息
    id=$("input[name='id']").val();
    time=localStorage.getItem("会员:"+id);
    console.log("当前帖子ID"+id+"的存储时间为:"+time);
    //比较当天时间信息,if存在当天时间信息就比较时间
    if(time!=null) {
        //比较今天和之前时间
        if(time==nowdate()){
            //未吃过肉
            count=f2();
            if(count==0){
                f4();
            }
            //吃过肉了
            else{
                return;
            }

        }
        //比较时间不等时,即新一天
        else{
            //更新吃肉记录为未吃状态
            count=0;
            f4();
        }
    }
    //不存在时间记录时,创建记录
    else{
        localStorage.setItem("会员:"+id,nowdate());
        count=f2();
        //未吃过肉
        if(count==0){
            f4();
        }
        //吃过肉了
        else{
            return;
        }

    }
});