feat(scrobble): add pure Qualifies threshold function
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
// Package scrobble owns the outbound-scrobble pipeline: threshold detection,
|
||||
// the queue write path, and the worker goroutine. The HTTP client is in
|
||||
// internal/scrobble/listenbrainz; this package consumes it.
|
||||
package scrobble
|
||||
|
||||
// Qualifies returns true if a closed play_event meets ListenBrainz's
|
||||
// recommended scrobble threshold: ≥240 seconds played OR ≥50% of the
|
||||
// track length played.
|
||||
//
|
||||
// The two thresholds are deliberately separate from M2's skip-detection
|
||||
// thresholds (which serve a different purpose — internal engine signal
|
||||
// for the scoring formula's skip penalty).
|
||||
func Qualifies(durationPlayedMs int, completionRatio float64) bool {
|
||||
return durationPlayedMs >= 240_000 || completionRatio >= 0.5
|
||||
}
|
||||
Reference in New Issue
Block a user