timewarrior/doc/dom.txt
2016-07-16 16:18:31 -04:00

68 lines
2.5 KiB
Text

DOM - Document Object Model
===========================
Timewarrior needs DOM support, so that it can service a 'get' command and
provide access to data and rules. Both are important for extensions.
Data to be Accessed
-------------------
Here are the data accessible via DOM references:
- Configuration
- Exclusions
- Command line args in raw form (for rules, not 'get')
Syntax
------
All DOM references have this form:
dom.<name>
Supported Names
---------------
dom.tag.count --> 14 Count of all tags
dom.tag.1 --> 'tag' Nth tag used
dom.active --> 0/1 Boolean indicator that tracking is active
dom.active.tag.count --> N Count of active tags
dom.active.tag.1 --> 'tag' Active Nth tag
dom.active.start --> YYYY-MM-DDTHH:MM:SS Active start time
dom.active.duration --> PT1H25M8S Active elapsed
dom.active.json --> {...} Active interval as JSON
dom.tracked.count --> N Count of tracked intervals
dom.tracked.1.tag.count --> N Tracked Nth, count of tags
dom.tracked.1.tag.1 --> 'tag' Tracked Nth, Nth tag
dom.tracked.1.start --> YYYY-MM-DDTHH:MM:SS Tracked Nth, start time
dom.tracked.1.end --> YYYY-MM-DDTHH:MM:SS Tracked Nth, end time, blank if closed
dom.tracked.1.duration --> PT1H25M8S Tracked Nth, elapsed
dom.tracked.1.json --> {...} Tracked Nth, interval as JSON
--- Raw Notes ---
Proposed:
dom.tag.[1-3] --> 't1', 't2', 't3' First three tags
dom.tag.[1,2,3] --> 't1', 't2', 't3' First three tags
dom.tag.* --> 't1', ... 't14' All tags
dom.tracked.year --> 231 Quantity this year
dom.tracked.quarter --> 64 Quantity this quarter
dom.tracked.month --> 21 Quantity this month
dom.tracked.week --> 6 Quantity this week
dom.tracked.today --> 2 Quantity today
dom.gap.today
...
rc.<name>
- The above does not support totals, as this would turn DOM references into a
query language. Instead, a 'sum' command could do this. The rules.txt doc
already mentions built-in functions.