您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A chat bot for WhatsApp Web, with some basic commands. Check console for log.
- // ==UserScript==
- // @name WhatsApp Web - Chat Bot
- // @namespace WACB
- // @version 0.1
- // @description A chat bot for WhatsApp Web, with some basic commands. Check console for log.
- // @author Royalgamer06
- // @match https://web.whatsapp.com/
- // @grant GM_xmlhttpRequest
- // @grant unsafeWindow
- // @run-at document-idle
- // ==/UserScript==
- var jq = document.createElement('script');
- jq.onload = function() {
- jQuery.noConflict();
- console.log('jQuery loaded');
- setTimeout(Main, 3500);
- };
- jq.src = "//ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js";
- document.getElementsByTagName('head')[0].appendChild(jq);
- function Main() {
- console.log("[WACB] Waiting for chat to load");
- jQuery("#pane-side").on("click", function() {
- setTimeout(listenToChat, 350);
- });
- }
- function listenToChat() {
- console.log("[WACB] Listening to chat");
- /*jQuery(".message-list").bind("DOMSubtreeModified", function() {
- var new_msg = jQuery(".selectable-text").last().text();
- console.log("[WACB] New chat message: \n" + new_msg);
- if (new_msg.indexOf("!") === 0) {
- var cmd_line = new_msg.substring(1);
- var cmd = cmd_line.split(" ")[0];
- var args = cmd_line.split(" ").shift();
- if (cmd == "about") {
- sendMsg("I am a chat bot, made by Roy van Dijk.");
- }
- }
- });*/
- unsafeWindow.sendMsg = function(msg) {
- console.log("[WACB] Sending message: \n" + msg);
- var target = document.getElementsByClassName("input")[1];
- var eventType = "textInput";
- var evt = document.createEvent("TextEvent");
- evt.initTextEvent(eventType, true, true, unsafeWindow, msg, 0, "en-US");
- target.focus();
- target.dispatchEvent(evt);
- jQuery(".send-container").click();
- };
- var last_msg = jQuery(".selectable-text").last().text();
- setInterval(function() {
- var new_msg = jQuery(".selectable-text").last().text();
- if (new_msg !== last_msg) {
- console.log("[WACB] New chat message: \n" + new_msg);
- last_msg = new_msg;
- if (new_msg.indexOf("!") === 0) {
- var cmd_line = new_msg.substring(1);
- var cmd = cmd_line.split(" ")[0];
- var args = cmd_line.split(" ").slice(1);
- if (cmd == "help") {
- sendMsg("I can do the following commands:");
- sendMsg("*!about*: Returns who I am.");
- sendMsg("*!joke*: Returns a random joke (about Chuck Norris).");
- sendMsg("*!weather*: Returns the current weather in Eindhoven.");
- sendMsg("*!weather <LOCATION>*: Returns the current weather in <LOCATION>.");
- sendMsg("*!gewis*: Returns the agenda of GEWIS.");
- sendMsg("(Work in progress)");
- }
- if (cmd == "about") {
- sendMsg("I am a chat bot.");
- }
- if (cmd == "joke") {
- GM_xmlhttpRequest({
- method: "GET",
- url: "http://api.icndb.com/jokes/random?escape=javascript",
- onload: function(response) {
- var json = JSON.parse(response.responseText);
- sendMsg(json.value.joke);
- }
- });
- }
- if (cmd == "weather") {
- var url = "http://api.apixu.com/v1/current.json?key=d0c5d252848043d6af4210418162706&q=Eindhoven";
- if (args.length > 0) {
- url = "http://api.apixu.com/v1/current.json?key=d0c5d252848043d6af4210418162706&q=" + args[0];
- }
- GM_xmlhttpRequest({
- method: "GET",
- url: url,
- onload: function(response) {
- var json = JSON.parse(response.responseText);
- if (args.length > 0) {
- if (json.error) {
- sendMsg("ERROR: Couldn't find location.");
- } else {
- sendMsg("It is currently " + json.current.temp_c + "°C in " + args[0]);
- }
- } else {
- sendMsg("It is currently " + json.current.temp_c + "°C in Eindhoven.");
- }
- }
- });
- }
- if (cmd == "gewis") {
- GM_xmlhttpRequest({
- method: "GET",
- url: "https://www.gewis.nl/activity",
- onload: function(response) {
- var acts = jQuery(".agenda-item-body", response.responseText);
- for (var i = 0; i < acts.length; i++) {
- sendMsg(jQuery("h4 > a", acts[i]).text().trim() + " - " + jQuery("div.col-md-4 > dl > dd:nth-child(2)", acts[i]).text().trim() + " @ " + jQuery("div.col-md-4 > dl > dd:nth-child(6)", acts[i]).text().trim());
- }
- }
- });
- }
- }
- }
- }, 100);
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址