dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
把《玩具熊的五夜后宫 2》(Five Nights at Freddy's 2)的 Foxy(霍斯 / Withered Foxy) 请进 DeepSeek Harness(dsh)Web 界面:每秒钟有 1/1000 的几率,屏幕突然被全屏 jumpscare 占据, 伴随那声标志性的尖叫,吓你一跳后自动消失。
素材与音效均来自 Five Nights at Freddy's Wiki, 版权归 Scott Cawthon / Steel Wool Studios 所有。本项目是非官方同人玩具插件,详见 NOTICE.md。
intervalMs(默认 1000ms)掷一次骰子,命中概率 probability(默认 0.001);durationMs(默认 1800ms)后自动消失;config.json,无需手动部署;dsh plugin 自动安装(推荐)本包声明了 dsh.bundle.patch,dsh plugin add 会自动把它的 patch 层并入 dsh.profile.bundles:
dsh plugin --profile web add github:01Virex/dsh-foxy-jumpscare
重启 dsh web,浏览器 Ctrl+F5 硬刷新 即可生效。
把本项目放到 web profile 的 node_modules 下(默认
C:\Users\<你>\.dsh\profiles\web\node_modules\dsh-foxy-jumpscare\);
在 web profile 的 cordis.patch.yml 里插入:
- insert:
- id: foxy-jumpscare
name: dsh-foxy-jumpscare
(可选)node gen-config.cjs 生成本地 config.json;
重启 dsh web,浏览器 Ctrl+F5 硬刷新。
配置优先级从高到低:
dsh-foxy-jumpscare.config(粘贴 JSON,实时生效,无需刷新);config.json(项目根,本地个性化,被 .gitignore 忽略;缺省时 node half 自动回退到
config.example.json;修改后需刷新页面重新加载);lib/client.js 顶部 DEFAULT_CONFIG)。配置文件格式(config.example.json):
{
"enabled": true,
"probability": 0.001,
"intervalMs": 1000,
"durationMs": 1800,
"volume": 1.0,
"debug": false,
"imageUrl": "/plugins/dsh-foxy-jumpscare/assets/foxy-jumpscare.webp",
"soundUrl": "/plugins/dsh-foxy-jumpscare/assets/foxy-scream.ogg"
}
| 键 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关;false 彻底关掉(应急用) |
probability |
0.001 |
每次 tick 触发概率(0.001 = 1/1000) |
intervalMs |
1000 |
tick 间隔(毫秒) |
durationMs |
1800 |
jumpscare 持续时长(毫秒) |
volume |
1.0 |
音量 0~1 |
debug |
false |
控制台诊断日志 |
imageUrl |
见上 | jumpscare 图片地址 |
soundUrl |
见上 | 尖叫音效地址 |
应急关闭:不想再被吓时,在浏览器控制台执行(1 秒内立即生效,无需刷新):
localStorage.setItem("dsh-foxy-jumpscare.config", JSON.stringify({ enabled: false }));
// 恢复默认:localStorage.removeItem("dsh-foxy-jumpscare.config")
不想等 1/1000 的概率,想立刻看效果?浏览器控制台(F12)执行:
window.dshFoxyJumpscare.trigger() // 立刻跳杀一次
window.dshFoxyJumpscare.hide() // 立刻收起
window.dshFoxyJumpscare.config // 查看当前生效配置(只读)
也可以把概率临时拉到 1(每 tick 必中)——控制台执行
localStorage.setItem("dsh-foxy-jumpscare.config", JSON.stringify({ probability: 1 })),
1 秒内就会连跳;改回/删除该键即可恢复默认(都实时生效,无需刷新)。
数学上,默认参数(每秒掷一次、命中率 1/1000)服从几何分布,期望首次触发时间 ≈ 1000 秒 ≈ 16 分 40 秒; 其中位数约 11 分 30 秒(50% 概率在此之前触发)。详见「原理」。
dsh-foxy-jumpscare/
├── lib/
│ ├── index.js # node half:serve 素材与 config.json
│ └── client.js # browser half:jumpscare 定时器 + 全屏 overlay
├── assets/
│ ├── foxy-jumpscare.webp # Withered Foxy jumpscare 画面(893×609,透明背景)
│ └── foxy-scream.ogg # Foxy jumpscare 尖叫
├── config.example.json # 完整配置模板(入库)
├── config.json # 本地个性化配置(被 .gitignore 忽略)
├── gen-config.cjs # 初始化 config.json 的脚本
├── cordis.patch.yml # bundle patch(由 dsh.bundle.patch 自动应用)
├── package.json
├── NOTICE.md # 素材版权归属说明
├── LICENSE # MIT
└── README.md
dsh plugin --profile web remove dsh-foxy-jumpscare;cordis.patch.yml 删掉 foxy-jumpscare 那一行,并删除 node_modules 下的包目录。之后重启 dsh web 即可。
这是 dsh 的「双面(bundle + client)」插件:同一包名既是一个 bundle(通过
dsh.bundle.patch 在配置树里插入一行),又是一个 dsh.client 浏览器插件(web 运行时扫描
dsh.client 元数据、serve /plugins/dsh-foxy-jumpscare/client.js 并注入 window.__DSH_BOOT__)。
node 半部只负责把素材/配置送出本地 HTTP,惊吓逻辑全在浏览器半部。
每 intervalMs(默认 1000ms)独立掷一次骰子,命中率 probability(默认 0.001)。这是几何分布:
intervalMs / probability = 1000 / 0.001 · 1000ms = 1000 秒 ≈ 16 分 40 秒;欢迎提 Issue / PR,或直接在 config.example.json 里调整默认参数。改动后记得跑一次
node scripts/package-release.cjs 检查发布文件是否齐全。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。