mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-16 10:09:28 +02:00
Fixed Deezer listen export count
This commit is contained in:
parent
08514e5eac
commit
3e9ebfb9af
1 changed files with 14 additions and 6 deletions
|
@ -83,10 +83,14 @@ func (b *DeezerApiBackend) ExportListens(oldestTimestamp time.Time, results chan
|
|||
offset := math.MaxInt32
|
||||
perPage := MaxItemsPerGet
|
||||
|
||||
startTime := time.Now()
|
||||
minTime := oldestTimestamp
|
||||
|
||||
totalDuration := startTime.Sub(oldestTimestamp)
|
||||
|
||||
defer close(results)
|
||||
|
||||
p := models.Progress{Total: int64(perPage)}
|
||||
var totalCount int
|
||||
p := models.Progress{Total: int64(totalDuration.Seconds())}
|
||||
|
||||
out:
|
||||
for {
|
||||
|
@ -101,7 +105,6 @@ out:
|
|||
// and continue.
|
||||
if offset >= result.Total {
|
||||
p.Total = int64(result.Total)
|
||||
totalCount = result.Total
|
||||
offset = result.Total - perPage
|
||||
if offset < 0 {
|
||||
offset = 0
|
||||
|
@ -120,15 +123,19 @@ out:
|
|||
if listen.ListenedAt.Unix() > oldestTimestamp.Unix() {
|
||||
listens = append(listens, listen)
|
||||
} else {
|
||||
totalCount -= 1
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
sort.Sort(listens)
|
||||
results <- models.ListensResult{Items: listens, Total: totalCount}
|
||||
p.Elapsed += int64(count)
|
||||
if len(listens) > 0 {
|
||||
minTime = listens[0].ListenedAt
|
||||
}
|
||||
|
||||
remainingTime := startTime.Sub(minTime)
|
||||
p.Elapsed = int64(totalDuration.Seconds() - remainingTime.Seconds())
|
||||
progress <- p
|
||||
results <- models.ListensResult{Items: listens, OldestTimestamp: minTime}
|
||||
|
||||
if offset <= 0 {
|
||||
// This was the last request, no further results
|
||||
|
@ -141,6 +148,7 @@ out:
|
|||
}
|
||||
}
|
||||
|
||||
results <- models.ListensResult{OldestTimestamp: minTime}
|
||||
progress <- p.Complete()
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue