Kick Chatbot

Kick Chat bot for those streamers who provide tokens for chatting/viewing.

  1. // ==UserScript==
  2. // @name Kick Chatbot
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Kick Chat bot for those streamers who provide tokens for chatting/viewing.
  6. // @license MIT
  7. // @author R3D
  8. // @match https://kick.com/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=kick.com
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. window.onload = function() {
  17. startRandomMessageTimer();
  18. };
  19.  
  20. function startRandomMessageTimer() {
  21. // Function to generate a random number between min and max values
  22. function getRandomInt(min, max) {
  23. return Math.floor(Math.random() * (max - min + 1) + min);
  24. }
  25.  
  26. // Function to send a random chat message
  27. function sendRandomMessage() {
  28. // Get the message-input div
  29. var messageInputDiv = document.getElementById('message-input');
  30.  
  31. // Array of possible messages
  32. var messages = [
  33. '<img :data-emote-name="OOOO" class="gc-emote-c" data-emote-id="37229" src="https://files.kick.com/emotes/37229/fullsize">',
  34. '<img :data-emote-name="emojiAngel" class="gc-emote-c" data-emote-id="1730752" src="https://files.kick.com/emotes/1730752/fullsize">',
  35. '<img :data-emote-name="kkHuh" class="gc-emote-c" data-emote-id="39261" src="https://files.kick.com/emotes/39261/fullsize">',
  36. '<img :data-emote-name="catblobDan" class="gc-emote-c" data-emote-id="37242" src="https://files.kick.com/emotes/37242/fullsize">',
  37. '<img :data-emote-name="RareCharm" class="gc-emote-c" data-emote-id="39281" src="https://files.kick.com/emotes/39281/fullsize">',
  38. '<img :data-emote-name="Bwop" class="gc-emote-c" data-emote-id="37217" src="https://files.kick.com/emotes/37217/fullsize">',
  39. '<img :data-emote-name="peepoDJ" class="gc-emote-c" data-emote-id="37245" src="https://files.kick.com/emotes/37245/fullsize">',
  40. '<img :data-emote-name="modCheck" class="gc-emote-c" data-emote-id="37244" src="https://files.kick.com/emotes/37244/fullsize">',
  41. '<img :data-emote-name="ditto" class="gc-emote-c" data-emote-id="39248" src="https://files.kick.com/emotes/39248/fullsize">',
  42. '<img :data-emote-name="duckPlz" class="gc-emote-c" data-emote-id="39262" src="https://files.kick.com/emotes/39262/fullsize">',
  43. '<img :data-emote-name="HYPERCLAPH" class="gc-emote-c" data-emote-id="39268" src="https://files.kick.com/emotes/39268/fullsize">'
  44. ];
  45.  
  46. // Get a random message from the array
  47. var randomMessage = messages[Math.floor(Math.random() * messages.length)];
  48.  
  49. messageInputDiv.click();
  50. // Simulate typing the random message using the typeText function
  51. messageInputDiv.innerHTML = randomMessage;
  52.  
  53. // Wait for 3 seconds before hitting "Enter"
  54. setTimeout(function() {
  55. // Simulate typing a new line
  56. var enterEvent = new KeyboardEvent('keydown', {
  57. key: 'Enter',
  58. keyCode: 13,
  59. code: 'Enter',
  60. which: 13,
  61. bubbles: true,
  62. cancelable: true
  63. });
  64. // Dispatch the enter event
  65. messageInputDiv.dispatchEvent(enterEvent);
  66. console.log('Message sent');
  67. }, 1000);
  68. }
  69.  
  70. function initiateTimer() {
  71. var interval = getRandomInt(10000, 60000);
  72. console.log('Current Interval:', interval);
  73.  
  74. setTimeout(function () {
  75. sendRandomMessage();
  76.  
  77. initiateTimer();
  78. }, interval);
  79. }
  80.  
  81. initiateTimer();
  82. }
  83. })();