Chrome Stats Redirector

Adds a menu to jump to chrome-stats.com for the current extension

2025/11/30のページです。最新版はこちら

スクリプトをインストールするには、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         Chrome Stats Redirector
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Adds a menu to jump to chrome-stats.com for the current extension
// @author       aspen138
// @match        https://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_openInTab
// @license      MIT
// @icon         data:image/png;base64,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
// ==/UserScript==

(function() {
    'use strict';

    // Extract extension ID from a URL or string
    function extractExtensionId(input) {
        if (!input) return null;

        input = input.trim();

        // If it's already a 32-char lowercase string, return it
        if (/^[a-z]{32}$/.test(input)) {
            return input;
        }

        // Try to extract from URL or any string containing the ID
        const match = input.match(/[a-z]{32}/);
        return match ? match[0] : null;
    }

    // Try to get extension ID from referrer (Chrome Web Store iframe context)
    function getExtensionIdFromContext() {
        if (document.referrer && document.referrer.includes('chromewebstore.google.com')) {
            return extractExtensionId(document.referrer);
        }
        return null;
    }

    // Open chrome-stats page
    function openChromeStats(extensionId) {
        const statsUrl = 'https://chrome-stats.com/d/' + extensionId;
        console.log('[ChromeStats] Opening:', statsUrl);
        GM_openInTab(statsUrl, { active: true });
    }

    // Prompt user for extension ID
    function promptForExtensionId() {
        // Try to get from context first
        const contextId = getExtensionIdFromContext();
        const defaultValue = contextId || '';

        const input = prompt(
            'Enter Chrome extension ID or Chrome Web Store URL:\n\n' +
            'Examples:\n' +
            '• gcalenpjmijncebpfijmoaglllgpjagf\n' +
            '• https://chromewebstore.google.com/detail/xxx/gcalenpjmijncebpfijmoaglllgpjagf',
            defaultValue
        );

        if (!input) {
            return; // User cancelled
        }

        const extensionId = extractExtensionId(input);

        if (extensionId) {
            openChromeStats(extensionId);
        } else {
            alert(
                'Invalid input!\n\n' +
                'Could not find a valid extension ID.\n' +
                'Extension IDs are 32 lowercase letters (a-z).'
            );
        }
    }

    // Register menu command - always available
    GM_registerMenuCommand('📊 Open Chrome Stats', promptForExtensionId);

})();