Skip to content

Instantly share code, notes, and snippets.

@BuonOmo
Last active April 10, 2020 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BuonOmo/64e421f6acbd6005a261b964f6778ca1 to your computer and use it in GitHub Desktop.
Save BuonOmo/64e421f6acbd6005a261b964f6778ca1 to your computer and use it in GitHub Desktop.
Hangout push to talk.
// ==UserScript==
// @name talkie
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Safe talking on hangout
// @author You
// @match https://hangouts.google.com/u/*/call/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const activateLabel = '[aria-label="Activer le micro"]'
const deactivateLabel = '[aria-label="Désactiver le micro"]'
const keyCode = "Space"
window.button = null
window.isMicActive = null
window.keysAllowed = true
function clickButton (str) {
console.log(str)
isMicActive = !isMicActive
button.click()
console.log(`end ${str}`)
}
function initialize(e) {
console.log('initialize')
// already initialized or not the correct key.
if (button || e.code !== keyCode) return
if ((button = document.querySelector(activateLabel)) !== null) {
isMicActive = false
} else if ((button = document.querySelector(deactivateLabel)) !== null) {
isMicActive = true
clickButton('init')
} else {
console.error("Impossible to find button")
document.removeEventListener('keyup', initialize)
return
}
document.removeEventListener('keyup', initialize)
document.addEventListener('keydown', (e) => {
if (e.code === keyCode && !isMicActive && keysAllowed) {
e.preventDefault()
e.stopPropagation()
clickButton('keydown')
}
}, null)
document.addEventListener('keyup', (e) => {
if (e.code === keyCode && isMicActive && keysAllowed) {
e.preventDefault()
e.stopPropagation()
keysAllowed = false
setTimeout(() => {
clickButton('keyup')
keysAllowed = true
}, 500)
}
}, null)
}
document.addEventListener('keyup', initialize);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment