main
parent
61261eb41d
commit
f6ff834952
53
README.md
53
README.md
|
@ -12,18 +12,12 @@ I decided to use recutils for this because, why not.
|
||||||
|
|
||||||
You don't need to install anything if you don't want to. You can just edit the rec file.
|
You don't need to install anything if you don't want to. You can just edit the rec file.
|
||||||
|
|
||||||
But if you want to use the TUI, then `npm i` and `just new` (or `node bin/cli.js`) to create a new entry using the interative prompt.
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
- GNU recutils
|
- GNU recutils
|
||||||
|
|
||||||
- node (optional)
|
|
||||||
|
|
||||||
- just (optional)
|
- just (optional)
|
||||||
|
|
||||||
- csvkit (optional)
|
|
||||||
|
|
||||||
## Considerations
|
## Considerations
|
||||||
|
|
||||||
What kind of stuff am I interested in keeping track of?
|
What kind of stuff am I interested in keeping track of?
|
||||||
|
@ -37,21 +31,53 @@ What kind of stuff am I interested in keeping track of?
|
||||||
|
|
||||||
You should probably just read the recfile because that will always be the source of truth, but at the time of this writing, the schema is as follows.
|
You should probably just read the recfile because that will always be the source of truth, but at the time of this writing, the schema is as follows.
|
||||||
|
|
||||||
|
Game:
|
||||||
|
|
||||||
```
|
```
|
||||||
%rec: Game
|
%rec: Game
|
||||||
%doc: a ttrpg game I have played or am playing
|
%doc: a ttrpg game I have played or am playing
|
||||||
%key: Id
|
%key: Id
|
||||||
%type: Id int
|
%type: Id int
|
||||||
%type: System,Module,Format line
|
%type: System,Module,Format line
|
||||||
%type: Updated,Started date
|
%type: Started date
|
||||||
%typedef: Role enum DM Player
|
%typedef: Role enum DM Player
|
||||||
%typedef: Length enum Campaign Adventure Oneshot
|
%typedef: Length enum Campaign Adventure Oneshot
|
||||||
%typedef: Status enum Ongoing Complete Hiatus Dead
|
%typedef: Status enum Ongoing Complete Hiatus Dead
|
||||||
%auto: Id Updated
|
%auto: Id Started
|
||||||
%mandatory: Id System Module Format Notes Updated Started Role Length Status
|
%mandatory: Id System Module Format Started Role Length Status
|
||||||
|
%unique: Id
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: `Notes` (arguably the most important field) does not have a type because there is no valid type for multi-line entries in recfiles. Thus is remains untyped, uncheckable by recins, and undocumented in the schema. I consider this a bug of the recutils.
|
Game Update:
|
||||||
|
|
||||||
|
```
|
||||||
|
%rec: Update
|
||||||
|
%doc: an update for a game!
|
||||||
|
%type: Game rec Game
|
||||||
|
%key: Id
|
||||||
|
%type: Id int
|
||||||
|
%type: Created date
|
||||||
|
%auto: Id Created
|
||||||
|
%mandatory: Id Created Text
|
||||||
|
%allowed: Id Created Text Game
|
||||||
|
%unique: Id
|
||||||
|
%sort: Id
|
||||||
|
```
|
||||||
|
|
||||||
|
This database originally just had the one `Game` record with updates to games unofficially recorded in the Notes field.
|
||||||
|
This lead to the primary datatype being the campaign, or the adventure, or the oneshot.
|
||||||
|
And individual session logs didn't really exist anywhere.
|
||||||
|
I didn't like this because it meant I never new how many actual games I've played.
|
||||||
|
For example, I had been playing Strixhaven on a weekly basis for months,
|
||||||
|
but still to this day only have three 'updates' for it.
|
||||||
|
So I migrated all notes and updates for each game to a new `Update` type.
|
||||||
|
And the new goal is to create and retire Games as needed,
|
||||||
|
and to create a new Update for every session played.
|
||||||
|
So I actually know how many games I've played for real.
|
||||||
|
|
||||||
|
Note that after doing this,
|
||||||
|
I am still not using `recsel`'s "join" feature,
|
||||||
|
because recsel joins are messy.
|
||||||
|
|
||||||
## Learnings
|
## Learnings
|
||||||
|
|
||||||
|
@ -59,15 +85,16 @@ check out [doc/learnings.md](doc/learnings.md)
|
||||||
|
|
||||||
## Recsel examples
|
## Recsel examples
|
||||||
|
|
||||||
- `recsel -e "Role = 'Player'" games.rec`
|
- `recsel -t Game -e "Role = 'Player'" games.rec`
|
||||||
|
|
||||||
See `justfile` for more examples
|
See `justfile` for more examples
|
||||||
|
|
||||||
## Todo
|
## Todo
|
||||||
|
|
||||||
- [x] Add types/enums
|
- [x] Add types/enums
|
||||||
- [x] ~~tui?~~ run `just new` (or `node bin/cli.js`)
|
- [x] ~~tui?~~ run `just new`
|
||||||
- [ ] add Update to CLI
|
- [x] add Update to CLI
|
||||||
|
- [ ] refactor edit/update search functions
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
|
|
|
@ -841,9 +841,9 @@ Text: one of my players no-showed during our regular D&D campaign so we busted o
|
||||||
+
|
+
|
||||||
+ Amassing wealth and spreading their new religion became their new mission.
|
+ Amassing wealth and spreading their new religion became their new mission.
|
||||||
|
|
||||||
|
Id: 28
|
||||||
Created: Fri, 09 Sep 2022 09:23:12 -0600
|
Created: Fri, 09 Sep 2022 09:23:12 -0600
|
||||||
Game: 34
|
Game: 34
|
||||||
Id: 28
|
|
||||||
Text: a quick true fkr game with me and erika, sean running
|
Text: a quick true fkr game with me and erika, sean running
|
||||||
+
|
+
|
||||||
+ mad fun.
|
+ mad fun.
|
||||||
|
@ -862,9 +862,9 @@ Text: a quick true fkr game with me and erika, sean running
|
||||||
+
|
+
|
||||||
+ Sean pointed out afterwards that there were no dice rolls whatsoever, which I find delightful.
|
+ Sean pointed out afterwards that there were no dice rolls whatsoever, which I find delightful.
|
||||||
|
|
||||||
|
Id: 29
|
||||||
Created: Tue, 30 Aug 2022 07:16:51 -0600
|
Created: Tue, 30 Aug 2022 07:16:51 -0600
|
||||||
Game: 33
|
Game: 33
|
||||||
Id: 29
|
|
||||||
Text: almost forgot about this one!
|
Text: almost forgot about this one!
|
||||||
+
|
+
|
||||||
+ sean ran a game of dragonfly d6 for me and tibbius
|
+ sean ran a game of dragonfly d6 for me and tibbius
|
||||||
|
|
Loading…
Reference in New Issue