draw poll meter with no colour when required

This commit is contained in:
Dan Anglin 2024-06-12 14:25:34 +01:00
parent 04ebc4e5bd
commit a5e1c4ac79
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638

View file

@ -80,7 +80,7 @@ func displayPollContent(writer io.StringWriter, poll Poll, noColor bool, indent
} }
writer.WriteString("\n\n" + indent + "[" + strconv.Itoa(ind) + "] " + option.Title) writer.WriteString("\n\n" + indent + "[" + strconv.Itoa(ind) + "] " + option.Title)
drawPollMeter(writer, calculate, 80, indent) drawPollMeter(writer, noColor, calculate, 80, indent)
writer.WriteString( writer.WriteString(
"\n" + indent + strconv.Itoa(option.VotesCount) + " votes " + "\n" + indent + strconv.Itoa(option.VotesCount) + " votes " +
@ -96,15 +96,24 @@ func displayPollContent(writer io.StringWriter, poll Poll, noColor bool, indent
) )
} }
func drawPollMeter(writer io.StringWriter, calculated float64, limit int, indent string) { func drawPollMeter(writer io.StringWriter, noColor bool, calculated float64, limit int, indent string) {
colouredBlocks := int(math.Floor(float64(limit) * calculated)) numVoteBlocks := int(math.Floor(float64(limit) * calculated))
backgroundBlocks := limit - colouredBlocks numBackgroundBlocks := limit - numVoteBlocks
blockChar := "\u2501" blockChar := "\u2501"
voteBlockColor := "\033[32;1m"
backgroundBlockColor := "\033[90m"
writer.WriteString( if noColor {
"\n" + voteBlockColor = "\033[0m"
indent +
"\033[32m" + strings.Repeat(blockChar, colouredBlocks) + "\033[0m" + if numVoteBlocks == 0 {
strings.Repeat(blockChar, backgroundBlocks), numVoteBlocks = 1
) }
}
writer.WriteString("\n" + indent + voteBlockColor + strings.Repeat(blockChar, numVoteBlocks) + "\033[0m")
if !noColor {
writer.WriteString(backgroundBlockColor + strings.Repeat(blockChar, numBackgroundBlocks) + "\033[0m")
}
} }