mirror-nourybot/pkg/utils/utils.go

78 lines
1.7 KiB
Go

package utils
import (
"fmt"
"math/rand"
"strconv"
"time"
"github.com/gempir/go-twitch-irc/v2"
)
var (
tempCommands = 0
)
// CommandUsed is called on every command and
// Incremenents tempCommands by 1
func CommandUsed() {
tempCommands++
}
// GetCommandsUsed gets tempCommands and
// returns it. Only used in ping command
func GetCommandsUsed() int {
return tempCommands
}
// StrGenerateRandomNumber generates a random number from
// a given max value as a string
func StrGenerateRandomNumber(max string) int {
num, err := strconv.Atoi(max)
if num < 1 {
return 0
}
if err != nil {
fmt.Printf("Supplied value %v is not a number", num)
return 0
} else {
rand.Seed(time.Now().UnixNano())
return rand.Intn(num)
}
}
// GenerateRandomNumber generates a random number from
// a given max value as a int
func GenerateRandomNumber(max int) int {
rand.Seed(time.Now().UnixNano())
return rand.Intn(max)
}
func GenerateRandomNumberRange(min int, max int) int {
return (rand.Intn(max-min) + min)
}
// ElevatedPrivsMessage is checking a given message twitch.PrivateMessage
// if it came from a moderator/vip/or broadcaster and returns a bool
func ElevatedPrivsMessage(message twitch.PrivateMessage) bool {
if message.User.Badges["moderator"] == 1 ||
message.User.Badges["vip"] == 1 ||
message.User.Badges["broadcaster"] == 1 {
return true
} else {
return false
}
}
// ModPrivsMessage is checking a given message twitch.PrivateMessage
// if it came from a moderator or broadcaster and returns a bool
func ModPrivsMessage(message twitch.PrivateMessage) bool {
if message.User.Badges["moderator"] == 1 ||
message.User.Badges["broadcaster"] == 1 {
return true
} else {
return false
}
}