You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Finish the upstream/dev merge: compact view on upstream's helpers, Song Count, Sheets timing
Merge repairs:
- Restore Logger's terminal_only/log_only/write_styled_line, which the
merge had stranded inside load_spotify_tracks_from_file(), and drop
the leftover "self.mode = mode" (every Logger would have crashed)
- Drop the duplicate COMPACT_VIEW default and restore the
compact_view_heart theme colour
Compact view, one print per event on upstream's helpers
(print_compact_view_song, compact_view_song_text,
compact_view_started_at, enter_compact_view_screen_mode):
- Keeps the JMK/KEL tag, "Start/End notification sent" with the
separator, the 09/27 timestamp, green/red Detected/Cleared lines, the
red heart and the coloured shuffle icon
- Removes the fork's duplicate banners and song lines and its
Logger(mode="log") stdout swap; jmk_send -> initially_active;
time_diff_str() now reads compact_view_started_at
- JMK ntfy sends gated on JMK_MODE, since --compact-view no longer
implies it
- print_debug() no longer fails when stdout is not a Logger
Playlist Cleared "Song Count" now reports count_played (songs actually
played) instead of count_start, which a reported-name match or an
override jump-starts to qty_start - one song used to read 3.
sheets_helper logs how long each append request itself takes, and the
idle time since the previous append, to pin down the slow first writes.
Tests: harness and JMK tests use a real Logger instead of log_logger,
the harness clock drives time.time() and stubs is_user_removed(),
upstream's compact tests expect the 09/27 format, plus new tests for
the Song Count and the append timing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: RELEASE_NOTES.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,11 @@ This is a high-level summary of the most important changes.
4
4
5
5
# Changes in 3.6 (TBD)
6
6
7
-
Version **3.6** shows the **artist context** again for tracks played from an artist page with live activity and no longer reports **full plays as cut short** when the live feed keeps repeating an update. `--list-friends`, Doctor, setup and the monitoring name users by **display name and user ID**. It also fixes webhook alerts that were dropped when a custom header used a placeholder such as `{title}` and the alert text held emoji or non-Latin letters. The test suite no longer opens a Spotify login page when pytest runs with `-s`, no longer contacts Spotify and no longer fails depending on test order, on parallel `pytest -n auto` workers or with `pytest -v`.
7
+
Version **3.6** shows the **artist context** again for tracks played from an artist page with live activity and no longer reports **full plays as cut short** when the live feed keeps repeating an update. A new **compact view** shows one line per song on screen while the log file keeps the full report. `--list-friends`, Doctor, setup and the monitoring name users by **display name and user ID**. It also fixes webhook alerts that were dropped when a custom header used a placeholder such as `{title}` and the alert text held emoji or non-Latin letters. The test suite no longer opens a Spotify login page when pytest runs with `-s`, no longer contacts Spotify and no longer fails depending on test order, on parallel `pytest -n auto` workers or with `pytest -v`.
8
8
9
9
**Features and improvements**:
10
10
11
+
-**NEW:****Compact view** - `COMPACT_VIEW = True` or `--compact-view` shows **one line per song** during Friend Activity monitoring, with `[NN]` counting minutes since the active banner. Session changes, confirmed visibility loss and return plus actionable errors stay visible. Feed and metadata failures get separate recovery lines and repeated failures stay quiet until they change or recover. Line breaks in song fields become spaces. Full reports plus verbose and debug output go only to the log file. With logging disabled they are not kept. Alerts are unchanged (thanks [@tomballgithub](https://github.com/tomballgithub), [#66](https://github.com/misiektoja/spotify_monitor/pull/66))
11
12
-**IMPROVE:****Users are named, not only their IDs** - The users that only one Friend Activity backend lists at the end of `--list-friends`, the Doctor target check, the setup following check and the message for a target not found when monitoring starts now show **`display name (user ID)`**, or the user ID alone when both are the same. The live feed carries no names, so they are read from the Spotify profile
See [Terminal Colours](configuration.md#terminal-colours) for every theme key and the accepted colour and style names.
328
328
329
+
<aid="compact-view"></a>
330
+
### Compact View
331
+
332
+
Compact view shows one line per song, so the screen keeps a running list of what the friend played. Turn it on with `COMPACT_VIEW = True` or for one run with `--compact-view`. It applies to Friend Activity monitoring.
27 Sep, 17:14:41: [04] What's Up? - 4 Non Blondes (Bigger, Better, Faster, More !) [U2 Radio] (by Spotify)
338
+
27 Sep, 17:19:02: *** Friend is Inactive...
339
+
```
340
+
341
+
The startup summary and first full report print as usual. After that, only listening activity, track changes, visibility changes, actionable errors or warnings and recovery messages are shown. Repeated failures are reported only when they change or recover.
342
+
343
+
Everything else goes to the log file only. That covers the full song reports, session summaries, replies to [control signals](#signal-controls-macoslinuxunix) plus verbose and debug output. Email and webhook alerts are sent as usual. With logging disabled (`-d`) this output is not kept anywhere and the startup summary says so.
debug_log(f"sheets_helper: append to tab '{tab_name}' took {finished_at-append_started_at:.2f}s (attempt {attempt+1}, {_describe_idle(append_started_at)})")
332
+
_last_append_finished_at=finished_at
315
333
returnTrue, None
316
334
exceptExceptionase:
317
335
last_error=e
336
+
ifdebug_logandappend_started_atisnotNone:
337
+
debug_log(f"sheets_helper: append to tab '{tab_name}' failed after {time.time() -append_started_at:.2f}s (attempt {attempt+1}, {_describe_idle(append_started_at)}): {type(e).__name__}")
0 commit comments