-
-
Notifications
You must be signed in to change notification settings - Fork 291
Add explicit status for Navidrome and OpenSubsonic #1220
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
kgarner7
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
explicitStatus is an OpenSubsonic concept that Navidrome is storing differently. Additional considerations:
- You can filter by tracks that are explicit in Navidrome (
e), but for whatever reason you cannot search by tracks that are not explicit - Jellyfin has the concept of
OfficialRating, I couldn't really map that to an explicit/clean (and it's meant more for videos anyway). No clue if anyone actually passes that for audio.
src/shared/types/domain-types.ts
Outdated
| comment: null | string; | ||
| createdAt: string; | ||
| duration: null | number; | ||
| explicitStatus: null | number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use an enum instead of just a number.
src/shared/types/domain-types.ts
Outdated
| discNumber: number; | ||
| discSubtitle: null | string; | ||
| duration: number; | ||
| explicitStatus: null | number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here
| discNumber: item.discNumber || 1, | ||
| discSubtitle: null, | ||
| duration: item.duration ? item.duration * 1000 : 0, | ||
| explicitStatus: null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OpenSubsonic actually exposes this field. See https://opensubsonic.netlify.app/docs/responses/child/#:~:text=of%20the%20song.-,explicitstatus,-string
| comment: null, | ||
| createdAt: item.created, | ||
| duration: item.duration * 1000, | ||
| explicitStatus: null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, although the behavior is different: https://opensubsonic.netlify.app/docs/responses/albumid3/#:~:text=is%20a%20compilation.-,explicitstatus,-string
| { key: 'songCount', label: 'filter.songCount' }, | ||
| { | ||
| label: 'filter.explicitStatus', | ||
| render: (album) => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be better to translate this. You can pass in the TFunction to ItemDetailRow.render instead.
|
I switched to enum instead of number for the explicit status and added support for OpenSubsonic (only tested with Navidrome server though). I also added the explicit status to the cards of albums and tracks. I considered adding support for it on Jellyfin, but as you said it seems to be parental ratings meant for videos and doesn't seem to pull it from metadata |
This allows sorting by explicit status and displays it in album/track info page (either
Explicit,Cleanor empty)