TelegramBot-OpenAI-API
? Propulsé par ChatKeke
- Un bot Telegram basé sur Python, simple à utiliser et rapide à déployer pour l'API OpenAI
- ? Messages vocaux transcrits via l'API Whisper
- (transcriptions automatiques, traductions et autres messages envoyés au bot via les messages vocaux de TG)
- ☁️ Informations météo en temps réel, alertes météo et données de géolocalisation via OpenWeatherMap, WeatherAPI et US NWS (weather.gov)
- ? Géolocalisation et recherches de cartes via l'API MapTiler
- (avec des prévisions météorologiques dans le monde entier dans toutes les langues prises en charge par l'API OpenAI)
- ? Instructions de navigation via l'API Openrouteservice
- Suivi quotidien de l'utilisation des jetons et limitation du débit pour l'utilisation de l'API/gestion des coûts
- ? Modèles d'API Perplexity aux côtés des modèles OpenAI
- Utile pour vérifier les faits et compléter les dates limites d'OpenAI
- Étapes Elasticsearch RAG intégrées
- Augmentez le taux de connaissance avec vos propres documents
- Générez des informations supplémentaires avec le créateur de paires de questions-réponses
- ? Notifications de vacances via le module
holidays
de Python- Localisé dans les pays pris en charge ou ajoutez vos propres rappels spéciaux
- ? Récupération des cours des actions via l'API Alpha Vantage et Yahoo! Finance
- Accès en temps réel aux données financières et boursières
- ? Flux RSS de toutes les sources disponibles
- Récupérez des actualités et bien plus encore via RSS
- ? DuckDuckGo recherche sous forme d'appels de fonction augmentés par le contexte
- Nouveau! Navigation sous-agentique pour des recherches améliorées et précises !
- Navigation Web (vidages de pages avec liens) sous forme d'appels de fonction augmentés par le contexte
- Avec des listes facultatives d'autorisation/interdiction de domaine/IP pour plus de sécurité
- ? Module d'appel de fonction calculatrice pour des calculs précis
- Plus besoin de tâtonner avec les hallucinations arithmétiques de l'IA !
- ? Dockerisé pour la sécurité et la facilité de déploiement
- Pour ceux qui aiment leurs Dockers, prêts à rouler en quelques minutes !
Exigences minimales générales :
- Jeton de robot de l'API Telegram
- utilisez le bot
@BotFather
sur Telegram pour configurer votre bot et obtenir un jeton API Telegram Bot pour celui-ci
- Jeton API OpenAI
- Obtenez-en un sur : https://platform.openai.com/
? Installation sans Docker sous Linux
Conditions préalables
- Testé et travaillant sur Python
3.10.12
à 3.12.2
- Installez les packages Python requis avec
pip install -r requirements.txt
(testé et fonctionnant avec les versions répertoriées dans exigences.txt -
pydub
nécessite généralement que ffmpeg
soit installé séparément. Notez que ni pydub
ni ffmpeg
ne sont pratiquement pas requis si vous n'utilisez pas la fonctionnalité de message vocal/WhisperAPI, mais si vous l'utilisez, installation suggérée (Debian/Ubuntu Linux) : sudo apt-get install ffmpeg
- REMARQUE : les recherches DuckDuckGo nécessitent que
lynx
soit installé sur votre système ; il doit être exécuté en tant que sous-processus. (Installer sur Debian/Ubuntu Linux avec : sudo apt-get install lynx
)
- Clonez le dépôt avec :
git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API/ &&
cd TelegramBot-OpenAI-API/
- Installez les packages requis :
pip install -r requirements.txt
- (Recommandé) installez les packages facultatifs :
- Sur les systèmes Linux Ubuntu/Debian :
sudo apt-get install -y ffmpeg lynx
- Configurez votre jeton de bot Telegram :
- Soit définissez votre jeton API Telegram Bot comme variable d'environnement
TELEGRAM_BOT_TOKEN
, soit placez-le dans un fichier texte nommé bot_token.txt
dans le répertoire config/
(= config/bot_token.txt
).
- Configurez votre jeton API OpenAI :
- Soit en tant que variable d'environnement
OPENAI_API_KEY
, soit placé dans un fichier texte nommé api_token.txt
dans le répertoire principal du programme.
- Autres modules :
- Si vous souhaitez utiliser l'API OpenWeatherMap et l'API MapTiler pour, par exemple, la récupération de données météorologiques localisées, définissez les variables d'environnement
OPENWEATHERMAP_API_KEY
et MAPTILER_API_KEY
en conséquence. Vous pouvez obtenir les clés API d'OpenWeather et MapTiler - Des informations météorologiques supplémentaires (phases de lune, avertissements météorologiques, etc.) sont récupérées à partir de WeatherAPI, définissez la variable d'environnement
WEATHERAPI_KEY
pour les utiliser. - Si vous souhaitez utiliser l'API Openrouteservice pour les instructions de conduite, définissez la variable d'environnement
OPENROUTESERVICE_API_KEY
depuis Openrouteservice - Si vous souhaitez utiliser la vérification supplémentaire des faits de l'API Perplexity avec leurs modèles en ligne, inscrivez-vous sur Perplexity.ai, achetez des crédits API et définissez votre clé API Perplexity sur la variable d'environnement :
PERPLEXITY_API_KEY
- Autres ajustements :
- Ajustez votre configuration et vos paramètres en éditant
config/config.ini
à votre guise
- Courir:
- Exécutez le programme avec :
python src/main.py
? Installation de Dockerized
Conditions préalables
Docker doit être installé sur votre machine.
- S'il n'est pas installé, vous pouvez le télécharger et l'installer depuis le site officiel de Docker.
Clé API Telegram Bot et clé API OpenAI :
- Vous aurez besoin d’une clé API Telegram Bot valide. Vous pouvez en obtenir un en créant un bot avec BotFather.
- Vous aurez également besoin d'une clé API OpenAI. Si vous n'en avez pas, vous pouvez le générer à partir de la page API OpenAI.
Étape 1 : cloner le référentiel
Tout d'abord, clonez le référentiel depuis GitHub :
git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API.git
cd TelegramBot-OpenAI-API
Étape 2 : Exécutez le script d'installation
Ce projet comprend un script d'installation qui vous guidera dans la saisie de vos clés API et la génération d'un fichier .env
.
Exécutez le script :
Suivez les instructions fournies par le script. Il vous demandera votre clé API OpenAI et votre clé API Telegram Bot, les validera et créera un fichier .env
avec vos informations d'identification.
Étape 3 : Créer l'image Docker
Une fois votre fichier .env
créé, vous devez créer l'image Docker.
Vous pouvez exécuter le docker_deploy.sh
présenté pour créer l'image Docker :
Ou bien, vous pouvez le créer manuellement :
sudo docker build -t telegrambot-openai-api .
Cela construira l'image localement en fonction du Dockerfile
dans le référentiel.
Étape 4 : Exécuter le conteneur Docker
Une fois l’image créée avec succès, vous pouvez démarrer le bot dans un conteneur Docker.
Exécutez le conteneur avec la commande suivante :
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
- L'indicateur
-d
exécute le conteneur en mode détaché (en arrière-plan). - L'indicateur
--env-file .env
injecte vos clés API dans le conteneur.
Étape 5 : Vérifiez le conteneur en cours d'exécution
Vous pouvez vérifier si le conteneur est en cours d'exécution en utilisant :
Cela listera tous les conteneurs en cours d’exécution. Si votre bot fonctionne correctement, il devrait apparaître dans la liste.
Étape 6 : Arrêt du conteneur
Si vous devez arrêter le bot, vous pouvez le faire en exécutant :
sudo docker stop < container_id >
Remplacez <container_id>
par l'ID réel du conteneur, que vous pouvez obtenir à partir de la sortie docker ps
.
Étapes supplémentaires (facultatif)
Journaux : si vous avez besoin d'afficher les journaux du bot pour résoudre des problèmes, vous pouvez utiliser :
sudo docker logs < container_id >
Redémarrer le conteneur : Si vous arrêtez le conteneur et souhaitez le redémarrer, vous pouvez soit exécuter à nouveau la commande docker run
, soit redémarrer le conteneur existant avec :
sudo docker start < container_id >
Mise à jour du robot
Si le référentiel reçoit des mises à jour et que vous souhaitez les appliquer, procédez comme suit :
Extrayez les dernières modifications de GitHub :
Reconstruisez l'image Docker :
sudo docker build -t telegrambot-openai-api .
Arrêtez le conteneur en cours d'exécution :
sudo docker stop < container_id >
Démarrez un nouveau conteneur à l'aide de l'image mise à jour :
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
Il existe également un script docker_deploy.sh
inclus qui vise à rendre la reconstruction et le déploiement moins compliqués.
Vous devriez maintenant avoir l'API TelegramBot-OpenAI exécutée dans un conteneur Docker, entièrement connecté à Telegram et OpenAI. Profitez de votre robot !
Si vous rencontrez des problèmes, consultez les journaux ou contactez la page Problèmes du référentiel.
Mettre à jour votre config.ini
Utilisez le configmerger.py
pour mettre à jour les anciens fichiers de configuration dans config.ini
d'une version plus récente. Vous pouvez le faire en enregistrant une copie de votre configuration existante dans un fichier nommé myconfig.txt
et en y incluant les lignes que vous souhaitez conserver pour la version la plus récente.
Après cela, exécutez simplement ie python src/configmerger.py myconfig.txt
et toutes vos lignes de configuration existantes seront migrées vers la nouvelle. Fonctionne dans la plupart des cas, mais n'oubliez pas d'être prudent et de revérifier tout problème de migration avec ie diff
!
(Exemple) Comment fusionner et mettre à jour votre configuration existante :
python3 src/configmerger.py myconfig.txt
Journal des modifications
- v0.75055 - correctifs du désinfectant HTML (pour l'API de Telegram ; meilleure gestion du HTML mal formé), en utilisant BeautifulSoup4+lxml pour l'analyse maintenant
- v0.75054 - petites corrections et plus de détection d'erreurs dans
calc_module.py
- v0.75053 - inclut uniquement les territoires éligibles dans les requêtes US NWS
- la liste des territoires interrogés/éligibles peut être définie dans
config.ini
sous la section NWS
- v0.75052 - inclut les détails du service météorologique national des États-Unis dans les alertes
- v0.75051 -
config.ini
mis à jour pour configurer les prévisions et alertes météorologiques du NWS- La méthode suggérée consiste à compléter via NWS les données météorologiques supplémentaires dont vous avez besoin.
- Il est fortement recommandé de laisser les alertes météo du NWS américain activées dans
config.ini
, même si d'autres méthodes de récupération sont activées (c'est-à-dire OpenWeatherMap), il vaut mieux prévenir que guérir.
- v0.7505 - US NWS (National Weather Service, Weather.gov) ajouté en tant que source de données météorologiques
- pour des informations complémentaires ; surtout les alertes météo
- toutes les données seront combinées par défaut à partir des sources OpenWeatherMap et US NWS
- v0.7504 - mappage de répertoires de journaux et de graphiques d'utilisation corrigés
- v0.7503 - formatage des messages amélioré et détection des erreurs
- v0.7502 - ajout
docker_setup.sh
pour un déploiement plus facile basé sur Docker - v0.7501 -
Dockerfile
et meilleure détection des erreurs lors de la réception 401 Unauthorized
- v0.75 Refactoring majeur (5 octobre 2024) ???
- l'ensemble du projet a été mis de l'ordre et de nombreux bugs ont été corrigés.
-
python src/main.py
pour démarrer le bot à partir de maintenant - liste massive de nouvelles fonctionnalités, telles que :
- journalisation améliorée
- vérifier Elasticsearch au démarrage ; capture d'exceptions en plusieurs étapes
- Verbosité Elasticsearch ajoutée pour plus de clarté
- Elasticsearch peut désormais être configuré via
config.ini
- journalisation améliorée (chat + données de bot dans une journalisation unifiée séparée)
- les chatlogs ont désormais une
source
pour eux chaque fois qu'ils sont appelés via des appels de fonction, de sorte que toutes les extractions de données externes sont désormais enregistrées plus clairement - dans l'ensemble, cette mise à jour rend le bot beaucoup plus facilement déployable
- v0.7431 - gestion potentielle des clés API lorsque les fichiers texte sont déplacés sous
config/
par défaut - v0.743 - chargement des modifications et rationalisation de la configuration
- ranger; toutes les configurations sont maintenant sous
config/
- j'ai importé la nouvelle logique de lecture des jetons de bot depuis mon
whisper-transcriber-telegram-bot
-
bot_token.py
modifié et mis à jour en conséquence -
config_paths.py
a désormais la configuration à l'échelle du projet pour les chemins des fichiers de configuration ( config.ini
, etc...) - déplacez tout
bot_token.txt
existant (si utilisé) vers config/
- utilisez
configmerger.py
pour mettre à jour avec vos configurations personnalisées - (plus de WIP sur le front de la restructuration des projets)
- v0.742 - Récupération de l'étape RAG du jour du nom finlandais
- v0.741 - remplacé par le modèle d'API Perplexity le plus récent (
llama-3.1-sonar-small-128k-online
) en raison de dépréciations et de mises à jour de leurs modèles - v0.74 - la navigation sous-agentique avec les recherches du moteur de recherche DuckDuckGo est arrivée !
- Activé depuis
config.ini
via EnableAgenticBrowsing = True
- Il permet à l'assistant IA de suivre des liens pour plus d'informations et de renvoyer des résultats pertinents
- Corrections de bugs supplémentaires dans les cas extrêmes et leur analyse de sortie
- v0.7373 - petites corrections à
api_get_duckduckgo_search.py
; lien agent suivant WIP - v0.7372 - Modifications supplémentaires de la logique d'analyse (
markdown_to_html
dans modules.py
) - v0.7371 - Analyse améliorée pour markdown/html
- v0.737 - Modifications apportées à l'inclusion de l'API Perplexity (le modèle principal l'inclut désormais dans le contexte pour une meilleure applicabilité et cohérence.)
- v0.736 - Module de calcul
calc_module.py
ajouté pour plus de précision dans les demandes de calcul. - v0.735 - Navigation sur le site Web Lynx avec listes d'autorisation/interdiction pour les domaines dont l'affichage est autorisé/interdit
- v0.734 - Héberge désormais plus de 100 flux RSS par défaut (lorsque RAG est déclenché)
- Recherches DuckDuckGo ajoutées en tant qu'appel de fonction
- v0.733 - Logique d'analyse RSS rationalisée dans le contexte RAG
- v0.7321 - Améliorations de l'analyse RSS
- v0.732 - ajout d'appels de fonction ElasticSearch RAG aux flux RSS
- (pour les sources d'information, etc., voir
rss_parser.py
)
- v0.73101 - L'API Perplexity modularisée appelle davantage dans un gestionnaire distinct
- (voir :
perplexity_handler.py
)
- v0.731 - ajout de Yahoo! Finance en tant qu'appel de fonction API pour les recherches de cours d'actions (nécessite le package pip
yfinance
) - v0.730 - ajout de la fonction API Alpha Vantage appelant pour récupérer les cours des actions en temps réel (nécessite la clé API Alpha Vantage)
- v0.729 - passage à
gpt-4o-mini
dans les configurations par défaut au lieu de gpt-3.5-turbo
(plus récent, moins cher, meilleur) - v0.728 - gestion accrue des cas extrêmes lors de la récupération de données météorologiques multi-API
- v0.727 - Correction de problèmes liés à l'API WeatherAPI et à la récupération météo (renvoi de valeurs impaires, etc.)
- v0.726 - passage à l'API OpenAI depuis
langdetect
lors de l'utilisation de l'API Perplexity pour les requêtes d'informations- (fonction
detect_language
dans api_perplexity_search.py
) - c'est pour une meilleure précision dans les environnements multilingues
- => moins de réponses dans une mauvaise langue lorsqu'un chemin de traduction est nécessaire pour l'utilisateur final
- beaucoup plus précis que
langdetect
et peut être davantage exploité avec la sélection du modèle
- v0.7251 - petites améliorations de robustesse et correctifs du module
api_key.py
- v0.725 - appel API Perplexity supplémentaire + ajustements de traduction
- v0.724 - logique de fractionnement pour des réponses plus longues de l'API Perplexity
- v0.723 - ajout de gigue, logique de nouvelle tentative modifiée dans les requêtes API + traduction de Perplexity
- v0.7201 - ajout de la configuration du modèle d'API Perplexity à
config.ini
- v0.72 - détection d'erreurs améliorée + messagerie avec l'API de Perplexity
- v0.71 - mentions de vacances via le module
holidays
de Python (peut être étendu) - v0.708 - combinaison améliorée de données d'astronomie via WeatherAPI
- v0.707 - nettoyage du code + améliorations de la gestion de l'API Perplexity
- v0.706 - autres options de récupération météo ; récupération de données supplémentaires par pays
- v0.705 - combinaison améliorée des données météorologiques ; petits ajustements
- v0.703 - Traductions linguistiques et ajustements de la récupération des données WeatherAPI
- v0.70 - Prise en charge de WeatherAPI ajoutée, pour l'activer, obtenez une clé API sur Weatherapi.com
- v0.61 - gestion améliorée des données météorologiques et temporelles/données à l'échelle mondiale
- v0.60 - pré-analyse des informations d'URL et récupération d'informations supplémentaires pour les sources multimédias, c'est-à-dire avec
yt-dlp
- v0.59 - appel de fonction personnalisée via Elasticsearch RAG (si activé)
- v0.58.4 - plus de correctifs d'analyse et de formatage
- v0.58.3 - ajustements d'analyse, de formatage et de segmentation
- v0.58.2 - formatage amélioré dans les appels API pplx
- v0.58.1 - analyse améliorée des démarques dans les appels d'API Perplexity traduits
- v0.58 - chunking, analyse et autres petites corrections
- v0.57.5 - modifications apportées à la gestion de l'API Perplexity ; nouveaux modèles de sonar en ligne
- v0.57.1 - solutions de repli améliorées sur les appels d'API externes comme l'API Perplexity
- v0.57 - détection d'erreurs améliorée et solutions de repli de sécurité
- v0.56 - Ajout de la prise en charge d'Elasticsearch pour RAG - utilisez l'indicateur
ElasticsearchEnabled
dans le nouveau config.ini
(défini sur True
ou False
pour activer ou désactiver) - v0.55.4 - Suivi des appels API, temps d'attente supplémentaires si nécessaire pour les appels API externes
- v0.55.3 - activité de réponse, meilleure logique de segmentation
- v0.55 - meilleure gestion des animations de réponse
- v0.52 - données météorologiques plus précises à l'échelle mondiale via l'API OpenWeatherMap et l'API Maptiler
- v0.51 - Regroupement "intelligent" des requêtes externes pour atténuer les problèmes liés aux délais d'attente
- v0.50.3 -
langdetect
et correctifs de gestion - v0.50.2 - animation de saisie sur les réponses, ajustements sur la logique de traitement
- v0.50.1 -
langdetect
sur les exigences de traduction d'évaluation automatique - v0.50 - Appel de fonction personnalisé : vérification des faits de l'API Perplexity
- v0.49.1 - Ajustements de modularité
- v0.48 - Implémentation de l'API Openrouteservice
- v0.47 - plus de correctifs de comptage de jetons et de logique d'interrogation
- v0.46.2 - correctifs du nombre de jetons et de la logique d'interrogation
- v0.46 - réécriture de la logique d'interrogation lors des réinitialisations quotidiennes du nombre de jetons
- v0.45 - Fonctionnalité
/usagechart
ajoutée pour les graphiques d'utilisation (nécessite matplotlib
) - v0.44 - Appel de fonction API, recherches météorologiques de l'API OpenWeatherMap et recherche géographique de l'API MapTiler
- v0.43.2 - Correction d'un petit bug dans les plafonds de jetons quotidiens
- v0.43.1 - Meilleure détection des erreurs
- v0.43 - Nouvelles commandes d'administration :
/setsystemmessage <message>
(valable jusqu'au redémarrage du bot) et /resetsystemmessage
(réinitialisation depuis config.ini
) - v0.42 - Commande
/reset
ajoutée pour la réinitialisation du bot. Définissez les indicateurs ResetCommandEnabled
et AdminOnlyReset
dans config.ini
en conséquence. - v0.41 - gestion modulaire des messages texte vers
text_message_handler.py
et gestion des messages vocaux vers voice_message_handler.py
- v0.40 - gestion des délais d'expiration de session pour compacter l'historique des discussions (voir
config.ini
=> SessionTimeoutMinutes
, MaxRetainedMessages
) - v0.39.5 - petits correctifs à la mise en œuvre de la charge utile de l'API OpenAI
- v0.39.4 -
log_message
et rotate_log_file
modularisés (gestion des fichiers journaux) => modules.py
- v0.39.3 -
check_global_rate_limit
modularisé => modules.py
- v0.39.2 - analyse du style de texte et prétraitement WhisperAPI STT pour le modèle amélioré
- v0.39 - meilleure analyse des blocs de code, HTML et autres balises, plus modularisée ; voir
modules.py
- v0.38 - conservez un meilleur enregistrement de l'utilisation quotidienne des jetons, rationalisé ( remarque : vous devrez effacer votre
token_usage.json
existant, la structure du fichier a changé par rapport à la version précédente) - v0.37 - meilleure application des limites des messages vocaux
- v0.36 - corrections et ajustements des commandes de bot
- v0.35 - commandes de bot modularisées vers
bot_commands.py
, version configmerger.py
corrigée - v0.34 - ajout
configmerger.py
pour faciliter la mise à jour du bot (fusionner les anciens indicateurs de configuration avec les nouvelles versions) - v0.33 - plus de correctifs de performances et de fonctionnalités asynchrones ajoutées et unifiées
- v0.32 - Sondage quotidien de réinitialisation du compteur de jetons et petites corrections de bugs
- v0.31 - Compteur de jetons de mémoire contextuelle ajusté et corrigé pour être plus précis
- v0.30 - Ajustements fins de l'interaction avec l'API Whisper et petites corrections
- v0.29 - Ajout des transcriptions WhisperAPI via des messages vocaux
- Les messages vocaux WhisperAPI utilisent le même jeton API OpenAI que la version de chat texte standard
- voir le
config.ini
pour activer ou désactiver l'option - WIP pour des fonctionnalités de transcription supplémentaires
- v0.28 - message d'accueil
/start
personnalisable dans config.ini
- v0.27 - ajout de la commande
/usage
pour suivre l'utilisation du jeton (pour le propriétaire du bot uniquement, 0 pour désactiver dans config.ini
) - v0.26 - ajout d'une journalisation de discussion séparée et d'une fonctionnalité de limiteur global pour les requêtes/min (voir
config.ini
) - v0.25 - fonctionnalité de limite d'utilisation quotidienne des jetons
- ajout d'une fonctionnalité pour définir les limites d'utilisation quotidienne des jetons (pour le contrôle des coûts des robots), voir
config.ini
- utilitaires supplémentaires modularisés (msg de démarrage, etc.) dans
utils.py
- v0.24 - corrections de bugs et limite de débit pré-alpha
- v0.23 - option de connexion au fichier ajoutée, voir les nouvelles options de journalisation dans
config.ini
- v0.22 -
escape_markdown
déplacé dans un fichier .py
séparé, il n'a de toute façon pas été utilisé - v0.21 - Refactorisation complète et introduction de la conception orientée objet
- Implémentation des principes de programmation orientée objet en encapsulant les fonctionnalités du bot dans la classe TelegramBot.
- Structure de code raffinée pour une lisibilité, une maintenabilité et une évolutivité améliorées.
- v0.20 - modularisation, étape 1 (lecture de clé et de jeton :
api_key.py
, bot_token.py
) - v0.19 - corrections d'erreurs de délai d'attente, gestion des nouvelles tentatives ; Valeur
Timeout
ajoutée à config.ini
- v0.18 - la température du modèle peut désormais être définie dans
config.ini
- v0.17 - horodatage pour une meilleure connaissance temporelle
- v0.16 -
/help
& /about
- v0.15 - mémoire contextuelle de l'historique des discussions (couper avec MAX_TOKENS)
- v0.14 - corrections de bugs
- v0.13 - analyse/regex pour les démarques du titre de l'URL et de l'adresse
- v0.12 - plus d'analyse des expressions régulières HTML à partir de la démarque de l'API
- v0.11 - passage à l'analyse HTML
- v0.10 - Essais MarkdownV2 (blocs de code + gras fonctionnent principalement )
- v0.09 - en utilisant MarkdownV2
- v0.08 - démarque pour les réponses du bot
- v0.07 - enregistrer les messages entrants et sortants
- v0.06 - Message du système API corrigé
- v0.05 - nouvelle tentative, nombre maximal de tentatives, délai de nouvelle tentative
- v0.04 - coupe de l'historique des discussions
Contribuer
- Toutes les contributions sont appréciées ! N'hésitez pas à publier également tous les bugs et autres problèmes sur la page "Problèmes" du dépôt.
- N'oubliez pas de le mettre en vedette si vous l'aimez. :-)
À propos
- Écrit par FlyingFathead
- Code fantôme numérique par ChaosWhisperer