TerraOceanPlugin/GoBot/trust.go

47 lines
924 B
Go

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
}