Daniel
a385cb558a
fix(api): use an instance for /recommendations
2026-03-20 13:02:48 -05:00
Daniel
f2b8cdc812
feat(downloads): add metadata to videos
2026-03-20 12:52:07 -05:00
Daniel
8edca3678d
fix(api): remove domain checks from searchVideos
2026-03-20 11:57:38 -05:00
Daniel
b48ee588aa
fix(api): don't cache direct queries
...
This also adds a global `window.allTidal` flag to force all queries to go through the API, which is useful for testing.
2026-03-20 11:54:04 -05:00
Daniel
47b8c36594
fix(api): use direct queries when possible
2026-03-20 11:38:31 -05:00
binimum
f378552028
refactor: add formatTemplate import to downloads.js
2026-03-20 00:33:05 +00:00
binimum
5bb8713bbf
refactor: update MediaPlayer import and add platform detection
2026-03-19 21:01:29 +00:00
edidealt
0b2b91a8a4
fix builds
2026-03-19 20:49:16 +00:00
Daniel
c19dbcf52a
refactor: adjust imports to allow for file splitting
...
- dynamically import router
- dynamically import visualizers
- update import syntax for am-lyrics to use dynamic import syntax
2026-03-19 15:34:51 -05:00
Daniel
4e2a595504
refactor(hls/dash): externalize hls.js and dashjs to reduce initial bundle size
2026-03-19 15:34:51 -05:00
Daniel
e2a09b9b32
refactor: externalize svg images and add new vite plugin
...
The plugin runs all imported SVG files through svgo.
For index.html, you can use the following syntax:
```html
<use svg="file.svg" size="24" />
```
For scripts, use the `?svg` import query
```javascript
import SVG_FILE from './file.svg?svg&size=24
```
Note: size is shorthand for specifying both width and height individually. You can also set any property of the base SVG element.
You can also use the `?svg&icon` query to return a function that allows dynamically resizing the SVG string.
2026-03-19 15:28:33 -05:00
edidealt
affb6dd5de
Merge pull request #350 from DanTheMan827/replace-taglib-wasm
...
Replace taglib-wasm with taglib-ts
2026-03-19 22:22:38 +02:00
edidealt
6b986402ff
Merge pull request #351 from DanTheMan827/optimistic-local-scan
...
Render local files in UI as scanned
2026-03-19 22:22:14 +02:00
edidealt
fc4adfcd32
Merge pull request #352 from DanTheMan827/minor-fixes
...
A collection of fixes
2026-03-19 22:21:53 +02:00
Daniel
7c5424437e
feat(ffmpeg): add WAV format support and detection for use in dev mode
...
- Added WAV format to customFormats with appropriate metadata.
- Implemented detection for RIFF/WAVE format in detectAudioFormat function.
2026-03-19 15:14:52 -05:00
Daniel
895d5dd20f
feat(metadata): replace taglib-wasm with @dantheman827/taglib-ts
...
- feat(taglib): updated audio buffer handling in metadata.js to use Uint8Array.
- feat(taglib): refactored addMetadataToAudio to support return type as Blob or Uint8Array
- feat(taglib): add timeout functionality to metadata functions
- Introduced `withTimeout` utility function to handle operation timeouts.
- Updated `addMetadataWithTagLib` to use `withTimeout` for promise resolution.
- Updated `getMetadataWithTagLib` to use `withTimeout` for promise resolution.
- Added default timeout parameter to both metadata functions.
- feat(taglib): improve metadata handling with ChunkedByteVectorStream
- Enhanced metadata handling in taglib.ts and taglib.worker.ts to utilize ChunkedByteVectorStream.
- fix(taglib): handle metadata addition failure gracefully
- Updated `addMetadataWithTagLib` to catch errors and return original audio data if metadata addition fails.
fix(downloads): return original blob if metadata addition fails
- Wrap addMetadataToAudio call in try-catch to handle errors.
feat(taglib): add direct calling of taglib methods
- Introduced `direct` parameter to `addMetadataWithTagLib` and `getMetadataWithTagLib` functions for direct processing in the current thread.
- Exported taglib worker functions.
2026-03-19 15:14:52 -05:00
Daniel
98953b4572
feat(local-files): initialize localFilesCache and render local files in UI after each track is scanned
2026-03-19 15:13:13 -05:00
Daniel
cd64239ba1
refactor(downloads): add readableStreamIterator for easier stream handling
...
- Introduced `readableStreamIterator` to convert ReadableStream into async iterable.
- Updated `LosslessAPI` to utilize `readableStreamIterator` for handling response body.
- Modified `ZipNeutralinoWriter` to use `readableStreamIterator` for reading chunks.
2026-03-19 15:12:24 -05:00
Daniel
61aebf7994
refactor(metadata): move METADATA_STRINGS to separate file
2026-03-19 15:11:37 -05:00
Daniel
fd06160f7e
refactor(doTimed): refactor error handling and skip timing when not in dev mode
2026-03-19 15:11:15 -05:00
Daniel
b7cac5724d
fix(downloads): don't disable hi-res downloads on iOS or Safari
...
Just because the browser can't play them doesn't mean the user may not want to download them
2026-03-19 15:11:15 -05:00
Daniel
393491e2c8
refactor(platform-detection): add platform-detection.ts for browser and platform detection
2026-03-19 15:09:58 -05:00
Daniel
c315d2dfcd
fix(downloads): update lossless quality labels
2026-03-19 15:09:58 -05:00
Daniel
2a4136a5f6
fix(downloads): progress index now shows correct track number in bulk download
2026-03-19 15:07:28 -05:00
edidealt
992974d790
fix image uploads
2026-03-19 18:58:15 +00:00
Nohan-V2
a18e865906
Fix settings persistence: ReplayGain Pre-Amp and Gapless Playback
2026-03-17 22:13:02 +01:00
edidealt
6b1619d2c3
more generas in the hot and new section
2026-03-17 20:40:55 +00:00
edideaur
e5b4cf6adf
Merge pull request #335 from Xenuel/feature/in-your-library
...
feat(ui): add "In Your Library" section to artist detail page
2026-03-17 11:00:11 +02:00
Samidy
971b5c94be
Feat(Hot/New): Add R&B & Kids Genre Section
2026-03-17 06:04:27 +03:00
Samidy
07d78798cd
feat(hot & new): metal genre
2026-03-17 04:36:49 +03:00
Xenuel
43f816ad25
refactor(ui): improve accessibility and security in "In Your Library" section
...
Replace h2 toggle with semantic button and aria-expanded attribute,
switch from style.display to hidden attribute for visibility control,
use DOM methods instead of innerHTML for source labels and modal
options to prevent XSS, improve artist matching with ID-based lookup,
and clean up event listeners before re-attaching to prevent leaks.
2026-03-16 23:46:25 +01:00
Xenuel
52d5166363
feat(ui): add "In Your Library" section to artist detail page
...
Show liked tracks and playlist tracks by the artist with source
labels, collapsible chevron toggle, and real-time updates via
favorites-changed and playlist-tracks-changed events.
2026-03-16 22:38:29 +01:00
Samidy
b7aaa37578
add new pinkhamster instance
2026-03-16 23:46:27 +03:00
edideaur
5c7776abb7
actually refresh instances on refresh...
2026-03-16 19:41:01 +00:00
edideaur
6e39cad73d
fix (remove spotisaver blacklist)
2026-03-16 16:16:57 +00:00
itsmo-ks
6fcb9656ae
Enhance Docker and environment variable handling for authentication features
2026-03-15 22:32:02 +00:00
itsmo-ks
abcc33ba38
Fix Clear Recently played
2026-03-15 14:00:44 +00:00
edideaur
7b70e55895
Merge pull request #326 from lsmda/feature/add-strict-album-match-toggle-on-playlist-creation
...
feat(playlists): add strict album match toggle on CSV tab import
2026-03-15 13:47:58 +02:00
Srihari NT
677f515e4d
fix(ui): fullscreen volume above taskbar, settings overflow, download progress
...
- #322 : Fullscreen overlay padding and main-view scrollable so volume stays above taskbar when Up next is shown
- #313 : Settings tab content constrained on small displays with max-width, min-width, overflow-x
- #278 : HEAD request before GET for download to get Content-Length for progress bar; resolveDownloadTotalBytes in downloadProgressUtils.js
2026-03-15 15:41:32 +05:30
lsmda
6b38809fd7
feat(playlists): add strict album matching toggle on playlist creation modal
2026-03-15 02:17:15 +00:00
itsmo-ks
c64065f913
Fixed Reset Local Data
2026-03-15 01:17:20 +00:00
Samidy
08652f78ec
fix(playlist-imports): dont fucking push to liked
2026-03-14 03:32:11 +03:00
Samidy
99debbb7b2
feat(APIs): custom api instances
2026-03-14 02:58:22 +03:00
binimum
33d3c6c51a
fix(lyrics): update track title retrieval to use getTrackTitle function
...
chore(deps): update @uimaxbai/am-lyrics to version 1.1.4 in package.json and package-lock.json
2026-03-13 19:57:24 +00:00
Mrigakshi Roy Choudhury
3880bc2740
fix(library): show playlist in library on csv import
2026-03-14 00:25:21 +05:30
Samidy
43a5f1b714
fix(local files): metadata artist garbage
2026-03-13 05:28:49 +03:00
Samidy
3591ed7157
fix(album-imports): get them to actually work
2026-03-13 04:51:04 +03:00
Samidy
f513ce27e4
feat(unreleased): lyrics on unreleased
2026-03-13 02:58:57 +03:00
Daniel
a36ae22f4f
feat: add blob-url support and integrate blob asset plugin for Vite
2026-03-12 22:34:37 +00:00
Daniel
bc1c97dc1f
Revert "fix: update ffmpeg imports to use URL loader for core JS and WASM"
...
This reverts commit 14817a3314 .
2026-03-12 21:01:32 +00:00
Daniel
a4d92b0759
feat(downloads): implement SequentialFileWriter for individual file downloads
2026-03-12 20:47:48 +00:00
Daniel
25c338fac3
refactor: improve progress updates
2026-03-12 20:47:47 +00:00
Daniel
574e42ba1e
feat(downloads): dash progress / remove nearly duplicate downloadTrackBlob logic from downloads.js
2026-03-12 20:47:46 +00:00
Daniel
4445cdcd2e
fix(taglib): worker initialization
...
This was mangled during a merge operation.
2026-03-12 20:47:45 +00:00
edideaur
b31be7dc80
Fix bulk download edge cases and improve robustness
...
- FolderPickerWriter: throw AbortError on cancel instead of returning null
- FolderPickerWriter: add try/catch with abort() to release file locks on failure
- ZipNeutralinoWriter: move writeBinaryFile after response.body validation
- bulkDownloadSettings: migrate legacy key and validate stored values
- download-utils: catch ffmpeg cancellation via signal.aborted
- downloads.js: use consistent Neutralino detection with bridge module
- download-utils: use strict equality for flac extension check
2026-03-12 19:35:23 +00:00
edideaur
a776e24aee
Merge pull request #303 from DanTheMan827/copilot/extract-duplicated-code-to-ts
...
Extract shared download utilities and abstract bulk download handlers + new folder picker support
2026-03-12 21:18:47 +02:00
Daniel
37a74ad755
refactor(downloads/ffmpeg): refactor ffmpeg usage and add additional logging for ffmpeg
2026-03-12 16:02:44 +00:00
Daniel
c865b21bf5
refactor: ffmpeg customFormats/containerFormats are now an object
2026-03-12 15:24:54 +00:00
Daniel
14817a3314
fix: update ffmpeg imports to use URL loader for core JS and WASM
2026-03-12 14:57:57 +00:00
Daniel
9226515bcf
feat: update client-zip to version 2.5.0 and adjust import in bulk-download-writer.ts
2026-03-12 14:46:52 +00:00
Samidy
3fc74738a5
this barely ever worked anyways lets just remove smooth scrolling
2026-03-12 10:16:38 +03:00
Daniel
079198c59e
fix: improve discNumber formatting in formatTemplate function
2026-03-12 06:48:34 +00:00
Daniel
b04019f282
fix(downloads): mp4 files with flac audio are now tagged
...
This is resolved by using ffmpeg to copy the audio data into a new mp4 container file before passing it to taglib.
2026-03-12 06:43:45 +00:00
Daniel
c1552980eb
feat: extract bulk download handlers into bulk-download-writer.ts and add folder picker + settings
2026-03-12 06:04:59 +00:00
copilot-swe-agent[bot]
c9a1f49f23
feat: extract duplicated download utilities from api.js and downloads.js into download-utils.ts
...
Co-authored-by: DanTheMan827 <790119+DanTheMan827@users.noreply.github.com>
2026-03-12 06:04:59 +00:00
Samidy
51b88cc5e8
cdn to package for am-lyrics
2026-03-12 09:00:27 +03:00
Samidy
86df459dc1
chore(logs): remove accidental debug log for fetching tracks from artists (HOW DID I FORGET TO DO THIS FOR MONTHS LMFAOOO)
2026-03-12 07:53:51 +03:00
SamidyFR
7e6375919d
style: auto-fix linting issues
2026-03-12 04:12:28 +00:00
Samidy
30b2e7d445
fix(downloading): hi-res M4A's having no embedded covers (FUCK YOU TAGLIB)
2026-03-12 07:12:02 +03:00
Samidy
0ed82f586c
didnt get it all lol
2026-03-12 05:59:20 +03:00
Samidy
34c3f8dbcf
Apply suggestion from @coderabbitai[bot]
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-12 05:04:42 +03:00
Samidy
3814358f0d
Merge branch 'main' into copilot/fix-m3u-generation-logic
2026-03-12 05:01:20 +03:00
Samidy
5b4bff97e0
Merge branch 'main' into copilot/add-custom-download-formats
2026-03-12 04:56:28 +03:00
Samidy
8b09635272
Merge pull request #297 from DanTheMan827/copilot/fix-invalid-total-tracks
...
Fix per-disc track total and add total disc count to embedded metadata
2026-03-12 04:55:26 +03:00
Samidy
4728455b90
Merge branch 'main' of github.com:monochrome-music/monochrome
2026-03-12 02:49:00 +03:00
Samidy
5e55e141da
feat(missing-songs-import): export missing songs to CSV or copy to clipboard
2026-03-12 02:48:55 +03:00
SamidyFR
6efd88b31e
style: auto-fix linting issues
2026-03-11 23:04:04 +00:00
Samidy
f576b35ce8
Merge branch 'main' of github.com:monochrome-music/monochrome
2026-03-12 02:03:40 +03:00
Samidy
4b7833dc8e
update outdated self-hosting shit
2026-03-12 02:03:36 +03:00
Daniel
4def7b8e51
Merge branch 'combined-fixes' into copilot/fix-m3u-generation-logic
2026-03-11 15:20:30 -05:00
Daniel
7448ddce1e
feat(downloads): add FLAC - Max Compression option and refactor transcoding logic
2026-03-11 15:18:39 -05:00
Daniel
2db782d74f
feat(downloads): add custom download formats
2026-03-11 15:18:39 -05:00
Daniel
e1d7744ab2
fix: correct total tracks per disc and add total discs to metadata for multi-disc albums
2026-03-11 15:17:17 -05:00
Daniel
aa728f970b
feat(downloads): add discNumber template for file name.
...
Also update disc number handling in download logic and metadata extraction
2026-03-11 20:10:38 +00:00
Daniel
8cf7979d47
fix(downloads): cue generation now properly outputs correct tracks numbers and splits by disc
2026-03-11 20:00:44 +00:00
Daniel
33668ae118
fix: correct total tracks per disc and add total discs to metadata for multi-disc albums
2026-03-11 19:26:30 +00:00
Daniel
3e24470401
feat(downloads): add FLAC - Max Compression option and refactor transcoding logic
2026-03-11 19:26:05 +00:00
Daniel
3f2651633b
feat(downloads): add custom download formats
2026-03-11 19:26:05 +00:00
edideaur
84df59624e
style: auto-fix linting issues
2026-03-11 12:43:15 +00:00
edideaur
d8fdaac508
Merge pull request #300 from KalerKaler/fix/fixed-lcd-pixels-visualizer-and-visualizer-switching
...
fix(visualizer): correct LED layout and visualizer switching
2026-03-11 14:42:48 +02:00
Kaler
bb44b7559d
fix(visualizer): correct LED layout and switching logic
2026-03-11 12:51:44 +05:30
SamidyFR
108387ac7a
style: auto-fix linting issues
2026-03-11 07:12:10 +00:00
Samidy
ffdcc1d396
THERE YOU SHITHEAD
2026-03-11 10:11:38 +03:00
SamidyFR
a35b51f8cd
style: auto-fix linting issues
2026-03-11 06:28:37 +00:00
Samidy
6fd334f74d
PLEASE JUST FUCKING WORK WHAT
2026-03-11 09:28:03 +03:00
SamidyFR
3c51d45d74
style: auto-fix linting issues
2026-03-11 06:14:00 +00:00
Samidy
c4af3ea204
Merge branch 'main' of github.com:monochrome-music/monochrome
2026-03-11 09:13:33 +03:00
Samidy
17964a8bc9
fix media playback errors in firefox
2026-03-11 09:13:28 +03:00
Samidy
07003f92f0
fix toggle UI console errors + volume button disappearing for no reason
2026-03-11 08:36:11 +03:00
SamidyFR
12baaaa55f
style: auto-fix linting issues
2026-03-11 05:23:57 +00:00