ScrobblerLog.ReadHeader now accepts io.Reader

This commit is contained in:
Philipp Wolfer 2025-05-22 11:51:23 +02:00
parent 97600d8190
commit 536fae6a46
2 changed files with 7 additions and 5 deletions

View file

@ -17,7 +17,6 @@ Scotty. If not, see <https://www.gnu.org/licenses/>.
package scrobblerlog
import (
"bufio"
"fmt"
"os"
"sort"
@ -105,8 +104,7 @@ func (b *ScrobblerLogBackend) StartImport() error {
b.append = false
} else {
// Verify existing file is a scrobbler log
reader := bufio.NewReader(file)
if err = b.log.ReadHeader(reader); err != nil {
if err = b.log.ReadHeader(file); err != nil {
file.Close()
return err
}

View file

@ -94,7 +94,7 @@ func (l *ScrobblerLog) Parse(data io.Reader, ignoreSkipped bool) error {
l.Records = make([]Record, 0)
reader := bufio.NewReader(data)
err := l.ReadHeader(reader)
err := l.readHeader(reader)
if err != nil {
return err
}
@ -173,7 +173,11 @@ func (l *ScrobblerLog) Append(data io.Writer, records []Record) (lastTimestamp t
// Parses just the header of a scrobbler log file from the given reader.
//
// This function sets [ScrobblerLog.TZ] and [ScrobblerLog.Client].
func (l *ScrobblerLog) ReadHeader(reader *bufio.Reader) error {
func (l *ScrobblerLog) ReadHeader(reader io.Reader) error {
return l.readHeader(bufio.NewReader(reader))
}
func (l *ScrobblerLog) readHeader(reader *bufio.Reader) error {
// Skip header
for i := 0; i < 3; i++ {
line, _, err := reader.ReadLine()