Greasy Fork

Steam显示英文游戏名

在商店页显示双语游戏名称,双击名称可以快捷搜索。

目前为 2021-09-14 提交的版本。查看 最新版本

// ==UserScript==
// @name            Show_English_Name
// @name:zh-CN      Steam显示英文游戏名
// @namespace       https://blog.chrxw.com
// @supportURL      https://blog.chrxw.com/scripts.html
// @contributionURL https://afdian.net/@chr233
// @version         1.9
// @description     在商店页显示双语游戏名称,双击名称可以快捷搜索。
// @description:zh-CN  在商店页显示双语游戏名称,双击名称可以快捷搜索。
// @author          Chr_
// @include         /https://store\.steampowered\.com\/app\/\d+/
// @license         AGPL-3.0
// @icon            https://blog.chrxw.com/favicon.ico
// @grant           GM_registerMenuCommand
// ==/UserScript==


(() => {
    'use strict';
    let mode = window.localStorage['sen_mode'] ?? 'c(e)';
    let pure = window.localStorage['sen_pure'] ?? '关';
    let appid = (window.location.pathname.match(/\/app\/(\d+)/) ?? [null, null])[1];
    if (appid === null) { return; }
    fetch(`https://store.steampowered.com/api/appdetails?appids=${appid}&l=english`)
        .then(async response => {
            if (response.ok) {
                let json = await response.json();
                let data = json[appid];
                if (data.success !== true) { return; }
                let name_en = data.data.name;
                let t = setInterval(() => {
                    let ele_title = document.getElementById('appHubAppName');
                    if (ele_title != null) {
                        clearInterval(t);
                        let ele_path = document.querySelector('div.blockbg>a:last-child');
                        let name_cur = ele_title.textContent
                        if (name_cur.toLowerCase() != name_en.toLowerCase()) {
                            if (pure === '开') {
                                name_en = pureName(name_en);
                                name_cur = pureName(name_cur);
                            }
                            let name_new = '';
                            if (mode === 'e(c)') {
                                name_new = `${name_en} (${name_cur})`;
                            } else {
                                name_new = `${name_cur} (${name_en})`;
                            }
                            ele_title.textContent = name_new;
                            if (ele_path !== null) {
                                ele_path.textContent = name_new;
                            }
                        }
                        ele_title.title = '双击快捷搜索';
                        ele_title.addEventListener('dblclick', () => {
                            ShowConfirmDialog(`要使用的搜索关键词?`, '', name_cur, name_en)
                                .done(() => {
                                    window.open(`https://store.steampowered.com/search/?term=${name_cur}`);
                                })
                                .fail((stats) => {
                                    if (stats) {
                                        window.open(`https://store.steampowered.com/search/?term=${name_en}`);
                                    }
                                })
                        });
                    }
                }, 500);
            } else {
                console.error(response.status);
            }
        })
        .catch(err => {
            console.error(err);
        });
    GM_registerMenuCommand(`切换显示格式:【${mode === 'c(e)' ? '原名 (英文名)' : '英文名 (原名)'}】`, () => {
        window.localStorage['sen_mode'] = mode === 'c(e)' ? 'e(c)' : 'c(e)';
        window.location.reload();
    })
    GM_registerMenuCommand(`过滤特殊符号:【${pure}】`, () => {
        window.localStorage['sen_pure'] = pure === '开' ? '关' : '开';
        window.location.reload();
    })
    function pureName(str) {
        return str.replace(/[《》™©®]/g, '');
    }
})();