Greasy Fork is available in English.
Check if Steam game supports Chinese and mark the link with 🀄 if it does
- // ==UserScript==
- // @name Steam Link Language Checker
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Check if Steam game supports Chinese and mark the link with 🀄 if it does
- // @author 冰雪聪明琪露诺
- // @match https://store.steampowered.com/wishlist*
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Function to get appid from Steam URL
- function getAppId(url) {
- const match = url.match(/\/app\/(\d+)/);
- return match ? match[1] : null;
- }
- // Function to check if the game supports Chinese
- async function checkChines###pport(appId) {
- const apiUrl = `https://store.steampowered.com/api/appdetails/?appids=${appId}&l=schinese`;
- try {
- const response = await fetch(apiUrl);
- const data = await response.json();
- const appData = data[appId].data;
- if (appData && appData.supported_languages) {
- const supportedLanguages = appData.supported_languages;
- if (supportedLanguages.includes('简体中文') || supportedLanguages.includes('繁体中文')) {
- return true;
- }
- }
- } catch (error) {
- console.error('Error fetching data:', error);
- }
- return false;
- }
- // Function to process all Steam links on the page
- async function processLinks() {
- const links = document.querySelectorAll('a[href*="store.steampowered.com/app/"]');
- const processedAppIds = new Set();
- for (const link of links) {
- const appId = getAppId(link.href);
- if (appId && !processedAppIds.has(appId)) {
- processedAppIds.add(appId);
- const supportsChinese = await checkChines###pport(appId);
- if (supportsChinese) {
- link.insertAdjacentHTML('beforebegin', '🀄 ');
- }
- await new Promise(resolve => setTimeout(resolve, 1000)); // Wait 1 second between API requests
- }
- }
- }
- // Store processed links to avoid duplicate checks
- const processedLinks = new WeakSet();
- // Function to process newly added links
- async function processNewLinks() {
- const links = document.querySelectorAll('a[href*="store.steampowered.com/app/"]');
- for (const link of links) {
- if (!processedLinks.has(link)) {
- processedLinks.add(link);
- const appId = getAppId(link.href);
- if (appId) {
- const supportsChinese = await checkChines###pport(appId);
- if (supportsChinese) {
- link.insertAdjacentHTML('beforebegin', '🀄 ');
- }
- await new Promise(resolve => setTimeout(resolve, 1000)); // Wait 1 second between API requests
- }
- }
- }
- }
- // Process links when the page is loaded
- window.addEventListener('load', processNewLinks);
- // Observer to watch for new links added to the page
- const observer = new MutationObserver(processNewLinks);
- observer.observe(document.body, { childList: true, subtree: true });
- })();