afeeee / hotkeys

// ==UserScript==
// @name hotkeys
// @namespace http://tampermonkey.net/
// @version 1.4
// @license MIT
// @description VK keyboard shortcuts
// @author kazaev (vk.com/kazaev)
// @match https://*.vk.com/*
// @icon https://kazaev.ru.com/clover_150.png
// @updateURL https://openuserjs.org/meta/afeeee/hotkeys.meta.js
// @downloadURL https://openuserjs.org/install/afeeee/hotkeys.user.js
// @copyright 2020, afeeee (https://openuserjs.org/users/afeeee)
// ==/UserScript==

// изменение ссылки логотипа...
// document.getElementsByClassName("TopHomeLink")[0].setAttribute("href", "kugss");

// ctrl + e - в диалоге - ставит пробел после каждой буквы
// ctrl + r - в диалоге - ставит <br> после каждой буквы
// ctrl + g - в диалоге - ставит текст из ввода в строку поиска гугла/яндекса
// ctrl + b - в диалоге - разворачивает текст
// ctrl + y - в диалоге - меняет регистр чётных (низкий) и нечётных (высокий) букв
// ctrl + u - в диалоге - фиксит ошибки html кодов ($ на &), шрифты: textgenerator.ru

console.log("hotkeys start");

document.onkeydown = function (e) {
  console.log(e);
  if (e.altKey) {
  console.log("alt click");
    switch (e.keyCode) {
      case 69: // key E
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML.split("").join(" ");
        return false;
      case 71: // key G
        var text = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML.split(" ").join("+");
        var links = "https://google.com/search?q=" + text + "\nhttps://yandex.ru/search/?text=" + text;
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = links;
        return false;
      case 82: // key R
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML.split("").join("<br>");
        return false;
      case 83: // key S
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML.split("&#8300;").join("<br>");
        return false;
      case 66: // key B
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML.split("").reverse().join("");
        return false;
      case 89: // key Y
        var textOne = document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML;
        var textTwo = textOne.toLowerCase().split("");
        var out = [];
        for (let num = 0; num < textTwo.length; num++) {
          if (num % 2) {
            out.push(textTwo[num].toLowerCase());
          }
          else {
            out.push(textTwo[num].toUpperCase());
          }
        }
        document.getElementsByClassName("im_editable im-chat-input--text _im_text")[0].innerHTML = out.join("");
        return false;
/*
      case 85: // key U
        var stacks = document.getElementsByClassName("im-mess-stack");
        var stack = stacks[stacks.length - 1];
        var ms = stack.getElementsByClassName("im-mess");
        var m = ms[ms.length - 1];
        m.click();
        var edit = m.getElementsByClassName("im-mess--edit")[0];
        edit.click();
        var field = document.getElementsByClassName("im_editable")[0];
        field.innerText = field.innerText.split("$").join("&#38;");
        var els = document.getElementsByClassName("im-send-btn");
        els[els.length - 1].click();
        return false;
*/
    }
  }
}