|
package utils |
|
|
|
import ( |
|
"time" |
|
|
|
"github.com/rs/zerolog/log" |
|
) |
|
|
|
var lastProgress time.Time = time.Now() |
|
var startTime time.Time = time.Now() |
|
|
|
func ResetDownloadTimers() { |
|
lastProgress = time.Now() |
|
startTime = time.Now() |
|
} |
|
|
|
func DisplayDownloadFunction(fileName string, current string, total string, percentage float64) { |
|
currentTime := time.Now() |
|
|
|
if currentTime.Sub(lastProgress) >= 5*time.Second { |
|
|
|
lastProgress = currentTime |
|
|
|
|
|
var eta time.Duration |
|
if percentage > 0 { |
|
elapsed := currentTime.Sub(startTime) |
|
eta = time.Duration(float64(elapsed)*(100/percentage) - float64(elapsed)) |
|
} |
|
|
|
if total != "" { |
|
log.Info().Msgf("Downloading %s: %s/%s (%.2f%%) ETA: %s", fileName, current, total, percentage, eta) |
|
} else { |
|
log.Info().Msgf("Downloading: %s", current) |
|
} |
|
} |
|
} |
|
|