右下の通信ステータスに時刻を表示するUserScript
使い方
自分のページの script.js
に以下のコードを置く。
javascriptimport {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()
を実行することで時計が消える。
スマホでは表示しないようにする例
javascriptimport {activateClock, inactivateClock} from "/api/code/Mijinko/右下の通信ステータスに時刻を表示するUserScript/script.js";
if (!navigator.userAgent.match(/iPhone|Android.+Mobile/)) {
activateClock("all")
scrapbox.on("project:changed", inactivateClock)
}
スマホだと邪魔くさいと思う人向け。
ソース
script.jsimport { 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()
}