Articles

îmbunătățirea bot meu FPL pentru Reddit!



https://github.com/amosbastian/FPLbot

droplet săptămâna trecută. Am postat despre asta pe Reddit și, după cum puteți vedea, a fost foarte bine primit! Este folosit foarte mult (aproape 100 de comentarii pe zi), ceea ce este minunat de văzut. Aceasta înseamnă, de asemenea, am primit unele feedback-ul, și așa am decis să pună în aplicare rapid unele dintre sugestiile am primit!

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

schimbarea mesei jucător vs.jucător

masa Jucător vs. jucător nu a fost foarte prietenoasă înainte, lucru pe care cineva l-a subliniat imediat. Ei au sugerat să creeze o masă separată pentru fiecare jucător și să le stivă pur și simplu unul peste celălalt, și așa am făcut. Acest lucru va permite, de asemenea, o comparație a mai mult decât jucătorii 2 în viitor, pe care I-aș putea implementa și eu.

îmbunătățirea tabelelor!



tabele îmbunătățite pentru portari

am făcut și alte îmbunătățiri la tabele în general. O problemă a fost că compararea portarilor a fost inutilă, deoarece tabelele au inclus doar lucruri precum goluri și asistențe așteptate, ceea ce, evident, nu este relevant pentru ei. Pentru a rezolva acest lucru am decis să creeze un tabel care a inclus obiectivele lor așteptate împotriva, salvează lor și mai mult.



Salvarea rezultatelor

deoarece obiectivele așteptate ale unui jucător nu sunt incluse în informațiile unui jucător despre subestimare, a trebuit să obțin acest lucru de la echipa lor. Pentru a face acest lucru, am creat o altă funcție care salvează toate rezultatele echipei în baza de date și apoi o folosesc pentru a obține datele. Din fericire, acest lucru a fost destul de ușor de făcut folosind propriul meu pachet Understat!



crearea tabelului portarului

Un alt lucru pe care l-am făcut a fost să adaug golurile așteptate la masa unui apărător și, de asemenea, punctele pe care jucătorul le-a marcat efectiv în timpul jocurilor (inclusiv puncte bonus). Pentru a realiza acest lucru, primul lucru pe care a trebuit să-l fac a fost să mă asigur că meciurile folosite la compararea jucătorilor sunt doar cele jucate în Premier League (deoarece despre asta este vorba despre FPL). În cele din urmă, trebuia să obțin cumva punctele și apoi să le potrivesc cu datele respective de la Understat. Din fericire, aș putea folosi doar istoricul unui jucător inclus în API-ul FPL pentru a obține punctele, iar toate programele de pe Understat au propriul ID, așa că aș putea compara pur și simplu programele unui jucător cu cele din Premier League.

este posibil să fi observat că am trecut, de asemenea, la utilizarea tabulate, care este un pachet Python pentru crearea tabelelor pe care le-am găsit. Funcționează destul de bine pentru cazul meu de utilizare și, de asemenea, a curățat ușor codul.

am făcut și alte modificări QoL la bot, dar această postare devine deja destul de lungă. Dacă doriți să citiți mai multe despre asta, puteți consulta firul Reddit pe care l-am creat.

foaie de parcurs

s-ar putea adăuga capacitatea de a compara mai mult de 2 jucători între ele, dar va trebui să vadă. Sperăm că veți primi și alte sugestii!

utilizare& instalare

FPLbot folosește MongoDB pentru a stoca jucători într-o bază de date, și de aceea este necesar să aibă MongoDB instalat. În afară de asta, folosește fpl pentru a prelua informații din API-ul Fantasy Premier League și, prin urmare, necesită Python 3.6+.

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



odată instalat, ar trebui să creați un config.json fișier ca exemplul de mai sus, dar cu valorile corecte. Odată ce ați făcut acest lucru, atunci puteți programa un loc de muncă cron pentru a rula bot ori de câte ori doriți!

contribuind



am creat un server Discord pentru persoanele interesate de programarea lucrurilor legate de FPL, deci dacă sunteți interesat să ajutați sau pur și simplu doriți să aflați mai multe, atunci nu ezitați să vă alăturați! În caz contrar, puteți crea pur și simplu o problemă pe GitHub.