dsh-sleep-send:給 DSH Web 輸入框加上定時發送

前言

在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜