Articles

het verbeteren van mijn FPL bot voor Reddit!



https://github.com/amosbastian/FPLbot

na het toevoegen van een vergelijking tussen speler en speler heb ik de bot vorige week eindelijk ingesteld op een druppel. Ik postte erover op Reddit en zoals je kunt zien was het zeer goed ontvangen! Het wordt veel gebruikt (bijna 100 reacties per dag), wat geweldig is om te zien. Het betekent ook dat ik wat feedback heb ontvangen, en dus heb ik besloten om snel een aantal van de suggesties die ik heb ontvangen uit te voeren!

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

het veranderen van de speler vs.de speler tabel

de speler vs. speler tafel was niet erg mobiel vriendelijk voor, die iemand wees onmiddellijk. Ze stelden voor om een aparte tafel te maken voor elke speler, en om ze gewoon op elkaar te stapelen, en dat is wat ik deed. Dit zal ook zorgen voor een vergelijking van meer dan 2 spelers in de toekomst, die ik zou kunnen implementeren ook.

de tabellen verbeteren!



verbeterde tabellen voor keepers

Ik heb ook enkele andere verbeteringen aangebracht aan de tabellen in het algemeen. Een probleem was dat het vergelijken van keepers zinloos was, omdat de tafels alleen dingen bevatten zoals verwachte doelen en assisten, wat natuurlijk niet relevant is voor hen. Om dit op te lossen heb ik besloten om een tabel te maken met hun verwachte doelen tegen, hun besparingen en meer.



Het opslaan van de resultaten

aangezien de verwachte doelen van een speler niet zijn opgenomen in de informatie van een speler over Understat, moest ik dit van hun team zelf halen. Om dit te doen, creëerde ik een andere functie die alle resultaten van het team opslaat in de database, en die vervolgens gebruikt om de gegevens te krijgen. Gelukkig was dit vrij makkelijk te doen met mijn eigen Understat pakket!



Het creëren van de doelman tabel

een ander ding dat ik deed was het toevoegen van de verwachte doelpunten tegen een verdediger tafel, en ook de punten die de speler daadwerkelijk scoorde tijdens de wedstrijden (inclusief bonuspunten). Om dit te bereiken, het eerste wat ik moest doen was ervoor te zorgen dat de wedstrijden die worden gebruikt bij het vergelijken van spelers zijn alleen die gespeeld in de Premier League (want dat is wat FPL is over). Tot slot moest ik een of andere manier de punten te krijgen en dan overeenkomen met deze aan de respectieve gegevens van Understat. Gelukkig kon ik gewoon gebruik maken van de geschiedenis van een speler opgenomen in de FPL API om de punten te krijgen, en alle armaturen op Understat hebben hun eigen ID, dus ik kon gewoon vergelijken een speler armaturen met de Premier League armaturen.

u hebt misschien gemerkt dat ik ook ben overgestapt op tabulate, een Python-pakket voor het maken van tabellen die ik heb gevonden. Het werkt vrij goed voor mijn use case, en ook opgeruimd de code iets.

Ik heb ook een aantal andere QoL wijzigingen aangebracht aan de bot, maar dit bericht wordt al behoorlijk lang. Als je er meer over wilt lezen, kun je de Reddit thread bekijken die ik heb gemaakt.

Roadmap

Ik voeg misschien de mogelijkheid toe om meer dan 2 spelers met elkaar te vergelijken, maar zal het moeten zien. Zal hopelijk ook wat meer suggesties ontvangen!

gebruik & installatie

FPLbot gebruikt MongoDB om spelers in een database op te slaan, en dus is het vereist om MongoDB geïnstalleerd te hebben. Anders dan dat, het gebruikt fpl om informatie op te halen uit Fantasy Premier League API, en dus vereist Python 3.6+.

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



na installatie dient u een config.json bestand aan te maken, maar met de juiste waarden. Zodra je dit hebt gedaan, dan kun je een cron job plannen om de bot te draaien wanneer je maar wilt!

Contributing



Ik heb een Discord server gemaakt voor mensen die geïnteresseerd zijn in het programmeren van FPL gerelateerde dingen, dus als je geïnteresseerd bent in het helpen, of gewoon meer wilt weten, aarzel dan niet om mee te doen! Anders kun je gewoon een probleem aanmaken op GitHub.