shared: treat year 0/junk as missing in all providers and album year min()
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 58/100
Direzione di ricerca
Start with the provider mappings in MediaBrowserMediaProvider.kt:412, PlexSongMapping.kt:34, FileTags.kt:233-235, and the existing Subsonic guard in SubsonicMediaProvider.kt:179; then inspect LibraryGroups.kt:19, where album years are combined. Check how each path handles zero, junk years below 1000, and whitespace before parsing; done when invalid years are treated as missing consistently and an album's year ignores them.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A year of 0 (or a junk value like 1) is treated as a real year almost everywhere, and the album year is the minimum of its songs' years. So one bad track makes the whole album show year 0 or 1. It should be treated as missing.
- Emby/Jellyfin:
ProductionYearbecomesLocalDate(year,1,1)with no> 0check (MediaBrowserMediaProvider.kt:412). - Plex:
parentYearis mapped the same way (PlexSongMapping.kt:34). - Local tags: "0000" becomes
LocalDate(0,1,1)(FileTags.kt:233-235). MediaStore YEAR is 0 when unknown (unverified). LibraryGroups.kt:19: album year =min()of song years, with nothing filtered out.- Subsonic already guards this with
takeIf { it > 0 }(SubsonicMediaProvider.kt:179). Apply the same rule (probably< 1000= missing) in every provider and in LibraryGroups.
Where it was seen: the owner's Emby library has albums tagged year 1 (Audioslave, St. Vincent) and 0 (Muse Black Holes and Revelations, Coldplay Everyday Life). Shuttle2 showing 0 or 1 for these is from reading the code, not checked on a device (unverified).
Same area: Android doesn't trim before parseDate, so " 2011" fails and falls back to DATE. iOS trims (FfmpegTags.kt:17-19), so the two platforms can show different years. Related, closed: #841.
Impact U1 (wrong or blank year shown, cosmetic) · Reach R2 (any library with untagged or junk years; code-read) · Implemented: partly (Subsonic only) · Design fit: fits · Complexity: S
- Lingua principale
- Kotlin
- Stelle
- 232
- Fork
- 28
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di timusus/Shuttle2
-
design
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
enhancement impact:U2 P3 reach:R1 size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
enhancement impact:U2 P3 reach:R1 size:M
Difficoltà 4/5 1-2 giorni Idoneità per principianti 54/100
-
bug
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di timusus/Shuttle2
Issue simili
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 83/100
lysine-dev/okhttp#9828 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
ReadYouApp/ReadYou#1347 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
yschimke/compose-preview-contracts#210 ·
I maintainer di solito rispondono entro 1 giorno
-
📦 expo-device Android contributor: external needs review sdk-58 severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
expo/expo#52547 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
afk-ok area:data-quality importer size:S
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
enorm-labs/event-junkie#4221 ·
I maintainer di solito rispondono entro 1 giorno