From 3ea4ffd0e3673f033c95dbaa90b73491c81c9fd0 Mon Sep 17 00:00:00 2001 From: Andrea Spacca Date: Fri, 23 Jul 2021 11:20:49 +0200 Subject: [PATCH] cr fixes and dynamic upload size in UI --- go.mod | 2 +- go.sum | 2 ++ server/handlers.go | 11 +++++++++-- server/utils.go | 27 ++++++++++++++++++++++++++- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 94a51dc..0ec0d31 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329 - github.com/dutchcoders/transfer.sh-web v0.0.0-20210717081259-8b8af59a0fae + github.com/dutchcoders/transfer.sh-web v0.0.0-20210723091746-c17d678a22f3 github.com/elazarl/go-bindata-assetfs v1.0.1 github.com/fatih/color v1.10.0 github.com/garyburd/redigo v1.6.2 // indirect diff --git a/go.sum b/go.sum index 94f0056..ae5103a 100644 --- a/go.sum +++ b/go.sum @@ -94,6 +94,8 @@ github.com/dutchcoders/transfer.sh-web v0.0.0-20210212072623-ac7014a9c3a7 h1:zKJ github.com/dutchcoders/transfer.sh-web v0.0.0-20210212072623-ac7014a9c3a7/go.mod h1:jTzXZabwihvQgvmySgD4f4GNszimkXK3o8x1ucH1z5Q= github.com/dutchcoders/transfer.sh-web v0.0.0-20210717081259-8b8af59a0fae h1:JalbO1PKAsbSYQBW6Q4aXbgj2w4bWofdrHxRRwqRgDc= github.com/dutchcoders/transfer.sh-web v0.0.0-20210717081259-8b8af59a0fae/go.mod h1:F6Q37CxDh2MHr5KXkcZmNB3tdkK7v+bgE+OpBY+9ilI= +github.com/dutchcoders/transfer.sh-web v0.0.0-20210723091746-c17d678a22f3 h1:CM9FGBPXLXhvKo0TuO4CKKdZLah6esP1SAfPzZDjEB0= +github.com/dutchcoders/transfer.sh-web v0.0.0-20210723091746-c17d678a22f3/go.mod h1:F6Q37CxDh2MHr5KXkcZmNB3tdkK7v+bgE+OpBY+9ilI= github.com/elazarl/go-bindata-assetfs v1.0.1 h1:m0kkaHRKEu7tUIUFVwhGGGYClXvyl4RE03qmvRTNfbw= github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= diff --git a/server/handlers.go b/server/handlers.go index 295cc0a..7dad2fc 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -238,6 +238,11 @@ func (s *Server) viewHandler(w http.ResponseWriter, r *http.Request) { hostname := getURL(r, s.proxyPort).Host webAddress := resolveWebAddress(r, s.proxyPath, s.proxyPort) + maxUploadSize := "" + if s.maxUploadSize > 0 { + maxUploadSize = formatSize(s.maxUploadSize) + } + purgeTime := "" if s.purgeDays > 0 { purgeTime = s.purgeDays.String() @@ -248,8 +253,9 @@ func (s *Server) viewHandler(w http.ResponseWriter, r *http.Request) { WebAddress string GAKey string UserVoiceKey string - PurgeTime string - SampleToken string + PurgeTime string + MaxUploadSize string + SampleToken string SampleToken2 string }{ hostname, @@ -257,6 +263,7 @@ func (s *Server) viewHandler(w http.ResponseWriter, r *http.Request) { s.gaKey, s.userVoiceKey, purgeTime, + maxUploadSize, Token(s.randomTokenLength), Token(s.randomTokenLength), } diff --git a/server/utils.go b/server/utils.go index 4b7ee3d..d457916 100644 --- a/server/utils.go +++ b/server/utils.go @@ -27,6 +27,7 @@ THE SOFTWARE. package server import ( + "fmt" "math" "net/http" "net/mail" @@ -49,7 +50,6 @@ func getAwsSession(accessKey, secretKey, region, endpoint string, forcePathStyle } func formatNumber(format string, s uint64) string { - return RenderFloat(format, float64(s)) } @@ -255,3 +255,28 @@ func acceptsHTML(hdr http.Header) bool { return (false) } + +func formatSize(size int64) string { + sizeFloat := float64(size) + base := math.Log(sizeFloat)/math.Log(1024) + + sizeOn := math.Pow(1024, base - math.Floor(base)) + + var round float64 + pow := math.Pow(10, float64(2)) + digit := pow * sizeOn + round = math.Floor(digit) + + newVal := round / pow + + var suffixes [5]string + suffixes[0] = "B" + suffixes[1] = "KB" + suffixes[2] = "MB" + suffixes[3] = "GB" + suffixes[4] = "TB" + + + getSuffix := suffixes[int(math.Floor(base))] + return fmt.Sprintf("%s %s", strconv.FormatFloat(newVal, 'f', -1, 64), getSuffix) +}