Omegle Group Chat

Make a group of strangers in Omegle chat with each other

当前为 2016-09-03 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Omegle Group Chat
  3. // @namespace http://omeglegroup.edu/
  4. // @version 0.521
  5. // @description Make a group of strangers in Omegle chat with each other
  6. // @match http://www.omegle.com
  7. // @require http://code.jquery.com/jquery-latest.js
  8. // @author Streak324
  9. // ==/UserScript==
  10.  
  11. var inputHTML = "strangermsg";
  12. var running = false;
  13. var amount;
  14. var omegleWindows = {};
  15. var chatbox = 'textarea.chatmsg';
  16. var sendButton = 'button.sendbtn';
  17. var startButton = 'textbtn';
  18. var interval;
  19. var kickIdlers = false;
  20. var idleDelay = 60000;
  21. var ownerNick = "OVERLORD";
  22.  
  23. var nicks = [
  24. "Sex Predator",
  25. "Child Molester",
  26. "Pedophile",
  27. "Dumbass",
  28. "Eight Inch Midget",
  29. "Eric Cartman",
  30. ];
  31.  
  32. if(window.name == '') {
  33. $(document).ready(function () {
  34. console.log(window.name);
  35. document.getElementById('header').insertAdjacentHTML('afterend', "<div style='background-color:white' id='omegle-settings'></div>");
  36. $('#omegle-settings').append('<h2>Group Chat Options</h2>');
  37. $('#omegle-settings').append("<label for='idle'>Autokick idlers</label><br />");
  38. $('#omegle-settings').append('<input id="idleBox" type="checkbox" name="idle">');
  39. $('#omegle-settings').append("<input id='idleText' type='text' name='idle' placeholder='In Milliseconds' disabled></br />");
  40. $('#omegle-settings').append("<label for='numPeeps'>Type number of people in conversation</label><br />");
  41. $('#omegle-settings').append("<input id='numPeeps' type='text' name='numPeeps' placeholder='Limit is 6. DONT GO ABOVE'>");
  42. $('#omegle-settings').append("<div id='group-buttons'></div>");
  43. $('#group-buttons').append('<form></form>');
  44. $('#group-buttons').append("<input id='start-group' type='submit', value='Start'>");
  45. $('#group-buttons').append("<input id='stop-group' type='submit', value='Stop' disabled><br /><br /><br />");
  46. $('#omegle-settings').append("<textarea id='group-log' rows='20', cols='150' disabled></textarea><br /><br />");
  47. $('#omegle-settings').append("<label for='addInput'>Send your own messages here</label><br />");
  48. $('#omegle-settings').append("<input id='addInput' name='addInput' type='text' disabled>");
  49.  
  50. $('#idleBox').on('click', function() {
  51. if(document.getElementById('idleBox').checked) {
  52. kickIdlers = true;
  53. document.getElementById('idleText').disabled = false;
  54. } else {
  55. kickIdlers = false;
  56. document.getElementById('idleText').disabled = true;
  57. }
  58. });
  59. $('#start-group').on('click', function () {
  60. var num = $('#numPeeps').val();
  61. var _idleDelay = $('#idleText').val();
  62. if (isNumeric(num) && parseInt(num) > 1 && ($('#idleBox').is(':checked') && isNumeric(_idleDelay) || !$('#idleBox').is(':checked'))) {
  63. idleDelay = _idleDelay;
  64. setupGroup(parseInt(num));
  65. $('#group-log').val('');
  66. $('#start-group').prop('disabled', true);
  67. $('#stop-group').prop('disabled', false);
  68. $('#addInput').prop('disabled', false);
  69. }
  70. });
  71. $('#stop-group').on('click', function () {
  72. closeGroup();
  73. $('#start-group').prop('disabled', false);
  74. $('#stop-group').prop('disabled', true);
  75. $('#addInput').prop('disabled', true);
  76. });
  77.  
  78. $('#addInput').keypress(function(e) {
  79. if(e.which == 13) {
  80. broadcast(ownerNick + ' # ' + $('#addInput').val());
  81. $('#addInput').val('');
  82. }
  83. });
  84. });
  85. }
  86.  
  87. function runGroup() {
  88. for(var name in omegleWindows) {
  89. if(omegleWindows[name].connected) {
  90. var messages = omegleWindows[name].document.getElementsByClassName(inputHTML);
  91. for(i=omegleWindows[name].messageIndex; i < messages.length; i++) {
  92. broadcast(name + ": " + messages[i].getElementsByTagName('span')[0].innerHTML, name);
  93. }
  94. if(omegleWindows[name].messageIndex != messages.length) {
  95. omegleWindows[name].messageIndex = messages.length;
  96. omegleWindows[name].idleCount = Date.now() + idleDelay;
  97. }
  98. if(kickIdlers && omegleWindows[name].idleCount < Date.now()) {
  99. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  100. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  101. }
  102. if(omegleWindows[name].document.querySelector('button.disconnectbtn').innerHTML == "New<div class=\"btnkbshortcut\">Esc</div>") {
  103. omegleWindows[name].connected = false;
  104. broadcast(name + " has left the group chat. Looking for a new person", name);
  105. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  106. }
  107. } else if(omegleWindows[name].document.getElementById(startButton)) {
  108. omegleWindows[name].document.getElementById(startButton).click();
  109. } else if(omegleWindows[name].document.getElementsByClassName('statuslog').length > 0) {
  110. console.log(omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML);
  111. var status = omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML;
  112. if(status == "You're now chatting with a random stranger. Say hi!") {
  113. omegleWindows[name].connected = true;
  114. omegleWindows[name].idleCount = Date.now() + idleDelay;
  115. var welcome = "WELCOME TO OMEGLE GROUP CHAT. Your nick is " + name + ".";
  116. if(kickIdlers) welcome += " You will be kicked if you dont send messages at least every " + idleDelay/1000 + " seconds";
  117. omegleWindows[name].document.querySelector(chatbox).value = welcome;
  118. omegleWindows[name].document.querySelector(sendButton).click();
  119. broadcast(name + " has connected to the group chat", name);
  120. } else if(status == "<div><div>Looking for someone you can chat with...</div></div>") {
  121. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  122. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  123. }
  124. }
  125. }
  126. }
  127.  
  128. function broadcast(message, sender) {
  129. for(var name in omegleWindows) {
  130. if(omegleWindows[name].connected) {
  131. omegleWindows[name].document.querySelector(chatbox).value = "";
  132. if(name == sender)
  133. omegleWindows[name].document.querySelector(chatbox).value += "(YOU) ";
  134.  
  135. omegleWindows[name].document.querySelector(chatbox).value += message;
  136. omegleWindows[name].document.querySelector(sendButton).click();
  137. }
  138. }
  139. document.getElementById('group-log').value += message+'\n';
  140. }
  141.  
  142. function setupGroup(num) {
  143. running = true;
  144. amount = num;
  145. console.log(amount);
  146. for(i=0; i < amount; i++) {
  147. omegleWindows[nicks[i]] = window.open('http://omegle.com/', nicks[i]);
  148. $(omegleWindows[nicks[i]].document).ready(function() {
  149. omegleWindows[nicks[i]].connected = false;
  150. omegleWindows[nicks[i]].messageIndex = 0;
  151. });
  152. }
  153. interval = setInterval(runGroup, 1000);
  154. }
  155.  
  156. function closeGroup() {
  157. running = false;
  158. for(var name in omegleWindows) {
  159. omegleWindows[name].close();
  160. }
  161. clearInterval(interval);
  162. omegleWindows = {};
  163. }
  164.  
  165. function isNumeric(n) {
  166. return !isNaN(parseFloat(n)) && isFinite(n);
  167. }