scrobblerlog: renamed setting include-skipped to ignore-skipped

This makes the setting consistent with the similar setting for spotify
This commit is contained in:
Philipp Wolfer 2025-04-29 12:57:28 +02:00
parent 82858315fa
commit 1516a3a9d6
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
4 changed files with 25 additions and 25 deletions

View file

@ -56,8 +56,8 @@ backend = "scrobbler-log"
# The file path to the .scrobbler.log file. Relative paths are resolved against
# the current working directory when running scotty.
file-path = "./.scrobbler.log"
# If true, reading listens from the file also returns listens marked as "skipped"
include-skipped = true
# If true (default), ignore listens marked as skipped.
ignore-skipped = true
# If true (default), new listens will be appended to the existing file. Set to
# false to overwrite the file and create a new scrobbler log on every run.
append = true
@ -105,9 +105,9 @@ dir-path = "./my_spotify_data_extended/Spotify Extended Streaming Histor
ignore-incognito = true
# If true, ignore listens marked as skipped. Default is false.
ignore-skipped = false
# Only consider skipped listens with a playback duration longer than this number
# of seconds. Default is 30 seconds. If ignore-skipped is set to false this
# setting has no effect.
# Only consider skipped listens with a playback duration longer than or equal to
# this number of seconds. Default is 30 seconds. If ignore-skipped is enabled
# this setting has no effect.
ignore-min-duration-seconds = 30
[service.deezer]

View file

@ -31,12 +31,12 @@ import (
)
type ScrobblerLogBackend struct {
filePath string
includeSkipped bool
append bool
file *os.File
timezone *time.Location
log scrobblerlog.ScrobblerLog
filePath string
ignoreSkipped bool
append bool
file *os.File
timezone *time.Location
log scrobblerlog.ScrobblerLog
}
func (b *ScrobblerLogBackend) Name() string { return "scrobbler-log" }
@ -47,9 +47,10 @@ func (b *ScrobblerLogBackend) Options() []models.BackendOption {
Label: i18n.Tr("File path"),
Type: models.String,
}, {
Name: "include-skipped",
Label: i18n.Tr("Include skipped listens"),
Type: models.Bool,
Name: "ignore-skipped",
Label: i18n.Tr("Ignore skipped listens"),
Type: models.Bool,
Default: "true",
}, {
Name: "append",
Label: i18n.Tr("Append to file"),
@ -64,7 +65,7 @@ func (b *ScrobblerLogBackend) Options() []models.BackendOption {
func (b *ScrobblerLogBackend) InitConfig(config *config.ServiceConfig) error {
b.filePath = config.GetString("file-path")
b.includeSkipped = config.GetBool("include-skipped", false)
b.ignoreSkipped = config.GetBool("ignore-skipped", true)
b.append = config.GetBool("append", true)
timezone := config.GetString("time-zone")
if timezone != "" {
@ -140,7 +141,7 @@ func (b *ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time, results c
defer file.Close()
err = b.log.Parse(file, b.includeSkipped)
err = b.log.Parse(file, b.ignoreSkipped)
if err != nil {
progress <- models.Progress{}.Complete()
results <- models.ListensResult{Error: err}

View file

@ -79,7 +79,7 @@ type ScrobblerLog struct {
FallbackTimezone *time.Location
}
func (l *ScrobblerLog) Parse(data io.Reader, includeSkipped bool) error {
func (l *ScrobblerLog) Parse(data io.Reader, ignoreSkipped bool) error {
l.Records = make([]Record, 0)
reader := bufio.NewReader(data)
@ -111,16 +111,15 @@ func (l *ScrobblerLog) Parse(data io.Reader, includeSkipped bool) error {
return fmt.Errorf("invalid record in scrobblerlog line %v", line)
}
rating := row[5]
if !includeSkipped && rating == "S" {
continue
}
record, err := l.rowToRecord(row)
if err != nil {
return err
}
if ignoreSkipped && record.Rating == RATING_SKIPPED {
continue
}
l.Records = append(l.Records, record)
}

View file

@ -48,7 +48,7 @@ func TestParser(t *testing.T) {
assert := assert.New(t)
data := bytes.NewBufferString(testScrobblerLog)
result := scrobblerlog.ScrobblerLog{}
err := result.Parse(data, true)
err := result.Parse(data, false)
require.NoError(t, err)
assert.Equal(scrobblerlog.TZ_UNKNOWN, result.TZ)
assert.Equal("Rockbox sansaclipplus $Revision$", result.Client)
@ -68,11 +68,11 @@ func TestParser(t *testing.T) {
record4.MusicBrainzRecordingID)
}
func TestParserExcludeSkipped(t *testing.T) {
func TestParserIgnoreSkipped(t *testing.T) {
assert := assert.New(t)
data := bytes.NewBufferString(testScrobblerLog)
result := scrobblerlog.ScrobblerLog{}
err := result.Parse(data, false)
err := result.Parse(data, true)
require.NoError(t, err)
assert.Len(result.Records, 4)
record4 := result.Records[3]