返回首頁 

Greasy Fork is available in English.

Voice input for chat

To turn it on, press F2. When the chat is open, it will work by itself. Use the HTTPS protocol of the page. You can use 2 languages [ru, en] to switch, press F8.

// ==UserScript==// @name         Voice input for chat// @namespace    -// @version      0.1// @description  To turn it on, press F2. When the chat is open, it will work by itself. Use the HTTPS protocol of the page. You can use 2 languages [ru, en] to switch, press F8.// @author       Nudo#9482// @match        *://sploop.io/*// @icon         https://www.google.com/s2/favicons?sz=64&domain=sploop.io// @run-at       document-end// @grant        none// ==/UserScript==(function() {const Chat = document.getElementById("chat")const Keys = {}const Recognizer = new window.webkitSpeechRecognition()Chat.wrapper = document.getElementById("chat-wrapper")Chat.voiceActive = falseChat.voiceLang = "en-En"Chat._voiceLangs = ["en-En", "ru-Ru"]Chat.counter = 0Chat.getNextLang = function() {const length = Chat._voiceLangs.length - 1this.counter += 1if (this.counter > length) {this.counter = 0}return this.counter}Recognizer.active = falseRecognizer.setup = function() {this.interimR###lts = truethis.reset = function() {this.stop()setTimeout(() => {this.start()}, 750)}this.launch = function() {this.lang = Chat.voiceLangthis.active = !this.activethis.start()}this.onr###lt = function() {try {if (!this.active) {return void 0}const r###lt = event.r###lts[event.r###ltIndex]const words = r###lt[0].transcriptif (words.length) {Chat.value = wordsChat.focus()}} catch {this.disable()}}this.disable = function() {if (this.active) {this.active = !Recognizer.activethis.stop()}}this.onend = function() {if (this.active) {this.reset()}}}window.addEventListener("load", () => {Recognizer.setup()})setInterval(() => {try {if (Chat.wrapper.style.display === "block") {if (Chat.voiceActive) {if (!Recognizer.active) {Recognizer.launch()}} else {Recognizer.disable()}} else {Recognizer.disable()}} catch {Recognizer.disable()}}, 100)function onKeyDown(event) {if (event.code === "F2") {Chat.voiceActive = !Chat.voiceActive}if (event.code === "F8") {Chat.voiceLang = Chat._voiceLangs[Chat.getNextLang()]document.title = `Voice language: ${Chat.voiceLang}`setTimeout(() => {document.title = "Sploop.io - Fast paced combat game"}, 2000)}}document.addEventListener("keydown", onKeyDown)})()