From 608d2cb69828ee00854a0461029179c50e33dc23 Mon Sep 17 00:00:00 2001 From: Chuck <33324927+ChuckBuilds@users.noreply.github.com> Date: Thu, 3 Sep 2026 18:20:33 -0400 Subject: [PATCH] docs(nfl-draft): document all 33 settings, with real renders The configuration table covered 21 of the 33 settings. The twelve it missed include the three that decide what the panel shows once the draft is over -- post_draft_show, post_draft_days and display_rounds -- along with the dynamic_duration block and vegas_mode. vegas_mode is worth a note: grepping this plugin alone suggests it is dead, because nothing here reads it. The core does, in BasePlugin.get_vegas_display_mode(), where it overrides the legacy get_vegas_content_type() mapping. Only olympics and this plugin declare it. transition.type, .speed and .enabled are documented as doing nothing, because neither the plugin nor the core reads them (#381). Adds the images: a pick card, the show_position and show_college toggles, two of the five offered fonts, and four panel sizes. Each pair was hash-compared to confirm the setting changes the render. Picks are seeded onto the plugin instance rather than fetched; simulate_live still goes to ESPN, so it cannot drive an offline render. Also records that the plugin copies its bundled logo into the LEDMatrix assets/sports/nfl_logos folder on first run, which is how the shared sports renderer finds it. check_plugin.py: 8/8 pass, but every size warns "drew nothing" -- the plugin ships no test/harness.json and the off-season guard blanks the panel, so the harness is checking an empty frame. Same gap as #395. Co-Authored-By: Claude Opus 5 --- .gitignore | 6 + README.md | 2 +- docs/assets/nfl-draft/detail-line.png | Bin 0 -> 29846 bytes docs/assets/nfl-draft/fonts.png | Bin 0 -> 22004 bytes docs/assets/nfl-draft/hero.png | Bin 0 -> 6738 bytes docs/assets/nfl-draft/panel-sizes.png | Bin 0 -> 20159 bytes docs/assets/nfl-draft/shots.json | 216 ++++++++++++++++++++++++++ plugins.json | 4 +- plugins/nfl-draft/README.md | 58 ++++++- plugins/nfl-draft/manifest.json | 10 +- 10 files changed, 289 insertions(+), 7 deletions(-) create mode 100644 docs/assets/nfl-draft/detail-line.png create mode 100644 docs/assets/nfl-draft/fonts.png create mode 100644 docs/assets/nfl-draft/hero.png create mode 100644 docs/assets/nfl-draft/panel-sizes.png create mode 100644 docs/assets/nfl-draft/shots.json diff --git a/.gitignore b/.gitignore index d49aaab6..2a13ea2c 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,9 @@ debug_cropped.png # them next to itself (plugins/stock-news/assets/logos), so without this a # local run leaves third-party logo files sitting untracked in the plugin tree. plugins/stock-news/assets/logos/ + +# nfl-draft copies its bundled logo into assets/sports/nfl_logos at start-up, +# using a path relative to the working directory. On a real install that is the +# LEDMatrix root; running the docs renderer or the harness from this repo drops +# it here instead, where it does not belong. +/assets/ diff --git a/README.md b/README.md index 812a069d..209d2610 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ curl -X POST http://your-pi-ip:5000/api/v3/plugins/install \ | [UFC Scoreboard](./plugins/ufc-scoreboard/) | UFC/MMA live fights, fighter headshots, records, odds & results — *by [LegoGuy1000](https://github.com/legoguy1000)* | | | [Masters Tournament](./plugins/masters-tournament/) | Live Masters golf leaderboard, hole tracking, player cards | | | [March Madness](./plugins/march-madness/) | NCAA tournament bracket tracker with round branding and live scores | | -| [NFL Draft](./plugins/nfl-draft/) | Projected & live NFL draft picks from ESPN | | +| [NFL Draft](./plugins/nfl-draft/) | Projected & live NFL draft picks from ESPN | nfl-draft on an LED panel | | [Odds Ticker](./plugins/odds-ticker/) | Betting odds & lines across NFL, NBA, MLB, NHL, NCAA | | | [Sports Leaderboard](./plugins/ledmatrix-leaderboard/) | League standings, rankings, conference records | | | [Olympics Countdown](./plugins/olympics/) | Countdown to next Olympics with live medal counts | | diff --git a/docs/assets/nfl-draft/detail-line.png b/docs/assets/nfl-draft/detail-line.png new file mode 100644 index 0000000000000000000000000000000000000000..3218f5d887e142649d20e4318000f57c565b1cef GIT binary patch literal 29846 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 literal 0 HcmV?d00001 diff --git a/docs/assets/nfl-draft/hero.png b/docs/assets/nfl-draft/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..086520001857a80c776f0fd30f82c8a2924ab6d5 GIT binary patch literal 6738 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 bS->jk_7;jRPH)@0KC->-SsT(1mw);{A^K#! literal 0 HcmV?d00001 diff --git a/docs/assets/nfl-draft/panel-sizes.png b/docs/assets/nfl-draft/panel-sizes.png new file mode 100644 index 0000000000000000000000000000000000000000..0590b36e165568840a66f7a02e2df94aa416d3dc GIT binary patch literal 20159 zcmdtK2UwG5+dmv@D=JH?fXXr&2ePU%WVcC`03r&qM-)LsmTcLyGO7rq5s7REqp~7l z&u9@agdre%L?M98NPvU@f$xgeo9B6J`}KL>_xt|G@ejw*qslrAt^wNXV2TkWnOA-G1G!t%uHPz)o@B$ zoavX}1hxS_;s)XHPf}=l)8-AaLNQ_XT#0oHS?Ld$DK;&29Tb)^yD?WMVvwq?BICI-Q%bK{ndKFh`7JMx6DO~H z?e)V8PtMF#Oyv(&`le|FFlz<1R;MuQ{uAvPvLXGXkaf4<`J|QULW4BTprMd;&Uji# z@IaaS$*WB_h?_!Vro(ofJGH(#kC(GvewUO%R93>QG4R^a`-Yvt8;I%K&cO|z=$2Oe>+k!a=2xW0_0 z$`8Nu8mP~`6g&dnhI%GOtd}vK{?leXw|LF9`mwjS1Z&0;oiqbQORjfj8yRRU8ZrH5i@9gper8@VNo}U62t_Z$c6*m>|w)zWa3q|ISGCB?HvWu~mdbG$`^HQ*_D>TT$|+DH#;4tD0u;D;C5l0gf>bZAvINo6IsgL4tANt`$sy-zXwDfcrmUD$d~%HEvWptV*2{#ei; z(H}V9T>HB+HEJacZtX(rw#3JCGtNSG~}#wa#uWbZE6Hu&opK9ccTO zIoU}eZ-J>kL_Yd1Xn7$gzhd(Ck<_D{{#a7M)9h?rDGfI5p66Iof|5(0XRAgxtNttK00&2;AV+m2hvcS|THLt3b z4tP+&VI~+Zk13OSb4&@BYa_U3D3wugrGb042Tj2fmxo12OPz#Z#f*jDdF8Y$-^@4xt#&dyF# zEBDj-`ppf_*P9a+@zy@Q`pSbBt*wK=krl5JY$bvg+IS>xzCDO1t;|;X4*8A88EU4H z##00G!HKooFSF>>*RQdL7G*cyaadHk-Da3*er#1i`C^x)a=&xo$yW9GJ|}{{RGvlg zuV3S|+LcF@Ogr8>%k8G16j{x5{E_R@?RDWh+hO@GFg`H75d>K42w%dM=kz zg9E^8wP)yQ$4YSKFpO=m*S~TKMUx((B2zsYrKB>zyEwExKAocGTQg0h`1IO~uq?o~ zU^)qSLyO|;#uP~jV8o6cnaych>q7x_eJNuT6IT+4SsN)R3EXhFE=s=a?a#IaJ&F8l z%u!Ts!bIU_kS&@nXkqUxM@VdvifMT2d>RB3sJ!JFb%nt}z!n47h%llaqr9 zW{-}bC@nT)ptuxy=Qo{e5?o)@>)RBf*x9it|mlYc7Dk>`K>+9D> z@UOh$kJ+an3xE{poI6E3s1CTUD?fZ5fKrUvlUad zdOouQ>;#9@Z8@a5deH{SkX6Pg1%%R8OSkG`uNAIz2yZnUxEUti#jiZ@;XWa7v{qTq z-pyH#w8}UbbLznAOs6S^lSEyuuNDTz_dUbTMt5SSl&U$Aeow-W_G^Y7KHsX`qcKhj ze0!kdJ<~2=C>SH7dxrazU9CJl=bM$ORX68`O<}B7Y)Wc0qT(_slld7D1iQ&8=nw*6W@Sbum zj8Es8uFoX@Q9qefc_@fRZkc!z1S4^ z`@SRUmv;QL_}KN;|fww5J*1#21uX`$xoF0SvvHqt*-tU$tlvugOCuJ3tiyzggz zWV}86>2JRstvu_rJE{)5dwVz$6oIfy!8{)$*{6c+d&99mDl?q~@b}yg!d~LP2(M#~ z@xSoLQ$~@7M|UF)WrR_<*75FM36qO2+m$KA#WF3hV9a;S7Y4(s|LJS6aekk^4-%k< zK0lM$z9ZLINT@(gcK3ETd3@f!w4>CGiVb|ni`l9}3g#dUt*ymz_LTT=8Za9^9U~(n z^jK>eHR7PGaFqQn&8NVwv2VJ&eSgysJ9+hNZ_t)YwaY5Qh2qawTev?OAQk@2`Tx0e zGZQ(+|ASiNsK>|MbT8K{*X+dYY!Da0wO-5@&~blPh0V3th4&*7ovfUqG~rKsXHUX= zA6u4UtCj{l;pJ=fqA14FNGx8XU4}BewmV8L$soO;pn%^AWUlb^l9G~Xi(N;~IoIZt zx(IH9{jtqe0az&Qv&sJX_`hIB`c@h6YlT*FBDg?JNgVJVS%j%ofIfOli$5G;J)0Xl z?pQB9H)>k<(2N*K$N%UShln*^+)B1on~}t!&Z)~HSkwSt^x6$pHCzQ$lPIEX-5u=3 zi!W8n&mS!-(mZqJ%9Y;qizpNdecj2a|AR$FKQNSewNF35>OX7s&wJbO2uQuxMD9mC zyzfzNg=Vk=(GmQj!nmp6KpnKdO@I&Df0Z+V_3D+W@juNntGt?IZ_o0Z$E9PAg{3R4 z2cvD0m(Qc~mu$|isZN(+6|B^i5S$gNB<@Pg-kmrWHH5@J(o~=I=n)*TxVUKFy-$7N z28zd-nD!Iw0X2bI@NTI8LGvbV?*2=Q|Fh|T_!U^ZcJ^<-C^~4S36g_XW<+rAS~aH- z)~zZB5SFsmyIWrF08U< z35_;Gp=vGq&bhecz5Aw#&i#SG_WOPA-yp+<1Zc~U5E}EaeMfp6_d64ll29IF@7v%L zY7>IT6V_s}7o9t#5a#oVZ`yc=WDq$~$Ddk>H;jic>3eZW!t#P-ang!0y22~Q^sNe2 zO&Y=NP>@8BN={{)57gQgy#Ia6XA=bhI`tp)m(aE@p)Qnflkfx~)6vycKnLV=bdCQj zEcW7h|8aMPQW+_2y^?{p-9}>3xn_5tT)^!f(RG}@o z!)QPA%55bJ27kDPrFoQNY4d(=ZZOz)q?6!h^S`(`^lV7jI8MlMly=`wdVAdT;>+zP z(^@0#Vl|jsb<$WveB`TixoFFw6CxNH%=_~VHfPPzMBC#CCsl8La{8nT@vWcau5H4S_-~Y*1&vquAa<}EWH>&;h>(_DwV^dRy=bJuz z_y@Z`@&FXKApr{Du+NS9``?Z!zqr!EwZF|<__pdS_7ft~^$NVy%p+CXZOLnP;kIZS zdY>A?mpP<{2r_BmC5w7GMB3H0kHRMwds9Z%cJsnjreE!Z`#E(bW0OI>3zF9_hrAx0 z|8RB7rOll^J$rC{eSO?mFM9N29QxuBLzV{#kajPP!~-CL&@4?aqJ-9O6Lh}OU}bK; z7dJLGhE1NoCHXRaDjB;_Gvx~>yZjn8V)=?tIC3mA7jZ1&lKbRtoOJ1sJfhRw%4zw{ zIP%13wLP5dFxR>A##sm_TRJI`{^ zGS63>m5VP9neNg;L^?zv+uu0OmziYQz@N6nhue|c%VKXCtXiPY?OP9%8`jGo0Bp*@632!PNkI3k6 z##foRdRw`f=%-=t(uqN6W>D5~gi(Otc5+FQi!jbuDyDv%$9Wfyq_ubx?K2oez{(^` zHn7#6)QIC8QvD7iQdGUS>ww~)yGL;x=;H{huSBBcg8xHDg0>6ms&3T(@F1$rw%0!M zT*^M2P^9DzT&IwelR}})VGwDu8ylXOwLQ^ByAIm6VguzZcjGE6Sb{noYK2JRb#^;e zVRbqS2fM`(!$IEsy*Glu)QtqowOtLb>8VTdCM zdskG1^^ABTwRUXmsw5~FF9kb*A8@YF!9%_T312w)To-N_5aE_^RSWHU@PrP}73`aZ zU!ItzwBiRn3J_0U*)paZ_oN(GmYe6K9-nA;O2Voasn_%=RhI~mOIPaK9+>Wob+X9! zL`z7ncVlI&iANEh4kU5bGrevsUmr;cVW1zZfRK*Q+e+RQtGOH3(OR<~5mGf{3Rjs( z--YtvEOtjCsCQ151q(&h5h-@&U2;yv-D^eq{Y)NM7pJv1X5He`+kJY&FI0k1W%=ho z@_fr9k6r3xwgr1|+?r;Tf{&!JRpwEQUX7aFxYT=+(U!A2ORZ#RBLeov&CGsjo66Y^ zFVA@9hi1-Jd81<{%!P0|gC)G=+w)oBv=8BK;k3j_aU{`;{21#sRb!53_9@4-hViU_ zi+hC8IDt@`sc;%d+j%6+&U^k2HrJ~77=jX?$43^{2ne%l5clOH184_jcwr|m9r@^) z1fkQr+$7%KrN?8!!X;p_Yg!OiMDS)8W-4kqa1_4&7&0rPy@Qo+zJI4#^S9N}hDky} z{;09zR*Q+4B-icaxAbT}9fJ0eh;&PnU4GQp9umQwc5B^A zW+ut=lT&z2!|eL9<=}hExsT2};wc0`ATa}J|MIpi`4uuz-De8StQ?$*T@t#kHLt;5yK7oo z&a+8!TK(Ph)+bE=#S+ff^7>svYoCJI$AHG|1^?f3#)h3wnPtGyQbJs-J`2E5gxk8E zGdkXdWQ}H8ulk@pjD<4fC4a^nmSQh@+w8)nj8zL`rUo7130+r`uxHK8#c|crCJ}Zv z1RHoSbG|a%u72SuoZX*(8}2uoKnk~e`;dcdcZixn5gUeh!f12@gYD!>PwFi7l&=ATL+SLxs@D(9jJ-$qz0=YC<0p22>g!={Pc%p^xCpYD$=cJS#%U672m+;e~X#{QXkTjA}A9n=RUha^F4Gem@ z4Zb(v-FxhG(AyVqw$*wHs=XMrSbTe##n{!wngG;^S%x0UgWQvY^yrtIoq5|0ifXG^ zr~5U$eI=t^RY@>2(KM#Z%Ga*_SsLQ(8B3$AH5$GshoEZYl2pa{YF!K_P### z?k9cwbfOHxy25K4SqP7jz-`*RC5%=b&WrK@AXIp|8?^?mvhcPKyW1u}6VZGUb9<%g z`e}59Td_6TU*bCjgzvdPRYbRyr#?Df)>0T#U9N&SlHz5EZdt|C!|d8BJ(0u;yEM;o zGZjBp6_w1JlU9 zS8w=Lri-8I*Kg{1Sf2FNA1;@)8TS0ItEG*o0#!?^n19>p^Gr1#b79<_J7zIs^K2p| z&Nb`egilxM9pHv_Ncdq;8qCmiOA6&;A1kgHUF&dfbN`opxD5Lm{oyCvy6xuYp64H_ zY~6s{taFoFpeDvA5BcbIM0X>wBfyZ@;~k^hIZ{Q#M=hRsDfCSp)zz+1)Tv2{;r&vn z^M&L1Orvdtnm+3cc+Y+=<^y^UZP4{zx=K6x#Xb!>R7iln1rol{&Hs59|7iXBzwW?A zs~Qc;g9ov-d1s4F7ZjT(IB4|EDg=>7T=iUcVf5}@rs!av&1|8%{Q|NWWb zM}Ta5w>sa7sqk`iahc({yuQXEv76my0o)7t8ZI-I7P7{6AE|GCaD3#}H#MuH^0E6A zuLDZNrrO`z$fzS)d8p^jn>TVRg@B?81hm?a6QR1od#VJ0!%^}zHyJeY<%E7WQV>A4 zG0!f&h-B@BU9w(YTFLlnGtUq}O)uXE1VKxR8f(`eGw{HzE&Sl?-{e=$_5m!ux6lF5 zF14h!MFQXh`x-?*qN0WkQuD`-9Ru9l2@l#U@HLrnnoFjs!dk2E1OcG39wLB~3@`=lHrchJe>-U<+R|5)w2XJ?7+LF~b-u({r zkml3pnC5{8|ILb$t2jy_>fAdVz2~^?>xVxaJahLZU|zMV&dTA{#*;mhgJGAdSAZ%3 zwy2)50Js~0C9I$X#i`lFK(q;{6rkZ6Z$mdn2uiLsN)yuKfO6juFr=>O@3?z?in{L? zj=a3QFkx!#-MPy^{lao7-o}3-ZGCkdXr5qJFbrstYuf@ACp#ID+1c4~?e`2cRUBH9 z0Y}5-FJ)tw@4Gs@`RxMebifB_+ecT5LeyHDiv@oK&Au6hbR(#zv}Q5SN>16SE0@bZ z0`%Rw++#F{P@@VgOi>3a?SA7a-A|3O1ciGp zM~b(o&o==oZP2^hIv)mmIC8WabKS9Ti=f0RAQu7AybExxi@?Uam-|yo2K6)6SplY) zRX{;5cM>w=xGXQoAH`QAxlsZwKDnOI%_Vl+u3bY*$y$|t0C~o38<$mRR_dQ_I@!u4 zevNc}Pvtcdof-uRVUyt3w|Ev{@-W7A`I>x)Z>hg5Lhb^E=McwcMVv zZZY=iV63wrLq0sSGPQ-#Q`Fi>9U+z)S+Riu(??mR_x7#ET}y6Xf3a z7LGr=T+0MjbR|aR>bu{=?cDgaE;5D0=~nt{ImVr**J;)i4S~% zw-gXpU5GO}rz2GjSX{u{P7ajM+vBZEC~}p7v@?edQh}!nX2qS;SbWnOH0w#h%acH_ zs3$T7SUHNMu&jj_V7|ILJF9^|No4>AFCWn8QW;!g>UroUa6IL}V^e~;ui(Ja0VhecEW5rSpm&&B=fDt#XVcZ8EUFz}a1Vl{|e3vJ(Fn*)= zfimR*VdUN*&H~{vYn`QKQohQdfZz~Z%dgBQs^t9P?Tc7I^a6fO!)LlDq~s|TaFSe| z;tdmlog}Mx>f+7+6IS#60wAqkXjNi#rDScYZUTzFxw#qG=U8mW>PY+z(ACKV^mmL^ zJ{1OWpa*z%tm@=%b0ZCI<)iT;n83MBJYugC#Q}r}+wbzd{Sd%w-Mh>kGUC8t)d0Ws z10<>BYUgJ%QI>S2=4x{yuoH!hH-P=;n%KcorR#5g6I@fbdxZs%e4bZAx#xJkS;2vf zH^olf@w8j(E=}3SIRY9Buj33`Q#Bf5C8;3x6Wt)D(^C-!n;L2ukk7zH(k#}V*^zNX zpzWF@UCHIEEqhO1wF==Z%C47#nUUc3PkZ&Ioge^`92l9tlm^ubCNm|jRS^qI^p>T zZ`AT**o~%OHs-vgWj}7Zd_1*u$lqxK_Xi`1GpqpS6MJg-mk*`fpuio1*};6@HUfN{ z@bqbdis#q`ZE-;EzK^F$g8)zl;?VEEg9(Gd6yKp<@cs*rsM71Rz9cm;1#yva-^2mX zrk`@@u>jISmKJAX9>nd)^~pz(5~?6KXim5oOwlt{eP>re^KG zEJx52XG(1JX^50C> zZR##wr0EjNOdg%TaXa|#AAB+1+KJnoIyyVcRGL^@TXR_uN-FF4mHN0r2N*>u8D9pY;hI)Ax(TdOWGuNtIlb1Q@8r;y_R%~lcm?M{W8x243AQk z$%GHYE<;WL2^-!3HE{1kkMRR4{qW=SN5eqEJoJ&l?6sTjDS)%39SUJB}ieZ@sh<5|Nx6w7LdWe$emlqRK15^4YFF_yFLo$eN&JymF zTLp6(yRfv<0iPh62QJ>3ohx|kT*%OpR+iUU&N!8m*G!VciDUtQUb;r)9!Wq=Zq2#k zREy^di=>5U5IcDQK?mbMhfg?-bWr>GB>ZnekSqdI$c;hZ0|ib<*lolf^4k1i6 z7S5psl9;yWp;Mg4SU%ElNVpwkW_XZc;JO-wE?N2=4(|=_2O!yS5|y9)j;_zEGjhcs zjP^7ub-NCr+I0W}DYuA(7eXSe~mut)d4pK|f^k<4A^HeY}(X=~v?hp%abC~_|h>_qx zcXUOn=a1+Ti+$tQ?)Semw<{=DnLQ71nI}g}j@|ZrEZ_C=3aQxCik?dv*o$kM9}lBB zbg!x+z{HY^d%o|>U$46S4Fm)Qb4UpFF>%}qgDrjk=={;jCcNN2G29bDjiZQLu51F< zict<&WZN!1xC(pF9L}x{%K|v>4_OiE0a-E#Y2I>dm5&8Vz1=rvE7{mr{aYN%ZJCZ; zkhpOTJsHE61mhgMhwx`$0a8_R8(0tkz-=3SPdxwqjjWWDYdeYY%+7 z|Jhj(??r8L0QjYQudmM{i#P}v9q*EOR(Icb?!zyYstnW;nSH1<(dU`_DMTX0i$0`* z(5fCw#9mYslf=2i%Wu~?-HJPRxjC^+YsT9u4{dnIcYpX;AbIJfcm6su3!D7iL>t!1 zZ?q1s!daL{o$zDOu&WF_iI2=3g9fy?dwpW-xOM%1Hk9%D@yGmnTb=bgFMx;VHQ;QQ z+E>`*t{Va9!@;9H*oBEfWyFft>^>Y4KyAhpe7M~UQFlQMyOtDb7v-WQf)i(IC?F#F zCBMaSN^FF1zFF%Ui20$^y*QWB$!~FTgQeSbj7w#a44SlCWI8KVJAy_G0ucJ|QBzzl zDC8%C*@=jZZB8g|#sC?UpZ8`+abpzDCEcrLuhE~G3(J~+Fs zovaVdHAr4+1PJe*dySp$fol%ysqk{gIR{D5nZkl$`ww+Z7cl4hoAsI6q|43S)UVS8u7_wrI&TRhW$?Y15L{T0cRhY|ez z{Pv|r6=%6dSZpzGkrB|d&pf`EvQ#uvcBz*0^@p{uE_Ga3-j!Fb(!vXx1|*{s6%m%c zOpV#5Ga7$La6QhsymnA1{nS2lauCv3$55tRsz+4_*rc_|{L$UEarW?=U?LvrG2)#SL3=^B`W7dt zx%wkoc)CIl9ltQ7G}}6PAD-Y#jfN-8l|~{N86&MxJZ*rNU0rIVj5u*POzhpNw~g3~ zzH|v(vpUMFmmklMnCP*I45}VUbaPckeD7Fg~SR<7JED;$oMcalqBN z7f2lq3b}7{C4-*XUfg$erW!bQL>>F9YZxxvOdn!_+X&bNKYH^iyq~Y*03+Vr2FnN+ z@Sd*QO&25DCcETKyir8l%P!qU9&ojcv~%|q>kO{;4@;+S!fYptu=?Z?mM-OB4yVg` z>T%s)Bl6H}2&CS(_kL3V?Ly!~Zoz#3&r1ev3Cg28XnilvEn0LJPC0m?1Dm@{*f!Vc z+Y7e9k`%@rI@lsWo(d_KLWBgoXJW-PCVAk!wp~kDv5>V`RC`86z`(eWwClp@>BYtN_evbEUAu-a*1gxRA)_Jpe1*dP>TNAiM!K>IwERdz4l~ES#z#WrYOw4>{ZH(AXT|%5vn@mHh&yO-4v>?3!rkFq`o(DNqyhb zGeM;<9|kIYteF4%NASJD15)q=tra!>b{*DFjK4$A5sCs9YDuLpC2bc8$^oy`6mDk}iUql*v~Nn)HMxFouYy)*FX&SWj=CeEDy)G{bkN>qJn7 z#>PSz4NP#dWg(yA2&a1^YcLd(K2n$Xtg}KQ zX}>***-kbMalecn3idvSzH05GKai&F!$Ge7X``hdLLsIy!+JiJD-}O zvkUFv=0t_rk+-`@!nk{9I8NwHgCNb8kq8ha0NS!={92A_<&Qd_huyvq=Abfp!w=J* ze)L0KE+O|hV*$V=0C@sn(^&Nd>MkU4RH+*2(IrUWB|n5ye<9Rdzc4TkNNZmX`w@0v z1wRM63$g=>IF4s-C$p*Rl5nZ`s;*AuRXId=Otf~vykpa_@ zdM0o7nwfq44J=w5xm%cb0@;1BRJOljQyK1}4jfauYS-d#Uy-*y)vX zSJ0VEiQPCC<$f>{XebulD%f)vWSq%4>~uvyGDr3w4GyhA)3s1Z2K&>TGvtNOUgU5U zR8+~Gt-W(+2{h1P0J*r^hL=35wQh}etsZ%S^~#>zjmx0R-z9X)53zjc11gBZp&)rg zN>n&@fjuAq&duvIx+@oq6MAYMmN!U|z@@6iIkT%z!xJn|v4~BEMm98*%Li_Bd2_`x03_r zN1Wa0L8RTdWxbVfyMeN@$ou!_#FUhk11OMVZ8*>0fGy81f3%|9&0H%I5}FgCfWd4@ zoNF^Lsy(O@3@etl@(bu>NdzGcJ6-$+&gp}(Do!2?Ni+q;nY4d>P_XZd$5g-$(au@1cxv}4Os_x$sr4q!lfOa6s!VCQyxJPmYsfUs#jn~)3fIeALUVl zt_GzJLqRg=>%qq8dK=C>c9nU1FWhf}ZG|42X5Pn& zsV;?LbIZq=Sm!~fd90U#yP!k9l@QL4F2_gC=@|NjB6Cw7(Qj%RX-CObLCjMv#c-$? zbZ}z?1n^6(PTomfdh}d$))X{3?2U;P)XgSq&48W;)fsRF^G9ziG zq?;-T(_j`2o2-1<5Iwun@H2LIwpzo=ggrRCSo3)#W1&#K?h2+u3|FVA&PvOIIms8CZHYY%Qu6S03E$u$>xJc-toS9G_09N!2?> zc-d?0S z9O5bFRS1W31^iO3w^{?ep+O83N?VZjPSD$&J2qxb` zRQuRpb)_O7o%cx~-#ZdXn@PLNPbSWk@{((!s4*uWX5VSY3%<~MYKhKPC2S*~o41J~ zEY22T&rTKSqYvli3Xq3{q){gbrUb0>3VRTF;>z+H?5a!qORPGpiHbaN<8`omS4kZc z-g||<8OdN}9SNrmmV-GUyhLRrttdoA9wA6wPlNXY7Q<>)^mVmADElC2Y(G0u|5Nn? zr8G#`C<82>aGU1WmqCkmx1b1+Kw%;w%uJ@focsfNscn^-{;XaGa zxXHt~*d>Js@Qu=c`LMApCI9~1Q6C%d*8K#FJveZ~4oU2tKBXBj>-#;rWU?{{oqcTN z7Y)VH+gLGgP~$$$&zB4E*&=@9d~z?R2uw*fXzg+M#oJx8=i`i9q3i6St`|XNpE-_y zq_0qY^r-61Xb=cqXu~Nd@V_7a?T?!!qA$FAN=Ei^FB#1gbqACy5<2HvMPO5U6Rl5d zk4w_srAMr10ZnMmJVO8Fo_08GOiNP?*BYE3f{s~hsew;e6=Zs4p`NK4hue)Mp9aWe zN;LfG;8Rf0oh_3`um(l$eF7AzFIp!mtSDBOIxhMTS$du>x3H33Up>;cyz1QRmETm% z(wtdZ_ZUt7%4sC4HjQ2*jUcVoMZ?)_OSdpPW>vZSIWLCqa8t%a0XDa6F%er;ovwn2 z(rvtxOEXXR%Ne#fsT;r7EW{o?WKBGPa61c%?iP)eFxnJ1$oBARN7~Uh3ks0Om+4}- z{K1NFyI0Q$;WPqkP!#8m$Lz!D)dS?Df9(eS%m)>c+_=9>zXuOn2db|&F2+IiCL}=i zd1;p+TdJFolf$dSy=PQ>_*}A?PabH+l%`v`0O{;yz`}n*@43i|mC}j4a+7{Nr~KM> zr(7?=?jcQl%?Rk!Sap4(>~>%Ke$7o?L+q~}9t8ZFfQ}q!EotO?CAtCvBt9`1%GXaxB59&8?;7hesuKQz*j zsP+@nB1f^$$DzGsrpQH5**>rQ+diKymW88>0pMJea&ufqPGP24^EYOysmdneGvoNQ zThD^Wf6Sm0z);F}0IHvh#J&k$?7>!*e%E5OHeaHKZ0BBZ6Z7w^h9|K4=HY%0W76(v zrg>X+Sb1Q6SwwKpKAhSSO>vx4i;4;uN|u#Yv*nHmCd1b#zDVNxK@~76cV9$z?AqL~ z;BKik(t|A2-C$$}h6L9ash}VMzYD;=m9d;6=(AcrRI%!(3TBf3!&sbm;onY27Y|zF ztz7g$l$qtFmZ1ag|Lmg9-l-c_wRF1DndnrbNGFsefXgJJLs{bb0W*(U`9q@(xNz?2 z)2qcLU{pv8fycNTf4oWr?q5sdz))p;P#z#{!Td59{^Roey(7m4)7lRX?yxs6Y3Z^c zSzfJG#pLx8bLxys-`P})4v)WE9!x7{CAr5Co=k_ z76GRnNs|v@>-DC)9MipOScglvSYRfj)_*MJS8yx+7=jCeCl%qlns(^LMnSFzxfdjC zG)R014gsQ!;&*16V#3&G_mD=37e*VGK@Yzh?!F2w@QYe=-{uw%1R@mMF|bGt_Q ze!KYSJbGr1kP85$8HRj81{jabO1S7WcFRTWPFE98^NzXCoHC>hD8oYnln0*G>l z9q>VjjLUK98gh!>3y?x^qaOY=FHg2o%f)Ef;uHqv{0o=F1Kn6?Y?|^Ycc5{@m_PHz z&{spk#zDnpD}3#IU>^X@4g-t~{**va_G%INc$ojF-+|ufS;@y)h51IcnG+A)f8V@i zC#)y^j|tHkq7+1pAA)Wg{v&uIJ6>gDkkse?sJ1Hg!Td{ z6%xMi=6^QP|F!kcS}yMUInEHwT4TZ>m=Z0oDrMt`3H5A`vX5vIu9vp46V*2XX=XB2In=>J|*dr>k1%o1~{zGB>GY}{}7 zN1C+%cnur6RiOL>C^r}GTyH)xNS=3V5@gXcJaws^%VvB-t;wwjN--;H5@=->aHofJLMMZMMqP)E9%OvztIAGZkApd0%9Jchh+j8Mcei~V#rPzC{bQs;IXOF3|* z0=#fuFG`hRT6BBtXj`;s4P3jmQ2Iwf}kl|Ji!zZ6V?R%k|K1Apv?U zB>dg;p=FQ&ErW#rz4ef_KmznwNPr#-2^-IcmO%ov3=+Pu?Ek)FcOE{bHM$IL5TE?z zV@QNOQ{w(gn3LS!^aef~#Q~%iNPzSM3I9#~{!iC$JXU;Qebc6wy369cPdd5V*ExOe K$9&|apZ_1V7Hkjz literal 0 HcmV?d00001 diff --git a/docs/assets/nfl-draft/shots.json b/docs/assets/nfl-draft/shots.json new file mode 100644 index 00000000..19040b59 --- /dev/null +++ b/docs/assets/nfl-draft/shots.json @@ -0,0 +1,216 @@ +{ + "plugin": "nfl-draft", + "_comment": "Picks are seeded onto the plugin instance rather than fetched from ESPN. The ticker scrolls, so shots step frames. Players and teams are the real 2025 first round, which is public record; nothing is downloaded at render time.", + "defaults": { + "width": 128, + "height": 32, + "scale": 6, + "freeze_time": "2026-04-24T20:00:00+00:00", + "skip_update": true, + "frames": 40, + "config": { + "enabled": true + }, + "attrs": { + "draft_picks": [ + { + "pick_number": 1, + "round": 1, + "round_pick": 1, + "team_abbr": "TEN", + "team_name": "Tennessee Titans", + "player_name": "Cam Ward", + "position": "QB", + "college": "Miami", + "on_clock": false + }, + { + "pick_number": 2, + "round": 1, + "round_pick": 2, + "team_abbr": "CLE", + "team_name": "Cleveland Browns", + "player_name": "Travis Hunter", + "position": "WR", + "college": "Colorado", + "on_clock": false + }, + { + "pick_number": 3, + "round": 1, + "round_pick": 3, + "team_abbr": "NYG", + "team_name": "New York Giants", + "player_name": "Abdul Carter", + "position": "EDGE", + "college": "Penn State", + "on_clock": false + }, + { + "pick_number": 4, + "round": 1, + "round_pick": 4, + "team_abbr": "NE", + "team_name": "New England Patriots", + "player_name": "Will Campbell", + "position": "OT", + "college": "LSU", + "on_clock": true + }, + { + "pick_number": 33, + "round": 2, + "round_pick": 1, + "team_abbr": "BUF", + "team_name": "Buffalo Bills", + "player_name": "Nick Emmanwori", + "position": "S", + "college": "South Carolina", + "on_clock": false + } + ], + "draft_status": "live", + "current_round": 1, + "is_draft_live": true + } + }, + "shots": [ + { + "name": "hero", + "frames": 300, + "width": 256 + }, + { + "name": "pos-on", + "frames": 300, + "width": 256, + "standalone": false, + "config": { + "show_position": true, + "show_college": true + } + }, + { + "name": "pos-off", + "frames": 300, + "width": 256, + "standalone": false, + "config": { + "show_position": false, + "show_college": true + } + }, + { + "name": "col-off", + "frames": 300, + "width": 256, + "standalone": false, + "config": { + "show_position": true, + "show_college": false + } + }, + { + "name": "font-press", + "frames": 300, + "width": 256, + "standalone": false, + "config": { + "font": "PressStart2P-Regular.ttf" + } + }, + { + "name": "font-4x6", + "frames": 300, + "width": 256, + "standalone": false, + "config": { + "font": "4x6-font.ttf" + } + }, + { + "name": "size-64x32", + "width": 64, + "frames": 300, + "standalone": false + }, + { + "name": "size-128x32", + "width": 128, + "frames": 300, + "standalone": false + }, + { + "name": "size-128x64", + "width": 128, + "height": 64, + "frames": 300, + "standalone": false + }, + { + "name": "size-256x32", + "width": 256, + "frames": 300, + "standalone": false + } + ], + "composites": [ + { + "name": "detail-line", + "columns": 1, + "cells": [ + { + "shot": "pos-on", + "label": "position and college on", + "sublabel": "#1 QB (Miami)" + }, + { + "shot": "pos-off", + "label": "show_position: false" + }, + { + "shot": "col-off", + "label": "show_college: false" + } + ] + }, + { + "name": "fonts", + "columns": 1, + "cells": [ + { + "shot": "font-press", + "label": "font: PressStart2P-Regular.ttf", + "sublabel": "the default" + }, + { + "shot": "font-4x6", + "label": "font: 4x6-font.ttf", + "sublabel": "narrower, so more fits per card" + } + ] + }, + { + "name": "panel-sizes", + "columns": 2, + "cells": [ + { + "shot": "size-64x32", + "label": "64 x 32" + }, + { + "shot": "size-128x32", + "label": "128 x 32" + }, + { + "shot": "size-128x64", + "label": "128 x 64" + }, + { + "shot": "size-256x32", + "label": "256 x 32" + } + ] + } + ] +} diff --git a/plugins.json b/plugins.json index f818927f..543dd34d 100644 --- a/plugins.json +++ b/plugins.json @@ -602,10 +602,10 @@ "plugin_path": "plugins/nfl-draft", "stars": 0, "downloads": 0, - "last_updated": "2026-08-05", + "last_updated": "2026-09-03", "verified": true, "screenshot": "", - "latest_version": "1.4.2", + "latest_version": "1.4.3", "icon": "fas fa-football-ball" }, { diff --git a/plugins/nfl-draft/README.md b/plugins/nfl-draft/README.md index e4f8917e..a2dca328 100644 --- a/plugins/nfl-draft/README.md +++ b/plugins/nfl-draft/README.md @@ -1,5 +1,12 @@ # NFL Draft Plugin for LEDMatrix +![A first-round pick on a 256x32 panel: the team helmet, the player name, and a +detail line reading #1 QB (Miami)](../../docs/assets/nfl-draft/hero.png) + +*Every image in this README is real plugin output, rendered at the true panel +size from seeded picks so it reproduces exactly. The picks are the real 2025 +first round; the team marks are the logo assets the plugin already ships.* + Displays projected and live NFL draft picks from ESPN on your LED matrix display. [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-sarjent-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/sarjent) @@ -34,8 +41,8 @@ Plugin path: plugins/nfl-draft | `font` | string | `"PressStart2P-Regular.ttf"` | Font file from assets/fonts/ | | `player_name_font_size` | integer | `12` | Font size for player names | | `detail_font_size` | integer | `8` | Font size for pick number / position / college | -| `player_name_color` | object | `{r:255,g:255,b:255}` | RGB color for player names | -| `pick_number_color` | object | `{r:255,g:255,b:255}` | RGB color for detail line | +| `player_name_color` | object | `{r:255,g:255,b:255}` | Player-name colour, as separate `player_name_color.r`, `player_name_color.g` and `player_name_color.b` values (0–255) | +| `pick_number_color` | object | `{r:255,g:255,b:255}` | Detail-line colour, as separate `pick_number_color.r`, `pick_number_color.g` and `pick_number_color.b` values (0–255) | | `scroll_speed` | number | `30` | Scroll speed in pixels per second | | `live_refresh_interval` | integer | `600` | Refresh interval during live draft (seconds) | | `projection_refresh_interval` | integer | `86400` | Refresh interval for projections (seconds) | @@ -49,6 +56,38 @@ Plugin path: plugins/nfl-draft | `simulate_live` | boolean | `false` | Replay a completed draft year as if it were live | | `simulate_year` | integer | `2025` | Draft year to use when `simulate_live` is enabled | +### After the draft ends + +| Key | Default | Notes | +|---|---|---| +| `post_draft_show` | `"both"` | What to display during the post-draft window. 'favorites' = only picks for your favorite teams, 'rounds' = per-round results for all teams, 'both' = favorite team picks followed by per-round results — one of `favorites`, `rounds`, `both`. | +| `post_draft_days` | `7` | Number of days after the draft ends to keep showing results. After this window the plugin goes silent until the following February (1–30). | +| `display_rounds` | `3` | Number of rounds to display during the post-draft window (1 = first round only, 7 = all rounds). Only applies when post_draft_show is 'rounds' or 'both' (1–7). | + +### Duration and rotation + +| Key | Default | Notes | +|---|---|---| +| `dynamic_duration.enabled` | `true` | . | +| `dynamic_duration.min_duration` | `30` | Minimum display duration in seconds. | +| `dynamic_duration.max_duration` | `300` | Maximum display duration in seconds. | +| `vegas_mode` | `"scroll"` | Override how this plugin appears in Vegas scroll mode. 'scroll' = individual picks scroll through the stream (default), 'fixed' = entire display scrolls by as one block, 'static' = scroll pauses while plugin displays for its duration — one of `scroll`, `fixed`, `static`. | + +### Settings that do nothing + +`transition.type` and `transition.speed` are in the schema and the web UI form, +and nothing reads them — not this plugin and not the LEDMatrix core, which +implements no display transitions. Four other plugins carry the same dead +block, tracked in +[issue #381](https://github.com/ChuckBuilds/ledmatrix-plugins/issues/381). + +| Key | Default | Notes | +|---|---|---| +| `transition.type` | `"redraw"` | one of `redraw`, `fade`, `slide`, `wipe`. Not implemented. | +| `transition.speed` | `2` | Transition speed (1-10). Not implemented. | +| `transition.enabled` | `true` | Enable transitions. Not implemented. | + + ## Display Layout ```text @@ -58,6 +97,21 @@ Plugin path: plugins/nfl-draft Each pick card scrolls horizontally. During live draft, a **ROUND X** label precedes the picks and the next pick shows **On the Clock** in green. +`show_position` and `show_college` each drop a piece of the detail line: + +![the detail line with and without position and college](../../docs/assets/nfl-draft/detail-line.png) + +`font` changes the face for both rows. The 4x6 face is narrower, so more of a +long player name fits before the card scrolls past: + +![PressStart2P against 4x6](../../docs/assets/nfl-draft/fonts.png) + +![The same pick on four panel sizes](../../docs/assets/nfl-draft/panel-sizes.png) + +On first run the plugin copies its bundled `nfl_draft_logo.png` into the +LEDMatrix `assets/sports/nfl_logos/` folder, so the shared sports renderer can +find it alongside the team logos. + ## Live Draft Mode The plugin detects the draft automatically — **no config change is required**. When ESPN reports `state: in`, the plugin switches to live picks, shows the current round, and marks the next pick on the clock. diff --git a/plugins/nfl-draft/manifest.json b/plugins/nfl-draft/manifest.json index 7a78d61f..b3b80fc3 100644 --- a/plugins/nfl-draft/manifest.json +++ b/plugins/nfl-draft/manifest.json @@ -1,7 +1,7 @@ { "id": "nfl-draft", "name": "NFL Draft", - "version": "1.4.2", + "version": "1.4.3", "author": "ChuckBuilds", "description": "Displays projected NFL draft picks from ESPN with live draft tracking support during the annual NFL Draft event. Includes simulate_live mode to replay a completed draft using real ESPN core API data. Shows team logos, player names, positions, and pick numbers in a scrolling display.", "entry_point": "manager.py", @@ -24,6 +24,12 @@ ], "icon": "fas fa-football-ball", "versions": [ + { + "version": "1.4.3", + "released": "2026-09-03", + "notes": "Documentation. The configuration table covered 21 of the 33 settings; the twelve it missed include the three that decide what the panel shows once the draft is over (post_draft_show, post_draft_days, display_rounds), the dynamic-duration block and vegas_mode. All 33 are now documented, with transition.type, .speed and .enabled marked as read by nothing (#381). Adds real rendered screenshots of a pick card, the show_position and show_college toggles, two of the offered fonts, and four panel sizes.", + "ledmatrix_min_version": "2.0.0" + }, { "version": "1.4.2", "released": "2026-08-19", @@ -124,5 +130,5 @@ "nfl_logos": "assets/sports/nfl_logos/" }, "license": "GPL-3.0", - "last_updated": "2026-08-05" + "last_updated": "2026-09-03" }