- Use `compilation=false` for Navidrome recent releases with artist credit
- Add `YesNoSelect` (yes, no, undefined) for `favorite` for Navidrome/Jellyfin `album`/`track`, and Navidrome `compilation`
- Fix folderButton translation
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (676 of 676 strings)
Co-authored-by: ENDzZ <godzmichael@outlook.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Finnish)
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Finnish)
Currently translated at 100.0% (680 of 680 strings)
Co-authored-by: ENDzZ <godzmichael@outlook.com>
Co-authored-by: jonoafi <joona@jonottaa.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fi/
Translation: feishin/Translation
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (676 of 676 strings)
Co-authored-by: ENDzZ <godzmichael@outlook.com>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translation: feishin/Translation
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (680 of 680 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (676 of 676 strings)
Co-authored-by: ENDzZ <godzmichael@outlook.com>
Co-authored-by: Fjuro <git@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
- Jellyfin: Uses `/items/filters` to get list of boolean tags. Notably, does not use this same filter for genres. Separate filter for song/album
- Navidrome: Uses `/api/tags`, which appears to be album-level as multiple independent selects. Same filter for song/album
- Parses `tags` for Navidrome (mapping string: string[])
- Parses `Tags` (and fetches for it) for Jellyfin (map a string to empty, and display as a bool)
- Clean parsing of participants for Navidrome/Subsonic
- Only show `People` for Jellyfin, not clickable
Currently translated at 100.0% (657 of 657 strings)
Translated using Weblate (Finnish)
Currently translated at 77.3% (508 of 657 strings)
Translated using Weblate (Finnish)
Currently translated at 69.2% (455 of 657 strings)
Translated using Weblate (Finnish)
Currently translated at 64.9% (427 of 657 strings)
Translated using Weblate (Finnish)
Currently translated at 64.9% (427 of 657 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lunya <Lunya2@protonmail.com>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: jonoafi <joona@jonottaa.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fi/
Translation: feishin/Translation
Currently translated at 47.4% (312 of 657 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 41.0% (270 of 657 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 30.2% (199 of 657 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 20.2% (133 of 657 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: klodrik <klodrik@zoominn.no>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/
Translation: feishin/Translation
Currently translated at 64.6% (425 of 657 strings)
Translated using Weblate (Persian)
Currently translated at 62.7% (412 of 657 strings)
Translated using Weblate (Persian)
Currently translated at 39.2% (258 of 657 strings)
Co-authored-by: Hadi <xhopeter@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fa/
Translation: feishin/Translation
Currently translated at 100.0% (657 of 657 strings)
Translated using Weblate (Indonesian)
Currently translated at 6.0% (40 of 657 strings)
Added translation using Weblate (Indonesian)
Co-authored-by: Fadilah Riczky <friczky@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/id/
Translation: feishin/Translation
* Add play button to song table album cover, like it is in grid
* Fix: play button caused error for albums and artists tables
* Fix: play button caused error for some other tables
Currently translated at 100.0% (634 of 634 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (632 of 632 strings)
Translated using Weblate (Spanish)
Currently translated at 99.8% (631 of 632 strings)
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translation: feishin/Translation
Currently translated at 100.0% (634 of 634 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (632 of 632 strings)
Translated using Weblate (Czech)
Currently translated at 99.6% (630 of 632 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
* add web visualizer
* fallback to simple model
* less samples, hopefully more efficient
* Use audiomotion analyzer
- Note: fixed to 4.1.1 because 4.2.0 uses esm which breaks in the current workflow...
* revert publish changes
* r2
* don't massively change package.json
* lazy
Currently translated at 100.0% (630 of 630 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (630 of 630 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (630 of 630 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (610 of 610 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (595 of 595 strings)
Co-authored-by: ENDzZ <godzmichael@outlook.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Shawn <xiaxinx@gmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (630 of 630 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (622 of 622 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (612 of 612 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (610 of 610 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (604 of 604 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (602 of 602 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (602 of 602 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (602 of 602 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (599 of 599 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (597 of 597 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (595 of 595 strings)
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translation: feishin/Translation
Currently translated at 40.1% (245 of 610 strings)
Translated using Weblate (Dutch)
Currently translated at 40.1% (245 of 610 strings)
Translated using Weblate (Dutch)
Currently translated at 40.0% (244 of 610 strings)
Translated using Weblate (Dutch)
Currently translated at 40.7% (244 of 599 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Idris Saklou <idrissaklou@hotmail.com>
Co-authored-by: Joren Vansteenkiste <vansteenkiste.joren@telenet.be>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translation: feishin/Translation
Currently translated at 100.0% (630 of 630 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (621 of 621 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (612 of 612 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (610 of 610 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (604 of 604 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (599 of 599 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (595 of 595 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
* [scuffed bugfix]: Update table rating/favorite when updated anywhere else
Modify player store to have temporary state for favorite/rating update
Add effect handler for `virtual-table` to update rating/favorite for players
Note that this does not handle song grid view.
Using a similar handler for gird view did not work, as it appeared to result in inconsistent state.
Finally, this is probably not the optimal solution.
Performance appears fine for ~20k items, but no guarantees.
* restore should update song
* update song rating/favorite/played everywhere except playlist
* special rule for playlists
* use iterator instead
* Album blur, allow clicking the playerbar to toggle the player
* Fix stopProporagion, sync package with upsteam, update translation
* recommit my existing changes
* Update default albumBackgroundBlur to 6
* according to git this commit resets the package files
* merge with our fork because pyx forgot to add it
* try adding a setting
* change the playerbar animation
* make the animation quicker bc its choppy
* change playerbar to use a bool instead
* requested opacity fix
* Refactor classes to use clsx
---------
Co-authored-by: iiPython <ben@iipython.dev>
Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
Currently translated at 100.0% (593 of 593 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (591 of 591 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (586 of 586 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (586 of 586 strings)
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translation: feishin/Translation
Currently translated at 100.0% (593 of 593 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (591 of 591 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (586 of 586 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
Currently translated at 97.2% (575 of 591 strings)
Translated using Weblate (Russian)
Currently translated at 97.2% (575 of 591 strings)
Translated using Weblate (Russian)
Currently translated at 95.0% (562 of 591 strings)
Translated using Weblate (Russian)
Currently translated at 95.0% (562 of 591 strings)
Translated using Weblate (Russian)
Currently translated at 70.7% (418 of 591 strings)
Translated using Weblate (Russian)
Currently translated at 70.7% (418 of 591 strings)
Co-authored-by: Blueberry <igory.ygr200@gmail.com>
Co-authored-by: Eugeniy <zamelane@vk.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ShaDream <mogilnikovshadream@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ru/
Translation: feishin/Translation
Allow multiple sessions from the same user with different instances.
Instead of sending a hard-coded string, send a randomly generated
string `deviceId`, which already exists and is created for each
new installation.
Currently translated at 100.0% (586 of 586 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (586 of 586 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (586 of 586 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (525 of 585 strings)
Translated using Weblate (French)
Currently translated at 100.0% (570 of 570 strings)
Translated using Weblate (French)
Currently translated at 100.0% (559 of 559 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Italian)
Currently translated at 98.6% (576 of 584 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (565 of 566 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HanaO00 <lwin24452@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Leonardo Pizio <pizio.leonardo@gmail.com>
Co-authored-by: Mistify <fabianszafranski@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
* [bugfix]: Handle top-level songs for Jellyfin
If a song is at the top level of a music folder, Jellyfin will not
group that into an album (See https://jellyfin.org/docs/general/server/media/music/).
This PR introduces a few changes:
- Gives tracks with no album ID a special route (`/dummy/${id}`)
- Gives a new route for dummy albums, warning about the error. This is designed to look _like_ the album detail page
* `are are` > `are`
* revert name changes
- mpris-service: migrate to @jellybrick/mpris-service, which has upgraded dependencies and uses class
- i18next-parser: 6 -> 8. This requires a small change to i18next-parser.config.js
* add share item feature
* take care of (mostly) everything
* bugfixes
* allow clicking on notification to open url
* readd the missing modal after router migration
* remove unnecessary extension
---------
Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
* [enhancement]: Support toggling Album/Track view for gneres
The _primary_ purpose of this PR is to enable viewing tracks OR albums for genres.
This has a few requirements:
1. Ability to set default route for genres, **except** when already on song/album page
2. Ability to toggle between album and genre view
3. Fixed refresh for genre ID
Additionally, there was some refactoring:
- Since the *-list-headers had very similar functions for search, export that as a hook instead
* also use hook for album artist
* support switching albumartist tracks/albums
* remove toggle on song/album list, simplify logic
- Previously, the search page would render initial page in one order, but search itself would be different order
This is resolved by having both virtual-table and search-header using listStoreKey
- When double clicking, now enqueue all the songs using the same sort
- Reset the search when clearing
Resolves#536.
With the previous implementation, next/previous would first update
the current queue and then call next/previous. However, since these were
asynchronous calls it was very likely that the second calls would fail
(and a test of adding delay showed that it actually caused a double skip).
This PR resolves this by just removing the prev/next.
Small other fixes:
- setQueue + pause -> setQueue(..., true)
- make MPV and web player have the same behavior for (pause/stop) where appropriate
Currently translated at 100.0% (549 of 549 strings)
Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate (Czech)
Currently translated at 100.0% (519 of 519 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (519 of 519 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (519 of 519 strings)
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
Currently translated at 98.5% (548 of 556 strings)
Translated using Weblate (German)
Currently translated at 98.5% (548 of 556 strings)
Translated using Weblate (German)
Currently translated at 98.5% (548 of 556 strings)
Translated using Weblate (German)
Currently translated at 93.3% (519 of 556 strings)
Translated using Weblate (German)
Currently translated at 93.3% (519 of 556 strings)
Translated using Weblate (German)
Currently translated at 92.2% (513 of 556 strings)
Translated using Weblate (German)
Currently translated at 92.2% (513 of 556 strings)
Translated using Weblate (German)
Currently translated at 91.5% (509 of 556 strings)
Translated using Weblate (German)
Currently translated at 91.5% (509 of 556 strings)
Translated using Weblate (German)
Currently translated at 91.1% (507 of 556 strings)
Translated using Weblate (German)
Currently translated at 91.1% (507 of 556 strings)
Update translation files
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate (German)
Currently translated at 89.9% (467 of 519 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lokke <accounts.lokke@googlemail.com>
Co-authored-by: Maik <maikguenes2003@gmail.com>
Co-authored-by: Rudi Mentaire <stoertebecker@byom.de>
Co-authored-by: full name <hosted-weblate.5w160@dralias.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translation: feishin/Translation
- Actually make serverfeatures partial
- Navidrome: only set multiple structured lyrics if extension exists
- Navidrome/Subsonic: minor type checking of OS extension (Navidrome implementation detail)
- Jellyfin: add separate knob for lyrics. Note, this should also probably be behind some version check...
* Add an option for a dynamic background image in the fullscreen player
* Center the background image and fix some more bugs
* More cleaning up the background image
* Add option for customizable blur amount
* Fix missing translation key for image blur
* Fix dynamic image shifting when player is opened
* Hide image blur size config if dynamic background is disabled
---------
Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
* fix carousel, full screen metadata improvements
* Add missing mapped keys on multiple artist
* Remove bg opacity on metadata section
* Improve visibility of currently playing song
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
* Moved build to docker stage.
* Do not copy node_modules to the docker image
* Optimize Docker builds
* Lock a predefined server with enviroment variables
* Added a example docker compose file
* Removed useless layer
* Fix error with empty server type
* pass process via preload, use file, strict server check
* remove duplicate content-type
* update readme, docker compose
* bugfix: server lock false, not jellyfin
* fix preload type definition
* fix docker, web server lock check
---------
Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the /. directory: [ip](https://github.com/indutny/node-ip).
Updates `ip` from 1.1.5 to 1.1.9
- [Commits](https://github.com/indutny/node-ip/compare/v1.1.5...v1.1.9)
---
updated-dependencies:
- dependency-name: ip
dependency-type: indirect
dependency-group: npm_and_yarn-security-group
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Resolves#50. Adds a new set of components for fetching similar songs
from the current playing song. For Jellyfin, use the `/items/{itemId}/similar`
endpoint (may not work well for small libraries), and for Navidrome/Subsonic
use `getSimilarSongs`. _In theory_, this component can be used to get similar
songs anywhere.
Resolves#403.
This PR introduces a startup check for Navidrome that tries a simple API request (/songs) before loading homepage.
If the check fails, Navidrome API will fallback to trying saved password (if available).
Notes:
- It might also be worthwhile to do a periodic poll?
* Add customizable resolution for the fullscreen player image
---------
Co-authored-by: iiPython <ben@iipython.dev>
Co-authored-by: Benjamin <iipython@proton.me>
Supports running Feishin solely using web audio (useful for clients with problems with MPV).
Also moves save/restore queue to utils, as MPV object is now optional
* Add a button size setting
* Reduce setting size and add px suffix
* Looks like I don't need || inside of control-settings
* Update translation
* Bump settings version to 7
* [bugfix]: Fix repeated track scrobbling
This commit fixes scrobbling tracks that are repeated in the queue (either due
to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:
1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback
finishes normally, so this is a sort of epoch that can be used to detect both repeat one
and track being enqueued multiple times.
2. The current index changes. The player gets set back to 1 in a variety of cases (most often
previous/next), so the check in (1) is not enough. However, the index changing will help identify
that this is a new song.
* use unique id instead
* [enhancement]: support clearing query and http cache
- Adds the ability to invalidate all queries (useful for forcing refresh, and clearing lyrics which are cached forever)
- [Desktop only] adds the ability to clear the Electron HTTP cache (e.g. cached images)
* use clearer language
* move cache settings to general
Two bugs addressed in response to Safari changes:
1. Only handle `onEnded` for real streams, preventing `autoNext()` spam when the last track finishes
2. `.play()` is not necessarily a safe operation (if empty wave was started, can cause exception later). Catch this exception and discard it. This also only occurred when playing the last track
The prior code used `form.addToPlaylist`, not `.success`. Also fixes English pluralization and
uses the correct `entity.track` as opposed to `entity.song` for other languages (I am not sure
if the en syntax could be applied to other languages, so I will just leave pluralization as-is
for now).
Currently translated at 35.8% (186 of 519 strings)
Translated using Weblate (Dutch)
Currently translated at 32.3% (168 of 519 strings)
Translated using Weblate (Dutch)
Currently translated at 15.2% (79 of 519 strings)
Added translation using Weblate (Dutch)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Idris Saklou <idrissaklou@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translation: feishin/Translation
Currently translated at 94.9% (492 of 518 strings)
Translated using Weblate (French)
Currently translated at 94.2% (488 of 518 strings)
Translated using Weblate (French)
Currently translated at 94.2% (488 of 518 strings)
Translated using Weblate (French)
Currently translated at 90.3% (468 of 518 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <KosmoMoustache@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translation: feishin/Translation
Currently translated at 100.0% (518 of 518 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (518 of 518 strings)
Added translation using Weblate (Czech)
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
Currently translated at 87.0% (451 of 518 strings)
Translated using Weblate (German)
Currently translated at 87.0% (451 of 518 strings)
Translated using Weblate (German)
Currently translated at 62.7% (325 of 518 strings)
Translated using Weblate (German)
Currently translated at 62.7% (325 of 518 strings)
Translated using Weblate (German)
Currently translated at 59.6% (309 of 518 strings)
Translated using Weblate (German)
Currently translated at 59.6% (309 of 518 strings)
Translated using Weblate (German)
Currently translated at 56.9% (295 of 518 strings)
Translated using Weblate (German)
Currently translated at 56.9% (295 of 518 strings)
Translated using Weblate (German)
Currently translated at 55.4% (287 of 518 strings)
Translated using Weblate (German)
Currently translated at 55.4% (287 of 518 strings)
Translated using Weblate (German)
Currently translated at 53.8% (279 of 518 strings)
Translated using Weblate (German)
Currently translated at 53.8% (279 of 518 strings)
Translated using Weblate (German)
Currently translated at 1.9% (10 of 518 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kobayashi <kobayashi90@protonmail.ch>
Co-authored-by: Rudi Mentaire <stoertebecker@byom.de>
Co-authored-by: ThetaDev <t.testboy@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translation: feishin/Translation
Currently translated at 23.5% (122 of 518 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 22.5% (117 of 518 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 13.3% (69 of 518 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rafael Vieira <rafaelvieiras@pm.me>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pt_BR/
Translation: feishin/Translation
Currently translated at 100.0% (518 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (518 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.8% (517 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (518 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 95.5% (495 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 92.8% (481 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 91.5% (474 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.7% (465 of 518 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kaiyang Wu <self@origincode.me>
Co-authored-by: kare-Udon <laoliu735@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Updated by "Remove blank strings" hook in Weblate.
Translated using Weblate (Chinese (Simplified))
Currently translated at 89.5% (464 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 56.7% (294 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 51.9% (269 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 51.1% (265 of 518 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 52.0% (265 of 509 strings)
Co-authored-by: Darwin <daerwendeshu@outlook.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: kare-Udon <laoliu735@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 100.0% (518 of 518 strings)
Translated using Weblate (Spanish)
Currently translated at 99.8% (517 of 518 strings)
Translated using Weblate (Spanish)
Currently translated at 99.2% (514 of 518 strings)
Translated using Weblate (Spanish)
Currently translated at 88.6% (459 of 518 strings)
Translated using Weblate (Spanish)
Currently translated at 88.4% (458 of 518 strings)
Translated using Weblate (Spanish)
Currently translated at 88.4% (458 of 518 strings)
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jeff <jeffvictorli@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translation: feishin/Translation
Currently translated at 94.2% (488 of 518 strings)
Translated using Weblate (Italian)
Currently translated at 5.5% (29 of 518 strings)
Translated using Weblate (Italian)
Currently translated at 5.0% (26 of 518 strings)
Translated using Weblate (Italian)
Currently translated at 4.2% (22 of 518 strings)
Added translation using Weblate (Italian)
Co-authored-by: Aurora <arci@anche.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translation: feishin/Translation
Currently translated at 98.8% (512 of 518 strings)
Translated using Weblate (Polish)
Currently translated at 83.2% (431 of 518 strings)
Translated using Weblate (Polish)
Currently translated at 83.2% (431 of 518 strings)
Translated using Weblate (Polish)
Currently translated at 76.2% (395 of 518 strings)
Translated using Weblate (Polish)
Currently translated at 74.6% (380 of 509 strings)
Translated using Weblate (Polish)
Currently translated at 46.5% (237 of 509 strings)
Co-authored-by: 7Adrian <7adrian.mail@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jeff <jeffvictorli@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translation: feishin/Translation
Updated by "Remove blank strings" hook in Weblate.
Translated using Weblate (Chinese (Simplified))
Currently translated at 51.7% (263 of 508 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 51.7% (263 of 508 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 51.7% (263 of 508 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 15.7% (80 of 508 strings)
Added translation using Weblate (Chinese (Simplified))
Co-authored-by: Darwin <daerwendeshu@outlook.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ken <kenxu2022@gmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
Currently translated at 67.9% (345 of 508 strings)
Translated using Weblate (French)
Currently translated at 66.9% (340 of 508 strings)
Translated using Weblate (French)
Currently translated at 50.0% (254 of 508 strings)
Translated using Weblate (French)
Currently translated at 49.6% (252 of 508 strings)
Update translation files
Updated by "Remove blank strings" hook in Weblate.
Translated using Weblate (French)
Currently translated at 49.2% (250 of 508 strings)
Added translation using Weblate (French)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <hosted.weblate.org@kosmo.ovh>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translation: feishin/Translation
* [bugfix/feature]: Improve ratings
Fix: add preventDefault/stopPropagation to prevent scrolling to top in queue
Feat: instead of double click for clear, click on same value
* initial idea for playback rate
* Add transparency to dropdown
* Move playback speed component to right controls
* Set mpv speed on startup
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
* [Feature] Support changing accent/primary color
- adds color picker to settings with five swatches (blue default, yellow green and red imported from sonixd, purple new)
- changing color will change the appropriate css variable
* Remove hover styles that use an alternate primary
---------
Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
* [feature]: Support using system fonts
Uses the **experimental** queryLocalFonts API, when prompted, to get the fonts and do CSS.
Resolves#270 and #288 (by proxy)
Caveats/notes:
- This is experimental, and is only supported by Chrome/Chromium/Edgeium (see https://caniuse.com/?search=querylocalfonts)
- As far as I can tell, the only way to dynamically change the font (shown in https://wicg.github.io/local-font-access/#example-style-with-local-fonts) was by DOM manipulation; css variables did not seem to work
- This shows **all** fonts, including their variants (bold/italic/etc); given that the style names could be localized, not sure of a way to parse this (on my system, for instance, I had 859 different combinations)
- I made fonts a separate top-level setting because it was easier to manipulate without causing as many rerenders; feel free to put that back
* add permission chec
* add electron magic to support custom font
* restrict content types
* [bugfix]: fix queue offset when removing tracks
* Fix song index numbers when removing songs
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
* add more emphasis to current song
* add css indicator (rivolumelineup)
* don't use absolute position, support album track number
* Respect order of set-queue function (fix race condition)
* Fix table row actions button on album detail and play queue
* Fix album detail table customizations
* Bump to v0.4.1
* Fix opacity mask for unsynced lyrics container
* Separate sidebar icons to new component
- Fixes react render issue
* Add app focus hook
* Remove css play image
* Add player status as cell refresh condition for queue
* Add current song images
* Add current song styles for all song tables
* Revert row index cell width
* Remove animated svg on browser
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
* In the fullscreen player use dynamic resolution for the main image
* Use ceil instead of round
* Add types and lint
---------
Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
* special socket for dev; defer to default otherwise
* Add write-all permissions to docker push
* special socket for dev; defer to default otherwise
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
* add opacity
* add background for song metadata
* Add padding and border radius to opacity elements
* Remove font-weight transition on active lyrics (#233)
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
- set mpv settings only after it has successfully started (at least on linux, settings were not taken)
- change timing of restore queue to behave properly
label:I have already checked through the existing bug reports and found no duplicates
options:
- label:'Yes'
required:true
- type:input
id:version
attributes:
label:App Version
description:What version of the app are you running?
placeholder:ex. 1.0.0
validations:
required:true
- type:input
id:server-version
attributes:
label:Music Server and Version
description:What music server are you using?
placeholder:ex. Navidrome v0.55.0, LMS v3.67.0, Jellyfin v10.10.7, etc.
validations:
required:true
- type:dropdown
id:environments
attributes:
label:What local environments are you seeing the problem on?
multiple:true
options:
- Desktop Windows
- Desktop macOS
- Desktop Linux
- Web Firefox
- Web Chrome
- Web Safari
- Web Microsoft Edge
- Other (please specify in the next field)
- type:textarea
id:what-happened
attributes:
label:What happened?
description:Also tell us, what did you expect to happen?
placeholder:Include screenshots and error logs if possible. The browser devtools can be opened using CTRL + SHIFT + I (Windows/Linux) or CMD + SHIFT + I (macOS).
validations:
required:true
- type:textarea
id:reproduction
attributes:
label:Steps to reproduce
description:How can we reproduce this issue? Are there any specific settings that are enabled that could be the cause?
placeholder:|
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required:true
- type:textarea
id:logs
attributes:
label:Relevant log output
description:Please copy and paste any relevant log output. This will be automatically formatted into code.
Rewrite of [Sonixd](https://github.com/jeffvli/sonixd).
## Features
@@ -43,9 +47,53 @@ Rewrite of [Sonixd](https://github.com/jeffvli/sonixd).
## Getting Started
Download the [latest desktop client](https://github.com/jeffvli/feishin/releases).
### Desktop (recommended)
If you're using an M1 macOS device, [check here](https://github.com/jeffvli/feishin/issues/104#issuecomment-1553914730) for instructions on how to remove the app from quarantine.
Download the [latest desktop client](https://github.com/jeffvli/feishin/releases). The desktop client is the recommended way to use Feishin. It supports both the MPV and web player backends, as well as includes built-in fetching for lyrics.
#### macOS Notes
If you're using a device running macOS 12 (Monterey) or higher, [check here](https://github.com/jeffvli/feishin/issues/104#issuecomment-1553914730) for instructions on how to remove the app from quarantine.
For media keys to work, you will be prompted to allow Feishin to be a Trusted Accessibility Client. After allowing, you will need to restart Feishin for the privacy settings to take effect.
### Web and Docker
Visit [https://feishin.vercel.app](https://feishin.vercel.app) to use the hosted web version of Feishin. The web client only supports the web player backend.
Feishin is also available as a Docker image. The images are hosted via `ghcr.io` and are available to view [here](https://github.com/jeffvli/feishin/pkgs/container/feishin). You can run the container using the following commands:
```bash
# Run the latest version
docker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest
# Build the image locally
docker build -t feishin .
docker run --name feishin -p 9180:9180 feishin
```
#### Docker Compose
To install via Docker Compose use the following snippit. This also works on Portainer.
```yaml
services:
feishin:
container_name:feishin
image:'ghcr.io/jeffvli/feishin:latest'
environment:
- SERVER_NAME=jellyfin# pre defined server name
- SERVER_LOCK=true# When true AND name/type/url are set, only username/password can be toggled
- SERVER_TYPE=jellyfin# navidrome also works
- SERVER_URL=# http://address:port
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=America/Los_Angeles
ports:
- 9180:9180
restart:unless-stopped
```
### Configuration
@@ -54,23 +102,78 @@ If you're using an M1 macOS device, [check here](https://github.com/jeffvli/feis
2. After restarting the app, you will be prompted to select a server. Click the `Open menu` button and select `Manage servers`. Click the `Add server` button in the popup and fill out all applicable details. You will need to enter the full URL to your server, including the protocol and port if applicable (e.g. `https://navidrome.my-server.com` or `http://192.168.0.1:4533`).
- **Navidrome** - For the best experience, select "Save password" when creating the server and configure the `SessionTimeout` setting in your Navidrome config to a larger value (e.g. 72h).
- **Linux users** - The default password store uses `libsecret`. `kwallet4/5/6` are also supported, but must be explicitly set in Settings > Window > Passwords/secret score.
3._Optional_ - If you want to host Feishin on a subpath (not `/`), then pass in the following environment variable: `PUBLIC_PATH=PATH`. For example, to host on `/feishin`, pass in `PUBLIC_PATH=/feishin`.
4._Optional_ - To hard code the server url, pass the following environment variables: `SERVER_NAME`, `SERVER_TYPE` (one of `jellyfin` or `navidrome`), `SERVER_URL`. To prevent users from changing these settings, pass `SERVER_LOCK=true`. This can only be set if all three of the previous values are set.
## FAQ
### MPV is either not working or is rapidly switching between pause/play states
First thing to do is check that your MPV binary path is correct. Navigate to the settings page and re-set the path and restart the app. If your issue still isn't resolved, try reinstalling MPV. Known working versions include `v0.35.x` and `v0.36.x`. `v0.34.x` is a known broken version.
### What music servers does Feishin support?
Feishin supports any music server that implements a [Navidrome](https://www.navidrome.org/) or [Jellyfin](https://jellyfin.org/) API. **Subsonic API is not currently supported**. This will likely be added in [later when the new Subsonic API is decided on](https://support.symfonium.app/t/subsonic-servers-participation/1233).
Feishin supports any music server that implements a [Navidrome](https://www.navidrome.org/), [Jellyfin](https://jellyfin.org/), or [OpenSubsonic compatible](https://opensubsonic.netlify.app/) API.
### I have the issue "The SUID sandbox helper binary was found, but is not configured correctly" on Linux
This happens when you have user (unprivileged) namespaces disabled (`sysctl kernel.unprivileged_userns_clone` returns 0). You can fix this by either enabling unprivileged namespaces, or by making the `chrome-sandbox` Setuid.
```bash
chmod 4755 chrome-sandbox
sudo chown root:root chrome-sandbox
```
Ubunutu 24.04 specifically introduced breaking changes that affect how namespaces work. Please see https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890#:~:text=security%20improvements%20 for possible fixes.
## Development
Built and tested using Node `v16.15.0`.
Built and tested using Node `v23.11.0`.
This project is built off of [electron-react-boilerplate](https://github.com/electron-react-boilerplate/electron-react-boilerplate) v4.6.0.
This project is built off of [electron-vite](https://github.com/alex8088/electron-vite)
-`pnpm run dev` - Start the development server
-`pnpm run dev:watch` - Start the development server in watch mode (for main / preload HMR)
-`pnpm run start` - Starts the app in production preview mode
-`pnpm run build` - Builds the app for desktop
-`pnpm run build:electron` - Build the electron app (main, preload, and renderer)
-`pnpm run build:remote` - Build the remote app (remote)
-`pnpm run build:web` - Build the standalone web app (renderer)
-`pnpm run package` - Package the project
-`pnpm run package:dev` - Package the project for development
-`pnpm run package:linux` - Package the project for Linux
-`pnpm run package:mac` - Package the project for Mac
-`pnpm run package:win` - Package the project for Windows
-`pnpm run publish:linux` - Publish the project for Linux
-`pnpm run publish:linux-arm64` - Publish the project for Linux ARM64
-`pnpm run publish:mac` - Publish the project for Mac
-`pnpm run publish:win` - Publish the project for Windows
-`pnpm run typecheck` - Type check the project
-`pnpm run typecheck:node` - Type check the project with tsconfig.node.json
-`pnpm run typecheck:web` - Type check the project with tsconfig.web.json
-`pnpm run lint` - Lint the project
-`pnpm run lint:fix` - Lint the project and fix linting errors
-`pnpm run i18next` - Generate i18n files
## Translation
This project uses [Weblate](https://hosted.weblate.org/projects/feishin/) for translations. If you would like to contribute, please visit the link and submit a translation.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.