Torn Extra Shortcuts

Add shortcuts to sidebar items-- or anything

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Torn Extra Shortcuts
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Add shortcuts to sidebar items-- or anything
// @author       Deviyl[3722358]
// @license      MIT
// @icon         https://raw.githubusercontent.com/deviyl/media/refs/heads/main/icons/devicon.png
// @match        https://www.torn.com/*
// ==/UserScript==

// Donations are always appreciated if you find this helpful. <3

(function() {
    'use strict';

    const SHORTCUTS = [
        ['[class*="money-positive___"]', 'https://www.torn.com/factions.php?step=your&type=1#/tab=armoury'],
        ['[class*="energy___"]',         'https://www.torn.com/gym.php'],
        ['[class*="nerve___"]',          'https://www.torn.com/page.php?sid=crimes#/'],
        ['[class*="happy___"]',          'https://www.torn.com/item.php#candy-items'],
        ['[class*="life___"]',           'https://www.torn.com/factions.php?step=your&type=1#/tab=armoury'],
    ];

    function wrap(sel, href) {
        const el = document.querySelector(sel);
        if (!el || el.closest('a')) return;
        const a = document.createElement('a');
        a.href = href;
        a.style.display = 'contents';
        el.parentNode.insertBefore(a, el);
        a.appendChild(el);
    }

    const init = () => SHORTCUTS.forEach(([sel, href]) => wrap(sel, href));

    new MutationObserver(init).observe(document.body, { childList: true, subtree: true });
    window.addEventListener('load', init);
    init();
})();