Articles

Verbesserung meiner FPL Bot für Reddit!



https://github.com/amosbastian/FPLbot

Nach dem Hinzufügen eines Spieler-gegen-Spieler-Vergleichs habe ich letzte Woche endlich den Bot auf einem Droplet eingerichtet. Ich habe darüber auf Reddit gepostet und wie Sie sehen, wurde es sehr gut aufgenommen! Es wird viel verwendet (fast 100 Kommentare pro Tag), was großartig zu sehen ist. Es bedeutet auch, dass ich Feedback erhalten habe, und so habe ich beschlossen, einige der Vorschläge, die ich erhalten habe, schnell umzusetzen!

https://github.com/amosbastian/FPLbot/pull/6
https://github.com/amosbastian/FPLbot/pull/7
https://github.com/amosbastian/FPLbot/pull/9

https://www.reddit.com/user/FantasyPL_bot

Ändern der Spieler-gegen-Spieler-Tabelle

Die Spieler-gegen-Spieler-Tabelle war vorher nicht sehr mobilfreundlich, worauf jemand sofort hinwies. Sie schlugen vor, für jeden Spieler einen separaten Tisch zu erstellen und sie einfach übereinander zu stapeln. Dies wird auch einen Vergleich von mehr als 2 Spielern in der Zukunft ermöglichen, was ich auch implementieren könnte.

Verbesserung der Tabellen!



Verbesserte Tabellen für Torhüter

Ich habe auch einige andere Verbesserungen an den Tabellen im Allgemeinen vorgenommen. Ein Problem war, dass der Vergleich von Torhütern sinnlos war, da die Tabellen nur Dinge wie erwartete Tore und Vorlagen enthielten, was für sie offensichtlich nicht relevant ist. Um dies zu lösen, beschloss ich, eine Tabelle zu erstellen, die ihre erwarteten Tore gegen, ihre Saves und mehr enthielt.



Speichern der Ergebnisse

Da die erwarteten Tore eines Spielers nicht in den Informationen eines Spielers über Understat enthalten sind, musste ich dies von seinem Team selbst erhalten. Zu diesem Zweck habe ich eine andere Funktion erstellt, die alle Ergebnisse des Teams in der Datenbank speichert und diese dann zum Abrufen der Daten verwendet. Zum Glück war das mit meinem eigenen Understatement ziemlich einfach!



Erstellen der Torwarttabelle

Eine andere Sache, die ich getan habe, war, die erwarteten Tore gegen einen Verteidigertisch hinzuzufügen, und auch die Punkte, die der Spieler tatsächlich während der Spiele erzielt hat (einschließlich Bonuspunkte). Um dies zu erreichen, musste ich zunächst sicherstellen, dass die Spiele, die beim Vergleich der Spieler verwendet wurden, nur in der Premier League gespielt wurden (da es sich bei FPL darum handelt). Schließlich musste ich irgendwie die Punkte bekommen und diese dann mit den jeweiligen Daten von Understat abgleichen. Glücklicherweise konnte ich einfach den in der FPL-API enthaltenen Verlauf eines Spielers verwenden, um die Punkte zu erhalten, und alle Spiele auf Understat haben eine eigene ID, sodass ich die Spiele eines Spielers einfach mit den Premier League-Spielen vergleichen konnte.

Sie haben vielleicht bemerkt, dass ich auch zu tabulate gewechselt bin, einem Python-Paket zum Erstellen von Tabellen, das ich gefunden habe. Es funktioniert ziemlich gut für meinen Anwendungsfall und hat auch den Code leicht bereinigt.

Ich habe auch einige andere QoL-Änderungen am Bot vorgenommen, aber dieser Beitrag wird schon ziemlich lang. Wenn Sie mehr darüber lesen möchten, können Sie den von mir erstellten Reddit-Thread lesen.

Roadmap

Ich könnte die Möglichkeit hinzufügen, mehr als 2 Spieler miteinander zu vergleichen, muss aber sehen. Wir hoffen, dass Sie auch weitere Vorschläge erhalten!

Verwendung & installation

FPLbot verwendet MongoDB, um Spieler in einer Datenbank zu speichern. Abgesehen davon verwendet es fpl, um Informationen von der API der Fantasy Premier League abzurufen, und erfordert daher Python 3.6+.

git clone :amosbastian/FPLbot.gitcd FPLbotpip install -r requirements.txt



Nach der Installation sollten Sie eine config.json beispiel, aber mit den richtigen Werten. Sobald Sie dies getan haben, können Sie einen Cron-Job planen, um den Bot auszuführen, wann immer Sie möchten!

Contributing



Ich habe einen Discord-Server für Leute erstellt, die an der Programmierung von FPL-bezogenen Dingen interessiert sind. Wenn Sie also helfen möchten oder einfach mehr wissen möchten, zögern Sie nicht, mitzumachen! Andernfalls können Sie einfach ein Problem auf GitHub erstellen.