mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-22 07:15:47 +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
@@ -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