Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.2 kB
5
Indexable
// ==UserScript==
// @name         YouTube Dr. Tag
// @namespace    einarsnow
// @version      1.1
// @author       einarsnow
// @description  Tag user in YouTube live chat by click
// @updateURL    https://github.com/einarsnow/youtube-dr-tag/raw/main/youtube-dr-tag.user.js
// @downloadURL  https://github.com/einarsnow/youtube-dr-tag/raw/main/youtube-dr-tag.user.js
// @supportURL   https://github.com/einarsnow/youtube-dr-tag
// @match        https://www.youtube.com/live_chat*
// @grant        GM.addStyle
// ==/UserScript==

GM.addStyle(`
    #author-name {
        cursor: pointer;
    }
    #author-name:hover {
        text-decoration: underline;
    }
`)

const chat = document.querySelector("#chat")
chat.addEventListener("click", function(e) {
    if (e.target.id != "author-name") return

    let input = document.querySelector("#input[contenteditable]")
    input.innerText = `@${e.target.innerText}\xa0${input.innerText}`
    input.dispatchEvent(new Event("input"))

    const range = document.createRange()
    range.setStart(input, 1)
    range.collapse(true)
    const selection = window.getSelection()
    selection.removeAllRanges()
    selection.addRange(range)

    input.focus()
})