package main import "github.com/bwmarrin/discordgo" var trustCache map[string]float64 func getTrust(discordID string) (float64, error) { if v, ok := trustCache[discordID]; ok { return v, nil } votes, err := getTrustVote(discordID) if err != nil { return 0.0, err } votes = append(votes, 3) var total float64 for _, v := range votes { total += float64(v) } return total / float64(len(votes)), nil } func getTotalTrust(s *discordgo.Session) (float64, error) { members, err := getAllMembers(s) if err != nil { return 0.0, err } var total float64 for _, member := range members { trust, err := getTrust(member.User.ID) if err != nil { return 0.0, err } total += trust } return total, nil } func updateTrust(sourceID, targetID string, voteValue int) error { err := updateDbTrust(sourceID, targetID, voteValue) if err != nil { return err } delete(trustCache, targetID) return nil }