traQ escaper

人が来たら Esc キーを押して秒で逃げる部 🫣

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         traQ escaper
// @namespace    https://q.trap.jp/
// @version      0.1
// @description  人が来たら Esc キーを押して秒で逃げる部 🫣
// @author       hayatroid
// @match        https://q.trap.jp/*
// @license      CC0-1.0 Universal
// ==/UserScript==

(() => {
    'use strict';

    let $router, $pinia;

    document.addEventListener('keydown', e => {
        // check if Esc pressed
        if (e.key !== 'Escape') return;

        // init $router and $pinia (for the first time)
        if (!$router || !$pinia) {
            const gp = document.querySelector('#app')?.__vue_app__?.config?.globalProperties;
            if (!gp?.$router || !gp?.$pinia) return;
            ({ $router, $pinia } = gp);
        }

        // move to your own DM channel!
        $router.push(`/users/${$pinia.state.value['domain/me'].detail.name}`);
    });
})();