├── 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 |
--------------------------------------------------------------------------------
/static/logo/cryengine.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/static/logo/deal.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/static/logo/unity.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/static/logo/thunderstore.svg:
--------------------------------------------------------------------------------
1 |
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 |
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 |
14 |
15 |
17 |
18 |
20 |
21 |
23 |
24 |
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 |
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 |
19 |
--------------------------------------------------------------------------------
/static/logo/godot.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/static/logo/qemu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 |
117 |
118 |
119 |

120 |
121 |
122 |
正在加载工具箱...
123 |
124 |

125 |
126 |
127 |
128 |
129 |
142 |
143 |
144 |
--------------------------------------------------------------------------------
/static/logo/sk.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 |
75 |
--------------------------------------------------------------------------------
/static/logo/vita3k.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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}`;
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 |
603 |

604 |
工具箱
605 |
606 |
607 |

608 |
桌面版
609 |
610 |
611 |

612 |
关于
613 |
614 |
615 |
616 |
617 |
618 |
619 |

620 |
621 |
622 |
623 |

624 |
正在加载导航...
625 |
626 |
627 |
631 |
632 |
633 |
958 |
959 |
960 |
--------------------------------------------------------------------------------