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
{{ message }}
Repository navigation
Commit c2e7d44
Browse filesBrowse the repository at this point in the historyBrowse files
Adds a per-card play counter (NVS 'rfidPlayCnt'), incremented in the RFID lookup
handler when a music card starts a playlist (Playstats_NoteCardPlay). New GET /topcards
returns the top 10 cards by play count with their assigned fileOrUrl + mode; the info
dialog shows the top 3 next to the daily listening totals. A card's counter is cleared
when the card is deleted, so removed cards leave no ghost stats.
Verified on the test device: playing card A twice + B once -> /topcards ranks A(2)
before B(1) with their paths; deleting both clears the counters (/topcards empty);
no console errors. Synthetic test data cleaned from server + device.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -147,6 +147,7 @@ neon logo that doubles as the SVG favicon ([`7be5254`](../../commit/7be5254)):
147
147
|**Now-playing info dialog**: an info icon next to "Current track" in the Control tab opens a dialog with the full track detail — ID3 title/artist/album, embedded cover, file path + size, play mode, track x/y, **codec / sample rate / bitrate / channels**, position/duration and the RFID tag that started the playlist. Served on demand via a new `GET /currenttrack` (so it doesn't bloat the frequent `trackinfo` websocket). Also: the **Unlocked** control button now uses the neutral (inactive) styling like the other toggles — only **Locked** keeps an accent colour. i18n de/en/fr |[`trackinfo-dialog`](../../releases/tag/trackinfo-dialog)|
148
148
|**Settings tabs de-cluttered**: the long "General" sub-tab was split — the **LED** settings (NeoPixel brightness + LED config) moved into a new **LEDs** sub-tab, and **Deep sleep + Battery** into a new **Power** sub-tab. Both new tabs are covered by the same auto-save. General now holds just volume/branding/options/playlist/rotary. i18n de/en/fr |[`settings-split`](../../releases/tag/settings-split)|
149
149
|**Folder cover-art fallback**: when a track has no embedded ID3 cover, `/cover` now serves a sidecar image from the track's folder (`cover.jpg`/`.jpeg`/`.png` or `folder.jpg`/`.png`) before falling back to the placeholder icon — so audiobooks/albums with a folder image show art in the Control tab |[`cover-fallback`](../../releases/tag/cover-fallback)|
150
+
|**Most-played cards (listening stats)**: a per-card play counter (incremented when a music card starts a playlist) drives a **most-played** list — the top 3 cards (path + play count) appear in the info dialog next to the daily totals; full top-10 via a new `GET /topcards`. A card's counter is cleared when the card is deleted (no ghost stats). Stored in NVS (`rfidPlayCnt`) |[`stats-topcards`](../../releases/tag/stats-topcards)|
150
151
|**OpenAPI/Swagger spec updated**: the bundled `REST_API.yaml` (served at `/swagger.html`) now documents all fork-added endpoints (`/sync`, `/syncstop`, `/playlist`, `/githubupdate`, `/version`, `/login`, `/logout`, `/security`, `/eqrule(s)`, `/activeequalizer`, `/bluetooth*`, `/sdclean`) and declares the security schemes (`X-API-Key` header / `apikey` query param, or the `ESPUINO_SESSION` login cookie) so the Swagger "Authorize" button works. The web-interface footer links to the Swagger UI (`/swagger.html`) |[`f8298d9`](../../commit/f8298d9)|
0 commit comments