您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes banners. Write first/second message and auto-reconnect when disconnected. User defined message buttons. Quick skip and exit buttons.
// ==UserScript== // @name Super Omegle // @namespace https://openuserjs.org/user/burn // @version 1.0 // @description Removes banners. Write first/second message and auto-reconnect when disconnected. User defined message buttons. Quick skip and exit buttons. // @author NA // @copyright 2019, burn (https://openuserjs.org//users/burn) // @license MIT // @match https://www.omegle.com/* // @grant none // ==/UserScript== (function() { 'use strict'; var options = { greetingMessage1 : "Hey! How are you?", greetingMessage2 : "Would you like to chat?", originalWidth: null, originalHeight: null, screenHeight: window.innerWidth, screenWidth: window.innerHeight, disconnectOnIdle : { timeoutId : null }, leaveSiteMessageDisabled: true, buttonMessages: { "From?": "Where are you from?", "LOL": "LOL", } }, BreakException = {}, targetNode = document.querySelector('body'), observerConfig = { attributes: false, childList: true, subtree: true }, tId1 = null, tId2 = null, tId3 = null, tId4 = null, previousListLength = 0, getRndIntBetween = function(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; }, callback = function(mutationsList, observer) { try { mutationsList.forEach(function (mutation) { var entry = { mutation: mutation, el: mutation.target, value: mutation.target.textContent, oldValue: mutation.oldValue }; if (entry.el.classList.contains("statuslog")) { if (targetNode.classList.contains("inconversation")) { tId1 === null && (tId1 = window.setTimeout( function() { if(!document.querySelector(".sendbtn").getAttribute('sendMsg') || document.querySelector(".sendbtn").getAttribute('sendMsg') === "firstMessage") { sendMessage(options.greetingMessage1); document.querySelector(".sendbtn").setAttribute("sendMsg", "secondMessage"); } if(options.greetingMessage2 && options.greetingMessage2 != '') { tId2 === null && (tId2 = window.setTimeout( function() { if(document.querySelector(".sendbtn").getAttribute('sendMsg') === "secondMessage") { sendMessage(options.greetingMessage2); } } , getRndIntBetween(1.0*1000, 3.0*1000))); } } , getRndIntBetween(1.0*1000, 3.0*1000)) ); var elem2 = document.getElementById("abovevideosexybtn"); if( elem2 != null) { elem2.parentElement.removeChild(elem2); } var elem3 = document.getElementById("videologo"); if( elem3 != null) { elem3.parentElement.removeChild(elem3); } // Resize video windows and chat var othervideoElem = document.getElementById("othervideo"); var selfvideoElem = document.getElementById("selfvideo"); var disconnetBtn = document.querySelector(".disconnectbtn"); if( othervideoElem != null && options.otherVideoSize == null) { console.log("width: "+options.screenWidth+" height: " + options.screenHeight); options.otherVideoSize = { width: (1.4 * parseInt(othervideoElem.style.width)), height: (1.4 * parseInt(othervideoElem.style.height)) }; options.selfVideoSize = { width: (parseInt(selfvideoElem.style.width)/1.4), height: (parseInt(selfvideoElem.style.height)/1.4) }; options.originalHeight = othervideoElem.style.height; } othervideoElem.setAttribute("style", "width: "+options.otherVideoSize.width+"px; height: "+options.otherVideoSize.height+"px; top: 0px;"); selfvideoElem.setAttribute("style", "z-index: 100; width: "+Math.floor(options.selfVideoSize.width)+"px; height: "+Math.floor(options.selfVideoSize.height)+"px;"); // Add buttons if(!document.getElementById("skipButton")) { var disconnetBtnWidth = window.getComputedStyle(disconnetBtn).getPropertyValue('width'); var disconnetBtnHeight = window.getComputedStyle(disconnetBtn).getPropertyValue('height'); var mainContainer = document.createElement("div"); mainContainer.id = "mainContainer" var containerWidth = Math.floor(options.otherVideoSize.width) - Math.floor(options.selfVideoSize.width); mainContainer.setAttribute("style", "z-index: 100; margin-left: "+Math.floor(options.selfVideoSize.width+5)+"px; margin-top: "+Math.floor(options.otherVideoSize.height)+"px; width: "+containerWidth+"px; height: "+Math.floor(options.selfVideoSize.height)+"px;"); insertAfter(othervideoElem, mainContainer); var buttonContainer = document.createElement("div"); buttonContainer.id = "buttonContainer" buttonContainer.setAttribute("style", "width: "+containerWidth+"px;"); mainContainer.appendChild(buttonContainer); var skipButton = document.createElement("button"); skipButton.innerHTML = "Skip"; skipButton.id = "skipButton" skipButton.setAttribute("style", "width: "+disconnetBtnWidth+"; height: "+disconnetBtnHeight+"; margin-right: 5px; margin-top: 3px;"); skipButton.onclick = function() { disconnectChat(); }; buttonContainer.appendChild(skipButton); var exitButton = document.createElement("button"); exitButton.innerHTML = "Exit"; exitButton.id = "exitButton" exitButton.setAttribute("style", "width: "+disconnetBtnWidth+"; height: "+disconnetBtnHeight+"; margin-right: 5px; margin-top: 3px;"); exitButton.onclick = function() { if(options.leaveSiteMessageDisabled) { window.onbeforeunload = null; } location.href = "https://www.omegle.com/"; }; buttonContainer.appendChild(exitButton); var chatContainer = document.createElement("div"); chatContainer.id = "chatContainer" chatContainer.setAttribute("style", "width: "+containerWidth+"px;"); mainContainer.appendChild(chatContainer); Object.keys(options.buttonMessages).forEach(function(key) { var dynamicButton = document.createElement("button"); dynamicButton.innerHTML = key; dynamicButton.id = key.replace(/\D/g,'') + "Button" dynamicButton.setAttribute("style", "width: "+((parseInt(disconnetBtnWidth)/2)+10)+"px; height: "+((parseInt(disconnetBtnHeight)/2)+10)+"px; margin-right: 5px; margin-top: 3px;"); dynamicButton.onclick = function() { sendMessage(options.buttonMessages[key]); }; chatContainer.appendChild(dynamicButton); }); var optionContainer = document.createElement("div"); optionContainer.id = "optionContainer" optionContainer.setAttribute("style", "width: "+containerWidth+"px; vertical-align : bottom;"); mainContainer.appendChild(optionContainer); var timebox = document.createElement("INPUT"); timebox.id = "timebox" timebox.setAttribute("type", "text"); timebox.setAttribute("maxlength", "3"); timebox.value = "60"; var disconnectOnIdleCheckbox = document.createElement("INPUT"); disconnectOnIdleCheckbox.id = "disconnectOnIdleCheckbox" disconnectOnIdleCheckbox.setAttribute("type", "checkbox"); disconnectOnIdleCheckbox.checked = true; optionContainer.appendChild(disconnectOnIdleCheckbox); optionContainer.appendChild(document.createTextNode('Disconnect after ')); optionContainer.appendChild(timebox); optionContainer.appendChild(document.createTextNode(' seconds ')); } var logwrapperElem = document.getElementsByClassName("logwrapper")[0]; if( logwrapperElem != null) { var logwrapperElemWidth = options.otherVideoSize.width + 15; logwrapperElem.setAttribute("style", "top: 0px; margin-left: "+Math.floor(logwrapperElemWidth)+"px;"); var controlwrapperElem = document.getElementsByClassName("controlwrapper")[0]; if( controlwrapperElem != null) { controlwrapperElem.setAttribute("style", "margin-left: "+Math.floor(logwrapperElemWidth)+"px;"); } } } } if (entry.el.firstChild && entry.el.firstChild.classList) { tId1 = null; tId2 = null; tId3 = null; tId4 = null; var noButton = document.querySelector("body > div.chatbox3 > div > div > div.logwrapper > div.logbox > div > div > div > div:nth-child(2) > div:nth-child(2)"); if(noButton) { noButton.click(); } if (entry.el.firstChild.classList.contains("logitem")) { var logs = document.querySelectorAll('.logitem'); if (logs.length == 1 && document.querySelector("body > div.chatbox3 > div > div > div.logwrapper > div.logbox > div > div:nth-child(1) > p").innerText.includes('now chatting with a random stranger. Say STAND WITH HONG KONG AGAINST THE CCP!')) { } if (logs.length > previousListLength) { var text = logs[ logs.length - 1 ].innerText; console.log(text); var disconnectOnIdleCheckboxElem = document.getElementById("disconnectOnIdleCheckbox"); var timeboxElem = document.getElementById("timebox"); if(disconnectOnIdleCheckboxElem) { if (disconnectOnIdleCheckboxElem.checked) { clearTimeout(options.disconnectOnIdle.timeoutId); options.disconnectOnIdle.timeoutId = null; } if (disconnectOnIdleCheckboxElem.checked && options.disconnectOnIdle.timeoutId === null) { options.disconnectOnIdle.timeoutId = window.setTimeout(function() { if (disconnectOnIdleCheckboxElem.checked) { console.log("Timeout"); disconnectChat(); } }, (timeboxElem.value * 1000)); } } } if (document.querySelector(".newbtn .disconnectbtn")) { previousListLength = 0; document.querySelector(".sendbtn").setAttribute("sendMsg", "firstMessage"); window.setTimeout(function() { document.querySelector(".newbtn .disconnectbtn") && document.querySelector(".newbtn .disconnectbtn").click(); }, getRndIntBetween(1.2 * 1000, 1.8 * 1000)); } } } }); } catch(e) { if (e !== BreakException) throw e; } }; function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } function disconnectChat() { var stopButton = document.querySelector(".disconnectbtn"); if(stopButton.innerText.indexOf('Stop') != -1) { stopButton.click(); } var reallyButton = document.querySelector(".disconnectbtn"); if(reallyButton.innerText.indexOf('Really?') != -1) { reallyButton.click(); } var newButton = document.querySelector(".disconnectbtn"); if(newButton.innerText.indexOf('New') != -1) { newButton.click(); } } function sendMessage(message) { var btnSubmit = document.querySelector(".sendbtn"); var textarea = document.querySelector(".chatmsg"); if(!btnSubmit.disabled) { textarea.value = message; btnSubmit != null && btnSubmit.click(); } } if(document.querySelector(".sendbtn")) { document.querySelector(".sendbtn").setAttribute("sendMsg", "firstMessage"); } var observer = new MutationObserver(callback); observer.observe(targetNode, observerConfig); var elem1 = document.getElementById("header"); elem1.parentElement.removeChild(elem1); var elem2 = document.getElementById("abovevideosexybtn"); if( elem2 != null) { elem2.parentElement.removeChild(elem2); } var elem3 = document.getElementById("videologo"); if( elem3 != null) { elem3.parentElement.removeChild(elem3); } if(options.leaveSiteMessageDisabled) { window.onbeforeunload = null; } })();