~xenrox/twitch-bot

a5ba4d01b2c3f1c5f2860a7b4f56a4a141b7c6d4 — Thorben Günther 1 year, 7 months ago b8ca023
faceit: Support retrieving any player's elo
2 files changed, 12 insertions(+), 6 deletions(-)

M faceit.go
M main.go
M faceit.go => faceit.go +11 -5
@@ 28,14 28,20 @@ type playerInfo struct {
	} `json:"games"`
}

func (b *bot) getElo(channel string) (int, error) {
	playerID, err := b.getPlayerID(channel)
	if err != nil {
		return 0, err
func (b *bot) getElo(channel string, parsed []string) (int, error) {
	var url string

	if len(parsed) > 1 {
		url = fmt.Sprintf("https://open.faceit.com/data/v4/players?nickname=%s&game=csgo", parsed[1])
	} else {
		playerID, err := b.getPlayerID(channel)
		if err != nil {
			return 0, err
		}
		url = "https://open.faceit.com/data/v4/players/" + playerID
	}

	client := newFaceitClient(b.cfg.FaceitAPIKey)
	url := "https://open.faceit.com/data/v4/players/" + playerID

	player, err := client.getPlayerInfo(url)
	if err != nil {

M main.go => main.go +1 -1
@@ 71,7 71,7 @@ func main() {
				}

			case "!elo":
				elo, err := bot.getElo(message.Channel)
				elo, err := bot.getElo(message.Channel, parsed)
				if errors.Is(err, sql.ErrNoRows) {
					// Only notify channel owner
					if message.User.Name == message.Channel {