Ce projet automatise le jeu Weerdle sur pokengine.org à l'aide de Playwright.
- Bot automatique pour le jeu Weerdle sur pokengine.org.
- Interface web de contrôle (http://localhost:3000).
- Gestion des statistiques, logs, configuration, base de données (PostgreSQL).
- Affichage d'une notification Bootstrap en cas d'erreur critique (ex : 429 Too Many Requests) sur l'interface web.
- Envoi d'une notification système Windows en cas d'erreur critique (ex : 429) via PowerShell.
- Arrêt immédiat du bot et du serveur via le bouton "Éteindre" de l'interface.
- Explorateur d'API Pokengine pour découvrir et tester les endpoints disponibles (http://localhost:3000/api-explorer.html).
- Node.js (version 16 ou supérieure recommandée)
- npm (généralement inclus avec Node.js)
- Un navigateur compatible installé (Firefox, Chrome, Edge)
- PostgreSQL pour la base de données
-
Cloner le dépôt
git clone <url-du-repo> cd weerdle-bot
-
Installer les dépendances
npm install
Pour installer tous les navigateurs supportés par Playwright :
npx playwright install
-
Configurer la base de données PostgreSQL
- Assurez-vous que PostgreSQL est installé et en cours d'exécution.
- Créez une base de données appelée
pokengine:CREATE DATABASE pokengine;
- Configurez les informations de connexion dans le fichier
db/dbManager.js(utilisateur, mot de passe, hôte, port). - Exécutez le script SQL pour créer les tables et fonctions nécessaires :
psql -U <votre-utilisateur> -d pokengine -f db/pokemon_tracker.sql
-
Configurer les identifiants du bot
- Modifiez les identifiants dans
models/botState.js:username: 'votre_nom_utilisateur', password: 'votre_mot_de_passe',
- Modifiez les identifiants dans
-
Lancer le serveur
En mode production :node index.js
En mode développement (avec redémarrage automatique) :
npm run dev
-
Accéder à l'interface de contrôle
Ouvrez votre navigateur et accédez à http://localhost:3000.- En cas d'erreur critique (ex : 429), une notification rouge s'affiche en haut de la page et une notification Windows est envoyée.
- Le bouton "Éteindre" arrête immédiatement le bot et le serveur (processus Node.js).
L'explorateur d'API Pokengine permet de découvrir automatiquement les endpoints disponibles sur le site pokengine.org et de les tester facilement.
-
Accéder à l'explorateur
Ouvrez votre navigateur et accédez à http://localhost:3000/api-explorer.html. -
Découvrir les endpoints
- Cliquez sur "Lancer le scan" pour commencer la découverte automatique
- Vous pouvez spécifier le nombre maximum de pages à scanner
- Les résultats seront affichés et catégorisés (API, AJAX, Data)
-
Tester un endpoint
- Cliquez sur un endpoint dans la liste pour le sélectionner
- Choisissez la méthode HTTP (GET, POST, PUT, DELETE)
- Ajoutez des paramètres au format JSON si nécessaire
- Cliquez sur "Tester l'endpoint" pour voir les résultats
-
Fonctionnalités supplémentaires
- Sauvegarde automatique des résultats pour consultation ultérieure
- Filtrage et recherche parmi les endpoints découverts
- Visualisation structurée des résultats JSON
- Modifiez les chemins des navigateurs dans
controllers/botController.jssi nécessaire :const CHROME_PATH = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'; const EDGE_PATH = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe';
Le bot utilise PostgreSQL pour stocker les informations sur les Pokémon rencontrés.
-
Prérequis
- PostgreSQL installé et configuré
- Base de données
pokenginecréée
-
Initialisation de la base
node scripts/init-database.js
-
Configuration
- La configuration de la base de données peut être modifiée dans l'interface web du bot
- Par défaut, le bot se connecte à
localhost:5432/pokengineavec l'utilisateur défini dans la configuration
-
Tables créées
encountered_pokemon: Stocke les Pokémon rencontrés et leurs codes
- Le script ouvre un navigateur en mode non-headless pour observer les actions.
- Si vous rencontrez des erreurs 429 (trop de requêtes), attendez quelques minutes avant de relancer.
- Assurez-vous que votre base de données est correctement configurée et accessible.
- Le VPN/NordVPN n'est plus utilisé ni nécessaire.
- Les logs API ne sont plus affichés dans la console.
- Les notifications système utilisent PowerShell et fonctionnent uniquement sous Windows.
- Playwright
- Express
- Bootstrap 5
- Chart.js
- PostgreSQL (optionnel)