rudimentary date parsing

master
Yorick van Pelt 2021-11-16 11:04:52 +01:00
parent 82de5ef468
commit 7a337c43a4
Signed by: yorick
GPG Key ID: D8D3CC6D951384DE
1 changed files with 17 additions and 5 deletions

View File

@ -10,17 +10,29 @@ function sleep(n) {
})
}
function dateToInterval(d="today") {
const now = DateTime.local()
let retDate
if (d == "today") {
retDate = now.startOf('day')
} else if (d == "yesterday") {
retDate = now.startOf('day').minus({days: 1})
} else {
retDate = DateTime.fromISO(d)
}
return Interval.fromDateTimes(retDate.startOf('day'), retDate.endOf('day'))
}
if (require.main === module) {
(async function() {
const m = new Marvin()
const d = DateTime.local()
const today = Interval.fromDateTimes(d.startOf('day'), d.endOf('day'))
const tasks = await (m.root.category('Tweag').then(tweag => tweag.tasksOverlapping(today)))
const value = Duration.sum(tasks.map(task => task.timeSpentOn(today))).as('hours')
const interval = dateToInterval(process.argv.length > 2 ? process.argv[2] : 'today')
const tasks = await (m.root.category('Tweag').then(tweag => tweag.tasksOverlapping(interval)))
const value = Duration.sum(tasks.map(task => task.timeSpentOn(interval))).as('hours')
const b = new Beeminder(BEEMINDER_TOKEN)
const goal = b.user("me").goal("loonslaven")
const daystamp = d.toFormat('yyyyMMdd')
const daystamp = interval.start.toFormat('yyyyMMdd')
const post_data = {
daystamp,
value,