forked from pyrochlore/obsidian-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample_generator.ts
More file actions
102 lines (79 loc) · 2.65 KB
/
example_generator.ts
File metadata and controls
102 lines (79 loc) · 2.65 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import * as fs from 'fs';
import * as path from 'path';
import * as moment from 'moment';
let root_folder = __dirname;
let subfolder = "diary";
let dateFormat = "YYYY-MM-DD";
let startDate = moment("2021-01-01", dateFormat);
let endDate = moment("2021-12-31", dateFormat);
function randomIntFromInterval(min: number, max: number) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function randomFloatFromInterval(min: number, max: number) {
return Math.random() * (max - min + 1) + min;
}
// Check subfolder exists
let subfolderPath = path.join(root_folder, subfolder)
if (!fs.existsSync(subfolderPath)) {
fs.mkdirSync(subfolderPath);
}
let dayCount = 0;
for (let curDate = startDate.clone(); curDate <= endDate; curDate.add(1, 'days')) {
dayCount++;
let fileName = curDate.format(dateFormat);
let filePath = path.join(subfolderPath, fileName + ".md");
let fh = fs.openSync(filePath, "w+");
let content:string = "";
// fontmatter
let frontmatter = "---\n";
let weekday = curDate.weekday();
if (weekday == 0 || weekday == 6) {
frontmatter += "tags: " + "\n";
}
else {
frontmatter += "tags: " + "work_log" + "\n";
}
frontmatter += "---\n";
content += frontmatter;
content += "\n";
// weight
let weight = randomFloatFromInterval(60.0, 80.0);
let tagWeight = "#weight:" + weight.toFixed(1) + "kg";
content += tagWeight + "\n";
content += "\n";
// excercise
// pushup
let numPushup = randomIntFromInterval(30, 50);
let tagPushup = "#exercise-pushup:" + numPushup;
content += tagPushup + "\n";
//plank
let numPlank = randomIntFromInterval(30, 120);
let tagPlank = "#exercise-plank:" + numPlank + "sec";
content += tagPlank + "\n";
content += "\n";
// meditation
let tagMeditation = "#meditation";
let missed = randomIntFromInterval(0, 1);
if (!missed) {
content += tagMeditation + "\n";
}
content += "\n";
// star
let textStar = "⭐";
let numStar = randomIntFromInterval(0, 5);
content += textStar.repeat(numStar) + "\n";
content += "\n";
// finance
let tagFinanceBank1 = "#finance/bank1";
let tagFinanceBank2 = "#finance/bank2";
let expense = randomFloatFromInterval(2.0, 3.0);
content += tagFinanceBank1 + ":-" + expense.toFixed(1) + "USD" + "\n";
if (dayCount % 30 == 0) {
content += tagFinanceBank2 + ":" + "200USD" + "\n";
content += tagFinanceBank2 + "/transfer:" + "-100USD" + "\n";
content += tagFinanceBank1 + "/transfer:" + "100USD" + "\n";
}
content += "\n";
fs.writeFileSync(fh, content);
fs.closeSync(fh);
}