-
dab7e2f46b
feat: verify the QQ Music account with QQ Music
master
DiheChen
2026-11-11 00:31:38 +08:00
-
6f286c2eb2
feat: open and import QQ Music playlists
DiheChen
2026-11-11 00:30:04 +08:00
-
19a135c983
feat: read the songs in QQ Music playlists
DiheChen
2026-11-11 00:28:21 +08:00
-
52c4aaa9d3
fix: reject array fields in GET and DELETE room requests
DiheChen
2026-11-11 00:26:47 +08:00
-
b986abf937
docs: reword comments and protocol descriptions for readability
DiheChen
2026-11-11 00:25:12 +08:00
-
d72b4203cb
feat: browse stored media page by page, sort and search it, and delete several songs at once
DiheChen
2026-11-11 00:23:50 +08:00
-
0f6ecaf6da
feat: organize settings into sections that apply changes immediately
DiheChen
2026-11-11 00:22:33 +08:00
-
8cacfb68ff
feat: organize the admin page into sections with room search, paging and source status cards
DiheChen
2026-11-11 00:21:31 +08:00
-
c7a5c44b1c
feat: add sectioned page layout, switches, segmented controls, paging and neutral avatars
DiheChen
2026-11-11 00:20:26 +08:00
-
fb751ca57f
feat: page, sort and search stored media and delete several at once in the admin API
DiheChen
2026-11-11 00:19:07 +08:00
-
c39331aa75
feat: let the Android app open links to this site
DiheChen
2026-11-11 00:17:49 +08:00
-
3bc1d6e82e
feat: sign in with GitHub and manage the GitHub link in settings
DiheChen
2026-11-11 00:17:12 +08:00
-
2ae286dcb8
feat: pair a new device from settings with a code or QR code
DiheChen
2026-11-11 00:16:07 +08:00
-
c1d5bb2de0
feat: offer GitHub login over HTTP when an OAuth app is configured
DiheChen
2026-11-11 00:15:38 +08:00
-
1157843f50
feat: expose device pairing over HTTP
DiheChen
2026-11-11 00:15:01 +08:00
-
e95476185b
feat: sign in with GitHub and link GitHub to accounts
DiheChen
2026-11-11 00:14:01 +08:00
-
7543fd4987
feat: pair new devices with one-time codes
DiheChen
2026-11-11 00:13:19 +08:00
-
6098ac392e
feat: exchange GitHub OAuth codes for user IDs
DiheChen
2026-11-11 00:12:15 +08:00
-
ad0d0900d8
feat: keep pairing codes and GitHub login states in Redis
DiheChen
2026-11-11 00:11:43 +08:00
-
240c8899a9
feat: store GitHub links on accounts that may have no password
DiheChen
2026-11-11 00:10:55 +08:00
-
7863c02170
feat: open shared playlist links to request, save and copy their songs
DiheChen
2026-11-11 00:10:12 +08:00
-
1f99bd939b
feat: share my playlists from the playlist menu
DiheChen
2026-11-11 00:09:38 +08:00
-
8b941764b1
feat: expose playlist sharing over HTTP
DiheChen
2026-11-11 00:08:57 +08:00
-
eed25578c7
feat: share playlists through unguessable links and copy shared playlists
DiheChen
2026-11-11 00:08:02 +08:00
-
9f23e97652
feat: store playlist share links and copy shared playlists
DiheChen
2026-11-11 00:07:07 +08:00
-
910e7339ad
feat: show listening history from the server and sync the recording switch across devices
DiheChen
2026-11-11 00:06:40 +08:00
-
17e486209e
feat: read, remove and clear listening history and switch recording over HTTP
DiheChen
2026-11-11 00:06:11 +08:00
-
112527db83
feat: write listening history as songs start and members join
DiheChen
2026-11-11 00:05:35 +08:00
-
ce5ce141f8
feat: keep each member's listening history and move a guest's history into the account on login
DiheChen
2026-11-11 00:05:03 +08:00
-
a12ab44ec8
feat: tell which members hear each song from the room domain
DiheChen
2026-11-11 00:04:01 +08:00
-
038cbb206b
feat: import playlists from files, links and search results
DiheChen
2026-11-11 00:03:16 +08:00
-
df8e0c5b8b
feat: export playlists to files and import them in the web client
DiheChen
2026-11-11 00:02:22 +08:00
-
649916ab9d
feat: expose playlist imports over HTTP
DiheChen
2026-11-11 00:01:47 +08:00
-
9256f64e24
feat: import playlists from files and from NetEase links
DiheChen
2026-11-11 00:01:00 +08:00
-
83f8dbf3a5
feat: look up prepared tracks in bulk and create a playlist with its songs at once
DiheChen
2026-11-11 00:00:18 +08:00
-
92a8e63240
feat: recognize NetEase and QQ Music playlist links and resolve their short links
DiheChen
2026-11-10 23:59:25 +08:00
-
1b292fa5e3
feat: select several playlist songs to remove, save or reorder them and drag songs into place
DiheChen
2026-11-09 21:33:06 +08:00
-
a72fc40519
feat: browse my playlists as a sortable list or a glowing cover grid and open each one
DiheChen
2026-11-09 21:32:21 +08:00
-
0f01b1dfe9
feat: save songs to my playlists from the player, queue and history
DiheChen
2026-11-09 21:31:18 +08:00
-
5198fa5126
feat: track member playlists in the web client
DiheChen
2026-11-09 21:30:19 +08:00
-
96a3da903c
feat: tell which of my playlists contain a song
DiheChen
2026-11-09 21:29:43 +08:00
-
2657dca9e1
feat: remove, copy and reorder several playlist songs at once
DiheChen
2026-11-09 21:28:12 +08:00
-
fafde9041c
feat: expose member playlists over HTTP
DiheChen
2026-11-09 21:27:41 +08:00
-
95a56267a4
feat: manage member playlists with server-side track metadata
DiheChen
2026-11-09 21:26:41 +08:00
-
ffbf28c165
feat: store playlists with a fixed favorites list for every account
DiheChen
2026-11-09 21:25:18 +08:00
-
f0f38ff511
feat: bind room tickets to member sessions and disconnect revoked sessions
DiheChen
2026-11-09 21:24:32 +08:00
-
a80c48824f
feat: register and sign in from the settings page
DiheChen
2026-11-09 21:23:23 +08:00
-
a0956299be
feat: switch registration and reset account passwords in the admin page
DiheChen
2026-11-09 21:22:40 +08:00
-
246baf5a0e
feat: expose account registration, login and admin recovery over HTTP
DiheChen
2026-11-09 21:21:23 +08:00
-
62d99221fe
feat: register, log in and manage member accounts
DiheChen
2026-11-09 21:20:12 +08:00
-
fd1b3addb3
feat: store whether registration is open
DiheChen
2026-11-09 21:19:37 +08:00
-
d8f9d4e2ca
feat: store accounts and per-device sessions for members
DiheChen
2026-11-09 21:18:26 +08:00
-
98a1605a83
feat: reject emails that are not shaped like name@example.com when updating a profile
DiheChen
2026-11-09 21:17:42 +08:00
-
773ec302a7
feat: take the client address from proxies in private networks
DiheChen
2026-11-09 21:16:26 +08:00
-
d17477ba59
feat: add a shared quota for account operations
DiheChen
2026-11-09 21:15:06 +08:00
-
97764f9769
docs: refine the open API documentation
DiheChen
2026-11-08 01:26:55 +08:00
-
47908cedcf
ci: call CD only for tag builds
DiheChen
2026-11-07 22:31:11 +08:00
-
0dbfe26c1f
ci: check readiness and the release version after deploy
v0.3.4
DiheChen
2026-11-07 08:07:21 +08:00
-
0345d948ac
feat: show the player bar volume as a read-only readout
DiheChen
2026-11-07 07:57:21 +08:00
-
51ff98eff1
feat: widen the player bar to the page panels and enlarge its buttons
DiheChen
2026-11-07 07:54:17 +08:00
-
f5008b8d8e
ci: add post-deploy smoke test
DiheChen
2026-11-07 01:42:27 +08:00
-
cc8090d143
ci: deploy releases to k3s
DiheChen
2026-11-06 23:43:16 +08:00
-
48dcb1fd97
chore: slim the worker image and streamline the Docker builds
DiheChen
2026-11-06 00:47:47 +08:00
-
22ddb5f49c
feat: raise the chat panel from the bottom
DiheChen
2026-11-05 12:53:55 +08:00
-
7168a97afa
fix: slide the side panel tabs in their own direction
DiheChen
2026-11-05 12:46:00 +08:00
-
4737bb9ddf
feat: float the player bar above the page
DiheChen
2026-11-05 12:31:45 +08:00
-
baa69f74b0
feat: reveal secondary song actions on hover
DiheChen
2026-11-05 12:26:31 +08:00
-
a4805e957d
feat: mark the playing song in lists
DiheChen
2026-11-05 12:26:21 +08:00
-
f6c925d3bd
fix: keep notifications clear of the side panel
DiheChen
2026-11-05 12:24:45 +08:00
-
d391f7e419
feat: fade covers in once they load
DiheChen
2026-11-05 12:24:20 +08:00
-
5fdeda2ede
fix: measure FLAC files that have data after the audio
DiheChen
2026-11-05 12:13:19 +08:00
-
2fb58e001e
chore: upgrade gl3d to v1.0.0 and decode leniently
DiheChen
2026-11-05 12:00:48 +08:00
-
1a7f3cf2fc
fix: keep lines beside the current lyric on stable layers
DiheChen
2026-11-05 11:45:17 +08:00
-
4032edc5bb
feat: ripple lyric lines when the current line changes
DiheChen
2026-11-05 11:00:04 +08:00
-
e3b7e4111b
feat: count down long instrumental breaks with breathing dots
DiheChen
2026-11-05 10:58:03 +08:00
-
659096ed60
feat: light lyrics slightly ahead of the audio
DiheChen
2026-11-05 10:55:28 +08:00
-
55be743e8a
chore: relicense under MIT
DiheChen
2026-11-05 03:30:27 +08:00
-
cce68d760e
refactor: fold QQ lyric decryption into the qq package
DiheChen
2026-11-05 03:15:11 +08:00
-
75c5dad4b9
feat: sweep lyrics with a soft edge and emphasize held words
DiheChen
2026-11-05 01:32:12 +08:00
-
37ee162c83
feat: light up lyrics word by word with translations
DiheChen
2026-11-05 01:03:39 +08:00
-
a38d6ca3e2
feat: send word-by-word and translated lyrics to clients
DiheChen
2026-11-05 01:03:38 +08:00
-
e2364b171e
feat: store word-by-word and translated lyrics
DiheChen
2026-11-05 01:02:25 +08:00
-
bec757c7a5
feat: add translated and word-by-word lyrics for QQ and NetEase
DiheChen
2026-11-04 23:50:21 +08:00
-
8640da55e1
fix: send prepared results only for the playing entry between instances
DiheChen
2026-11-04 23:50:20 +08:00
-
0c12c92d1f
fix: recover playback after media errors
DiheChen
2026-11-04 22:06:41 +08:00
-
8b13436ba7
test: cover player sync and lifecycle
DiheChen
2026-11-04 21:31:47 +08:00
-
6d6163a9de
test: cover search request races
DiheChen
2026-11-04 21:28:32 +08:00
-
be016479ac
test: cover browser history writes and modal markers
DiheChen
2026-11-04 21:26:34 +08:00
-
d5e302f83a
test: cover member identity renewal
DiheChen
2026-11-04 21:24:12 +08:00
-
fb8f06e1e4
test: cover realtime connection recovery
DiheChen
2026-11-04 21:22:28 +08:00
-
5b839b9751
fix: check every stored track when restoring a room
DiheChen
2026-11-04 21:18:56 +08:00
-
f38076ce34
fix: keep prepared media when a job runs again
DiheChen
2026-11-04 21:18:08 +08:00
-
76b97fb6ab
ci: revert automated IDL releases and changelogs
DiheChen
2026-11-04 11:52:54 +08:00
-
ef2c8c1a8e
ci: automate IDL releases and changelogs
azmiao
2026-11-04 11:33:25 +08:00
-
a8a5204a24
fix: pair each QQ vkey filename with its songmid
DiheChen
2026-11-04 00:23:19 +08:00
-
ec9d5e78f7
fix: load avatars from Gravatar mirrors when Gravatar is unreachable
DiheChen
2026-11-03 04:16:33 +08:00
-
eed1b3989b
fix: cap media file sizes in the prepare pipeline
DiheChen
2026-11-02 22:35:40 +08:00
-
41bf78d110
fix: pin compose deployments to a release version
DiheChen
2026-11-02 22:32:31 +08:00
-
b12dfcebb6
fix: cap persistent room queues at 200 entries
DiheChen
2026-11-02 22:00:14 +08:00
-
f6be3c5044
fix: rate limit ephemeral room picks before querying upstream
DiheChen
2026-11-02 21:49:46 +08:00