🏠 Home 

VK: Hide Typing

look @name


Install this script?
// ==UserScript==
// @name           VK: Hide Typing
// @name:ru        ВК: Скрыть набор текста
// @description    look @name
// @description:ru Смотри @name:ru
// @namespace      hidetyping.user.js
// @license        MIT
// @author         askornot
// @version        1.0.0
// @match          https://*.vk.com/*
// @compatible     chrome    Violentmonkey 2.12.7
// @compatible     firefox   Greasemonkey 4.11
// @compatible     firefox   Violentmonkey 2.12.14
// @compatible     firefox   Tampermonkey 4.12.6132
// @homepageURL    https://greasyfork.org/en/scripts/387887-vk-hide-typing
// @supportURL     https://greasyfork.org/en/scripts/387887-vk-hide-typing/feedback
// @noframes
// ==/UserScript==
'use strict';
const PROXY = {
'vk.com': () => {
const _XMLHttpRequest = XMLHttpRequest.prototype;
_XMLHttpRequest.send = new Proxy(_XMLHttpRequest.send, {
apply(target, thisArg, argumentsList) {
const [ query ] = argumentsList;
if (/typing|audiomessage/.test(query)) return null;
return Reflect.apply(target, thisArg, argumentsList);
},
});
},
'm.vk.com': () => {
const _fetch = window.fetch;
window.fetch = (input, init = {}) => {
const _input = input.clone();
return input
.formData()
.then((x) => [...x.values()].includes('typing'))
.then((isTyping) =>
isTyping ? new Promise(() => null) : _fetch(_input, init)
);
};
},
};
const { host } = location;
const script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.textContent = `(${PROXY[host].toString()})()`;
document.head.append(script);