From 7a337c43a471fe21a7e556abc236f7f6c1b107ac Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 16 Nov 2021 11:04:52 +0100 Subject: [PATCH] rudimentary date parsing --- index.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index f2d69dd..1056768 100644 --- a/index.js +++ b/index.js @@ -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,