fraschetti / Octoslack

OctoPrint plugin for Slack, Mattermost, Pushbullet, Pushover, Rocket.Chat, Discord, Riot/Matrix, & Microsoft Teams
MIT License
74 stars 34 forks source link

GUI settings to control (reduce) verbosity #97

Open nod5 opened 3 years ago

nod5 commented 3 years ago

The OctoSlack messages are by default quite verbose. GUI settings lack options to hide e.g. Filename, User, Estimated Print Time, ETA, and Printer temp/nozzle.

We can edit __init__.py manually. But I request OctoSlack GUI settings to control verbosity. Some alternatives are

  1. a single toggle for a "non-verbose/minimal mode"
  2. a set of toggles, similar to how we already have a toggle to exclude the Raspberry Pi temperature.
  3. An extra edit field for each message type (new print, pause, ...) where the user can override all of the default message structure for that type using text strings and already built-in variables.

Here are some examples/mockups of the current verbose message structure contrasted with a suggested minimal, non-verbose alternative. I denote placeholders for variables .

Example 1: current verbose message

A new print has started
File
<file_name> (<file_size> via <print_origin>)
User <octoprint_user>
Estimated print time <estimatedPrintTimeStr>
ETA <time-estimation>
Printer: <printer_text> <temp_str> <z_height_str>

Example 1: non-verbose alternative

A new print has started
<file_name>

Example 2: current verbose message

Print finished successfully
File
<file_name> (<file_size> via <print_origin>)
User <octoprint_user>
Estimated print time <estimatedPrintTimeStr>
Final print time <print-time>
Printer: <printer_text> <temp_str> <z_height_str>

Example 2: non-verbose alternative Print finished successfully

Other messages that also come "downstream" of a new print message (e.g. pause, resume, cancel, ...) could also be oneliners.

Discussion Verbosity has its uses. For example if the sent to channel often has many other user/bot messages between each OctoSlack message then verbose context in each OctoSlack message helps. But consider a dedicated channel use case: One channel is reserved for only OctoSlack messages. Users only visit to read print status and print history. Verbosity may now become visual clutter, since for example what file a pause, resume, cancel, or print finished message refers to is already made clear by the most recent upstream new print message, which will often be visible without scrolling up even on mobile, given non-verbose messages. Scrolling to get a quick glimpse overview of recent prints also becomes easier.

The "Estimated print time" field may also be redundant in a use case that involves PrusaSlicer, since PrusaSlicer defaults to appending a print time estimate to the GCODE filename. That estimate is often at least as accurate as OctoPrint's.

fraschetti commented 3 years ago

Thanks for the feedback @nod5 - Lots of great suggestions here.