Treten Sie dem Discord bei, um Fehlerbehebungs- und Release-Benachrichtigungen zu erhalten!
PayPal:
BTC: bc1q3wxm269mdmwdqjqkxgt7s5zp8ah05dexdua0zv
ETH: 0x8c096710e3621fe5f8E384efBd17D8E3E798Dc0c (Cryptik.eth)
DOGE: D6n2g2KGdqEwR4MhhT7uAdvZFaTwqwd6rS
Venmo: @dtcarls
Dieses Repository führt einen GroupMe-, Discord- oder Slack-Chatbot aus, um ESPN Fantasy Football-Informationen an einen GroupMe-, Discord- oder Slack-Chatroom zu senden.
Was bewirkt das?
Zeitplan-Link: https://www.gamedaybot.com/message-schedule/
Versendet nach diesem Zeitplan die folgenden Nachrichten:
Endstand – Mo – 18:30 Uhr Ostküstenzeit (Spiele, die weniger als 16 Punkte voneinander entfernt sind, sollten Sie während des Spiels am Montagabend im Auge behalten)
Anzeigetafel – Mo, Di, Fr – 7:30 Uhr Ortszeit (Aktuelle ESPN-Fantasy-Anzeigetafel)
Trophäen – Di – 7:30 Uhr Ortszeit (Highscore, Lowscore, größter Sieg, nächster Sieg)
Power-Rangliste – Di – 18:30 Uhr Ortszeit
Aktueller Stand – Mi – 7:30 Uhr Ortszeit
Verzichtsbericht – Mi – 7:30 Uhr Ortszeit
Matchups – Do – 19:30 Uhr Ostküstenzeit (Anstehende Matchups)
Bericht „Zu überwachende Spieler“ – So – 7:30 Uhr Ortszeit (Spieler in der Startaufstellung, die fraglich, zweifelhaft oder ausgeschieden sind)
Anzeigetafel – So – 16:00, 20:00 Uhr Ostküstenzeit (Aktuelle ESPN-Fantasy-Anzeigetafel)
GroupMe, Discord oder Slack einrichten und App in Heroku bereitstellen
GroupMe-Setup
Slack-Setup
Discord-Setup
Heroku-Setup
Private Ligen
Fehlerbehebung / FAQ
Erste Schritte für Entwicklung und Tests
Installation für die Entwicklung
Umgebungsvariablen
Laufen mit Docker
Läuft ohne Docker
Ausführen der Tests
Sieht das alles zu kompliziert und verwirrend aus? Sie wissen nicht, was ein „Heroku“ ist? Werfen Sie einen Blick auf https://www.GameDayBot.com/, wo ich einen Hosting-Service anbiete und mein Bestes tue, um die Komplexität zu minimieren.
Stellen Sie nicht zwei gleiche Bots im selben Chat bereit. Generell sollten Sie die Einrichtung Ihrem Beauftragten überlassen
Gehen Sie zu www.groupme.com und registrieren Sie sich oder melden Sie sich an
Wenn Sie noch keinen für Ihre Liga haben, erstellen Sie einen neuen „Gruppenchat“.
Als nächstes richten wir den Bot für GroupMe ein
Gehen Sie zu https://dev.groupme.com/session/new und melden Sie sich an
Klicken Sie auf „Bot erstellen“
Erstellen Sie Ihren Bot. GroupMe leistet gute Arbeit und erklärt, was die einzelnen Dinge sind.
Nachdem Sie Ihren Bot erstellt haben, sehen Sie etwas Ähnliches. Klicken Sie auf „Bearbeiten“
Diese Seite ist wichtig, da Sie die „Bot-ID“ auf dieser Seite benötigen. Sie können auch eine Testnachricht mit dem Textfeld senden, um sicherzustellen, dass es mit Ihrem Chatroom verbunden ist. Randbemerkung: Wenn Sie die auf der Seite abgebildete Bot-ID verwenden, spammen Sie einen leeren Chatraum, sodass sich der Aufwand nicht lohnt
Gehen Sie zu https://slack.com/signin und melden Sie sich bei dem Arbeitsbereich an, in dem sich der Bot befinden wird
Wenn Sie noch keinen für Ihre Liga haben, erstellen Sie einen neuen Ligakanal
Als nächstes richten wir den Bot für Slack ein
Gehen Sie zu https://api.slack.com/apps/new
Benennen Sie die App und wählen Sie den gewünschten Arbeitsbereich aus der Dropdown-Liste aus.
Wählen Sie seitlich den Abschnitt „Eingehende Webhooks“ aus.
Ändern Sie den Schalter von Aus auf Ein.
Wählen Sie „Neuen Webhook zum Arbeitsbereich hinzufügen“ aus
Wählen Sie im Dropdown-Menü „Posten an“ den Kanal aus, an den Sie Nachrichten senden möchten, und wählen Sie dann „Autorisieren“ aus.
Diese Seite ist wichtig, da Sie die „Webhook-URL“ auf dieser Seite benötigen.
Melden Sie sich an oder erstellen Sie ein Discord-Konto
Gehen Sie zu einem Discord-Server oder erstellen Sie einen, um dort Nachrichten zu empfangen
Öffnen Sie die Servereinstellungen
Gehen Sie zu Webhooks
Erstellen Sie einen Webhook, geben Sie ihm einen Namen und wählen Sie den Kanal aus, über den Nachrichten empfangen werden sollen
Speichern Sie die „Webhook-URL“ auf dieser Seite
„Am 28. November 2022 hat Heroku aufgehört, kostenlose Produktpläne anzubieten.“
Ich biete unter https://www.GameDayBot.com/ einen Hosting-Service an, der weit unter den neuen Kosten von Heroku liegt.
Gehen Sie zu https://id.heroku.com/login und registrieren Sie sich oder melden Sie sich an
Klicken Sie auf diese violette Schaltfläche, um den Code automatisch bereitzustellen:
Gehen Sie zu Ihrem Dashboard (https://dashboard.heroku.com/apps). Jetzt müssen Sie Ihre Umgebungsvariablen so einrichten, dass sie für Ihre Liga funktionieren. Klicken Sie in Ihrem Dashboard auf Einstellungen. Klicken Sie dann auf die Schaltfläche „Konfigurationsvariablen anzeigen“ und Sie sehen etwa Folgendes.
Jetzt müssen wir diese Variablen bearbeiten (klicken Sie zum Ändern auf den Stift rechts neben der Variablen). Hinweis: Die App wird neu gestartet, wenn Sie eine Variable ändern, sodass Ihr Chatroom möglicherweise teilweise mit der Init-Nachricht „Hallo“ gespammt wird Ändern Sie die Variable INIT_MSG so, dass sie leer ist, damit keine Init-Nachricht angezeigt wird. Es sollte auch beachtet werden, dass Heroku die App anscheinend etwa einmal am Tag neu startet
Dokumentation finden Sie im Abschnitt „Umgebungsvariablen“.
Nachdem Sie Ihre Variablen eingerichtet haben, müssen Sie sie aktivieren. Navigieren Sie zur Registerkarte „Ressourcen“ Ihres Heroku-App-Dashboards. Sie sollten etwas wie unten sehen. Klicken Sie auf den Stift rechts und schalten Sie die Schaltfläche so um, dass sie wie abgebildet blau ist, und klicken Sie auf „Bestätigen“.
Du bist fertig! Sie haben jetzt einen voll ausgestatteten GroupMe/Slack/Discord-Chatbot für ESPN-Ligen! Wenn Sie ein INIT_MSG haben, wird es in Ihrem GroupMe-, Discord- oder Slack-Chatroom angezeigt.
Um die neueste Version automatisch bereitzustellen, benötigen Sie leider Administratorzugriff auf das Repository auf Git. Sie können auf der Github-Seite (https://github.com/dtcarls/fantasy_football_chat_bot/commits/master) nach Updates suchen und erneut auf die Schaltfläche „Bereitstellen“ klicken. Allerdings wird dadurch eine neue Instanz bereitgestellt und die Variablen müssen erneut bearbeitet werden.
Mit diesen Anweisungen erhalten Sie eine Kopie des Projekts, die zu Entwicklungs- und Testzwecken auf Ihrem lokalen Computer ausgeführt werden kann.
Mit Docker:
Git-Klon https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot docker build -t fantasy_football_chat_bot .
Ohne Docker:
Git-Klon https://github.com/dtcarls/fantasy_football_chat_botcd fantasy_football_chat_bot pip install -r require.txt# oder#python3 setup.py install
Var | Typ | Erforderlich | Standard | Beschreibung |
---|---|---|---|---|
BOT_ID | Zeichenfolge | Für GroupMe | Keiner | Dies ist Ihre Bot-ID von der GroupMe-Entwicklerseite |
SLACK_WEBHOOK_URL | Zeichenfolge | Für Slack | Keiner | Dies ist Ihre Webhook-URL von der Slack-App-Seite |
DISCORD_WEBHOOK_URL | Zeichenfolge | Für Discord | Keiner | Dies ist Ihre Webhook-URL von der Seite „Discord-Einstellungen“. |
LEAGUE_ID | Zeichenfolge | Ja | Keiner | Dies ist Ihre ESPN-Liga-ID |
STARTDATUM | Datum | Ja | Beginn der aktuellen Saison (JJJJ-MM-TT) | Ab diesem Zeitpunkt beginnt der Bot aufmerksam zu sein und Nachrichten an Ihren Chat zu senden. |
END_DATE | Datum | Ja | Ende der aktuellen Saison (JJJJ-MM-TT) | In diesem Fall hört der Bot auf, aufmerksam zu sein und keine Nachrichten mehr an Ihren Chat zu senden. |
LEAGUE_YEAR | Zeichenfolge | Ja | Aktuelles Jahr (JJJJ) | Das ESPN-League-Jahr zum Anschauen |
ZEITZONE | Zeichenfolge | Ja | Amerika/New_York | Die Zeitzone, in der die Nachrichten gesendet werden sollen. |
INIT_MSG | Zeichenfolge | NEIN | Keiner | Die Nachricht, die der Bot beim Starten ausgibt. |
TOP_HALF_SCORING | Bool | NEIN | FALSCH | Wenn dieser Wert auf „True“ gesetzt ist, wird bei der Veröffentlichung der Rangliste am Mittwoch auch die Platzierung in der oberen Hälfte Ihrer Liga in Bezug auf Punkte berücksichtigt und Sie erhalten dafür einen zusätzlichen „Gewinn“. |
RANDOM_PHRASE | Bool | NEIN | FALSCH | Wenn die Einstellung auf „True“ gesetzt ist, wird bei der Veröffentlichung von Matchups am Dienstag auch eine zufällige Phrase enthalten |
MONITOR_REPORT | Bool | NEIN | FALSCH | Bei der Einstellung „True“ wird ein Bericht über Spieler in der Startaufstellung bereitgestellt, die fraglich, zweifelhaft oder ausgeschieden sind oder voraussichtlich weniger als 4 Punkte erreichen |
WAIVER_REPORT | Bool | NEIN | FALSCH | Wenn auf „True“ gesetzt, wird ein Verzichtsbericht über Hinzufügungen/Drops bereitgestellt. |
DAILY_WAIVER | Bool | NEIN | FALSCH | Wenn auf „True“ gesetzt, wird täglich ein Verzichtsbericht über Hinzufügungen/Drops bereitgestellt. |
ESPN_S2 | Zeichenfolge | Für private Ligen | Keiner | Wird für private Ligen verwendet. Dokumentation finden Sie im Abschnitt „Private Ligen“. |
SWID | Zeichenfolge | Für private Ligen | Keiner | Wird für private Ligen verwendet. (Kann mit oder ohne {} definiert werden) Dokumentation finden Sie im Abschnitt „Private Ligen“. |
Verwenden Sie BOT_ID, wenn Sie Groupme verwenden, DISCORD_WEBHOOK_URL, wenn Sie Discord verwenden, und SLACK_WEBHOOK_URL, wenn Sie Slack verwenden (oder mehrere, um Nachrichten an mehreren Orten zu erhalten).
>>> export BOT_ID=[Geben Sie Ihre GroupMe-Bot-ID ein] >>> export WEBHOOK_URL=[Geben Sie Ihre Webhook-URL ein] >>> export LEAGUE_ID=[ESPN-Liga-ID eingeben] >>> export LEAGUE_YEAR=[Ligajahr eingeben] >>> 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
Verwenden Sie BOT_ID, wenn Sie Groupme verwenden, DISCORD_WEBHOOK_URL, wenn Sie Discord verwenden, und SLACK_WEBHOOK_URL, wenn Sie Slack verwenden (oder mehrere, um Nachrichten an mehreren Orten zu erhalten).
>>> export BOT_ID=[Geben Sie Ihre GroupMe-Bot-ID ein] >>> export WEBHOOK_URL=[Geben Sie Ihre Webhook-URL ein] >>> export LEAGUE_ID=[ESPN-Liga-ID eingeben] >>> export LEAGUE_YEAR=[Ligajahr eingeben] >>> python3 gamedaybot/espn/espn_bot.py
Automatisierte Tests für dieses Paket sind im tests
enthalten. Nach der Installation können Sie diese Tests ausführen, indem Sie das Verzeichnis in das gamedaybot
-Verzeichnis ändern und Folgendes ausführen:
pip install -r Anforderungen-Test.txtpytest
Für die private Liga benötigen Sie Ihren swid und espn_s2. Sie finden diese beiden Werte, nachdem Sie sich auf der Website von espn bei Ihrem ESPN-Fantasy-Football-Konto angemeldet haben. (Chrome-Browser) Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle auf der Website und klicken Sie auf die Option „Inspizieren“. Klicken Sie dort in der oberen Leiste auf Anwendung. Klicken Sie links im Abschnitt „Speicher“ auf „Cookies“ und dann auf „http://fantasy.espn.com“. Von dort aus sollten Sie in der Lage sein, Ihre swid- und espn_s2-Variablen und -Werte zu finden.
Die Liga muss voll sein.
Der Bot funktioniert nicht
Haben Sie einen Schritt in der Anleitung übersehen? Versuchen Sie es noch einmal von Grund auf. Wenn Sie immer noch kein Glück haben, öffnen Sie ein Problem (https://github.com/dtcarls/fantasy_football_chat_bot/issues) oder springen Sie in den Discord (Link oben in der Readme-Datei), damit die Antwort mit anderen geteilt werden kann.
Wie werden Machtränge berechnet?
Sie werden anhand der 2-Stufen-Dominanz sowie einer Kombination aus erzielten Punkten und Siegvorsprung berechnet. Gewichtet jeweils 80/15/5. Ich würde nicht so sehr auf die tatsächliche Anzahl achten, sondern eher auf den Abstand zwischen den Teams. Die vollständige Quelle der Berechnungen finden Sie hier: https://github.com/cwendt94/espn-api/pull/12/files. Wenn Sie ein Tutorial zu Dominanzmatrizen wünschen: https://www.youtube.com/watch?v=784TmwaHPOw
Gibt es eine Version davon für Yahoo/CBS/NFL/[Andere Website einfügen]?
Nein, dies würde eine erhebliche Überarbeitung für andere Websites erfordern.
Wie stelle ich eine andere Zeitzone ein?
Geben Sie Ihre Variable https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List an
Gibt es eine Version davon für Messenger/WhatsApp/[anderen Chat einfügen]?
Nein, aber ich bin offen für Pull-Anfragen, die ihre API für zusätzliche plattformübergreifende Unterstützung implementieren.
Meine Platzierung sieht falsch aus. Ich habe seltsame (+1) darin.
TOP_HALF_SCORING: Wenn auf „True“ gesetzt, werden bei der Veröffentlichung der Rangliste am Mittwoch auch Siege in der oberen Hälfte berücksichtigt
Siege in der oberen Hälfte bedeuten, dass man in der oberen Hälfte seiner Liga nach Punkten liegt und dafür einen zusätzlichen „Sieg“ erhält. Die Zahl in Klammern (+1) gibt an, wie viele Siege im Laufe der Saison für Siege in der oberen Hälfte hinzukamen.