Omegle Group Chat

Takes random messages in twitch chat, and Cleverbot responds to those messages

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

  1. // ==UserScript==
  2. // @name Omegle Group Chat
  3. // @namespace http://omeglegroup.edu/
  4. // @version 0.3
  5. // @description Takes random messages in twitch chat, and Cleverbot responds to those messages
  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 disconnectHTML = 'div.newchatbtnwrapper';
  16. var chatbox = 'textarea.chatmsg';
  17. var sendButton = 'button.sendbtn';
  18. var startButton = 'textbtn';
  19. var interval;
  20. var idleDelay = 35000;
  21.  
  22. var nicks = [
  23. "Sex Predator",
  24. "Little Susan",
  25. "Pedobear",
  26. "Lil Johnny",
  27. "Eight Inch Midget",
  28. "Eric Cartman",
  29. ];
  30.  
  31. if(window.name == '') {
  32. $(document).ready(function () {
  33. console.log(window.name);
  34. document.getElementById('header').insertAdjacentHTML('afterend', "<div style='background-color:white' id='omegle-settings'></div>");
  35. $('#omegle-settings').append('<h2>Group Chat Options</h2>');
  36. $('#omegle-settings').append("<label for='numPeeps'>Type number of people in conversation</label><br />");
  37. $('#omegle-settings').append("<input id='numPeeps' name='numPeeps' placeholder='Limit is 6. DONT GO ABOVE'>");
  38. $('#omegle-settings').append("<div id='group-buttons'></div>");
  39. $('#group-buttons').append('<form></form>');
  40. $('#group-buttons').append("<input id='start-group' type='submit', value='Start'>");
  41. $('#group-buttons').append("<input id='stop-group' type='submit', value='Stop' disabled>");
  42.  
  43. $('#start-group').on('click', function () {
  44. var num = $('#numPeeps').val();
  45. if (isNumeric(num) && parseInt(num) > 1) {
  46. setupGroup(parseInt(num));
  47. $('#start-group').prop('disabled', true);
  48. $('#stop-group').prop('disabled', false);
  49. }
  50. });
  51. $('#stop-group').on('click', function () {
  52. closeGroup();
  53. $('#start-group').prop('disabled', false);
  54. $('#stop-group').prop('disabled', true);
  55. });
  56.  
  57. });
  58. }
  59.  
  60. function runGroup() {
  61. for(var name in omegleWindows) {
  62. if(omegleWindows[name].connected) {
  63. var messages = omegleWindows[name].document.getElementsByClassName(inputHTML);
  64. for(i=omegleWindows[name].messageIndex; i < messages.length; i++) {
  65. broadcast(name + ": " + messages[i].getElementsByTagName('span')[0].innerHTML);
  66. }
  67. if(omegleWindows[name].messageIndex != messages.length) {
  68. omegleWindows[name].messageIndex = messages.length;
  69. omegleWindows[name].idleCount = Date.now() + idleDelay;
  70. }
  71. if(omegleWindows[name].idleCount < Date.now()) {
  72. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  73. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  74. }
  75. if(omegleWindows[name].document.querySelector('button.disconnectbtn').innerHTML == "New<div class=\"btnkbshortcut\">Esc</div>") {
  76. omegleWindows[name].connected = false;
  77. broadcast(name + " has left the group chat. Looking for a new person");
  78. omegleWindows[name].document.querySelector('button.disconnectbtn').click();
  79. }
  80. } else if(omegleWindows[name].document.getElementById(startButton)) {
  81. omegleWindows[name].document.getElementById(startButton).click();
  82. } else if(omegleWindows[name].document.getElementsByClassName('statuslog').length > 0) {
  83. console.log(omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML);
  84. var status = omegleWindows[name].document.getElementsByClassName('statuslog')[0].innerHTML;
  85. if(status == "You're now chatting with a random stranger. Say hi!") {
  86. omegleWindows[name].connected = true;
  87. omegleWindows[name].idleCount = Date.now() + idleDelay;
  88. omegleWindows[name].document.querySelector(chatbox).value = "Your nick is " + name;
  89. omegleWindows[name].document.querySelector(sendButton).click();
  90. broadcast(name + " has connected to the group chat", name);
  91. }
  92. }
  93. }
  94. }
  95.  
  96. function broadcast(message) {
  97. for(var name in omegleWindows) {
  98. if(omegleWindows[name].connected) {
  99. omegleWindows[name].document.querySelector(chatbox).value = message;
  100. omegleWindows[name].document.querySelector(sendButton).click();
  101. }
  102. }
  103. }
  104.  
  105. function setupGroup(num) {
  106. running = true;
  107. amount = num;
  108. console.log(amount);
  109. for(i=0; i < amount; i++) {
  110. omegleWindows[nicks[i]] = window.open('http://omegle.com/', nicks[i]);
  111. $(omegleWindows[nicks[i]].document).ready(function() {
  112. omegleWindows[nicks[i]].connected = false;
  113. omegleWindows[nicks[i]].messageIndex = 0;
  114. });
  115. }
  116. interval = setInterval(runGroup, 1000);
  117. }
  118.  
  119. function closeGroup() {
  120. running = false;
  121. for(var name in omegleWindows) {
  122. omegleWindows[name].close();
  123. }
  124. clearInterval(interval);
  125. omegleWindows = {};
  126. }
  127.  
  128. function isNumeric(n) {
  129. return !isNaN(parseFloat(n)) && isFinite(n);
  130. }