Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Ina'nis Sound Generator
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Don't Ask
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js
- // @author anon
- // @match http*://inanoises.com
- // @grant unsafeWindow
- // ==/UserScript==
- var button;
- var millisecondsOption;
- var secondsOption;
- var minutesOption;
- var hoursOption;
- var currentTimer;
- (
- //any function in block will be auto-executed on page load
- function() {
- OnLoad();
- }
- )();
- function OnLoad() {
- //find the wah button
- button = document.querySelector('img[id="button"]');
- //add keydown event for debugging
- // document.addEventListener('keydown', OnKeydown);
- CreateWindow();
- }
- function CreateWindow() {
- //create the window
- var settingsWindow = document.createElement("div");
- //or find the old one if it already exists
- if (document.querySelector('[id="settings-window"]')) {
- settingsWindow = document.querySelector('[id="settings-window"]');
- }
- //give it an id to make it easier to find
- settingsWindow.id = "settings-window";
- //set up the styling
- var styleString = "position: fixed; bottom: 200px; right: 20px; width: 275px; min-height: fit-content";
- styleString += " border-width: 1px; border-style: solid; border-color:black; border-radius: 5px;"
- styleString += " padding: 10px";
- settingsWindow.style = styleString;
- //set up the text
- var explanation = "Repeat Interval";
- //we need a wrapper to help with child alignment
- var wrapperText = "<div style=\"display:flex; flex-direction:column; width:80%; margin:auto;\">";
- //add this style to each option
- var optionStyle = "<div style=\"display:flex; justify-content:space-between; padding:5px 5px 0px 0px;\">";
- var millisecondsOptionText = optionStyle + '<span>Milliseconds: </span><input type="number" id="milliseconds-input" min="400" max="999" value="0" style="float:right;"></div>';
- var secondsOptionText = optionStyle + '<span>Seconds: </span><input type="number" id="seconds-input" min="0" max="59" value="0" style="float:right;"></div>';
- var minutesOptionText = optionStyle + '<span>Minutes: </span><input type="number" id="minutes-input" min="0" max="59" value="0" style="float:right;"></div>';
- var hoursOptionText = optionStyle + '<span>Hours: </span><input type="number" id="hours-input" min="0" max="23" value="0" style="float:right;"></div>';
- var submitButtonText = '<button id="settings-submit">Submit</button>';
- settingsWindow.innerHTML = [
- explanation + "<br><br>" +
- wrapperText +
- millisecondsOptionText +
- secondsOptionText +
- minutesOptionText +
- hoursOptionText + "</div><br>" +
- submitButtonText
- ];
- //set up the submit button
- var submitButton = settingsWindow.querySelector('button[id="settings-submit"]');
- submitButton.addEventListener("click", SubmitSettings);
- //keep track of the settings
- millisecondsOption = settingsWindow.querySelector('input[id="milliseconds-input"]');
- secondsOption = settingsWindow.querySelector('input[id="seconds-input"]');
- minutesOption = settingsWindow.querySelector('input[id="minutes-input"]');
- hoursOption = settingsWindow.querySelector('input[id="hours-input"]');
- //append window to body
- document.body.appendChild(settingsWindow);
- }
- function SubmitSettings() {
- var millisecondsInt = millisecondsOption.value * 1; //i hate javascript
- var secondsInMs = secondsOption.value * 1000;
- var minutesInMs = minutesOption.value * 60 * 1000;
- var hoursInMs = hoursOption.value * 60 * 60 * 1000;
- var ms = millisecondsInt + secondsInMs + minutesInMs + hoursInMs;
- // console.log("Milliseconds: " + millisecondsInt + "\nSeconds in ms: " + secondsInMs + "\n" +
- // "Minutes in ms: " + minutesInMs + "\nHours in ms: " + hoursInMs + "\n" +
- // "Total: " + ms);
- PlaySoundAfterTime(ms);
- }
- function PlaySoundAfterTime(milliseconds) {
- //no spam
- if (milliseconds < 400) {
- console.error("Repeat interval must be at least 400 ms\nYour input was " + milliseconds + " ms.");
- return;
- }
- // console.log("Playing a wah after " + milliseconds + " ms");
- window.clearInterval(currentTimer);
- currentTimer = window.setInterval(PlaySound, milliseconds);
- }
- function OnKeydown(event) {
- if (event.key == "`") {
- // PlaySound();
- SubmitSettings();
- }
- }
- function PlaySound() {
- // console.log("wah! :D");
- button.click();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement