44 lines
1.3 KiB
Nim
Executable file
44 lines
1.3 KiB
Nim
Executable file
#!/var/home/wizardlink/.nimble/bin/nim r
|
|
|
|
from std/os import fileExists
|
|
from std/osproc import execProcess
|
|
import std/times
|
|
|
|
type
|
|
TimeTrack = tuple
|
|
pcBreak: Duration
|
|
pcBreakCycle: Duration
|
|
eyeBreak: Duration
|
|
eyeBreakCycle: Duration
|
|
NextAlerts = tuple
|
|
pcBreakCycle: Time
|
|
eyeBreakCycle: Time
|
|
|
|
let
|
|
trackingDefaults: TimeTrack = (
|
|
pcBreak: initDuration(minutes = 10),
|
|
pcBreakCycle: initDuration(hours = 2),
|
|
eyeBreak: initDuration(seconds = 20),
|
|
eyeBreakCycle: initDuration(minutes = 20),
|
|
)
|
|
|
|
var
|
|
nextAlerts: NextAlerts = (
|
|
pcBreakCycle: getTime() + trackingDefaults.pcBreakCycle,
|
|
eyeBreakCycle: getTime() + trackingDefaults.eyeBreakCycle,
|
|
)
|
|
|
|
while true:
|
|
let currentTime = getTime()
|
|
if fileExists("/var/home/wizardlink/.local/share/scripts/.stop"):
|
|
break
|
|
|
|
if nextAlerts.pcBreakCycle <= currentTime:
|
|
nextAlerts.pcBreakCycle += trackingDefaults.pcBreakCycle
|
|
nextAlerts.eyeBreakCycle += trackingDefaults.eyeBreakCycle # Clashes since it happens every 20 minutes
|
|
discard execProcess "pw-play /var/mnt/internal/personal/memes/tetris-pJF_LwW-EWo.mp3"
|
|
|
|
elif nextAlerts.eyeBreakCycle <= currentTime:
|
|
nextAlerts.eyeBreakCycle += trackingDefaults.eyeBreakCycle
|
|
discard execProcess "pw-play /var/mnt/internal/personal/memes/noooooo-eoNtgM4KGzc.mp3"
|