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
|
offset := math.MaxInt32
|
||||||
perPage := MaxItemsPerGet
|
perPage := MaxItemsPerGet
|
||||||
|
|
||||||
|
startTime := time.Now()
|
||||||
|
minTime := oldestTimestamp
|
||||||
|
|
||||||
|
totalDuration := startTime.Sub(oldestTimestamp)
|
||||||
|
|
||||||
defer close(results)
|
defer close(results)
|
||||||
|
|
||||||
p := models.Progress{Total: int64(perPage)}
|
p := models.Progress{Total: int64(totalDuration.Seconds())}
|
||||||
var totalCount int
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
for {
|
for {
|
||||||
|
@ -101,7 +105,6 @@ out:
|
||||||
// and continue.
|
// and continue.
|
||||||
if offset >= result.Total {
|
if offset >= result.Total {
|
||||||
p.Total = int64(result.Total)
|
p.Total = int64(result.Total)
|
||||||
totalCount = result.Total
|
|
||||||
offset = result.Total - perPage
|
offset = result.Total - perPage
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
offset = 0
|
offset = 0
|
||||||
|
@ -120,15 +123,19 @@ out:
|
||||||
if listen.ListenedAt.Unix() > oldestTimestamp.Unix() {
|
if listen.ListenedAt.Unix() > oldestTimestamp.Unix() {
|
||||||
listens = append(listens, listen)
|
listens = append(listens, listen)
|
||||||
} else {
|
} else {
|
||||||
totalCount -= 1
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Sort(listens)
|
sort.Sort(listens)
|
||||||
results <- models.ListensResult{Items: listens, Total: totalCount}
|
if len(listens) > 0 {
|
||||||
p.Elapsed += int64(count)
|
minTime = listens[0].ListenedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
remainingTime := startTime.Sub(minTime)
|
||||||
|
p.Elapsed = int64(totalDuration.Seconds() - remainingTime.Seconds())
|
||||||
progress <- p
|
progress <- p
|
||||||
|
results <- models.ListensResult{Items: listens, OldestTimestamp: minTime}
|
||||||
|
|
||||||
if offset <= 0 {
|
if offset <= 0 {
|
||||||
// This was the last request, no further results
|
// This was the last request, no further results
|
||||||
|
@ -141,6 +148,7 @@ out:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
results <- models.ListensResult{OldestTimestamp: minTime}
|
||||||
progress <- p.Complete()
|
progress <- p.Complete()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue