mirror of
https://github.com/narrrl/pl8list-rewind.git
synced 2026-11-03 16:41:26 +01:00
Add tap controls, lock-screen playback and other comfort features
- Tap/click a track to play or pause, double-tap/double-click to like with a heart burst; any key or tap starts playback - Media Session API: lock-screen, notification and headphone controls, with next/previous working while the screen is locked - Drag the waveform to seek, hover shows the time - "Not for me" button feeds a dislike signal into the ranker - Share button (native share sheet or copy link) - Likes newest first, each playable right away - Filters remembered per browser, clear button, active indicator - Panels close on outside click or Esc; help overlay on "?" - Buffering spinner, paused badge, toast messages, first-run hint - Installable as an app (manifest and icons) - Refreshed README screenshots and controls
This commit is contained in:
1 parent
4a7f6903a3
commit
87af563a95
16 files changed
+731
-112
No files matched your search
@@ -59,15 +59,20 @@ local session token is stored. Logins are rate-limited to 5 per IP and 3 per ema
|
||||
|
||||
## Controls
|
||||
|
||||
| key | action |
|
||||
| -------------- | ---------------- |
|
||||
| ↓ / j, ↑ / k | next / previous |
|
||||
| space | play / pause |
|
||||
| ← / → | seek 10 s |
|
||||
| l | like |
|
||||
| phone | desktop | action |
|
||||
| ---------------- | -------------------- | ------------------------------ |
|
||||
| tap | click · space | play / pause |
|
||||
| double-tap | double-click · l | like |
|
||||
| swipe up / down | ↓ j · ↑ k | next / previous |
|
||||
| drag waveform | drag waveform · ← → | seek |
|
||||
| ✕ button | x | not for me (skip, show less) |
|
||||
| share button | s | share / copy link |
|
||||
| | m | mute |
|
||||
| | ? · Esc | help · close panels |
|
||||
|
||||
Click the waveform to seek. "filters" sets free-only and a BPM range. "likes" lists everything
|
||||
you liked, with links to pl8list.
|
||||
Lock-screen, notification and headphone buttons control playback too (Media Session API).
|
||||
"likes" lists your likes newest first; ▶ plays one right away. Filters (free only, BPM range)
|
||||
are remembered per browser. The site can be installed to the home screen as an app.
|
||||
|
||||
## How it works
|
||||
|
||||
@@ -96,7 +101,7 @@ one request every 20 seconds. When a user likes or finishes a track, its related
|
||||
its artist's catalogue are crawled first.
|
||||
|
||||
**Ranking** (`ranker.py`). Each track the user has not seen yet gets a score from popularity,
|
||||
freshness, artist affinity (from their likes, completions and skips), closeness to the BPM and
|
||||
freshness, artist affinity (from their likes, completions, skips and "not for me"), closeness to the BPM and
|
||||
key of tracks they liked, whether it is related to something they liked, and some random
|
||||
exploration. Artists are then spread out so you don't get five tracks from one person in a
|
||||
row. Tune `WEIGHTS` at the top of the file.
|
||||
|
||||
Reference in new issue
Block a user