GameFinder Library

Site list and localisation data for GameFinder

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greasyfork.org/scripts/588817/1886768/GameFinder%20Library.js을(를) 사용하여 포함하는 라이브러리입니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         GameFinder Library
// @namespace    Name1or2-GameFinder-Library
// @version      2.0
// @description  Data and localisation for GameFinder
// @author       Name1or2
// @grant        GM.getValue
// ==/UserScript==

const STAR = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none"><path fill="currentColor" d="M7 0L4.88269 4.68067L0 5.348L3.5688 8.918L2.67216 14L7 11.536L11.3278 14L10.4268 8.918L14 5.348L9.11731 4.68067L7 0Z"/></svg>`;
const GRID = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none"><rect x="1" y="1" width="6" height="6" rx="1" fill="currentColor"/><rect x="9" y="1" width="6" height="6" rx="1" fill="currentColor"/><rect x="1" y="9" width="6" height="6" rx="1" fill="currentColor"/><rect x="9" y="9" width="6" height="6" rx="1" fill="currentColor"/></svg>`;
const SEARCH = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" fill="none"><path fill="currentColor" d="M13.8296 12.0786C14.8347 10.6321 15.2623 8.86133 15.0284 7.11496C14.7945 5.36859 13.9159 3.77313 12.5656 2.64269C11.2153 1.51224 9.49114 0.928708 7.73254 1.00696C5.97394 1.08522 4.30831 1.8196 3.06357 3.06552C1.81882 4.31144 1.08514 5.97864 1.00696 7.7389C0.928776 9.49916 1.51176 11.2249 2.64114 12.5765C3.77052 13.9281 5.36446 14.8075 7.10919 15.0417C8.85391 15.2758 10.623 14.8477 12.0682 13.8417L15.2185 17L15.3997 16.8187L16.8188 15.3982L17 15.2168L13.8296 12.0786ZM8.04222 12.5824C7.14643 12.5824 6.27075 12.3165 5.52593 11.8183C4.7811 11.3202 4.20058 10.6122 3.85777 9.78376C3.51497 8.95538 3.42528 8.04384 3.60004 7.16443C3.7748 6.28502 4.20616 5.47723 4.83958 4.84321C5.47301 4.20919 6.28004 3.77742 7.15862 3.60249C8.0372 3.42757 8.94787 3.51734 9.77548 3.86047C10.6031 4.2036 11.3104 4.78467 11.8081 5.5302C12.3058 6.27573 12.5714 7.15223 12.5714 8.04887C12.5714 9.25123 12.0943 10.4043 11.2449 11.2545C10.3955 12.1047 9.24344 12.5824 8.04222 12.5824V12.5824Z"/></svg>`;
const EDIT_ICON = `<img src="https://community.fastly.steamstatic.com/public/images//sharedfiles/icons/icon_edit.png" alt="Edit" style="width:16px;height:16px;vertical-align:middle;">`;

const LOCALE = {
    'en': {
        hub: 'Hub',
        hubTitle: 'Open search hub',
        favTitle: 'Open all favourite sites',
        editTitle: 'Click to edit name',
        copyTitle: 'Click to copy',
        resetTitle: 'Click to reset name to original',
        inputPlaceholder: 'Enter game name...',
        copied: 'Copied!',
        resetName: 'Reset to original name',
        clickCopy: 'Click to copy',
        labelId: 'ID:',
        labelDev: 'Dev:',
        labelBuild: 'Build:',
        searchPlaceholder: 'Search sites...',
        favFolder: '⭐ Favourites',
        noFav: 'No favourites yet. Click the star on any site to add it.',
        modalTitle: 'Open All Favourites?',
        modalMsg: 'You\'re about to open <strong>0</strong> tabs.',
        btnCancel: 'Cancel',
        btnOpenAll: 'Open All'
    },
    'zh-CN': {
        hub: '搜索',
        hubTitle: '打开搜索中心',
        favTitle: '打开所有收藏网站',
        editTitle: '点击编辑名称',
        copyTitle: '点击复制',
        resetTitle: '点击恢复原始名称',
        inputPlaceholder: '输入游戏名称...',
        copied: '已复制!',
        resetName: '已恢复原始名称',
        clickCopy: '点击复制',
        labelId: 'ID:',
        labelDev: '开发商:',
        labelBuild: '版本:',
        searchPlaceholder: '搜索网站...',
        favFolder: '⭐ 收藏夹',
        noFav: '暂无收藏。点击网站旁的星标添加收藏。',
        modalTitle: '打开所有收藏?',
        modalMsg: '即将打开 <strong>0</strong> 个标签页。',
        btnCancel: '取消',
        btnOpenAll: '全部打开'
    }
};

const CATEGORY_IDS = ['direct', 'linux', 'ctrlf', 'torrents'];

const CATEGORY_NAMES = {
    direct:  { en: '📁 Direct Downloads',    'zh-CN': '📁 直接下载' },
    linux:   { en: '🐧 Linux',               'zh-CN': '🐧 Linux' },
    ctrlf:   { en: '🔍 Ctrl+F',              'zh-CN': '🔍 手动搜索' },
    torrents:{ en: '🧲 Torrents',             'zh-CN': '🧲 种子下载' }
};

const SITES_DATA = {
    direct: [
        { name: 'FitGirl Repacks',          urlPattern: 'https://fitgirl-repacks.site/?s={query}' },
        { name: 'GOG Games',                urlPattern: 'https://gog-games.to/?search={query}' },
        { name: 'STEAMRIP',                 urlPattern: 'https://steamrip.com/?s={query}' },
        { name: 'SteamUnderground',         urlPattern: 'https://steamunderground.net/?s={query}' },
        { name: 'AbandonwareGames',         urlPattern: 'https://abandonwaregames.net/search.php?q={query}' },
        { name: 'AstralGames',              urlPattern: 'https://astral-games.xyz/search?q={query}' },
        { name: 'CG-GamesPC',               urlPattern: 'https://www.cg-gamespc.com/games?game={query}' },
        { name: '🇪🇸 ElEnemigos',            urlPattern: 'https://elenemigos.com/?g_name={query}' },
        { name: 'games 4 u',                urlPattern: 'https://g4u.to/en/search/{query}' },
        { name: 'Games4U',                  urlPattern: 'https://games4u.org/?s={query}' },
        { name: 'Gamedie',                  urlPattern: 'https://gamdie.com/?s={query}' },
        { name: 'scene.cat',                urlPattern: 'https://scene.cat/?q={query}' },
        { name: 'GamePCFull',               urlPattern: 'https://gamepcfull.com/?s={query}' },
        { name: 'GamesPack',                urlPattern: 'https://gamespack.net/?s={query}' },
        { name: 'GetFreeGames',             urlPattern: 'https://getfreegames.net/?s={query}' },
        { name: '🇩🇪 GLOAD',                 urlPattern: 'https://gload.to/?s={query}' },
        { name: 'MyAbandonware',            urlPattern: 'https://www.myabandonware.com/search/q/{query}' },
        { name: 'OldGamesDownload',         urlPattern: 'https://oldgamesdownload.com/?s={query}' },
        { name: '🇷🇺 Old-Games.RU',          urlPattern: 'https://www.old-games.ru/catalog/?gamename={query}' },
        { name: 'OvaGames',                 urlPattern: 'https://www.ovagames.com/?s={query}' },
        { name: '🇪🇸 PiviGames',             urlPattern: 'https://pivigames.blog/?s={query}' },
        { name: 'ReloadedSteam',            urlPattern: 'https://reloadedsteam.com/?s={query}' },
        { name: 'Repack-Games',             urlPattern: 'https://repack-games.com/?s={query}' },
        { name: '⭕ RepackLab',              urlPattern: 'https://repacklab.com/?s={query}' },
        { name: 'Rexa Games',               urlPattern: 'https://rexagames.com/search/?q={query}' },
        { name: 'Steam-Cracked',            urlPattern: 'https://steam-cracked.com/?s={query}' },
        { name: 'SteamGG',                  urlPattern: 'https://steamgg.net/?s={query}' },
        { name: 'SteamOra',                 urlPattern: 'https://steamora.net/?s={query}' },
        { name: 'The Collection Chamber',   urlPattern: 'https://collectionchamber.blogspot.com/search?q={query}' },
        { name: 'The Dark Games',           urlPattern: 'https://the-dark-games.com/?s={query}' },
        { name: '🇮🇩 Triah Games',           urlPattern: 'https://triahgames.com/search/?q={query}' },
        { name: 'UnionCrax',                urlPattern: 'https://union-crax.xyz/search?q={query}' },
        { name: 'WorldofPCGames',           urlPattern: 'https://worldofpcgames.com/?s={query}' },
        { name: 'Stevv Game',               urlPattern: 'https://www.stevvgame.com/search?q={query}' }
    ],
    linux: [
        { name: 'freelinuxpcgames',         urlPattern: 'https://freelinuxpcgames.com/?s={query}' }
    ],
    ctrlf: [
        { name: 'ElAmigos',                 urlPattern: 'https://elamigos.site/' },
        { name: 'Game Bounty',              urlPattern: 'https://gamebounty.world/' },
        { name: 'Gnarly Repacks',           urlPattern: 'https://rentry.org/gnarly_repacks' },
        { name: 'M4CKD0GE Repacks',         urlPattern: 'https://m4ckd0ge-repacks.site/all-repacks.html' }
    ],
    torrents: [
        { name: 'FitGirl Repacks',          urlPattern: 'https://fitgirl-repacks.site/?s={query}' },
        { name: '🇷🇺 Appnetica',             urlPattern: 'https://appnetica.com/search?term={query}' },
        { name: '🇷🇺 ByXatab',               urlPattern: 'https://byxatab.com/search/{query}' },
        { name: 'DODI Repacks',             urlPattern: 'https://dodi-repacks.site/?s={query}' },
        { name: 'DODI Repacks-Alt',         urlPattern: 'https://dodi-repacks.download/?s={query}' },
        { name: 'KaosKrew',                 urlPattern: 'https://kaoskrew.org/search.php?keywords={query}' },
        { name: '🇷🇺 Torrent Games',         urlPattern: 'https://torrent-games.games/search/{query}' },
        { name: '🇷🇺 Torrent-Games-Alt',     urlPattern: 'https://torrent-games.net/search/{query}' },
        { name: '🇷🇺 RuTor',                 urlPattern: 'https://rutor.info/search/{query}' }
    ]
};