Omegle Group Chat

Make a group of strangers in Omegle chat with each other

目前为 2016-09-04 提交的版本。查看 最新版本

// ==UserScript==
// @name       Omegle Group Chat
// @namespace  http://omeglegroup.edu/
// @version    1.0
// @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 logConnection = false;

var nicks = [
    "Stranger 1",
    "Stranger 2",
    "Stranger 3",
    "Stranger 4",
    "Stranger 5",
    "Stranger 6",
];

if(window.name == '') {
    $(document).ready(function () {
        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("<label for='logConnection'>Log connects and disconnects</label><br />");
        $('#omegle-settings').append('<input id="logConnection" type="checkbox" name="logConnection">');
        $('#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>");

        $('#logConnection').on('click', function() {
            if(document.getElementById('logConnection').checked) {
                logConnection = true;
            } else {
                logConnection = false;
            }
        });
        $('#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) > 0 && ($('#idleBox').is(':checked') && isNumeric(_idleDelay) || !$('#idleBox').is(':checked'))) {
                idleDelay = parseInt(_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++) {
                var message = messages[i].getElementsByTagName('span')[0].innerHTML;
                if(message.substring(0, 6) == '!nick ') {
                    var newNick = message.substring(6, (message.length < 30) ? message.length : 30);
                    if(newNick != name) {
                        omegleWindows[newNick] = omegleWindows[name];
                        delete omegleWindows[name];
                        message = name + " has changed his name to " + newNick;
                        broadcast(message, newNick);
                    }
                } else {
                    broadcast(name + ": " + message, name);
                }
            }
            if(omegleWindows[name].messageIndex != messages.length) { //check if idling
                omegleWindows[name].messageIndex = messages.length;
                omegleWindows[name].idleCount = Date.now() + idleDelay;
            }
            if(kickIdlers && omegleWindows[name].idleCount < Date.now()) { //kick idlers
                console.log("Kicking " + name);
                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>") { //find new people
                omegleWindows[name].connected = false;
                if(logConnection)
                    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)) { //starting
            omegleWindows[name].document.getElementById(startButton).click();
        } else if(omegleWindows[name].document.getElementsByClassName('statuslog').length > 0) {
            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 + ". Type '!nick newname' to change your nickname";
                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();
                if(logConnection)
                    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);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址