前言¶
在 DSH Web 裏寫一條稍長、需要斟酌發送時機的消息時,直接發送或手動等待都不太順手。DSH 插件生態的“一切皆插件”思路里,這種小需求可以做成獨立客戶端插件。下面介紹 dsh-sleep-send:它在輸入框右側增加定時發送按鈕和配置面板,支持把消息排到智能時段或指定日期時間,並在到點時自動發送。
這是什麼¶
dsh-sleep-send 是 DSH Web 的 Cordis 客戶端插件,由 Awu12277 維護,許可證爲 MIT。它解決的是“現在先寫好,晚點再發”的問題:把已輸入的消息加入定時任務隊列,而不是立即發送。
運行環境是 DSH Web 瀏覽器界面。包爲純 ESM、零運行時依賴、無需構建;package.json 聲明 Node 版本要求如下:
"node": ">=18"
調度定時器優先使用 cordis timer 服務,缺失時自動降級爲瀏覽器定時器。
核心功能¶
輸入框右側按鈕¶
插件在輸入框右側提供定時發送入口,槽位爲:
conversation.input.right
空草稿時按鈕禁用,輸入內容後激活。
智能時段¶
默認智能時段覆蓋兩個範圍:
12:00 – 14:00
18:00 – 次日 08:00
插件會在這些範圍內自動選取最近的可發送時間。
自定義日期時間¶
支持自定義日期時間,包括時間選擇器、今天 / 明天 / 後天快捷,以及原生日期選擇器。
多任務排隊¶
支持多個定時任務排隊、查看和逐個刪除。工具行芯片會顯示任務數、下次發送時間和即時倒計時;點擊工具行芯片上的取消操作可取消全部任務。
持久化與恢復¶
任務與偏好保存在當前瀏覽器的 localStorage 中,存儲鍵爲:
dsh.sched-send.v1
刷新頁面後自動恢復。恢復規則如下:
- 未到期任務保留;
15分鐘內過期的任務補發;- 更早過期的任務丟棄。
防誤覆蓋¶
到點發送前,如果輸入框內容已被修改,插件會自動取消本次發送,不覆蓋新內容。
無障礙與性能¶
可交互元素帶 focus-visible 焦點環;動畫遵循 prefers-reduced-motion;脈衝動畫僅使用 transform / opacity。
安裝與啓用¶
先安裝到 web profile:
dsh plugin --profile web add dsh-sleep-send
安裝後需要重啓 dsh web 生效。
典型用法¶
1、在輸入框輸入消息。
2、點擊輸入框右側的定時或配置按鈕,打開配置面板。
3、選擇智能時段或自定義時間。
4、點擊「加入 · HH:MM 發送」,任務加入列表並清空輸入框;可繼續輸入下一條並排隊。
5、工具行芯片顯示最近任務時間與即時倒計時;如需取消全部任務,點擊工具行芯片上的取消操作。
6、到點後消息自動發送;等待期間修改輸入框內容會取消該任務。
適用場景與注意¶
適合在 DSH Web 中處理“稍後發送”的用戶:例如整理一段說明、避免不合適的時間自動發送、把多條消息排到指定時間。
使用前需要注意:
- 任務僅保存在當前瀏覽器的 localStorage 中,不上傳任何服務器;
- 更換瀏覽器、無痕窗口或清除站點數據會丟失任務;
- 插件以當前 dsh 進程權限運行,會訪問當前瀏覽器 localStorage;安裝前建議先檢查源碼和
MIT許可證; 15分鐘內過期任務刷新後會補發,更早過期任務會丟棄。
鏈接¶
- GitHub:
https://github.com/Awu12277/dsh-sleep-send - 目錄頁:如所在 DSH 插件目錄已收錄,可搜索
dsh-sleep-send。