- Fix constraint violations when recording users in rooms (migration fix).
- Switched to tracing_subscriber to get log events from matrix SDK.
- Remove "Applying migration" messages, and rely on refinery to log instead.
- Log when an outgoing error is encountered.
- Processing events multiple times when re-joining rooms.
- Always thinking we've not processed an event/constraint
violations (arguments were reversed in record_event).
- Not handling errors when fetchin users in a room, and instead
just suppressing them. Now, we handle errors!
- Also update dependencies (attempt to fix ID too big bug, but no
fix).
- Adds migrations for the necessary tables.
- Implements the user variables database functions.
- Adds sqlx metadata for 'offline' use so we can build without a database.
Also remove todo, update some CoC command descriptions.
Fixes#54.
Co-Authored-By: projectmoon <projectmoon@noreply.git.agnos.is>
Co-Committed-By: projectmoon <projectmoon@noreply.git.agnos.is>
Adds new db tree for simple global state values (which also lays
foundation for other stuff), and stores device ID in that tree after
first login. The ID is then reused on subsequent runs of the
application.
This is simpler than storing device ID in config file.
Fixes#9.
Fixed the dice amount parsing code to propagate a parsing result
through the parser, while properly handling string to i32 conversion.
We now only attempt to convert to i32 if all characters in the
expression are numeric.
This commit also refactors the dice parsing by moving most of the
parsing closures into separate functions, which makes the parsing
function itself more readable. Some variable names were also changed,
for further clarity.
Fixes#21.
If the amount of commands in a single message is greater, the bot will
now return an error. Includes slight refactoring of command execution
code to make use of streams for async iter-like mapping of the command
list.
Fixes#24.
Instead of relying on all parts of the application to construct both
HTML and plain-text responses, we now construct only HTML responses,
and convert the HTML to plain text right before sending the message to
Matrix.
This is a first iteration, because the plain text has a few extra
newlines than it should, created by use of nested <p> tags.