generated at
右下の通信ステータスに時刻を表示するUserScript

右下の通信ステータスを表示しているところに現在時刻を表示する。
takker/scrapbox-userscript-stdを利用している

使い方
自分のページの script.js に以下のコードを置く。
javascript
import {activateClock, inactivateClock} from "/api/code/Mijinko/右下の通信ステータスに時刻を表示するUserScript/script.js"; activateClock("all") scrapbox.on("project:changed", inactivateClock)
activateClock() の引数を変えると表示される時刻のフォーマットが変わる。
"all" : 日付と時刻の両方を表示
例) 2022/2/21 3:28:25
"day-only" : 日付のみを表示
"date-only" : 時刻のみを表示
"all-without-year" : "all" から年を抜いたもの
"day-without-year" : 月と日
"date-without-seconds" : 時間と分
"mini" : 月と日と時間と分
例) 2/21 3:28
inactivateClock() を実行することで時計が消える。

スマホでは表示しないようにする例
javascript
import {activateClock, inactivateClock} from "/api/code/Mijinko/右下の通信ステータスに時刻を表示するUserScript/script.js"; if (!navigator.userAgent.match(/iPhone|Android.+Mobile/)) { activateClock("all") scrapbox.on("project:changed", inactivateClock) }
スマホだと邪魔くさいと思う人向け。

ソース
script.js
import { useStatusBar } from "/api/code/Mijinko/scrapbox-userscript-std.js/mod.js"; import { sleep } from "/api/code/Mijinko/scrapbox-userscript-std.js/sleep.js"; //const { render, dispose } = useStatusBar() function getNowDate(){ let date = new Date() return {"Y":date.getFullYear(),"M":date.getMonth()+1,"D":date.getDate(),"h":date.getHours(),"m":date.getMinutes(),"s":date.getSeconds()} } function clockManager(){ let flag = false let now = {} let d = "" let render, dispose async function on(format="all"){ let bar = useStatusBar() render = bar.render dispose = bar.dispose flag = true while(flag){ now = getNowDate() d = ((format)=>{ switch(format){ case "all": return `${now.Y}/${now.M}/${now.D} ${now.h}:${now.m.toString().padStart(2,'0')}:${now.s.toString().padStart(2,'0')}` case "all-without-year": return `${now.M}/${now.D} ${now.h}:${now.m.toString().padStart(2,'0')}:${now.s.toString().padStart(2,'0')}` case "mini": return `${now.M}/${now.D} ${now.h}:${now.m.toString().padStart(2,'0')}` case "day-only": return `${now.Y.toString().padStart(4,'0')}/${now.M}/${now.D}` case "day-without-year": return `${now.M}/${now.D}` case "date-only": return `${now.h}:${now.m.toString().padStart(2,'0')}:${now.s.toString().padStart(2,'0')}` case "date-without-seconds": return `${now.h}:${now.m.toString().padStart(2,'0')}` default: return "" } })(format) render( { type: "text", text: d} ) await sleep(1000) } } function off(){ flag = false dispose() } return {on, off} } const clock = clockManager() export async function activateClock(format="all"){ await clock.on(format) } export function inactivateClock(){ clock.off() }