Commit Graph

143 Commits

Author SHA1 Message Date
wvffle ebea32faf9 Replace gettext with i18n 2022-11-28 10:16:58 +00:00
jo 054a9e54f5
docs: fix spelling errors (pre-commit) 2022-11-24 01:43:36 +01:00
wvffle 6b537cb8bb Fix RegExpArrayMatch guard 2022-11-22 19:39:51 +00:00
wvffle 07b068a342 Fix volume gain not being applied immediately 2022-11-16 07:04:02 +00:00
wvffle 839a80b3ac Fix #1945 and #1943 2022-11-06 09:58:15 +00:00
wvffle e259e3dd74 Fix player closing when queue ends 2022-11-04 13:54:04 +00:00
wvffle 64a5ee3c69 Set higher mesh size for MilkDrop 2022-11-04 13:20:22 +00:00
wvffle 5eff89920a Add MilkDrop 2022-11-04 13:20:22 +00:00
wvffle 298cd1afae Add selected theme computed 2022-11-02 20:51:16 +00:00
Philipp Wolfer 7c9959831e Fix dark/light theme showing as selected when "auto" is chosen 2022-11-02 20:51:16 +00:00
wvffle 3fe7d28d5d Fix player migration errors 2022-10-31 23:02:40 +01:00
wvffle ece2c468ca Delegate queue migration 2022-10-31 23:02:40 +01:00
wvffle e4759d14c9 Old queue migration system 2022-10-31 23:02:40 +01:00
Georg Krause f85ce70ff2
chore: Remove last bit of removed WebWorker component 2022-10-30 19:20:36 +01:00
wvffle e7349bf75e
Remove unused webworker module 2022-10-30 19:20:36 +01:00
wvffle 3ae5adc7ba
Fix playback of some token protected resources 2022-10-30 19:20:35 +01:00
wvffle 4cd7ca2cb4
Fall back to memory if indexedDB is unavailable 2022-10-30 19:20:35 +01:00
wvffle cb5e6f1848
More indexedDB cleanup 2022-10-30 19:20:35 +01:00
wvffle eba18cede3
Cleanup indexedDB when queue clears and when instance changes 2022-10-30 19:20:35 +01:00
wvffle 5616c9f066
Ensure we do not get undefineds from indexedDB 2022-10-30 19:20:35 +01:00
wvffle 34d4f3b25b
Fix transcoded track and add info if there are no track sources 2022-10-30 19:20:34 +01:00
wvffle ab8699783d
Fix looping 2022-10-30 19:20:34 +01:00
wvffle d90f41ec51
Fix some linting problems 2022-10-30 19:20:32 +01:00
wvffle db932f2470
Add track position 2022-10-30 19:17:56 +01:00
wvffle 8c62d516b0
Resolve race condition 2022-10-30 19:17:56 +01:00
wvffle 0118fe0c63
Resolve TODOs 2022-10-30 19:17:56 +01:00
wvffle 4376e40e26
Fix shuffling 2022-10-30 19:17:55 +01:00
wvffle f51007b807
Fetch only new queue tracks from indexedDB 2022-10-30 19:17:55 +01:00
wvffle 9f36c4b3a8
Cleanup old queue and player logic 2022-10-30 19:17:55 +01:00
wvffle f06464ffa2
Fix calling createTrack multiple times when radio track changes 2022-10-30 19:17:55 +01:00
wvffle c828e106b0
Add radio support 2022-10-30 19:17:55 +01:00
wvffle 1be6701752
Fix changing songs and add LRU cache 2022-10-30 19:17:54 +01:00
wvffle ccb905b004
Migrate queue component 2022-10-30 19:17:54 +01:00
wvffle bef0d1dec4
WIP Rewrite queue 2022-10-30 19:17:54 +01:00
wvffle 15f5056a59
Add web worker communication for offloading the main thread 2022-10-30 19:17:53 +01:00
wvffle aba816e8bf
Add queue shuffling 2022-10-30 19:17:53 +01:00
wvffle c08e1fad94
WIP: Rewrite queue 2022-10-30 19:17:51 +01:00
wvffle de3d112434
Add listen submitting (Fix #1874) 2022-10-30 19:16:29 +01:00
wvffle 7c68fee276
Add track looping logic 2022-10-30 19:16:29 +01:00
wvffle e47dbc5ab5
Add Sound implementation 2022-10-30 19:16:26 +01:00
wvffle 7b17c46987
Create audio system based on Web Audio API 2022-10-30 19:12:46 +01:00
Kasper Seweryn 56a1058539 Fix global shortcuts 2022-09-25 15:18:11 +00:00
Kasper Seweryn b04b2ece50 Fix trackListened not being sent when tab is not focused 2022-09-17 13:08:41 +00:00
wvffle fb4f94fb73 Fix search and dynamic ordering (#1567) 2022-09-06 09:26:36 +00:00
wvffle 436a76928f Resolve most type conflicts 2022-09-06 09:26:36 +00:00
wvffle e7da8b5f43 Resolve some TODOs 2022-09-06 09:26:36 +00:00
wvffle 6431d0285c Add notification for unhandled errors 2022-09-06 09:26:36 +00:00
wvffle ee975e5854 Add error handler in all unhandled places 2022-09-06 09:26:36 +00:00
wvffle c1494c8894 Migrate some components 2022-09-06 09:26:36 +00:00
wvffle 7eca32e006 Couple fixes 2022-09-06 09:26:36 +00:00
wvffle b3a08c8688 Migrate user menu 2022-09-06 09:26:36 +00:00
wvffle 68f2450c93 Migrate FileUpload component and fix uploading files 2022-09-06 09:26:36 +00:00
wvffle e6bc1ab655 Fix some glitchtip errors 2022-09-06 09:26:36 +00:00
wvffle 5ea5ad3c2a Use navigation guards and migrate a couple of components 2022-09-06 09:26:36 +00:00
wvffle 1d4a3468ee Revert "Rewrite player logic"
This reverts commit ec630a234ab5ea0dccddaf06c462536bbf1ed329.
2022-09-06 09:26:36 +00:00
wvffle 06310593ac WIP: Experiment with MediaElementAudioSourceNode 2022-09-06 09:26:36 +00:00
wvffle 97e7049333 Rewrite player logic
This commit will bring:
- Gapless play! (Fix #739)
- Chunked queue shuffling - we play first track after first 50 queue items are shuffled, then we shuffle chunks of 50 queue items with each new animation frame.
- We can now restore original queue order after shuffling! (Part of #1506)
- Preloading whole tracks into LRU cache (Should fix #1812)
- Preloading multiple tracks at once
2022-09-06 09:26:36 +00:00
wvffle f06c040b50 Add markdown enhancements
This commit will bring:
- Linking to other users with `@username`
- Linking to tags with `#tag`
- Opening external links in new tab (Fix #1647)
- Single line breaks to avoid confusion for non-technical users (Fix #1377)
- 😒 support...
- Email encoding in markdown
- Markdown editor now auto-resizes to accomodate content (Fix #1379)

NOTE: This only works in very few places. We need to wait for #1835 to have those features available widely
2022-09-06 09:26:36 +00:00
wvffle 801c04c07e Fix radios starting from second track 2022-09-06 09:26:36 +00:00
wvffle c87bf7e6b8 Queue component enhancements
This commit provides following queue component enhancements:
- Use a virtual list to render queue items. We now render ~25-30 items at once compared to `queue.length` items. (Fix #1471)
- Faster queue opening and a smoother open animation. (Fix #1471)
- Faster song enqueueing: When enqueueing a playlist or an album, we modify the state only once compared to `tracks.length` modifications before.
- When opening the queue, current track is now already pre-scrolled and centered. This resolves an issue with big queues, where the track list was slowly scrolling to a random position.
- Dragging a track onto the edge of the track list will now scroll the container. You reorder a track from the very top to the very bottom even when you have 3000 tracks in the queue!
- Ability to use scroll wheel while reordering track items
- Track reordering on mobile devices! Currently dragging to edge is disabled
- Responsivity fixes
- Allow click outside modal (Fix #1581)
2022-09-06 09:26:36 +00:00
wvffle bd1a92c5f1 Set `operator-linebreak` to `before` 2022-09-06 09:26:36 +00:00
wvffle 34610670c6 Fix #1381 2022-09-06 09:26:36 +00:00
wvffle 951d339904 Fix audio playback 2022-09-06 09:26:36 +00:00
wvffle bbdb3dcb9d Fix auto-fixable linter issues 2022-09-06 09:26:36 +00:00
wvffle 405eed0c0f Add semantic ui types 2022-09-06 09:26:36 +00:00
wvffle a37835a9c2 Allow displaying multiple same tracks in track list
Well, there was some error with `@mouseleave` not firing in some cases for some weird reason, so I decided to handle the `hover` prop in the container
2022-09-06 09:26:36 +00:00
wvffle 0251789f82 Fix a bunch of typescript errors 2022-09-06 09:26:36 +00:00
wvffle 8d5464c28e Workaround vuejs/core/pull/4512 2022-09-06 09:26:36 +00:00
wvffle 77594351ae Remove PlayOptions and Report mixins 2022-09-06 09:26:36 +00:00
wvffle 7d8d1a414d Fix #1777 2022-09-06 09:26:36 +00:00
wvffle 57692dcf6a Fix queue and player bugs 2022-09-06 09:26:36 +00:00
wvffle a43059899c Move track playing logic to usePlayer and useSound 2022-09-06 09:26:36 +00:00
wvffle 54a33cd14e Fix audio playback 2022-09-06 09:26:36 +00:00
wvffle cec34d49fa Rewrite player component to script setup 2022-09-06 09:26:36 +00:00
wvffle 8c11b6d0ea Rewrite queue 2022-09-06 09:26:36 +00:00
wvffle d57932444b Cleanup ordering composable 2022-09-06 09:26:36 +00:00
wvffle 33dfeea168 Fix router navigation 2022-09-06 09:26:36 +00:00
wvffle 78cdb592c5 Cleanup defaultPaginateBy and fix onMounted missing from imports 2022-09-06 09:26:36 +00:00
wvffle a8fd0e3f28 Migrate rest of ordering/pagination mixins to composables 2022-09-06 09:26:36 +00:00
wvffle 21e5d8ddf0 Fix actions not being arrays in components using smart search 2022-09-06 09:26:36 +00:00
wvffle 344f1af058 Add useSmartSearch composable 2022-09-06 09:26:36 +00:00
Kasper Seweryn 3ab0435f27 Migrate pagination to v-model and start moving away from mixins 2022-09-06 09:26:36 +00:00
Kasper Seweryn 0b53ec5b1c Add store types and fix other type errors 2022-09-06 09:26:36 +00:00
Kasper Seweryn 9e0596d136 Move *.js to *.ts 2022-09-06 09:26:36 +00:00
Kasper Seweryn 16d437be62 Migrate Translations mixin to useSharedLabels composable 2022-09-06 09:26:36 +00:00
Kasper Seweryn 12b09b085a Refactor ~/logging.ts to a useLogger composable 2022-09-06 09:26:36 +00:00
Kasper Seweryn b3022c26b6 Add onKeyboardShortcut composable
Fixes #1726
2022-09-06 09:26:36 +00:00
Kasper Seweryn db7c0444b4 Migrate to vue3-lazyload 2022-09-06 09:26:36 +00:00
Kasper Seweryn 7c5d259c2b Add vue 3 and compat 2022-09-06 09:26:36 +00:00
Kasper Seweryn 934f802be2 Cleanup updateQueryString composable 2022-09-06 09:26:36 +00:00
Kasper Seweryn f61fafec2a Remove '@/' 2022-09-06 09:26:36 +00:00
Kasper Seweryn 615a801b89 Fix app rendering 2022-09-06 09:26:36 +00:00
Kasper Seweryn 2b40707f4f Cleanup a lot of stuff
I've replaced `lodash` with `lodash-es`, so it can be tree-shaken

`~/modules` is a directory with application modules that run before app is mounted. Useful for configuration, web socket connection, and other stuff

`~/composables` is a directory with our custom composables. Much like `~/utils` but each util is in its own file
2022-09-06 09:26:36 +00:00