星之子 发表于 2024-9-14 11:23:28

【油猴脚本】追随神器 一键三连评分按钮 (测试版)

本帖最后由 星之子 于 2024-9-14 16:50 编辑

动机
写这个脚本,动机依然是解决我自己的痛点(笑鼠)。
我觉得泥潭追随不好攒的很大原因,就是评分这东西实在太费事儿了,以至于大家都不太想点(doge)。无论是用那个文本框输入、还是用下拉箭头点选,都是要用鼠标点好多下或键盘按好多下(懒狗的自我修养2)。
所以这里就稍微花了点时间写了一个略显复杂的脚本。脚本会在原来的一排按钮上方新增一排,可以预先设置好想要给出的评分和理由(这部分非常简单,下方会详述);之后只要点一下,就可以快速soon出评分(暗示);如果今日剩余已经不足按钮要求,则默认剩多少给出多少。
希望这东西泥潭人手一个,这样追随就更容易给出去了。
目前还在测试阶段,欢迎并感谢反馈BUG~

代码
@Name @Match 如果不@他一下,下面的代码部分会被自动标url,好胃疼。
// ==UserScript==
// @name      泥潭一键评分
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description在评分下方添加一键评分功能,可以自行设置按钮名称、对应分值和理由。
// @author       Étoiles
// @match      https://www.gamemale.com/forum.php?mod=viewthread&tid=*
// @match      https://www.gamemale.com/forum.php?*
// @match      https://www.gamemale.com/thread*
// @grant      none
// ==/UserScript==

(function () {
    'use strict';

    // 在页面加载时添加按钮
    window.addEventListener('load', function () {
      var pBtnDiv = document.getElementById('p_btn');
      if (pBtnDiv) {
            // 添加新容器
            var newContainer = document.createElement('div');
            newContainer.id = 'new_button_container';
            newContainer.style.marginTop = '30px';
            newContainer.style.textAlign = 'center'; // 添加这一行使按钮居中显示
            newContainer.style.marginBottom = '20px'; // 添加这一行在容器下方留出空间

            // 新容器添加到 #p_btn 上方
            pBtnDiv.parentNode.insertBefore(newContainer, pBtnDiv);

            // 添加按钮
            addButton(newContainer, '超赞', , '评分理由A');
            addButton(newContainer, '很棒', , '评分理由B');
            addButton(newContainer, '喜欢', , '评分理由C');
            // addButton(newContainer, '按钮名称', [血液, 追随, 堕落], '评分原因');
      }
    });

    // 添加新按钮
    function addButton(container, label, scores, reason) {
      var newButton = document.createElement('button');
      newButton.innerHTML = label;
      newButton.style.marginLeft = '10px';
      newButton.className = 'custom-button';
      newButton.onclick = function () {
            ratePost(scores, reason);
      };
      container.appendChild(newButton);
    }

    // 评分
    function ratePost(scores, reasonText) {
      // 打开评分窗口
      var rateButton = document.getElementById('ak_rate');
      if (rateButton) {
            rateButton.click();
      }

      // 等待窗口加载
      var interval = setInterval(function () {
            var score3 = document.getElementById('score3');
            var score4 = document.getElementById('score4');
            var score8 = document.getElementById('score8');
            var reason = document.getElementById('reason');
            if (score3 && score4 && score8 && reason) {
                clearInterval(interval);

                // 填入文本框
                score3.value = Math.min(scores, parseInt(score3.nextElementSibling.nextElementSibling.innerText));
                score4.value = Math.min(scores, parseInt(score4.nextElementSibling.nextElementSibling.innerText));
                score8.value = Math.min(scores, parseInt(score8.nextElementSibling.nextElementSibling.innerText));
                reason.value = reasonText;

                // 点按提交
                var submitButton = document.querySelector('button');
                if (submitButton) {
                  submitButton.click();
                }
            }
      }, 100);
    }

    // 为了长得好看还特意整了点花里胡哨的按钮样式
    var style = document.createElement('style');
    style.innerHTML = `
      .custom-button {
            background-color: #f0f0f0;
            margin: 0px 15px !important;
            border: 0;
            color: #242424;
            border-radius: 0.5em;
            font-size: 20px;
            padding: 0.375em 1em;
            font-weight: 600;
            text-shadow: 0 0.0625em 0 #fff;
            box-shadow: inset 0 0.0625em 0 0 #f4f4f4, 0 0.0625em 0 0 #efefef,
                0 0.125em 0 0 #ececec, 0 0.25em 0 0 #e0e0e0, 0 0.3125em 0 0 #dedede,
                0 0.375em 0 0 #dcdcdc, 0 0.425em 0 0 #cacaca, 0 0.425em 0.5em 0 #cecece;
            transition: 0.15s ease;
            cursor: pointer;
      }
      .custom-button:active {
            translate: 0 0.225em;
            box-shadow: inset 0 0.03em 0 0 #f4f4f4, 0 0.03em 0 0 #efefef,
                0 0.0625em 0 0 #ececec, 0 0.125em 0 0 #e0e0e0, 0 0.125em 0 0 #dedede,
                0 0.2em 0 0 #dcdcdc, 0 0.225em 0 0 #cacaca, 0 0.225em 0.375em 0 #cecece;
      }
    `;
    document.head.appendChild(style);
})();

其中预先设置好按钮的代码是这一部分:
            addButton(newContainer, '超赞', , '评分理由A');
            addButton(newContainer, '很棒', , '评分理由B');
            addButton(newContainer, '喜欢', , '评分理由C');
            // addButton(newContainer, '按钮名称', [血液, 追随, 堕落], '评分原因');5-1-1、3-1-1、1-1-1是我个人比较常用的,这里都可以自定义。
请在使用前预先设置,尤其不要忘了把评分理由改成人话(




星象占卜

XLK 发表于 2024-9-14 11:31:03

这下对于点评分很有用呢,看到有用的帖子老是忘记点评分,这些挺方便的了

亚洛斯 发表于 2024-9-14 11:36:29

懒人福音欸,俺就是懒得一下一下点,才不怎么记得去送评分惹~

1287549 发表于 2024-9-14 11:42:05

泥潭有几个脚本大佬真是不错

凯诺斯 发表于 2024-9-14 11:42:13

一般评分要好几步操作,可以一键评分挺不错的惹,越来越方便了{:6_169:}

nuomici 发表于 2024-9-14 11:46:52

等级没有十级评分是没有5血液选项的{:6_188:} 不过这个自己改一下就好了 另外我自己还加了一个专门为净化流朋友准备的选项https://s2.loli.net/2024/09/14/suchtyx5G3EdoJR.png

深暗幽狼 发表于 2024-9-14 11:48:28

一键三连,可以,本来那个踩挺容易误触的还不能取消(

PURO_ 发表于 2024-9-14 11:53:59

换个角度来看对于那些需求追随的人也是利好呢{:4_114:}

黑达克 发表于 2024-9-14 11:56:18

不想给的人还是不会给吧,不过对管理应该会挺实用的,毕竟管理评分的时候必须要填写理由,有这个可以省事很多。

折木 发表于 2024-9-14 12:00:53

楼主的脚本很有用惹 可以轻松一键三连惹

娱乐法师火布偶 发表于 2024-9-14 12:01:05

其实我也想说,愿意给追随的就算麻烦也会给,一直不给的人也不会下载这个脚本,不过确实可以简化操作,很不错

我们一起学狗叫 发表于 2024-9-14 12:22:47

希望可以普及一下,大家可以多多给我评分orz

小艺术 发表于 2024-9-14 13:20:16

主要是有冷却时间,每次想给对面追随的时候发现都是在冷却中。

user_login 发表于 2024-9-14 13:25:13

我是在附件下载的地方加了个复选框

cdcai 发表于 2024-9-14 14:02:19

愿意给评分的用这个方便很多,懒得给评分的估计都不会下载这个{:4_114:}

牛牛要白给了 发表于 2024-9-14 14:14:57

已经进化等到这种程度了吗?不过真正懒的给评分的人估计不会下的吧{:6_190:}

毛茸茸兽兽 发表于 2024-9-14 14:44:03

还行~就是手机用户误触了就没法找回咯

dwsleyi 发表于 2024-9-14 14:47:33

不愧是大佬
最近各种便利脚本井喷啊

kevinlewis 发表于 2024-9-14 15:08:11

比较懒从来都不主动评分。代码技术渣,看的似懂非懂

相见忧 发表于 2024-9-14 15:21:56

装上后,立马就在这个帖子里用了下,还挺好用的,不过貌似忘记改理由了:lol
页: [1] 2 3 4
查看完整版本: 【油猴脚本】追随神器 一键三连评分按钮 (测试版)