Pour le dépannage et les notifications de publication, rejoignez le Discord !
Paypal :
BTC : bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
ETH : 0x8c096710e3621fe5f8E384efBd17D8E3E798Dc0c (Cryptik.eth)
DOGE : D6n2g2KGdqEwR4MhhT7uAdvZFaTwqwd6rS
Venmo : @dtcarls
Ce référentiel exécute un chatbot GroupMe, Discord ou Slack pour envoyer des informations ESPN Fantasy Football à une salle de discussion GroupMe, Discord ou Slack.
Qu'est-ce que cela fait ?
Lien du calendrier : https://www.gamedaybot.com/message-schedule/
Envoie les messages suivants selon ce calendrier :
Scores rapprochés - Lundi - 18h30, heure de la côte Est (Jeux à moins de 16 points les uns des autres à surveiller pendant le match du lundi soir)
Tableau de bord - Lun, mardi et vendredi - 7h30, heure locale (tableau de bord fantastique ESPN actuel)
Trophées - Mardi - 7h30 heure locale (score élevé, score faible, victoire la plus importante, victoire la plus proche)
Classements de puissance - mar - 18h30 heure locale
Classement actuel - Mercredi - 7h30 heure locale
Rapport de renonciation - Mercredi - 7h30 heure locale
Matchups - jeu. - 19h30, heure de la côte est (matchups à venir)
Rapport sur les joueurs à surveiller - Dimanche - 7h30, heure locale (Joueurs de la formation de départ douteux, douteux ou exclus)
Tableau de bord - Dim - 16h00, 20h00, heure de la côte Est (tableau de bord fantastique ESPN actuel)
Configuration de GroupMe, Discord ou Slack et déploiement de l'application dans Heroku
Configuration de GroupMe
Configuration Slack
Configuration de Discorde
Configuration Heroku
Ligues privées
Dépannage / FAQ
Premiers pas pour le développement et les tests
Installation pour le développement
Variables d'environnement
Exécuter avec Docker
Exécuter sans Docker
Exécuter les tests
Tout cela vous semble trop compliqué et déroutant ? Vous ne savez pas ce qu'est un « Heroku » ? Pensez à consulter https://www.GameDayBot.com/ où je propose un service d'hébergement et fais de mon mieux pour minimiser la complexité.
Ne déployez pas 2 du même bot dans le même chat. En général, vous devriez laisser votre commissaire faire la configuration
Allez sur www.groupme.com et inscrivez-vous ou connectez-vous
Si vous n'en avez pas déjà un pour votre ligue, créez un nouveau "Group Chat"
Ensuite, nous allons configurer le bot pour GroupMe
Allez sur https://dev.groupme.com/session/new et connectez-vous
Cliquez sur "Créer un robot"
Créez votre robot. GroupMe fait du bon travail en expliquant ce qu'est chaque chose.
Après avoir créé votre bot, vous verrez quelque chose de similaire à ceci. Cliquez sur "Modifier"
Cette page est importante car vous aurez besoin du « Bot ID » sur cette page. Vous pouvez également envoyer un message test avec la zone de texte pour être sûr qu'il est connecté à votre salle de discussion. Remarque : si vous utilisez l'identifiant de bot représenté sur la page, vous spammerez une salle de discussion vide, cela n'en vaut donc pas la peine.
Accédez à https://slack.com/signin et connectez-vous à l'espace de travail dans lequel se trouvera le bot.
Si vous n'en avez pas déjà une pour votre ligue, créez une nouvelle chaîne de ligue.
Ensuite, nous allons configurer le bot pour Slack
Accédez à https://api.slack.com/apps/new
Nommez l'application et choisissez l'espace de travail souhaité dans la liste déroulante.
Sélectionnez la section Webhooks entrants sur le côté.
Changez le commutateur de Désactivé à Activé.
Sélectionnez Ajouter un nouveau webhook à l'espace de travail
Dans la liste déroulante Publier sur, sélectionnez le canal auquel vous souhaitez envoyer des messages, puis sélectionnez Autoriser.
Cette page est importante car vous aurez besoin de "l'URL du Webhook" sur cette page.
Connectez-vous ou créez un compte Discord
Accédez ou créez un serveur Discord pour recevoir des messages dans
Ouvrez les paramètres du serveur
Accédez aux Webhooks
Créez un webhook, donnez-lui un nom et choisissez sur quel canal recevoir les messages
Enregistrez l'"URL du Webhook" sur cette page
« Le 28 novembre 2022, Heroku a cessé de proposer des plans de produits gratuits »
J'offre un service d'hébergement bien inférieur aux nouveaux coûts de Heroku sur https://www.GameDayBot.com/
Accédez à https://id.heroku.com/login et inscrivez-vous ou connectez-vous
Cliquez sur ce bouton violet pour déployer automatiquement le code :
Accédez à votre tableau de bord (https://dashboard.heroku.com/apps). Vous devrez maintenant configurer vos variables d'environnement pour qu'elles fonctionnent pour votre ligue. Cliquez sur Paramètres sur votre tableau de bord. Cliquez ensuite sur le bouton "Révéler les variables de configuration" et vous verrez quelque chose comme ceci.
Nous devrons maintenant modifier ces variables (cliquez sur le crayon à droite de la variable à modifier) Remarque : l'application redémarrera lorsque vous modifierez une variable afin que votre salle de discussion puisse être semi-spamée avec le message d'initialisation "Salut", vous pouvez changez la variable INIT_MSG pour qu'elle soit vide pour n'avoir aucun message d'initialisation. Il convient également de noter que Heroku semble redémarrer l'application environ une fois par jour.
Voir la section Variables d'environnement pour la documentation
Après avoir configuré vos variables, vous devrez les activer. Accédez à l'onglet « Ressources » du tableau de bord de votre application Heroku. Vous devriez voir quelque chose comme ci-dessous. Cliquez sur le crayon à droite et faites basculer le bouton pour qu'il soit bleu comme illustré, puis cliquez sur "Confirmer".
Vous avez terminé ! Vous disposez désormais d'un chatbot GroupMe/Slack/Discord complet pour les ligues ESPN ! Si vous avez un INIT_MSG, vous le verrez s'exclamer dans votre salle de discussion GroupMe, Discord ou Slack.
Malheureusement, pour effectuer des déploiements automatiques de la dernière version, vous avez besoin d'un accès administrateur au référentiel sur git. Vous pouvez vérifier les mises à jour sur la page github (https://github.com/dtcarls/fantasy_football_chat_bot/commits/master) et cliquer à nouveau sur le bouton de déploiement ; cependant, cela déploiera une nouvelle instance et les variables devront être à nouveau modifiées.
Ces instructions vous permettront d'obtenir une copie du projet opérationnel sur votre ordinateur local à des fins de développement et de test.
Avec Docker :
clone git https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot docker build -t fantasy_football_chat_bot .
Sans Docker :
clone git https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot pip install -r exigences.txt# ou#python3 setup.py install
Var | Taper | Requis | Défaut | Description |
---|---|---|---|---|
BOT_ID | Chaîne | Pour GroupMe | Aucun | Il s'agit de votre identifiant de bot provenant de la page des développeurs GroupMe. |
SLACK_WEBHOOK_URL | Chaîne | Pour Slack | Aucun | Il s'agit de l'URL de votre Webhook provenant de la page de l'application Slack. |
DISCORD_WEBHOOK_URL | Chaîne | Pour la discorde | Aucun | Il s'agit de l'URL de votre Webhook provenant de la page Paramètres de Discord. |
LIGUE_ID | Chaîne | Oui | Aucun | Ceci est votre identifiant de ligue ESPN |
DATE DE DÉBUT | Date | Oui | Début de la saison en cours (AAAA-MM-JJ) | C’est à ce moment-là que le bot commencera à prêter attention et à envoyer des messages à votre chat. |
END_DATE | Date | Oui | Fin de la saison en cours (AAAA-MM-JJ) | C’est à ce moment-là que le bot cessera de prêter attention et cessera d’envoyer des messages à votre chat. |
LIGUE_ANNÉE | Chaîne | Oui | Année actuelle (AAAA) | Année de la Ligue ESPN à regarder |
FUSEAU HORAIRE | Chaîne | Oui | Amérique/New_York | Le fuseau horaire dans lequel les messages chercheront à être envoyés. |
INIT_MSG | Chaîne | Non | Aucun | Le message que le bot dira au démarrage. |
TOP_HALF_SCORING | Bool | Non | FAUX | S'il est défini sur True, lorsque le classement sera publié mercredi, cela inclura également d'être dans la moitié supérieure de votre ligue pour les points et vous recevrez une « victoire » supplémentaire en échange. |
RANDOM_PHRASE | Bool | Non | FAUX | S'il est défini sur True, lorsque les confrontations seront publiées mardi, elles incluront également une phrase aléatoire. |
MONITOR_REPORT | Bool | Non | FAUX | S'il est défini sur True, fournira un rapport sur les joueurs de la formation de départ qui sont douteux, douteux, exclus ou projetés pour moins de 4 points. |
WAIVER_REPORT | Bool | Non | FAUX | S'il est défini sur True, fournira un rapport de renonciation aux ajouts/suppressions. |
DAILY_WAIVER | Bool | Non | FAUX | S'il est défini sur True, fournira quotidiennement un rapport de renonciation sur les ajouts/suppressions. |
ESPN_S2 | Chaîne | Pour les ligues privées | Aucun | Utilisé pour les ligues privées. Voir la section Ligues privées pour la documentation |
SWID | Chaîne | Pour les ligues privées | Aucun | Utilisé pour les ligues privées. (Peut être défini avec ou sans {}) Voir la section Ligues privées pour la documentation |
Utilisez BOT_ID si vous utilisez Groupme, DISCORD_WEBHOOK_URL si vous utilisez Discord et SLACK_WEBHOOK_URL si vous utilisez Slack (ou plusieurs pour recevoir des messages à plusieurs endroits)
>>> export BOT_ID=[entrez votre ID de robot GroupMe] >>> export WEBHOOK_URL=[entrez votre URL Webhook] >>> export LEAGUE_ID=[entrez l'ID de la ligue ESPN] >>> export LEAGUE_YEAR=[entrez l'année de la ligue] >>> cd fantasy_football_chat_bot >>> Docker Run --rm = True -e BOT_ID=$BOT_ID -e LEAGUE_ID=$LEAGUE_ID -e LEAGUE_YEAR=$LEAGUE_YEAR fantasy_football_chat_bot
Utilisez BOT_ID si vous utilisez Groupme, DISCORD_WEBHOOK_URL si vous utilisez Discord et SLACK_WEBHOOK_URL si vous utilisez Slack (ou plusieurs pour recevoir des messages à plusieurs endroits)
>>> export BOT_ID=[entrez votre ID de robot GroupMe] >>> export WEBHOOK_URL=[entrez votre URL Webhook] >>> export LEAGUE_ID=[entrez l'ID de la ligue ESPN] >>> export LEAGUE_YEAR=[entrez l'année de la ligue] >>> python3 gamedaybot/espn/espn_bot.py
Les tests automatisés pour ce package sont inclus dans le répertoire tests
. Après l'installation, vous pouvez exécuter ces tests en remplaçant le répertoire par le répertoire gamedaybot
et en exécutant ce qui suit :
pip install -r exigences-test.txtpytest
Pour la ligue privée, vous devrez obtenir votre swid et votre espn_s2. Vous pouvez trouver ces deux valeurs après vous être connecté à votre compte espn fantasy football sur le site Web d'espn. (Navigateur Chrome) Faites un clic droit n'importe où sur le site Web et cliquez sur l'option d'inspection. De là, cliquez sur Application dans la barre supérieure. À gauche, dans la section Stockage, cliquez sur Cookies puis sur http://fantasy.espn.com. À partir de là, vous devriez pouvoir trouver vos variables et valeurs swid et espn_s2.
La ligue doit être pleine.
Le bot ne fonctionne pas
Vous avez manqué une étape dans les instructions ? Essayez de recommencer à partir de zéro. Si toujours pas de chance, ouvrez un numéro (https://github.com/dtcarls/fantasy_football_chat_bot/issues) ou accédez au Discord (lien en haut du fichier Lisez-moi) pour que la réponse puisse être partagée avec d'autres.
Comment sont calculés les rangs de puissance ?
Ils sont calculés en utilisant une domination de 2 pas, ainsi qu'une combinaison de points marqués et de marge de victoire. Pondéré respectivement 80/15/5. Je ne ferais pas tellement attention au nombre réel mais plutôt à l'écart entre les équipes. La source complète des calculs peut être consultée ici : https://github.com/cwendt94/espn-api/pull/12/files. Si vous souhaitez un tutoriel sur les matrices de dominance : https://www.youtube.com/watch?v=784TmwaHPOw
Existe-t-il une version de ceci pour Yahoo/CBS/NFL/[insérer un autre site] ?
Non, cela nécessiterait une refonte importante pour les autres sites.
Comment définir un autre fuseau horaire ?
Spécifiez votre variable https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
Existe-t-il une version pour Messenger/WhatsApp/[insérer un autre chat] ?
Non, mais je suis ouvert aux demandes d'extraction implémentant leur API pour une prise en charge multiplateforme supplémentaire.
Mon classement semble faux. J'ai un (+1) bizarre dedans.
TOP_HALF_SCORING : si défini sur True, lorsque le classement sera publié mercredi, il inclura également les victoires dans la première moitié du classement.
Les victoires dans la première moitié consistent à être dans la moitié supérieure de votre ligue pour les points et vous recevez une « victoire » supplémentaire pour cela. Le nombre entre parenthèses (+1) vous indique le nombre de victoires ajoutées au cours de la saison pour les victoires dans la première moitié.