forked from raycast/script-commands
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadd-mood.js
executable file
·55 lines (44 loc) · 1.8 KB
/
add-mood.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env node
// Dependency: This script requires Nodejs.
// Install Node: https://nodejs.org/en/download/
// Required parameters:
// @raycast.schemaVersion 1
// @raycast.title Add Mood
// @raycast.mode silent
// @raycast.packageName Dashboard
//
// Optional parameters:
// @raycast.icon ☕️
// @raycast.argument1 { "type": "text", "placeholder": "mood rating 1-5",}
// @raycast.argument2 { "type": "text", "placeholder": "Day number", "optional":true }
// Documentation:
// @raycast.description Add mood value to current or specified date
// @raycast.author Federico Miraglia
// @raycast.authorURL https://github.com/Mitra98t
const { exec } = require('child_process')
const fs = require("fs")
const homedir = require('os').homedir();
const filePath = `${homedir}/.moodTable.json`
let now = new Date()
if (!fs.existsSync(filePath)) {
exec(`echo '{}' > ${filePath}`)
}
let json = fs.readFileSync(filePath)
let parsedMoods = JSON.parse(json)
var moodVal = Number(process.argv.slice(2)[0])
var dayNum = Number(process.argv.slice(2)[1])
if (parsedMoods[now.getFullYear()] == null) {
parsedMoods[now.getFullYear()] = [[], [], [], [], [], [], [], [], [], [], [], []]
fs.writeFileSync(filePath, JSON.stringify(parsedMoods))
}
if (moodVal > 0 && moodVal <= 5) {
let dayVal = dayNum && dayNum > 0 && dayNum <= 31 ? dayNum : now.getDate()
let index = parsedMoods[now.getFullYear()][now.getMonth()].findIndex(d => d.date == dayVal)
if (index != -1)
parsedMoods[now.getFullYear()][now.getMonth()][index] = { date: dayVal, mood: moodVal }
else
parsedMoods[now.getFullYear()][now.getMonth()].push({ date: dayVal, mood: moodVal })
fs.writeFileSync(filePath, JSON.stringify(parsedMoods))
console.log("Added mood for today ☕️")
}
else console.log("Mood must be between 1 and 5")