Skip to content

Getting rid of log-based user communication #552

@RumovZ

Description

@RumovZ

As discussed previously, last in #547, the log widget should not and cannot be used to reliably communicate information to the user. This issue is to track instances where log messages are currently used in such a way, and find alternatives.
Feel free to edit.


I've identified three categories of events that I would give user feedback for, where there's currently only a log message. Anything related to USDB and resource quality remaining solely in the log is fine with me.

Failed synchronous actions

GUI alternatives: toast, modal dialog.

  • Not logged in, skipping song submission.
  • Song does not exist locally anymore.
  • Song does not exist locally.
  • No current song.
  • no files selected to import USDB IDs from
  • Skipping export: no songs selected.
  • export aborted
  • Cannot submit: song is not remote.
  • Cannot submit: remote song parsing failed.
  • Cannot submit: song is not local.
  • Cannot submit: song is not synchronized.
  • Cannot submit: song has no local changes.
  • Not downloading song as it is pinned.
  • Not trashing song folder as it is pinned.
  • imported USDB IDs are not available:
  • Failed to import file '{path}': {error!s}
  • Failed to fetch new songs; check network connection.

Successful synchronous actions

GUI alternatives: toast.

  • Local changes successfully submitted to USDB.
  • exported {len(selected_ids)} USDB IDs to {path}
  • PDF report created at {path}.
  • JSON report created at {path} ({num_of_songs} songs).
  • Webserver is now running on {address()}
  • Webserver was stopped.
  • available _ imported USDB IDs will be selected:
  • Fetched _ updated song(s) from USDB

Background errors

Here, something more involved is required: Maybe some sort of indicator that something went wrong, a searchable / filterable overview of errors, and stopping further downloads for persistent errors (like missing USDB login).

  • Baiscally everything in song_loader.py and usdb_scraper.py.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions