Implemented #10 use effort distribution to select CSS color in a smooth gradient
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
DataHoarder 2024-02-25 15:12:54 +01:00
parent 01369eb4c8
commit 7c47f99c4e
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
3 changed files with 23 additions and 7 deletions

View file

@ -14,6 +14,7 @@ require (
git.gammaspectra.live/P2Pool/p2pool-observer/cmd/utils v0.0.0
github.com/goccy/go-json v0.10.2
github.com/gorilla/mux v1.8.0
github.com/mazznoer/colorgrad v0.9.1
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc
github.com/valyala/quicktemplate v1.7.0
)
@ -32,6 +33,8 @@ require (
github.com/holiman/uint256 v1.2.3 // indirect
github.com/jxskiss/base62 v1.1.0 // indirect
github.com/lib/pq v1.10.9 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mazznoer/csscolorparser v0.1.2 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
golang.org/x/crypto v0.11.0 // indirect
golang.org/x/sys v0.10.0 // indirect

View file

@ -35,6 +35,12 @@ github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8
github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mazznoer/colorgrad v0.9.1 h1:MB80JYVndKWSMEM1beNqnuOowWGhoQc3DXWXkFp6JlM=
github.com/mazznoer/colorgrad v0.9.1/go.mod h1:WX2R9wt9B47+txJZVVpM9LY+LAGIdi4lTI5wIyreDH4=
github.com/mazznoer/csscolorparser v0.1.2 h1:/UBHuQg792ePmGFzTQAC9u+XbFr7/HzP/Gj70Phyz2A=
github.com/mazznoer/csscolorparser v0.1.2/go.mod h1:Aj22+L/rYN/Y6bj3bYqO3N6g1dtdHtGfQ32xZ5PJQic=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8=

View file

@ -7,6 +7,8 @@ import (
"git.gammaspectra.live/P2Pool/p2pool-observer/p2pool/sidechain"
"git.gammaspectra.live/P2Pool/p2pool-observer/types"
"git.gammaspectra.live/P2Pool/p2pool-observer/utils"
"github.com/mazznoer/colorgrad"
"math"
"strconv"
"strings"
"time"
@ -140,14 +142,19 @@ func found_block_effort(b, previous *index.FoundBlock) float64 {
return float64(b.CumulativeDifficulty.Sub(previous.CumulativeDifficulty).Mul64(100).Lo) / float64(b.MainBlock.Difficulty)
}
var effortColorGradient = colorgrad.RdYlBu()
const effortRangeStart = 0.15
const effortRangeEnd = 0.8
func effort_color(effort float64) string {
if effort < 100 {
return "#00C000"
} else if effort < 200 {
return "#E0E000"
} else {
return "#FF0000"
}
probability := 1 - math.Exp(-effort/100)
// rescale
probability *= effortRangeEnd - effortRangeStart
probability += effortRangeStart
return effortColorGradient.At(1 - probability).Hex()
}
func monero_to_xmr(v uint64) string {