// ==UserScript== // @name t.me fix // @description Make t.me image savable and prevent "open with..." dialog on load // @namespace http://github/hafeoz // @match https://t.me/* // @match https://telegram.me/joinchat/* // @grant none // @run-at document-start // // @version 1.0.1 // @author hafeoz // @icon https://telegram.org/img/website_icon.svg // @license 0BSD OR CC0-1.0 OR WTFPL // @homepageURL https://gist.github.com/hafeoz/666c8cd11a3c7be20167a3aeb3e9df7b // @supportURL https://gist.github.com/hafeoz/666c8cd11a3c7be20167a3aeb3e9df7b // // @incompatible chrome unable to prevent "open with..." dialog // @incompatible opera unable to prevent "open with..." dialog // @incompatible safari unable to prevent "open with..." dialog // @incompatible edge unable to prevent "open with..." dialog // @downloadURL none // ==/UserScript== for (const elem of document.getElementsByClassName("tgme_widget_message_photo_wrap")) { const src = /^url\("([^"]+)"\)$/.exec(elem.style.backgroundImage)[1]; elem.style.backgroundImage = ""; const imgelem = document.createElement("img"); elem.appendChild(imgelem); const placeholder = elem.getElementsByClassName("tgme_widget_message_photo")[0]; if (placeholder !== undefined) { imgelem.classList = placeholder.classList; placeholder.remove(); } imgelem.style.width = "100%"; imgelem.src = src; } // https://caniuse.com/mdn-api_element_beforescriptexecute_event window.addEventListener("beforescriptexecute", (e) => { if (e.target.text.includes("protoUrl")) { //e.preventDefault(); e.target.text = e.target.text.replace(/tg:\\\/\\\/resolve[^\"]+/, ""); } });