[Javascript实操]游戏论坛自动回帖

加载此页面花费9 ms    本文章一共7228字   

源代码

// ==UserScript==
// @name         某游戏论坛自动回帖
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  帮助自动回帖,单手开车更方便
// @author       lpq
// @match        https://2046pro.com/*
// @match        https://bbs.ongacg.com/*
// @match        https://acghgame.com/*
// @grant        none
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    var $ = jQuery.noConflict();
    //判断是否回复过
    var locked=$(".locked").text()!=""?true:false;
    //如果没有回复
    if(locked){
        //模拟回复
        $("[name=message]").val("膜拜神贴");
        $("#fastpostsubmit").click();
        setTimeout(function(){ scrollTo(0,0); }, 1500);
    }
})();

判断是否回帖,没回过帖,就会回帖一句【只能单一的句子】,就不是很ok

改造

目标1

回不同的话

实现

// ==UserScript==
// @name         论坛自动回帖【魔改】
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  魔改ing
// @author       lpq
// @match        https://2046pro.com/*
// @match        https://bbs.ongacg.com/*
// @match        https://acghgame.com/*
// @grant        none
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    //添加随机回复
    var strArry=new Array("膜拜神贴","哥顶的不是帖子,是寂寞!","看帖看完了至少要顶一下,还可以加入到淘帖哦!","果断MARK,前十有我必火!");
    var up;
    up = strArry[parseInt(Math.random()*4)];
    var $ = jQuery.noConflict();
    //判断是否回复过
    var locked=$(".locked").text()!=""?true:false;
    //如果没有回复
    if(locked){
        //模拟回复
        $("[name=message]").val(up);
        $("#fastpostsubmit").click();
        setTimeout(function(){ scrollTo(0,0); }, 1500);
    }
})();

目标2

加上小尾巴

实现

// ==UserScript==
// @name         论坛自动回帖【魔改】+尾巴
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  魔改ing
// @author       lpq
// @include      http*/thread*
// @include      http*forum.php?mod=viewthread&tid=*
// @include      http*forum.php?mod=post&action=reply&fid=*
// @include      http*forum.php?mod=post&action=newthread&fid=*
// @grant        none
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    //添加随机回复【strArry】+尾巴【Custom】
    var strArry=new Array("膜拜神贴","哥顶的不是帖子,是寂寞!","看帖看完了至少要顶一下!","果断MARK,前十有我必火!","果断回帖","楼主,不论什么情况你一定要hold住!hold住就是胜利!","膜拜神贴,后面的请保持队形~","看了LZ的帖子,我只想说一句很好很强大!");
    var Custom = '[list][/list][float=left][color=FFFFCC]\----锦绣六记\ ';
    var up;
    up = strArry[parseInt(Math.random()*4)]+Custom;
    var $ = jQuery.noConflict();
    //判断是否回复过
    var locked=$(".locked").text()!=""?true:false;
    //如果没有回复
    if(locked){
        //模拟回复
        $("[name=message]").val(up);
        $("#fastpostsubmit").click();
        setTimeout(function(){ scrollTo(0,0); }, 1500);
    }
})();

目标3

改得不是很ok,会是不是提醒更新,毕竟是我改的,所以版本被我设置为0.1,而原作者的版本为0.3

解决方案

  1. 直接将版本设置为9999【比0.3大即可,无上限】
  2. 添加元数据块@downloadURL【告知用户脚本管理器应该在哪个地址获取脚本更新。】

方案2的结果

// ==UserScript==
// @name         论坛自动回帖【魔改】+尾巴
// @namespace    none
// @version      0.1
// @description  自动回帖,多种回帖加尾巴
// @author       锦绣六记【修改者】、lpq【原作者】
// @include      http*/thread*
// @include      http*forum.php?mod=viewthread&tid=*
// @include      http*forum.php?mod=post&action=reply&fid=*
// @include      http*forum.php?mod=post&action=newthread&fid=*
// @grant        none
// @downloadURL  http://xj.yes1.cn/index.php/archives/51.html
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    //添加随机回复【strArry】+尾巴【Custom】
    var strArry=new Array("膜拜神贴","哥顶的不是帖子,是寂寞!","看帖看完了至少要顶一下!","果断MARK,前十有我必火!","果断回帖","楼主,不论什么情况你一定要hold住!hold住就是胜利!","膜拜神贴,后面的请保持队形~","看了LZ的帖子,我只想说一句很好很强大!");
    var Custom = '[list][/list][float=left][color=FFFFCC]\----锦绣六记\ ';
    var up;
    up = strArry[parseInt(Math.random()*4)]+Custom;
    var $ = jQuery.noConflict();
    //判断是否回复过
    var locked=$(".locked").text()!=""?true:false;
    //如果没有回复
    if(locked){
        //模拟回复
        $("[name=message]").val(up);
        $("#fastpostsubmit").click();
        setTimeout(function(){ scrollTo(0,0); }, 1500);
    }
})();

部分代码来源

部分代码来源,不包括原作者的某游戏论坛自动回帖

元数据块【@include】

描述脚本将执行的页面。该列表会被分析并展示到脚本的简介页面,以及 用于脚本分类。
来源:Discuz论坛小尾巴+快捷回复

// @include      http*/thread*
// @include      http*forum.php?mod=viewthread&tid=*
// @include      http*forum.php?mod=post&action=reply&fid=*
// @include      http*forum.php?mod=post&action=newthread&fid=*

可以直接判断网站是不是Discuz论坛,虽然不晓得是什么原理,而且这个油猴脚本Discuz论坛小尾巴+快捷回复已经有些失效了

小尾巴

回帖时添加【透明偏黄的】小尾巴
来源:Discuz论坛小尾巴+快捷回复

var Custom = '[list][/list][float=left][color=FFFFCC]\----锦绣六记\ ';

只看楼主

论坛自动只看楼主


再度升级

// ==UserScript==
// @name         论坛自动回帖【魔改】+尾巴+只看楼主
// @namespace    none
// @version      0.1
// @description  自动回帖,多种回帖加尾巴
// @author       锦绣六记【修改者】、lpq【原作者】
// @include      http*/thread*
// @include      http*forum.php?mod=viewthread&tid=*
// @include      http*forum.php?mod=post&action=reply&fid=*
// @include      http*forum.php?mod=post&action=newthread&fid=*
// @grant        none
// @downloadURL  http://xj.yes1.cn/index.php/archives/51.html
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
    //添加随机回复【strArry】+尾巴【Custom】
    var strArry=new Array("膜拜神贴","哥顶的不是帖子,是寂寞!","看帖看完了至少要顶一下!","果断MARK,前十有我必火!","果断回帖","楼主,不论什么情况你一定要hold住!hold住就是胜利!","膜拜神贴,后面的请保持队形~","看了LZ的帖子,我只想说一句很好很强大!");
    var Custom = '[list][/list][float=left][color=FFFFCC]\----锦绣六记\ ';
    var up;
    up = strArry[parseInt(Math.random()*4)]+Custom;
    var $ = jQuery.noConflict();
    //判断是否回复过
    var locked=$(".locked").text()!=""?true:false;
    //如果没有回复
    if(locked){
        //模拟回复
        $("[name=message]").val(up);
        $("#fastpostsubmit").click();
        setTimeout(function(){ scrollTo(0,0); }, 1500);
    }
    //只看楼主
    var str=location.href;
    if (str.indexOf("authorid=") > 2) {return true;}
    var next_page_text = ["只看该作者","只看該作者"];
    function find_element_by_text(text){
        var elements = document.getElementsByTagName("a");
        for (var i=0;i<elements.length;i++){
            // if(elements[i].innerText == text){
            if(elements[i].innerText.toLowerCase().indexOf(text) != -1){
                return elements[i];
            }
        }
        return false;
    }
    var i,ret
    for(i in next_page_text){
        ret = find_element_by_text(next_page_text[i]);
        if(ret){
            ret.click();
            return true;
        }
    }
})();
最后修改:2019 年 08 月 05 日 21:14:31
tag(s): none
show comments · back · home
Edit with markdown