Make a group of strangers in Omegle chat with each other
当前为
// ==UserScript==
// @name Omegle Group Chat
// @namespace http://omeglegroup.edu/
// @version 0.58
// @description Make a group of strangers in Omegle chat with each other
// @match http://www.omegle.com
// @require http://code.jquery.com/jquery-latest.js
// @author Streak324
// ==/UserScript==
var inputHTML = "strangermsg";
var running = false;
var amount;
var omegleWindows = {};
var chatbox = 'textarea.chatmsg';
var sendButton = 'button.sendbtn';
var startButton = 'textbtn';
var interval;
var kickIdlers = false;
var idleDelay = 60000;
var ownerNick = "OVERLORD";
var nicks = [
"Sex Predator",
"Child Molester",
"Pedophile",
"Dumbass",
"Eight Inch Midget",
"Eric Cartman",
];
if(window.name == '') {
$(document).ready(function () {
console.log(window.name);
document.getElementById('header').insertAdjacentHTML('afterend', "<div style='background-color:white' id='omegle-settings'></div>");
$('#omegle-settings').append('<h2>Group Chat Options</h2>');
$('#omegle-settings').append("<label for='idle'>Autokick idlers</label><br />");
$('#omegle-settings').append('<input id="idleBox" type="checkbox" name="idle">');
$('#omegle-settings').append("<input id='idleText' type='text' name='idle' placeholder='In Milliseconds' disabled></br />");
$('#omegle-settings').append("<label for='numPeeps'>Type number of people in conversation</label><br />");
$('#omegle-settings').append("<input id='numPeeps' type='text' name='numPeeps' placeholder='Limit is 6. DONT GO ABOVE'>");
$('#omegle-settings').append("<div id='group-buttons'></div>");
$('#group-buttons').append('<form></form>');
$('#group-buttons').append("<input id='start-group' type='submit', value='Start'>");
$('#group-buttons').append("<input id='stop-group' type='submit', value='Stop' disabled><br /><br /><br />");
$('#omegle-settings').append("<textarea id='group-log' rows='20', cols='150' disabled></textarea><br /><br />");
$('#omegle-settings').append("<label for='addInput'>Send your own messages here</label><br />");
$('#omegle-settings').append("<input id='addInput' name='addInput' type='text' disabled>");
$('#idleBox').on('click', function() {
if(document.getElementById('idleBox').checked) {
kickIdlers = true;
document.getElementById('idleText').disabled = false;
} else {
kickIdlers = false;
document.getElementById('idleText').disabled = true;
}
});
$('#start-group').on('click', function () {
var num = $('#numPeeps').val();
var _idleDelay = $('#idleText').val();
if (isNumeric(num) && parseInt(num) > 1 && ($('#idleBox').is(':checked') && isNumeric(_idleDelay) || !$('#idleBox').is(':checked'))) {
idleDelay = _idleDelay;
setupGroup(parseInt(num));
$('#group-log').val('');
$('#start-group').prop('disabled', true);
$('#stop-group').prop('disabled', false);
$('#addInput').prop('disabled', false);
}
});
$('#stop-group').on('click', function () {
closeGroup();
$('#start-group').prop('disabled', false);
$('#stop-group').prop('disabled', true);
$('#addInput').prop('disabled', true);
});
$('#addInput').keypress(function(e) {
if(e.which == 13) {
broadcast(ownerNick + ': ' + $('#addInput').val());
$('#addInput').val('');
}
});
});
}
function runGroup() {
for(var name in omegleWindows) {
if(omegleWindows[name].connected) {
var messages = omegleWindows[name].document.getElementsByClassName(inputHTML);
for(i=omegleWindows[name].messageIndex; i < messages.length; i++) {
broadcast(name + ": " + messages[i].getElementsByTagName('span')[0].innerHTML, name);
}
if(omegleWindows[name].messageIndex != messages.length) {
omegleWindows[name].messageIndex = messages.length;
omegleWindows[name].idleCount = Date.now() + idleDelay;
}
if(kickIdlers && omegleWindows[name].idleCount < Date.now()) {
omegleWindows[name].document.querySelector('button.disconnectbtn').click();
omegleWindows[name].document.querySelector('button.disconnectbtn').click();
}
if(omegleWindows[name].document.querySelector('button.disconnectbtn').innerHTML == "New<div class=\"btnkbshortcut\">Esc</div>") {
omegleWindows[name].connected = false;
broadcast(name + " has left the group chat. Looking for a new person", name);
omegleWindows[name].document.querySelector('button.disconnectbtn').click();
}
} else if(omegleWindows[name].document.getElementById(startButton)) {
omegleWindows[name].document.getElementById(startButton).click();
} else if(omegleWindows[name].document.getElementsByClassName('statuslog').length > 0) {
console.log(omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML);
var status = omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML;
if(status == "You're now chatting with a random stranger. Say hi!") {
omegleWindows[name].connected = true;
omegleWindows[name].idleCount = Date.now() + idleDelay;
var welcome = "WELCOME TO OMEGLE GROUP CHAT. Your nick is " + name + ".";
if(kickIdlers) welcome += " You will be kicked if you dont send messages at least every " + idleDelay/1000 + " seconds";
omegleWindows[name].document.querySelector(chatbox).value = welcome;
omegleWindows[name].document.querySelector(sendButton).click();
broadcast(name + " has connected to the group chat", name);
} else if(status == "<div><div>Looking for someone you can chat with...</div></div>") {
omegleWindows[name].document.querySelector('button.disconnectbtn').click();
omegleWindows[name].document.querySelector('button.disconnectbtn').click();
}
}
}
}
function broadcast(message, sender) {
for(var name in omegleWindows) {
if(omegleWindows[name].connected) {
omegleWindows[name].document.querySelector(chatbox).value = "";
if(name == sender)
omegleWindows[name].document.querySelector(chatbox).value += "(YOU) ";
omegleWindows[name].document.querySelector(chatbox).value += message;
omegleWindows[name].document.querySelector(sendButton).click();
}
}
document.getElementById('group-log').value += message+'\n';
$('#group-log').scrollTop($('#group-log')[0].scrollHeight);
}
function setupGroup(num) {
running = true;
amount = num;
console.log(amount);
for(i=0; i < amount; i++) {
omegleWindows[nicks[i]] = window.open('http://omegle.com/', nicks[i]);
$(omegleWindows[nicks[i]].document).ready(function() {
omegleWindows[nicks[i]].connected = false;
omegleWindows[nicks[i]].messageIndex = 0;
});
}
interval = setInterval(runGroup, 1000);
}
function closeGroup() {
broadcast('DISCONNECTING THE GROUP CHAT. GOODBYE LOSERS');
running = false;
for(var name in omegleWindows) {
omegleWindows[name].close();
}
clearInterval(interval);
omegleWindows = {};
}
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}