mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
Fix Random Mix audiobook exclusion: click area and false matches (#973)
* fix(random-mix): limit exclusion toggle click area to checkbox and title The audiobook exclusion was a full-width label wrapping the checkbox, title and description, so clicking empty space or the description text toggled it. Make only the checkbox and its title clickable; the description and surrounding space are no longer hit targets. * fix(random-mix): stop excluding Thriller and Fantasy as audiobook genres These keywords match regular music (e.g. Trance/Metal genre tags, a track titled "Thriller") because the exclusion checks genre, title, album and artist by substring, dropping a few legit songs per mix. Remove both from the audiobook keyword list. * docs(changelog): random mix audiobook exclusion fixes (#973)
This commit is contained in:
committed by
GitHub
parent
c119a32277
commit
0d479f3bfa
@@ -826,6 +826,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
* A pass of UI/CSS fixes: keyboard focus rings now sit inside the focused element, so they're no longer clipped at the edge of cards, rails, the player bar, queue tabs or search fields; the page, Help and Settings search fields share one consistent shape and focus highlight; the column-visibility dropdown on track tables no longer gets cut off on short lists (e.g. a single favorited song); and the Theme settings list rounds its corners to match its section.
|
||||
|
||||
### Random Mix — audiobook exclusion no longer drops normal music
|
||||
|
||||
**By [@Psychotoxical](https://github.com/Psychotoxical), PR [#973](https://github.com/Psychotoxical/psysonic/pull/973) — reported by zunoz on Discord**
|
||||
|
||||
* "Exclude audiobooks & radio plays" no longer treats **Thriller** and **Fantasy** as audiobook keywords. They matched regular music (Trance/Metal genre tags, a track titled "Thriller") because the filter scans genre, title, album and artist, so a handful of legitimate songs were dropped from each mix.
|
||||
* The exclusion's toggle area is tightened so only the checkbox and its title respond to a click — the description text and surrounding empty space no longer toggle it.
|
||||
|
||||
## [1.46.0] - 2026-05-18
|
||||
|
||||
> **🙏 Special thanks to [@zz5zz](https://github.com/zz5zz)** for his tireless quirk-spotting and bug reports on the [Psysonic Discord](https://discord.gg/AMnDRErm4u) — several of the polish fixes in this release landed directly off the back of his messages.
|
||||
|
||||
@@ -92,18 +92,24 @@ export default function RandomMixFiltersPanel({
|
||||
{t('randomMix.filterPanelDesc')}
|
||||
</p>
|
||||
|
||||
<label style={{ display: 'flex', alignItems: 'flex-start', gap: '0.5rem', cursor: 'pointer', fontSize: 13, marginBottom: '0.6rem' }}>
|
||||
<div style={{ display: 'flex', alignItems: 'flex-start', gap: '0.5rem', fontSize: 13, marginBottom: '0.6rem' }}>
|
||||
<input
|
||||
id="random-mix-exclude-audiobooks"
|
||||
type="checkbox"
|
||||
checked={excludeAudiobooks}
|
||||
onChange={e => setExcludeAudiobooks(e.target.checked)}
|
||||
style={{ marginTop: 2 }}
|
||||
style={{ marginTop: 2, flexShrink: 0, cursor: 'pointer' }}
|
||||
/>
|
||||
<div>
|
||||
<div style={{ fontWeight: 500, color: 'var(--text-primary)' }}>{t('randomMix.excludeAudiobooks')}</div>
|
||||
<label
|
||||
htmlFor="random-mix-exclude-audiobooks"
|
||||
style={{ fontWeight: 500, color: 'var(--text-primary)', cursor: 'pointer', display: 'inline-block' }}
|
||||
>
|
||||
{t('randomMix.excludeAudiobooks')}
|
||||
</label>
|
||||
<div style={{ fontSize: 11, color: 'var(--text-muted)', marginTop: 2 }}>{t('randomMix.excludeAudiobooksDesc')}</div>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button
|
||||
className="btn btn-ghost"
|
||||
|
||||
@@ -4,8 +4,8 @@ import { passesMixMinRatings, type MixMinRatingsConfig } from '../mix/mixRatingF
|
||||
export const AUDIOBOOK_GENRES = [
|
||||
'hörbuch', 'hoerbuch', 'hörspiel', 'hoerspiel',
|
||||
'audiobook', 'audio book', 'spoken word', 'spokenword',
|
||||
'podcast', 'kapitel', 'thriller', 'krimi', 'speech',
|
||||
'fantasy', 'comedy', 'literature',
|
||||
'podcast', 'kapitel', 'krimi', 'speech',
|
||||
'comedy', 'literature',
|
||||
];
|
||||
|
||||
export function formatRandomMixDuration(seconds: number): string {
|
||||
|
||||
Reference in New Issue
Block a user