匹男问自离开

匹男自离开

目前为 2024-05-13 提交的版本。查看 最新版本

// ==UserScript==
// @name         匹男问自离开
// @namespace    xiaoc
// @version      0.7
// @description  匹男自离开
// @author       小c
// @match        *://*.shushubuyue.net/*
// @match        *://*.shushubuyue.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=shushubuyue.net
// @license      MIT
// ==/UserScript==


//整体流程:每秒执行一次检查,每次检查中先检查当前是否为男生,再检查是否为新男生


//输入框
// document.querySelector("#msgInput").value


// //离开按钮(左边)
// document.querySelector("a.button-link.chat-control").click()
// document.querySelector("span.actions-modal-button.actions-modal-button-bold.color-danger").click()

// //离开-重开按钮(中间)
// document.querySelector("span.chat-control").click()
// document.querySelector("span.chat-control").innerText == '离开' / '重新开始'

(function () {

    'use strict';

    function stay() {
        //输入框
        var msgInput = document.querySelector("#msgInput")
        //发送按钮
        var sendButton = document.querySelector("a.button-link.msg-send")
        // 自己已发消息数量
        var rightMessageCount = document.querySelectorAll(".message.right").length;

        // 若已经发送消息则直接返回
        if (rightMessageCount !== 0) {
            return;
        }
        // 如果自己已发消息数量为0,则认为是新女生
        if (rightMessageCount === 0) {
            // 输入,在这里设置问候语
            msgInput.value = "要匹钕脚本吗"
            msgInput.dispatchEvent(new Event('input'))
            msgInput.dispatchEvent(new Event('change'))

            // 发送
            if (msgInput.value == "要匹钕脚本吗" && sendButton) {
                sendButton.click();
            }
         }
    }

    function leave() {
        var leftButton = document.querySelector("a.button-link.chat-control");
        if (leftButton) leftButton.click()
        var leftSecondButton = document.querySelector(
            "span.actions-modal-button.actions-modal-button-bold.color-danger")
        if (leftSecondButton) leftSecondButton.click()

        var restartButton = document.querySelector("span.chat-control")
        if (restartButton && restartButton.innerText) {
            if (typeof restartButton.innerText == "string" && restartButton.innerText == "离开") {
                restartButton.click()
                setTimeout(function () {
                    restartButton.click()
                }, 500)
            } else if (typeof restartButton.innerText == "string" && restartButton.innerText == "重新开始") {
                restartButton.click()
            } else {
                console.log("error restartButton")
            }
        }
    }

    function init() {
        setInterval(() => {
            var tab = document.querySelector("#partnerInfoText")
            if (tab) var tabText = tab.innerText

            if (tabText && typeof tabText == 'string' && tabText.indexOf("男生") != -1) {
                // 如果是男生,调用 stay() 函数
                stay();
            } else if (tabText && typeof tabText == 'string' && tabText.indexOf("女生") != -1) {
                // 如果是女生,调用 leave() 函数
                leave();
            }

        }, 1000);
    }

    setTimeout(init, 5000);
    })();

// @license MIT
// @downloadURL https://update.greasyfork.org/scripts/480429/%E5%8F%94%E5%8F%94%E4%B8%8D%E7%BA%A6%E8%87%AA%E5%8A%A8%E9%87%8D%E5%BC%80.user.js
// @updateURL https://update.greasyfork.org/scripts/480429/%E5%8F%94%E5%8F%94%E4%B8%8D%E7%BA%A6%E8%87%AA%E5%8A%A8%E9%87%8D%E5%BC%80.meta.js
// ==/UserScript==


(function() {
  'use strict';






// 创建 MutationObserver 实例
var observer = new MutationObserver(function(mutationsList) {
  for (var mutation of mutationsList) {
    if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
      // 在变化发生时检查目标元素并进行点击
      checkAndClickElements();
    }
  }
});

// 配置 MutationObserver
var observerConfig = {
  childList: true,
  subtree: true
};

// 启动 MutationObserver 监视
observer.observe(document.body, observerConfig);

// 检查目标元素并进行点击
var isClickInProgress = false; // 标记点击是否正在进行中

function checkAndClickElements() {
  // 如果点击正在进行中,则直接返回
  if (isClickInProgress) {
    return;
  }

  // 设置点击进行中的标记
  isClickInProgress = true;

  var leaveElement = getElementByText('span.chat-control[href="#"]', '离开');
  if (leaveElement) {
    // 等待2000毫秒后点击 "离开" 元素
    setTimeout(function() {
      leaveElement.click();
      console.log('已点击 "离开" 元素');

      // 等待500毫秒后点击 "重新开始" 元素
      setTimeout(function() {
        var restartElement = getElementByText('span.chat-control[href="#"]', '重新开始');
        if (restartElement) {
          restartElement.click();
          console.log('已点击 "重新开始" 元素');
        }

        // 重置点击标记
        isClickInProgress = false;
      }, 500); // 延迟时间,单位:毫秒

    }, 2000); // 延迟时间,单位:毫秒
  } else {
    // 重置点击标记
    isClickInProgress = false;
  }
}

// 根据元素的文本内容选择元素
function getElementByText(selector, text) {
  var elements = document.querySelectorAll(selector);
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].innerText.includes(text)) {
      return elements[i];
    }
  }
  return null;
}




})();