懒人必备

懒得回帖之人必备

当前为 2022-03-14 提交的版本,查看 最新版本

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

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

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

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

您需要先安装一款用户脚本管理器扩展,例如 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;
        }

    }
});