Commit Graph

  • 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