├── CNAME ├── getVersionWorker ├── _config.yml ├── robots.txt ├── icon.png ├── static ├── logo │ ├── 5e.webp │ ├── dy.webp │ ├── ea.webp │ ├── ig.webp │ ├── sg.webp │ ├── wm.webp │ ├── bdo.webp │ ├── bt100.webp │ ├── cemu.webp │ ├── cngal.webp │ ├── cocos.webp │ ├── cube.webp │ ├── emugen.png │ ├── fling.webp │ ├── g2a.webp │ ├── igdb.webp │ ├── intel.webp │ ├── kumo.avif │ ├── kumo.webp │ ├── luna.webp │ ├── moddb.webp │ ├── opgg.webp │ ├── osu.webp │ ├── plati.png │ ├── prime.webp │ ├── rpcs3.webp │ ├── scumm.webp │ ├── sdvx.webp │ ├── sgs.webp │ ├── steam.webp │ ├── svg_optimize.bat │ ├── tcg.webp │ ├── vndb.webp │ ├── wmdz.webp │ ├── wsa.webp │ ├── xbox.webp │ ├── bepinex.webp │ ├── bigfish.webp │ ├── buildit.webp │ ├── cloudgg.webp │ ├── desmume.webp │ ├── dlsite.webp │ ├── dolphin.webp │ ├── dosbox.webp │ ├── eatcat.webp │ ├── evgax1.webp │ ├── faceit.webp │ ├── forager.webp │ ├── heroic.webp │ ├── kinguin.webp │ ├── lutris.webp │ ├── melonds.webp │ ├── msstore.webp │ ├── nsight.webp │ ├── shadps4.webp │ ├── source.webp │ ├── unreal.webp │ ├── x64dbg.webp │ ├── allkeyshop.webp │ ├── collapse.webp │ ├── construct.webp │ ├── dgvoodoo.webp │ ├── fanatical.webp │ ├── gamerpower.webp │ ├── gg.deals.webp │ ├── igamebuy.webp │ ├── mihoyo │ │ ├── zzz.webp │ │ ├── genshin.webp │ │ ├── honkai3.webp │ │ └── starrail.webp │ ├── playnite.webp │ ├── riot │ │ ├── lol.webp │ │ └── valorant.webp │ ├── saveeditor.webp │ ├── seasun │ │ ├── jx3.webp │ │ └── cbjq.webp │ ├── steamchina.webp │ ├── tencent │ │ └── qq.webp │ ├── afterburner.webp │ ├── cheatengine.webp │ ├── gamesplanet.webp │ ├── humblebundle.webp │ ├── legacygames.webp │ ├── netease │ │ └── nsh.webp │ ├── pcgamingwiki.webp │ ├── slimerancher.webp │ ├── teknoparrot.webp │ ├── applegamingwiki.webp │ ├── howlongtobeat.webp │ ├── stardewvalleywiki.png │ ├── gmg.svg │ ├── dmm.svg │ ├── cryengine.svg │ ├── deal.svg │ ├── unity.svg │ ├── thunderstore.svg │ ├── metacritic.svg │ ├── amd.svg │ ├── nvidia.svg │ ├── gog.svg │ ├── ign.svg │ ├── pcsx4.svg │ ├── steamdb.svg │ ├── virtualbox.svg │ ├── battle.svg │ ├── ubi.svg │ ├── zoom.svg │ ├── psstore.svg │ ├── epic.svg │ ├── wegame.svg │ ├── itchio.svg │ ├── a2dp.svg │ ├── protondb.svg │ ├── godot.svg │ ├── qemu.svg │ ├── retroarch.svg │ ├── sk.svg │ ├── nexusmods.svg │ ├── cdkeys.svg │ └── vita3k.svg └── icon │ ├── gpu.webp │ ├── menu.svg │ ├── back.svg │ ├── store.svg │ ├── dev.svg │ ├── info.svg │ ├── emu.svg │ ├── close.svg │ ├── web.svg │ ├── external.svg │ ├── runtime.svg │ ├── save.svg │ ├── cloud.svg │ ├── site.svg │ ├── driver.svg │ ├── wallet.svg │ ├── history.svg │ ├── search.svg │ ├── desktop.svg │ ├── key.svg │ ├── news.svg │ ├── toolbox.svg │ ├── mod.svg │ ├── console.svg │ ├── group.svg │ ├── tool.svg │ ├── loading.svg │ └── pvp.svg ├── manifest.json ├── README.md ├── LICENSE ├── yuni └── about.yuniml ├── plugins └── generate_catalog.js ├── sw.js ├── _layouts └── default.html ├── toolbox.html ├── module ├── base.js └── homeAddon.js └── index.html /CNAME: -------------------------------------------------------------------------------- 1 | kumo.qinlili.bid -------------------------------------------------------------------------------- /getVersionWorker: -------------------------------------------------------------------------------- 1 | Not Installed -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | markdown: kramdown 2 | -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/icon.png -------------------------------------------------------------------------------- /static/logo/5e.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/5e.webp -------------------------------------------------------------------------------- /static/logo/dy.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/dy.webp -------------------------------------------------------------------------------- /static/logo/ea.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/ea.webp -------------------------------------------------------------------------------- /static/logo/ig.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/ig.webp -------------------------------------------------------------------------------- /static/logo/sg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/sg.webp -------------------------------------------------------------------------------- /static/logo/wm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/wm.webp -------------------------------------------------------------------------------- /static/icon/gpu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/icon/gpu.webp -------------------------------------------------------------------------------- /static/logo/bdo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/bdo.webp -------------------------------------------------------------------------------- /static/logo/bt100.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/bt100.webp -------------------------------------------------------------------------------- /static/logo/cemu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cemu.webp -------------------------------------------------------------------------------- /static/logo/cngal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cngal.webp -------------------------------------------------------------------------------- /static/logo/cocos.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cocos.webp -------------------------------------------------------------------------------- /static/logo/cube.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cube.webp -------------------------------------------------------------------------------- /static/logo/emugen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/emugen.png -------------------------------------------------------------------------------- /static/logo/fling.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/fling.webp -------------------------------------------------------------------------------- /static/logo/g2a.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/g2a.webp -------------------------------------------------------------------------------- /static/logo/igdb.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/igdb.webp -------------------------------------------------------------------------------- /static/logo/intel.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/intel.webp -------------------------------------------------------------------------------- /static/logo/kumo.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/kumo.avif -------------------------------------------------------------------------------- /static/logo/kumo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/kumo.webp -------------------------------------------------------------------------------- /static/logo/luna.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/luna.webp -------------------------------------------------------------------------------- /static/logo/moddb.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/moddb.webp -------------------------------------------------------------------------------- /static/logo/opgg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/opgg.webp -------------------------------------------------------------------------------- /static/logo/osu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/osu.webp -------------------------------------------------------------------------------- /static/logo/plati.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/plati.png -------------------------------------------------------------------------------- /static/logo/prime.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/prime.webp -------------------------------------------------------------------------------- /static/logo/rpcs3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/rpcs3.webp -------------------------------------------------------------------------------- /static/logo/scumm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/scumm.webp -------------------------------------------------------------------------------- /static/logo/sdvx.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/sdvx.webp -------------------------------------------------------------------------------- /static/logo/sgs.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/sgs.webp -------------------------------------------------------------------------------- /static/logo/steam.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/steam.webp -------------------------------------------------------------------------------- /static/logo/svg_optimize.bat: -------------------------------------------------------------------------------- 1 | mkdir out 2 | for %%i in (*.svg) do scour "%%i" "out\%%i" --no-line-breaks -------------------------------------------------------------------------------- /static/logo/tcg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/tcg.webp -------------------------------------------------------------------------------- /static/logo/vndb.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/vndb.webp -------------------------------------------------------------------------------- /static/logo/wmdz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/wmdz.webp -------------------------------------------------------------------------------- /static/logo/wsa.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/wsa.webp -------------------------------------------------------------------------------- /static/logo/xbox.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/xbox.webp -------------------------------------------------------------------------------- /static/logo/bepinex.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/bepinex.webp -------------------------------------------------------------------------------- /static/logo/bigfish.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/bigfish.webp -------------------------------------------------------------------------------- /static/logo/buildit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/buildit.webp -------------------------------------------------------------------------------- /static/logo/cloudgg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cloudgg.webp -------------------------------------------------------------------------------- /static/logo/desmume.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/desmume.webp -------------------------------------------------------------------------------- /static/logo/dlsite.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/dlsite.webp -------------------------------------------------------------------------------- /static/logo/dolphin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/dolphin.webp -------------------------------------------------------------------------------- /static/logo/dosbox.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/dosbox.webp -------------------------------------------------------------------------------- /static/logo/eatcat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/eatcat.webp -------------------------------------------------------------------------------- /static/logo/evgax1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/evgax1.webp -------------------------------------------------------------------------------- /static/logo/faceit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/faceit.webp -------------------------------------------------------------------------------- /static/logo/forager.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/forager.webp -------------------------------------------------------------------------------- /static/logo/heroic.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/heroic.webp -------------------------------------------------------------------------------- /static/logo/kinguin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/kinguin.webp -------------------------------------------------------------------------------- /static/logo/lutris.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/lutris.webp -------------------------------------------------------------------------------- /static/logo/melonds.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/melonds.webp -------------------------------------------------------------------------------- /static/logo/msstore.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/msstore.webp -------------------------------------------------------------------------------- /static/logo/nsight.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/nsight.webp -------------------------------------------------------------------------------- /static/logo/shadps4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/shadps4.webp -------------------------------------------------------------------------------- /static/logo/source.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/source.webp -------------------------------------------------------------------------------- /static/logo/unreal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/unreal.webp -------------------------------------------------------------------------------- /static/logo/x64dbg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/x64dbg.webp -------------------------------------------------------------------------------- /static/logo/allkeyshop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/allkeyshop.webp -------------------------------------------------------------------------------- /static/logo/collapse.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/collapse.webp -------------------------------------------------------------------------------- /static/logo/construct.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/construct.webp -------------------------------------------------------------------------------- /static/logo/dgvoodoo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/dgvoodoo.webp -------------------------------------------------------------------------------- /static/logo/fanatical.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/fanatical.webp -------------------------------------------------------------------------------- /static/logo/gamerpower.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/gamerpower.webp -------------------------------------------------------------------------------- /static/logo/gg.deals.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/gg.deals.webp -------------------------------------------------------------------------------- /static/logo/igamebuy.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/igamebuy.webp -------------------------------------------------------------------------------- /static/logo/mihoyo/zzz.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/mihoyo/zzz.webp -------------------------------------------------------------------------------- /static/logo/playnite.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/playnite.webp -------------------------------------------------------------------------------- /static/logo/riot/lol.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/riot/lol.webp -------------------------------------------------------------------------------- /static/logo/saveeditor.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/saveeditor.webp -------------------------------------------------------------------------------- /static/logo/seasun/jx3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/seasun/jx3.webp -------------------------------------------------------------------------------- /static/logo/steamchina.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/steamchina.webp -------------------------------------------------------------------------------- /static/logo/tencent/qq.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/tencent/qq.webp -------------------------------------------------------------------------------- /static/logo/afterburner.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/afterburner.webp -------------------------------------------------------------------------------- /static/logo/cheatengine.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/cheatengine.webp -------------------------------------------------------------------------------- /static/logo/gamesplanet.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/gamesplanet.webp -------------------------------------------------------------------------------- /static/logo/humblebundle.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/humblebundle.webp -------------------------------------------------------------------------------- /static/logo/legacygames.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/legacygames.webp -------------------------------------------------------------------------------- /static/logo/netease/nsh.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/netease/nsh.webp -------------------------------------------------------------------------------- /static/logo/pcgamingwiki.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/pcgamingwiki.webp -------------------------------------------------------------------------------- /static/logo/seasun/cbjq.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/seasun/cbjq.webp -------------------------------------------------------------------------------- /static/logo/slimerancher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/slimerancher.webp -------------------------------------------------------------------------------- /static/logo/teknoparrot.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/teknoparrot.webp -------------------------------------------------------------------------------- /static/logo/applegamingwiki.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/applegamingwiki.webp -------------------------------------------------------------------------------- /static/logo/howlongtobeat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/howlongtobeat.webp -------------------------------------------------------------------------------- /static/logo/mihoyo/genshin.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/mihoyo/genshin.webp -------------------------------------------------------------------------------- /static/logo/mihoyo/honkai3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/mihoyo/honkai3.webp -------------------------------------------------------------------------------- /static/logo/mihoyo/starrail.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/mihoyo/starrail.webp -------------------------------------------------------------------------------- /static/logo/riot/valorant.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/riot/valorant.webp -------------------------------------------------------------------------------- /static/logo/stardewvalleywiki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlacierLab/KumoNavigate/HEAD/static/logo/stardewvalleywiki.png -------------------------------------------------------------------------------- /static/icon/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/back.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/store.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/dev.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/info.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/emu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/web.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/external.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/runtime.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/save.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/cloud.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/site.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/driver.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/wallet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/history.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/desktop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/key.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/news.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/toolbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dir": "ltr", 3 | "scope": "/", 4 | "name": "云酱游戏导航", 5 | "short_name": "云酱", 6 | "icons": [{ 7 | "src": "icon.png", 8 | "sizes": "513x513", 9 | "type": "image/png" 10 | }], 11 | "start_url": "/index.html", 12 | "display": "standalone", 13 | "lang": "cn", 14 | "orientation": "portrait", 15 | "background_color": "#DFAEFF", 16 | "theme_color": "#DFAEFF", 17 | "description": "干净可靠的游戏导航,由琴梨梨维护" 18 | } 19 | -------------------------------------------------------------------------------- /static/icon/mod.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/logo/gmg.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 云酱游戏导航 网页版 V2 2 | #### 重构后的云酱游戏导航继承旧版全部功能,并提供全新的界面和搜索等功能 3 | #### 重构后版本与云酱桌面版中的导航共享代码,是云酱NEXT计划的一部分 4 | #### 旧版已经被彻底移除,新版将会持续更新和维护 5 | 6 | 7 | 8 | ## 我们收录什么 9 | + 正版游戏销售/分发/官网 10 | + 改善游戏体验的软件 11 | + 各类游戏资料 12 | + 游戏开发相关 13 | + 硬件驱动 14 | ## 我们不收录什么 15 | + 侵犯开发商利益的游戏分发(若该游戏仍可通过官方认可的渠道获取全新副本,我们认为分发无授权游戏副本会侵犯开发商利益) 16 | + 影响其他人游戏体验的软件(包括但不限于多人游戏的外挂等) 17 | + 以社交和UGC内容为主要功能的网站和软件(包含论坛/聊天等,但不包含Wiki/官方反馈等) 18 | + 存在账号墙或付费墙的网站(我们不接受必须登录或付费才可以浏览的内容,但编辑/收藏等功能要求登录是合理的) 19 | + 限制使用澳洲IP访问的网站(由于无法验证网站的内容,我们无法收录) 20 | + 仅支持除了中文和英文以外的语言的(由于无法理解网站的内容,我们无法收录) -------------------------------------------------------------------------------- /static/icon/console.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/logo/dmm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/icon/group.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/tool.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/icon/loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /static/logo/cryengine.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/deal.svg: -------------------------------------------------------------------------------- 1 | 2 | ITAD-rocket-color-bgBlack-RGB 3 | -------------------------------------------------------------------------------- /static/logo/unity.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/thunderstore.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/logo/metacritic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/amd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/nvidia.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/gog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/ign.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/pcsx4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /static/logo/steamdb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/virtualbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /static/icon/pvp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/logo/battle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/ubi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/zoom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /yuni/about.yuniml: -------------------------------------------------------------------------------- 1 |
2 | 云酱游戏导航 4 |

云酱游戏导航

5 |

6 | 13 |
开发:Glacier Lab - 琴梨梨
14 |
15 | 17 |
18 | 20 |
21 |
云酱图标来自Freepik - 22 | Flaticon
23 |
显卡图标来自Linector - Flaticon
24 |
其余图标来自Material Icons
25 |
26 |
右键/长按左上角图标即可强制更新导航数据!
27 |
28 |
你的网络信息会由Cloudflare匿名收集以帮助改善用户体验
29 |
30 |

萌ICP备20225033号

31 |
32 |
33 |
-------------------------------------------------------------------------------- /static/logo/psstore.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /plugins/generate_catalog.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require("path"); 3 | const dirname = path.resolve("./"); 4 | console.log("Initialize..."); 5 | const walk = function (dir) { 6 | let results = []; 7 | let list = fs.readdirSync(dir) 8 | let i = 0; 9 | (function next() { 10 | var file = list[i++]; 11 | if (!file) return results; 12 | file = path.resolve(dir, file); 13 | let stat = fs.statSync(file) 14 | if (stat && stat.isDirectory()) { 15 | results = results.concat(walk(file)); 16 | next(); 17 | } else { 18 | //删除旧的清单 19 | if (path.basename(file) == "manifest.json") { 20 | fs.rmSync(file); 21 | return next() 22 | } 23 | //忽略信息文件 24 | if (path.basename(file) == "version" || path.basename(file) == "name") { 25 | return next() 26 | } 27 | results.push(path.relative(path.join(dirname, item), file).split('\\').join('/')); 28 | next(); 29 | } 30 | })(); 31 | return results; 32 | }; 33 | let arr = fs.readdirSync(dirname); 34 | arr.forEach(item => { 35 | if (fs.statSync(path.join(dirname, item)).isDirectory()) { 36 | console.log("Processing " + item); 37 | let pluginInfo = {}; 38 | pluginInfo.name = item; 39 | pluginInfo.displayName = fs.readFileSync(path.join(dirname, item, "name"), "utf-8"); 40 | pluginInfo.version = fs.readFileSync(path.join(dirname, item, "version"), "utf-8"); 41 | console.log("Version: " + pluginInfo.version); 42 | global.item = item; 43 | pluginInfo.fileList = walk(path.join(dirname, item)); 44 | pluginInfo.fileSize = 0; 45 | pluginInfo.fileList.forEach(file => { 46 | pluginInfo.fileSize += fs.statSync(path.join(dirname, item, file)).size; 47 | }); 48 | console.log("Generating manifest..."); 49 | fs.writeFileSync(path.join(dirname, item, "manifest.json"), JSON.stringify(pluginInfo)); 50 | } 51 | }); -------------------------------------------------------------------------------- /static/logo/epic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/wegame.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/itchio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /sw.js: -------------------------------------------------------------------------------- 1 | var APP_PREFIX = '云酱游戏导航'; 2 | var VERSION = '2.20240712'; 3 | var CACHE_NAME = APP_PREFIX + VERSION 4 | var URLS = [] 5 | 6 | // Respond with cached resources 7 | self.addEventListener('fetch', function (event) { 8 | if (event.request.url.indexOf("getVersionWorker") > 0) { 9 | event.respondWith(new Response(VERSION)); 10 | return; 11 | } 12 | const getCacheName = url => { 13 | if (url.indexOf("/static/") > 0 && url.startsWith(location.origin)) { 14 | return "StaticCache" 15 | }; 16 | if (url.indexOf("/plugins/") > 0 && url.startsWith(location.origin)) { 17 | return "Plugin" 18 | }; 19 | return CACHE_NAME; 20 | } 21 | 22 | if (event.request.method == "GET" && (event.request.url.indexOf("http") == 0) && (event.request.url.indexOf("ForceNoCache") == -1) && (event.request.url.startsWith(location.origin))) { 23 | event.respondWith( 24 | caches.open(getCacheName(event.request.url)).then(function (cache) { 25 | return cache.match(event.request).then(function (response) { 26 | return response || fetch(event.request).then(function (response) { 27 | cache.put(event.request, response.clone()); 28 | return response; 29 | }); 30 | }); 31 | }) 32 | 33 | ); 34 | } else { 35 | event.respondWith(fetch(event.request)) 36 | } 37 | }); 38 | // Cache resources 39 | self.addEventListener('install', function (e) { 40 | e.waitUntil( 41 | caches.open(CACHE_NAME).then(function (cache) { 42 | console.log('installing cache : ' + CACHE_NAME) 43 | return cache.addAll(URLS) 44 | }) 45 | ) 46 | }) 47 | 48 | // Delete outdated caches 49 | self.addEventListener('activate', function (e) { 50 | e.waitUntil( 51 | caches.keys().then(function (keyList) { 52 | var cacheWhitelist = keyList.filter(function (key) { 53 | return key.indexOf(APP_PREFIX) 54 | }) 55 | cacheWhitelist.push(CACHE_NAME) 56 | cacheWhitelist.push("StaticCache") 57 | cacheWhitelist.push("Plugin") 58 | 59 | return Promise.all(keyList.map(function (key, i) { 60 | if (cacheWhitelist.indexOf(key) === -1) { 61 | console.log('deleting cache : ' + keyList[i]) 62 | return caches.delete(keyList[i]) 63 | } 64 | })) 65 | }) 66 | ) 67 | }) 68 | -------------------------------------------------------------------------------- /static/logo/a2dp.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 3 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 47 | 48 | {% seo %} 49 | 50 | {% include head-custom.html %} 51 | 52 | 53 | 54 |
55 | {{ content }} 56 |
57 | 72 |

广告让我们能保持免费和中立客观,本站永远不会通过邀请返利盈利,广告永远是本站唯一收入

73 | 75 | 77 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /static/logo/protondb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /static/logo/godot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /static/logo/qemu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | image/svg+xml 4 | -------------------------------------------------------------------------------- /static/logo/retroarch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /toolbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 云酱工具箱 20 | 21 | 113 | 114 | 115 | 116 | 127 |
128 |
129 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /static/logo/sk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /static/logo/nexusmods.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /module/base.js: -------------------------------------------------------------------------------- 1 | const util = { 2 | sleep: delay => new Promise((resolve) => setTimeout(resolve, delay)), 3 | random: (min, max) => { 4 | return Math.round(Math.random() * (max - min)) + min; 5 | }, 6 | loadScriptAsync: link => { 7 | return new Promise(resolve => { 8 | let script = document.createElement("script"); 9 | script.src = link; 10 | script.onload = resolve; 11 | document.body.appendChild(script); 12 | }); 13 | }, 14 | link: (url, external) => { 15 | if (external) { 16 | window.open(url, "_blank"); 17 | } else { 18 | location.href = url; 19 | } 20 | }, 21 | loadCssCode: (code) => { 22 | var style = document.createElement('style') 23 | style.type = 'text/css' 24 | style.rel = 'stylesheet' 25 | style.appendChild(document.createTextNode(code)) 26 | var head = document.getElementsByTagName('head')[0] 27 | head.appendChild(style) 28 | }, 29 | setInnerHTML: (elm, html) => { 30 | elm.innerHTML = html; 31 | Array.from(elm.querySelectorAll("script")) 32 | .forEach(oldScriptEl => { 33 | const newScriptEl = document.createElement("script"); 34 | 35 | Array.from(oldScriptEl.attributes).forEach(attr => { 36 | newScriptEl.setAttribute(attr.name, attr.value) 37 | }); 38 | 39 | const scriptText = document.createTextNode(oldScriptEl.innerHTML); 40 | newScriptEl.appendChild(scriptText); 41 | 42 | oldScriptEl.parentNode.replaceChild(newScriptEl, oldScriptEl); 43 | }); 44 | } 45 | } 46 | let ModuleCache = {}; 47 | window.ModuleLoader = { 48 | useRedbankLoaderGlobal: true, 49 | pendingCalls: [], 50 | loadedRemote: [], 51 | checkPending: async () => { 52 | for (const call of ModuleLoader.pendingCalls) { 53 | if (Module[call.name]) { 54 | await call.callback(); 55 | } 56 | } 57 | }, 58 | loadLocal: async (part, initList) => { 59 | Module = Object.assign(Module, part); 60 | await Module.autoinit.initList(initList ? initList : Object.keys(part)); 61 | await ModuleLoader.checkPending(); 62 | }, 63 | loadRemote: async (name, initList) => { 64 | //加载远程模块 65 | await util.loadScriptAsync("module/" + name + ".js"); 66 | await ModuleLoader.loadLocal(ModuleCache[name], initList); 67 | delete ModuleCache[name]; 68 | ModuleLoader.loadedRemote.push(name); 69 | }, 70 | queueLoaded: async (name, callback) => { 71 | //确定已经置入队列加载的模块 72 | //调用前请确保已调用模块加载器 73 | if (Module[name]) { 74 | return await callback(); 75 | } else { 76 | ModuleLoader.pendingCalls.append({ name: name, callback: callback }); 77 | //-10表示模块尚未就绪,就绪后会自动调用 78 | //模块就绪时间不定,可能需要覆盖和取消的操作不要用这个 79 | return -10; 80 | } 81 | 82 | }, 83 | ensureLoaded: async (name, modulename, callback) => { 84 | //不确定是否调用模块加载器的情况 85 | //确保模块加载完成执行后再回调 86 | if (Module[name]) { 87 | return await callback(); 88 | } else { 89 | //高优先级加载 90 | if (ModuleLoader.loadedRemote.includes(modulename)) { 91 | //已经加载过指定模块,但模块内没有这个组件 92 | return -1; 93 | } else { 94 | await ModuleLoader.loadRemote(modulename); 95 | if (Module[name]) { 96 | return await callback(); 97 | } 98 | //加载了,但并没有这个组件 99 | return -1; 100 | } 101 | } 102 | } 103 | } 104 | let Module = { 105 | autoinit: { 106 | initEverything: async () => { 107 | Module.autoinit.initList(Object.keys(Module)); 108 | }, 109 | initList: async (list) => { 110 | for (const key of list) { 111 | if (Module[key].init && !Module[key].loaded) { 112 | console.log("Module " + key + " init;"); 113 | await Module[key].init(); 114 | Module[key].loaded = true; 115 | } 116 | } 117 | } 118 | }, 119 | netTick: { 120 | tick: 0, 121 | wait: async () => { 122 | await util.sleep(Math.pow(2, Module.netTick.tick) * 1000); 123 | Module.netTick.tick++; 124 | }, 125 | reset: () => { 126 | Module.netTick.tick = 0; 127 | } 128 | }, 129 | logger: { 130 | collect: (error) => { 131 | console.warn(error.message); 132 | } 133 | }, 134 | pref: { 135 | init: () => { 136 | if (localStorage.pref) { 137 | Module.pref.data = JSON.parse(localStorage.pref); 138 | } else { 139 | Module.pref.sync(); 140 | } 141 | }, 142 | data: {}, 143 | sync: () => { 144 | localStorage.pref = JSON.stringify(Module.pref.data); 145 | }, 146 | get: (key) => { 147 | return Module.pref.data[key] || false; 148 | }, 149 | set: (key, value) => { 150 | Module.pref.data[key] = value; 151 | Module.pref.sync(); 152 | }, 153 | addRecent: (icon, name, url) => { 154 | let recent = Module.pref.get("recent") || []; 155 | recent.unshift({ icon: icon, name: name, url: url }); 156 | recent = recent.filter((value, index, self) => 157 | index === self.findIndex((t) => ( 158 | t.place === value.place && t.name === value.name 159 | )) 160 | ) 161 | recent = recent.slice(0, 50); 162 | Module.pref.set("recent", recent); 163 | Module.recent.render(); 164 | } 165 | }, 166 | naviUpdater: { 167 | init: () => { 168 | if ((Module.pref.get("lastNaviUpdate") == new Date().toLocaleDateString()) && localStorage.naviCache) { } else { 169 | Module.naviUpdater.update(); 170 | }; 171 | }, 172 | getData: async () => { 173 | if (!localStorage.naviCache) { 174 | await Module.naviUpdater.update(); 175 | }; 176 | return JSON.parse(localStorage.naviCache); 177 | }, 178 | update: async () => { 179 | let jsonText = ""; 180 | try { 181 | jsonText = await (await fetch("navigate.json?ForceNoCache=1")).json(); 182 | } catch (e) { 183 | Module.logger.collect(e); 184 | await Module.netTick.wait(); 185 | return await Module.naviUpdater.update(); 186 | }; 187 | Module.netTick.reset(); 188 | try { 189 | //自动Minify 190 | localStorage.naviCache = JSON.stringify(jsonText); 191 | Module.pref.set("lastNaviUpdate", new Date().toLocaleDateString()) 192 | } catch (e) { 193 | Module.logger.collect(e); 194 | } 195 | } 196 | } 197 | } -------------------------------------------------------------------------------- /static/logo/cdkeys.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /static/logo/vita3k.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | image/svg+xml 4 | -------------------------------------------------------------------------------- /module/homeAddon.js: -------------------------------------------------------------------------------- 1 | ModuleCache.homeAddon = { 2 | pwa: { 3 | init: () => { 4 | if (navigator.serviceWorker && !navigator.serviceWorker.controller) { 5 | navigator.serviceWorker.register('sw.js'); 6 | } 7 | } 8 | 9 | }, 10 | logoclick: { 11 | init: () => { 12 | let click = 0; 13 | document.getElementById("logo").addEventListener("click", () => { 14 | click++; 15 | if (click >= 5) { 16 | function getVideoCardInfo() { 17 | const gl = document.createElement('canvas').getContext('webgl'); 18 | if (!gl) { 19 | return false; 20 | } 21 | const debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); 22 | return debugInfo ? { 23 | vendor: gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL), 24 | renderer: gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL), 25 | } : false; 26 | } 27 | let GPUinfo = getVideoCardInfo(); 28 | if (GPUinfo) { 29 | let GPUname = GPUinfo.renderer; 30 | if (GPUinfo.renderer.indexOf("ANGLE") == 0) { 31 | GPUname = GPUname.substring(GPUname.indexOf(",") + 2, GPUname.indexOf("Direct3D") - 1); 32 | } 33 | document.getElementById("logo").src = "/static/icon/gpu.webp"; 34 | document.getElementById("logo").alt = "显卡信息"; 35 | document.getElementById("title").innerText = GPUname; 36 | } 37 | } 38 | }); 39 | document.getElementById("logo").addEventListener("contextmenu", async (event) => { 40 | event.preventDefault(); 41 | document.getElementById("title").innerText = "更新导航数据..."; 42 | await Module.naviRender.updateAndRender(); 43 | document.getElementById("title").innerText = "导航数据更新成功"; 44 | }); 45 | } 46 | }, 47 | //最近使用 48 | recent: { 49 | init: () => { 50 | Module.recent.render(); 51 | }, 52 | render: () => { 53 | document.querySelector(".bottom").innerHTML = ""; 54 | let recent = Module.pref.get("recent") || []; 55 | if (recent.length) { 56 | recent.forEach((item, index) => { 57 | const list = document.createElement("a"); 58 | list.className = "recentItem"; 59 | list.innerHTML = (item.icon ? `${item.name}` : "") + `${item.name}`; 60 | list.href = item.url; 61 | item.url.startsWith("http") ? list.target = "_blank" : false; 62 | document.querySelector(".bottom").appendChild(list); 63 | }); 64 | } else { 65 | const text = document.createElement("span"); 66 | text.className = "recentText"; 67 | text.innerText = "最近使用过的内容会出现在这里捏"; 68 | document.querySelector(".bottom").appendChild(text); 69 | } 70 | } 71 | }, 72 | yuni: { 73 | lazyinit: () => { 74 | util.loadCssCode(`#yuniFrame { 75 | max-width: 600px; 76 | margin: auto; 77 | padding: 100%; 78 | width: 100%; 79 | height: calc(100% - 32px); 80 | } 81 | 82 | #closeBtn { 83 | width: 100vw; 84 | height: 32px; 85 | border-radius: 10px 10px 0px 0px; 86 | transition: background-color 0.2s, transform 0.3s ease-in-out; 87 | } 88 | 89 | #closeBtn:hover { 90 | background-color: #cccccc; 91 | } 92 | 93 | #closeBtn:active { 94 | background-color: #999999 95 | } 96 | 97 | #closeBtn.active { 98 | background-color: #FADCBB 99 | } 100 | 101 | #yuniContainer { 102 | transition: opacity 0.2s ease-in; 103 | opacity: 0; 104 | display: none; 105 | z-index: 9999; 106 | top: 0px; 107 | bottom: 0px; 108 | left: 0px; 109 | right: 0px; 110 | height: auto; 111 | width: auto; 112 | position: fixed; 113 | background-color: rgba(0, 0, 0, 0.15); 114 | } 115 | 116 | #yuni { 117 | display: flex; 118 | flex-direction: column; 119 | text-align: center; 120 | width: 100vw; 121 | height: 90vh; 122 | border-radius: 10px 10px 0px 0px; 123 | backdrop-filter: blur(10px) brightness(100%); 124 | -webkit-backdrop-filter: blur(10px) brightness(100%); 125 | background-color: rgba(255, 255, 255, 0.75); 126 | margin-top: 100vh; 127 | margin-bottom: 0px; 128 | margin-left: 0px; 129 | margin-right: 0px; 130 | transition: margin-top 0.5s ease-out; 131 | } 132 | 133 | #loading { 134 | width: 32px; 135 | position: absolute; 136 | margin: auto; 137 | top: 0px; 138 | bottom: 0px; 139 | left: 0px; 140 | right: 0px; 141 | }`); 142 | const framediv = `
143 |
144 | 145 | 146 | 加载中 147 |
148 |
` 149 | document.body.insertAdjacentHTML('beforeend', framediv); 150 | //弹出 151 | const rebuildFrame = url => { 152 | if (document.getElementById("yuniFrame")) { 153 | document.getElementById("yuni").removeChild(document.getElementById("yuniFrame")); 154 | }; 155 | let newFrame = document.createElement("iframe"); 156 | newFrame.id = "yuniFrame"; 157 | newFrame.frameBorder = 0; 158 | document.getElementById("closeBtn").insertAdjacentElement("afterend", newFrame) 159 | newFrame.src = url; 160 | newFrame.title = "弹出页面"; 161 | newFrame.addEventListener("load", () => { 162 | document.getElementById("loading").style.display = "none"; 163 | newFrame.style.padding = "0px"; 164 | }); 165 | }; 166 | window.addEventListener("message", async (event) => { 167 | console.log(event.data) 168 | if (typeof event.data == "string") { 169 | if (event.data == "close") { 170 | Module.yuni.close(); 171 | } 172 | if (event.data.startsWith("http")) { 173 | document.getElementById("loading").style.display = "block"; 174 | rebuildFrame(event.data); 175 | } 176 | } 177 | }, false); 178 | Module.yuni.showFrame = async (url, wide) => { 179 | //使用iframe渲染设置 180 | document.getElementById("yuniContainer").style.display = "block"; 181 | await util.sleep(1); 182 | document.getElementById("yuniContainer").style.opacity = 1; 183 | document.getElementById("yuni").style.marginTop = "10vh"; 184 | document.getElementById("loading").style.display = "block"; 185 | rebuildFrame(url); 186 | if (wide) { 187 | document.getElementById("yuniFrame").style.maxWidth = "100vw"; 188 | } 189 | }; 190 | Module.yuni.showNative = async (url, wide) => { 191 | //使用iframe渲染设置 192 | document.getElementById("yuniContainer").style.display = "block"; 193 | await util.sleep(1); 194 | document.getElementById("yuniContainer").style.opacity = 1; 195 | document.getElementById("yuni").style.marginTop = "10vh"; 196 | document.getElementById("loading").style.display = "block"; 197 | if (document.getElementById("yuniFrame")) { 198 | document.getElementById("yuni").removeChild(document.getElementById("yuniFrame")); 199 | }; 200 | let newFrame = document.createElement("div"); 201 | newFrame.id = "yuniFrame"; 202 | newFrame.style.overflow = "auto"; 203 | document.getElementById("closeBtn").insertAdjacentElement("afterend", newFrame); 204 | if (wide) { 205 | document.getElementById("yuniFrame").style.maxWidth = "100vw"; 206 | } 207 | util.setInnerHTML(newFrame, await (await fetch("/yuni/" + url + ".yuniml")).text()); 208 | newFrame.style.padding = "0px"; 209 | document.getElementById("loading").style.display = "none"; 210 | }; 211 | Module.yuni.close = async () => { 212 | document.getElementById("yuni").style.marginTop = "100vh"; 213 | document.getElementById("yuniContainer").style.opacity = 0; 214 | await util.sleep(500); 215 | document.getElementById("yuniContainer").style.display = "none"; 216 | document.getElementById("yuni").removeChild(document.getElementById("yuniFrame")); 217 | }; 218 | document.getElementById("closeBtn").addEventListener("click", async (event) => { 219 | event.stopPropagation(); 220 | Module.yuni.close(); 221 | }) 222 | }, 223 | showFrame: async (url, wide) => { 224 | Module.yuni.lazyinit(); 225 | await Module.yuni.showFrame(url, wide); 226 | }, 227 | showNative: async (url, wide) => { 228 | Module.yuni.lazyinit(); 229 | await Module.yuni.showNative(url, wide); 230 | } 231 | }, 232 | about: { 233 | init: () => { 234 | document.getElementById("aboutBtn").addEventListener("click", () => { 235 | Module.yuni.showNative('about'); 236 | }); 237 | } 238 | } 239 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 云酱游戏导航 20 | 21 | 558 | 559 | 560 | 569 | 583 | 590 | 591 | 592 | 593 |
594 |
595 |
596 | 598 |

云酱游戏导航

600 |
601 |
602 | 606 | 610 |
611 | 关于 612 | 关于 613 |
614 |
615 |
616 | 622 |
623 | 624 | 正在加载导航... 625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 | 958 | 959 | 960 | --------------------------------------------------------------------------------