Skip to content

Releases: ItsLimeNade/Beetroot

v1.0.0 | ...one giant leap for diabetics

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 18 Jun 20:54
00239e0

What's new?

  • Improved the docker files cfdf914
  • Added code of conduct.
  • Added contributing guidelines.
  • Added custom emojis for prettier results
  • Moved the sticker generation to the bonbon library
  • Removed all dashboard code
  • Added settings commands: /settings plus dedicated /privacy, /allow, /block, /ephemeral, /image-mode, /microbolus and /fingerprick-expiry
  • Updated duration parser
  • Added tips
  • Added /theme to create, edit, import and apply custom color themes to your graphs
  • Themes now style /graph, /tir and image-mode /bg
  • Added /tir Time in Range card over the last 7, 14, 30 or 90 days
  • Added /nutrition to look up calories, carbs and macros for any food
  • Added /stickers to view and remove the stickers on your graphs
  • Added image mode for /bg (a clean card image instead of an embed)
  • Added an at option to /bg and /graph to look back in time (e.g. 2h, 1d, 1w, 1h30m)
  • Added /treatment-mode to choose how carbs and insulin are drawn on /graph (Contextual or Timeline)
  • Added /graph-stickers to choose how many stickers appear on your graph (up to 30)
  • /bg cards now show a short, actionable hint (like "verify reading" or "monitor") instead of just restating your status
  • Stickers now appear only on /graph; the /bg card and /tir are kept clean
  • Added /delete-account to wipe all of your stored data
  • Added /info with source code, credits and support links
  • Added an in-bot changelog that shows what's new since your last use

Fixes

  • Token encryption now fails closed instead of falling back to a public hard-coded key, so a leaked database can no longer be decrypted with the source code. ENCRYPTION_SALT was renamed to ENCRYPTION_KEY (existing values still work)
  • Added SSRF protection to Nightscout and sticker fetching: private, loopback and cloud-metadata addresses are blocked, redirects are re-checked, and outbound requests now have timeouts
  • Stopped dumping glucose, treatments and profiles to the logs. The new logging system never records medical data or Discord IDs unless you opt in with LOG_SENSITIVE=true
  • /block is now actually enforced. A blocked user can no longer read your data, even on a public profile or if they were on your allowed list
  • force_ephemeral is now honored. With it on, /bg, /graph, /tir, /a1c and /nutrition reply only to you instead of broadcasting your glucose to the channel
  • Connection and fetch errors now show a generic message instead of the raw backend error, so internal hostnames and IPs are no longer leaked to users
  • Every outbound request now has a connect and request timeout, so a slow or hostile site can no longer hang the bot, and oversized sticker images are rejected before decoding to stop them eating memory
  • /delete-account now also wipes your command history and tip records, not just your profile and stickers, so nothing tied to your Discord ID remains.
  • The bot now reports one consistent version (1.0.0) everywhere, instead of the version, the changelog and the config disagreeing
  • The Docker image now runs as a non-root user, and leftover web-dashboard config and database tables were removed
  • Polish: unexpected errors now show a proper embed instead of plain text, /bg no longer shows a broken thumbnail for users without an avatar, and an unused internal sticker-delete path was removed
  • Added a clear "not medical advice" disclaimer to /info and /setup
  • Added per-user cooldowns to /graph, /tir and /a1c so heavy renders and large queries can't be spammed
  • The bot now shuts down cleanly on stop, an extreme at value can no longer crash a command, and account-list updates are now atomic
  • Custom emojis now resolve from whichever bot application is running (with an EMOJI_SET fallback), so one build works for both beta and production

v1.0.0-pre1 | One small step for Beetroot...

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 02 May 21:46

What's new?

  • Introduces the at parameter on the /graph and /bg commands to look back in time and fetch old data.
  • Makes the hours parameter mandatory in /graph for autocompletion to work due to user demand.
  • Introduces the start of the poise refactor.
  • Adds the /a1c command.
  • Adds a dashboard, used to change the user settings for the bot.
  • Changed the internal structure of the bot.
  • Removed most settings commands in favour of the dashboard.
  • Started bug hunting in cinnamon & bonbon dependencies.

What's next?

  • Implementing nutrition commands with and without NLP (Natural Language Processing).
  • Improving Docker files.
  • Improving sticker placements in the /graph command.
  • Improving performance in the /graph command.
  • Improving the visuals in the /graph command.
  • Bring back /allow & /disallow commands
  • Bring back /info command.
  • Bring back /help command.

v0.2.1 | Threshold Hotfix

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 12 Oct 20:50

Fixes:

  • Fixed incorrect thresholds fetching.

Full Changelog: v0.2.0...v0.2.1

v0.2.0 | Enhancements Update

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 12 Oct 20:23
2a60685

What's Changed

  • Fixed error caused by saving wrong components as stickers. By @RansomTime in #12
  • Doubled graph resolution for bigger and clearer images by @ItsLimeNade in #19
  • Added warning in /bg if data is older than 15 min by @ItsLimeNade in #23
  • Added contextual stickers that generate based on your blood glucose value by @ItsLimeNade in #24
  • Updated /stickers command to work with contextual stickers by @ItsLimeNade in #24
  • Added /set-token, /set-nightscout-url, /get-nightscout-url and /set-visibility commands by @ItsLimeNade in #26
  • MBG (meter blood glucose) entries now displayed as fingerprick readings on graphs by @ItsLimeNade in #27
  • Target ranges now dynamically fetched from your Nightscout profile by @ItsLimeNade in #27
  • Added faint striped lines at target high/low ranges on graphs by @ItsLimeNade in #27
  • /bg now uses custom title from Nightscout status settings by @ItsLimeNade in #27
  • /bg displays fingerprick values from past 30 min in both mg/dL and mmol/L by @ItsLimeNade in #27

New Contributors

Full Changelog: v0.1.2...v0.2.0

v0.1.2 | Sticker invasion

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 03 Oct 15:26

There has been quite a few changes in this version.

New features

You can now add stickers to your graph!

When a sticker is sent in a discord chat (any chat), right click it and go in the Applications context menu and click the Add Sticker command, it will instantly add your sticker to your graph. (Up to 3 stickers)
If you want to remove a sticker:

  • Added /stickers command, allows you to manage your current stickers
  • Now for every update, an ephemeral update message containing a changelog will appear once to notify the user of the update.
  • IOB and COB are now visible on the /bg command !
  • Added /convert command for unit conversion
  • Added Analyze Units context menu (same steps as adding a sticker but with text a message) that will extract all blood glucose values in the text and convert them

QoL features

  • Allows AAPS users to not have to set a threshold to get a readable graph by labelling SMB boluses as micro-boluses automatically.
    Huge thanks to @p5nbTgip0r for #8

Bug fixes:

  • Fixed delta not showing up for some users
  • Fixed graph hours being on the wrong timezone
  • Fixed day separation line on the graph being added twice.
  • Fixed /setup buttons not getting removed after the setup was finished #8 (thanks @p5nbTgip0r)
  • Fixed help message not being ephemeral

Anyways thanks for using Beetroot, next update should be a little less user-oriented but rather fixing redundant and poorly written code.
However I have some big plans for the next 1-2 weeks :)

v0.1.1 | Quality of life improvements & Bug fixes

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 29 Sep 21:27
fc20d32

New features:

  • /allow [user] [action] command
    Lets people add or remove people from their authorized list, so that even if their Nightscout is set to private people manually authorized can still access your BG and graph.
  • /help command to view all available commands and how to use them
  • /info command for general information about the bot (and a link to this repo)
  • /set-threshold [value] [display] command
    Allows the user to set a threshold that marks any insulin treatment who's units count is below that threshold as a "microbolus", either hiding it completely from the graph making it way more readable for closed loop user or marking it with a tiny marker without the amount of units displayed on the graph.

QoL features:

  • /graph now also takes an optional [user] parameter to display the graph of an other user.
  • Made all information embeds ephemeral to not flood channels with useless informations.
  • Tweaked graph treatment positionnement, size and shape to make it more readable.

Bug fixes

  • Fixed graph not displaying correct timestamps and timestamps overlapping
  • Fixed graph not displaying round values for primary unit
  • Fixed graph having an extra y-axis label that is completely useless
  • Fixed treatments overlapping with each other

Thanks for using Beetroot, and there are more features to come soon so stay tuned :)

Base functionalities

Choose a tag to compare

@ItsLimeNade ItsLimeNade released this 28 Sep 20:45
a5a1967

The first release of the bot, containing the core features such as retrieving your blood glucose using /bg or viewing your current graph with treatments using /graph.
Includes token encryption and a database for secure storage. Basic error handling is implemented.

Features

  • /bg @user — Get the blood glucose level of a user.
  • /graph {hours} — View a graph of the past X hours.
  • /setup — Configure the bot to work with your nightscout.
  • /token — Update your nightscout token.