Integration gaming
Le bot integre les API Riot Games et HenrikDev pour le suivi des statistiques TFT et Valorant.
Valorant - HenrikDev API
Endpoints utilises
| Endpoint | Donnees recuperees |
|---|---|
/valorant/v2/account/{name}/{tag} | PUUID, nom, tag, niveau de compte |
/valorant/v3/mmr/{region}/{platform}/{name}/{tag} | Rank, RR, peak, saison W/L |
/valorant/v1/by-puuid/stored-matches/{region}/{puuid} | 20 derniers matchs competitifs |
L'authentification se fait via le header Authorization avec la cle HENRIK_API_KEY.
Agregation des statistiques
Les statistiques sont calculees a partir de deux sources :
Bilan saison (W/L) : extrait du endpoint MMR via mmr.data.seasonal. La derniere entree du tableau correspond a la saison en cours. Les champs wins et games donnent directement le W/L de toute la saison.
Statistiques de combat : calculees a partir des 20 derniers matchs (stored-matches) :
| Stat | Calcul |
|---|---|
| K/D | totalKills / totalDeaths |
| ACS | totalScore / totalRounds |
| ADR | totalDamage / totalRounds |
| HS% | headshots / (headshots + bodyshots + legshots) * 100 |
Champ damage
Le champ utilise pour les degats est damage.made et non damage.dealt. C'est le champ correct renvoye par l'API HenrikDev pour les matchs stockes.
Agent principal : l'agent le plus joue parmi les 20 matchs, avec son winrate et K/D specifiques.
Systeme de cache
| Situation | Duree du cache |
|---|---|
| Succes | 1 heure |
| Erreur | 5 minutes |
| Purge nocturne | 3h00 quotidien |
Le cache est stocke dans la table ValorantTrackerCache. Les entrees expirees sont purgees chaque nuit par le cron cache-purge.
Synchronisation automatique
Un cron (valorant-sync) s'execute toutes les 6 heures (0 */6 * * *). Il parcourt tous les profils ValorantProfile et rafraichit leurs stats, avec une pause de 5 secondes entre chaque joueur pour eviter le rate limiting.
Roast automatique
Si les stats d'un joueur sont mauvaises, le bot genere un commentaire moqueur via l'IA Groq. Les conditions de declenchement :
| Condition | Seuil |
|---|---|
| K/D faible | < 0.8 |
| Winrate faible | < 45% (> 5 matchs) |
| Headshot % faible | < 15% (> 5 matchs) |
| Rank bas | Iron ou Bronze |
Le prompt inclut un resume des mauvaises stats et demande au modele de "roaster" le joueur en 1-2 phrases.
Stats channels
Voir la page dediee : Stats channels
Riot Games TFT
L'integration TFT utilise trois API Riot Games :
| API | Usage |
|---|---|
| Account-V1 | Resolution du PUUID depuis gameName/tagline |
| TFT-Summoner-V1 | Donnees du joueur (niveau, icone) |
| TFT-League-V1 | Rang et statistiques ranked |
La synchronisation TFT utilise un cron separe (gaming-sync) qui s'execute egalement toutes les 6 heures, avec une pause de 5 secondes entre les joueurs.
L'authentification se fait via la cle RIOT_API_KEY. Les parametres RIOT_PLATFORM (defaut euw1) et RIOT_REGION (defaut europe) definissent le serveur cible.
