Advertisement
Guest User

Ina Noises Helper Script

a guest
Dec 20th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.64 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Ina'nis Sound Generator
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0
  5. // @description Don't Ask
  6. // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js
  7. // @author anon
  8. // @match http*://inanoises.com
  9. // @grant unsafeWindow
  10. // ==/UserScript==
  11.  
  12. var button;
  13. var millisecondsOption;
  14. var secondsOption;
  15. var minutesOption;
  16. var hoursOption;
  17. var currentTimer;
  18.  
  19. (
  20. //any function in block will be auto-executed on page load
  21. function() {
  22. OnLoad();
  23. }
  24. )();
  25.  
  26. function OnLoad() {
  27. //find the wah button
  28. button = document.querySelector('img[id="button"]');
  29.  
  30. //add keydown event for debugging
  31. // document.addEventListener('keydown', OnKeydown);
  32.  
  33. CreateWindow();
  34. }
  35.  
  36. function CreateWindow() {
  37. //create the window
  38. var settingsWindow = document.createElement("div");
  39.  
  40. //or find the old one if it already exists
  41. if (document.querySelector('[id="settings-window"]')) {
  42. settingsWindow = document.querySelector('[id="settings-window"]');
  43. }
  44.  
  45. //give it an id to make it easier to find
  46. settingsWindow.id = "settings-window";
  47.  
  48. //set up the styling
  49. var styleString = "position: fixed; bottom: 200px; right: 20px; width: 275px; min-height: fit-content";
  50. styleString += " border-width: 1px; border-style: solid; border-color:black; border-radius: 5px;"
  51. styleString += " padding: 10px";
  52. settingsWindow.style = styleString;
  53.  
  54. //set up the text
  55. var explanation = "Repeat Interval";
  56.  
  57. //we need a wrapper to help with child alignment
  58. var wrapperText = "<div style=\"display:flex; flex-direction:column; width:80%; margin:auto;\">";
  59.  
  60. //add this style to each option
  61. var optionStyle = "<div style=\"display:flex; justify-content:space-between; padding:5px 5px 0px 0px;\">";
  62.  
  63. var millisecondsOptionText = optionStyle + '<span>Milliseconds: </span><input type="number" id="milliseconds-input" min="400" max="999" value="0" style="float:right;"></div>';
  64. var secondsOptionText = optionStyle + '<span>Seconds: </span><input type="number" id="seconds-input" min="0" max="59" value="0" style="float:right;"></div>';
  65. var minutesOptionText = optionStyle + '<span>Minutes: </span><input type="number" id="minutes-input" min="0" max="59" value="0" style="float:right;"></div>';
  66. var hoursOptionText = optionStyle + '<span>Hours: </span><input type="number" id="hours-input" min="0" max="23" value="0" style="float:right;"></div>';
  67.  
  68. var submitButtonText = '<button id="settings-submit">Submit</button>';
  69.  
  70. settingsWindow.innerHTML = [
  71. explanation + "<br><br>" +
  72. wrapperText +
  73. millisecondsOptionText +
  74. secondsOptionText +
  75. minutesOptionText +
  76. hoursOptionText + "</div><br>" +
  77. submitButtonText
  78. ];
  79.  
  80. //set up the submit button
  81. var submitButton = settingsWindow.querySelector('button[id="settings-submit"]');
  82. submitButton.addEventListener("click", SubmitSettings);
  83.  
  84. //keep track of the settings
  85. millisecondsOption = settingsWindow.querySelector('input[id="milliseconds-input"]');
  86. secondsOption = settingsWindow.querySelector('input[id="seconds-input"]');
  87. minutesOption = settingsWindow.querySelector('input[id="minutes-input"]');
  88. hoursOption = settingsWindow.querySelector('input[id="hours-input"]');
  89.  
  90. //append window to body
  91. document.body.appendChild(settingsWindow);
  92. }
  93.  
  94. function SubmitSettings() {
  95. var millisecondsInt = millisecondsOption.value * 1; //i hate javascript
  96. var secondsInMs = secondsOption.value * 1000;
  97. var minutesInMs = minutesOption.value * 60 * 1000;
  98. var hoursInMs = hoursOption.value * 60 * 60 * 1000;
  99.  
  100. var ms = millisecondsInt + secondsInMs + minutesInMs + hoursInMs;
  101.  
  102. // console.log("Milliseconds: " + millisecondsInt + "\nSeconds in ms: " + secondsInMs + "\n" +
  103. // "Minutes in ms: " + minutesInMs + "\nHours in ms: " + hoursInMs + "\n" +
  104. // "Total: " + ms);
  105.  
  106. PlaySoundAfterTime(ms);
  107. }
  108.  
  109. function PlaySoundAfterTime(milliseconds) {
  110. //no spam
  111. if (milliseconds < 400) {
  112. console.error("Repeat interval must be at least 400 ms\nYour input was " + milliseconds + " ms.");
  113. return;
  114. }
  115.  
  116. // console.log("Playing a wah after " + milliseconds + " ms");
  117.  
  118. window.clearInterval(currentTimer);
  119. currentTimer = window.setInterval(PlaySound, milliseconds);
  120. }
  121.  
  122. function OnKeydown(event) {
  123. if (event.key == "`") {
  124. // PlaySound();
  125. SubmitSettings();
  126. }
  127. }
  128.  
  129. function PlaySound() {
  130. // console.log("wah! :D");
  131.  
  132. button.click();
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement