From 8a4eed3f953adb1458f6e931a1f2ff0dde62229a Mon Sep 17 00:00:00 2001 From: "Jan D. Behrens" Date: Wed, 29 Aug 2012 23:03:11 +0200 Subject: [PATCH] More work on classic and minimal themes; now both include a fancy Xonotic logo! --- xonstat/batch/badges/gen_badges.py | 27 +- xonstat/batch/badges/img/overlay.png | Bin 1407 -> 0 bytes xonstat/batch/badges/img/overlay_classic.png | Bin 2327 -> 9230 bytes xonstat/batch/badges/img/overlay_classic.xcf | Bin 143024 -> 163137 bytes xonstat/batch/badges/img/overlay_minimal.png | Bin 330 -> 1425 bytes xonstat/batch/badges/img/overlay_minimal.xcf | Bin 24089 -> 26939 bytes xonstat/batch/badges/img/xonotic_logo.svg | 346 ++++++++++++++++++ .../badges/img/xonotic_logo_black-white.svg | 120 ++++++ xonstat/batch/badges/skin.py | 28 +- 9 files changed, 498 insertions(+), 23 deletions(-) delete mode 100644 xonstat/batch/badges/img/overlay.png create mode 100644 xonstat/batch/badges/img/xonotic_logo.svg create mode 100644 xonstat/batch/badges/img/xonotic_logo_black-white.svg diff --git a/xonstat/batch/badges/gen_badges.py b/xonstat/batch/badges/gen_badges.py index 4465ead..0cd17a3 100644 --- a/xonstat/batch/badges/gen_badges.py +++ b/xonstat/batch/badges/gen_badges.py @@ -38,38 +38,43 @@ skin_minimal = Skin( "minimal", overlay = "overlay_minimal", width = 560, height = 40, + nick_fontsize = 16, + nick_pos = (36,16), num_gametypes = 3, - gametype_pos = (8,30), - gametype_color = (0.8, 0.8, 0.8), + nick_maxwidth = 300, + gametype_pos = (78,30), + gametype_color = (0.0, 0.0, 0.0), gametype_text = "%s:", - gametype_width = 112, + gametype_width = 96, gametype_fontsize = 10, gametype_center = False, - elo_pos = (75,30), + elo_pos = (82,30), elo_text = "Elo %.0f", - elo_color = (0.9, 0.9, 0.7), - elo_center = True, + elo_color = (0.7, 0.7, 0.7), + elo_center = False, rank_pos = None, - nostats_pos = (75,30), + nostats_pos = (82,30), nostats_fontsize = 10, nostats_angle = 0, nostats_text = "no stats!", - nostats_color = (0.8, 0.3, 0.3), - nostats_center = True, + nostats_color = (0.7, 0.4, 0.4), + nostats_center = False, kdr_pos = (392,15), + kdr_fontsize = 10, kdr_colortop = (0.1, 0.8, 0.1), kdr_colormid = (0.6, 0.6, 0.1), kdr_colorbot = (0.8, 0.1, 0.1), kills_pos = None, deaths_pos = None, winp_pos = (508,15), - wins_pos = None, + winp_fontsize = 10, winp_colortop = (0.1, 0.6, 0.6), winp_colormid = (0.2, 0.6, 0.2), winp_colorbot = (0.6, 0.6, 0.1), + wins_pos = None, loss_pos = None, ptime_pos = (451,30), - ptime_color = (0.7, 0.7, 0.9), + ptime_color = (0.7, 0.7, 0.7), ) diff --git a/xonstat/batch/badges/img/overlay.png b/xonstat/batch/badges/img/overlay.png deleted file mode 100644 index b00bf5a2a11d4162250aff25fe49f2401e46d3ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1407 zcmX9-3sllq7{92ITIOspTn?DTt+LDrpN!YU?yhEIVf6 ztB$WzCak975)s-dEkm8kQGxkLQe*~Bof(?BKlYt-@9(?6bH2y#yZ7cEp;GK@x7h*! z?1F=c5dc_VAfIdvhxWd2MI{ixG9xGfK-BG|hYs-gPzn)3$V`Ef90+XA1;u0nu;FX- zf`O7UM~Ga{4h|=+|Jxb?!?}XYs}&H1V3SU;1JhV6Mk*TwW-xwaGw3_B&#;qrQi8*e z9KW(@D*#sNVB!yv7u1H~F6un)8}Qfm+%Cm3VLF93o03#msBEJidm{6t1YGT_{X8Q~ z@Ce;qV+G{I5mY62g-G0&y^1dF*n!tgnI@jk8=cX7EoofZ-6k%&SCQb1e0+D6+4;6N z`Br``buyh(k2~5e%sLmD+QfaCoAIV7@bIP7pI4$~Neks+C88v)YKarYdDVCgdp=uf zOg7=`ZZVfwwVogHuDkh)6F(bw-(;!-doC0T`yc+d7? zyq=LR%W=1tfJyCxxfv!Sf5)^br;KZ;TE)*_t}^Lc%N~tlJ3i-f%USoD#Qq#9+TQ=G zM58l7aIaxu?j%beW@@dBqsPsA@P`S*#?#(yUiKCp$0uj%dLB%8qWpc3V`&C!;HV@t z$BD6+%6LGd-?wlCw1dtR*hV0qf+-v}Pq60Ko87P%!>H4MSAY~LlbEmegA&#O_dm^;A|bU7$N|7U;co-Q-Kp^Q zE+-fdF?7ueD3EfT864#GlG`J)9gQ1oK(RaTsTrQXT`Mgd6lJ;`0<N(=$& z;Sd1ng&GncwFKCqVg5y__nizFfZNlud@>u&0^E2iL%@DZOOU5Hcoxw7B*%ix<0%5} zr_0?hB4mF=u5IH>%|jTkS2}umGgPACW2-$BMArFXfV|Lr|BT%=pB5IzR?bu#Mw>@x zwk~_|b)MO`kodHp{%uLBt|<~tUEt*zb-?415L8_H?OL2bm*U(tz^F|L?ck916IAIQ8vjs+ zlU|=dVKqgk3H^lp>6!#?e)lX+v#Fsc)-PXr3L_#`a>wa8kN8M|_a8c}t474>5GZuI zC~Zy?HSWBv-e*u*cIJhwV0CYw?~=M^wO?JgdG4Y+248Aq#x2&(wTuUb6C5S>T?hR0 zqZje|XD9=@Yc(R|wbQ5G6mn#n4e_0ri7pszk3D4U`$*Q@*qJO_R7^E?PTXkyF!?kp zx+zUROZTswv#Zu=CIl^Kk!Y`1gMyanOR@@8Pmoe2@Yn3oMwjj@UqSozJKv2FF#nnA z%t|LoUN`E)2shrHXlCcR6(m)u#D#{z^mwP&`2@VS<4!Rtc|lT<(W5j)-47SeO(EW# cY&ailFcGS+Q^*4Xn#No9XuAVljvr2ID}b@t&h0#eA6Jo*Tn{{4k^c7LATW zFGSCT5l7ENf{u+3#j4bOi{Qn2Yg1LlIj>iiH~pd{Y4-N4S#$d4xbE7}#m1=e&vn{K zWbXN|GX2wLMEljN>G$+$FT*=TK;88B2c`|5*+ZNNe|4kZx8OXOiHVPiPXU%uhX(Y@ zTLQ3P=z+-OB%prXTS{ZLn{~T`+F9DQbB|+&ky*d*C%XGrODs$G?Aoih=k3_<71`#j zun9n1G(tKU)M3cAdip9_4Cwl77aXq(J`?~q#=A0(_LZX93KCVnOz`eC5_u}pe&uoT z2OoDl0oKqDHreGhQRo61n~HKQVSbf=xa;9V(TM^+?Jy>#^4e(lwsdR$aZ>?Ect1{k zJbb?5GiZy;Q$SJ`AEp!JA0}4`RCsCv4Mai%8v$5&lv6H98rBANR_Pd@yAJK6oimw+ z?ZkwO0dbf0qyXuq>S$0CM0qhdn~-4Zx9Wd`Z7-vWD0!%}Vgh>Ar-S07S%{FsqOhq8#gIJbPcU{+sw0D!4{Y z4-kSK4T#2y299Z5dw?Z*e=AP6Rd~nNdMp=f$oNN`0|-b_S%qsJw7vk){r>&hT@_ke za~5v<>9Ob$S9J_2{fk5?-bWRe-FPx+@<%qN557!RrnVvPlFM=`VBSLGL2pRJrv?yZ z1w)9lB;jxvy24AoP|z3#EBz`qnI_Zfwhy@SS%+sARr?JBJX75f+7ukf1u7&b)^jUZi8a@ENOOSjc#6Qzz+`1;~^3M{i=UpFSh;o>Jp()xjGUM|` z#N^dM4VdYE(}nH4&tKgzb)RudoU%N;UcR$@{p$CWJ$)XK{OuW&?(C*j9j zWetqBj;r+=EBbmeMRne$9*;M_?@lT=3YT!Z)(ii5YbEvw0HJk62>zKO#rx&^6)R^x z_#tf`ter&_QF9R#BgApA6_jz)(X@hUp4T&tn=Af=NGd@Z6H$N=b<{^05r2Okm=!1y zpokugK^iO;%_cRdnDksLj*`(_P5ll1o~md2>U)2|rjf~>yuFrpbalKRyf4JgmK&h= z&ONa2=UXMmA-B3W-(NN#zp#{AqyiK0Z%Lzr0F}UhS)Wu0+&~MS#!Diw$_~S8%47C; z)JbF2PpcgKPWeSIaeS;Vjg;(X>nse6q8c9{OtR8AoC!z_0h@`TlzNldEcwcPa^%N| z&}o<#>FktJ?SEPoh^=)etay4d)2~_LoPQ5G^1i=YZm>OJB;<4-EqQ-=QWkVT_ySM{ zLcWk8BO~>qraC{?ApSd<*P#$pBi9%`hhv;nlpIsDLHQ*hGYzqv+P6C!8`7=5w0p%V=fYnx1VeqE?d3r?)%#O zykAK^g?#(TVef{`jQ6z<>%|Qfp91_73Oz! z7!GuJ-ImS8`$fyCo^u?I>MWkqc8$8w<+Y9YUv}%y=H8!2oyWh|n|V`VFts6sL6y#d zbgaf;FdlabQ+e`hr#0vDMlkbPjm`Cune-D|987;S`fn#Bh8+srWWP(ZgM0Dkw35~6Ok@b+M>yy&e#~~lF0I| zEyz9AfQ>zpD|V;RmTZQL`{roU`#dIUto>%^`1a7d;*S)KkO*epn|k`l=cLEqX3#siuZyBuY=?grDY@?CRV`J*WVgW6Tp@rHaUl~dFvV0u08u}FsA>g~R`neK5OF`wyaOl`X&5viWuN|MsGfqB*M z@Q~##YXgH6r}^g+PL^+j9xYt{&?)ET-CiCz++oq~ASS0#W=vF#)|*zVxa@8Brfk2= zs4u^`R9Nrp;Z;hMlJw7FBI@+%y*tHf2wGwN2N1Ne(6(+q9(_mdU#hthmG9i#IrQVt z#V^DL4Cm~TE(<-PURJ_^ePI`8qlO~8*m#bQtDLPW8r^j>CEB_3m^Bp8ve`ND9DB;z zJkk% zUidXcVMM0z_C6tJDF|goj1!u3MXKkwaY*5g>mmo_DVPo z-b7-q&<jKX`zJv$femM5ZtY?ZvK_<)kAcJ=(LgavP$s#kmF# znjn@zh-~uWT8f10GO_z;Ybrd^<}`#zw&6C#?dL&-zTS5}!=;N7&22J~;Ns;E$5UJ7g?_vxicZv|~DNI9}t{&q~QZ`J+UQuFc)?Q+qM>*{Sy4 zJ)Vu0k)NRF&X<+TX2cP(;y7?ta5f0(v4NkQdJt zkTRfGLX7cSHr@gAcezUA*o(Z8W5tRFx;6JHXSJu&rabYpejQG$IDP|s*gTH2>4F3< zd7{|o`|}a1;Y(>D=iUz0!D0cdx$CUtTQVl%(xuz`Eq?>;Fis6;4&8-c63^tNT%9YH7XTRL*()sd+X~jbQW4b|Go`)mbeEHgXBK_ADV5X}RAaNgN&n zZ$p3e;n9kaxql8LNDys&&c=_SW;zPSf0P&a7~=;0<%q+w=dGV8VXOap&&#lW{llA+ z)V4OVjZWz$oV8AQOiA@Y+^+v>w%0>gLm?JdpDEVIw-J#Z!*p%C_P1aB;z&}@%-Qoo ze{uv4lwXJ(upeL!#G{vi^*)t8Wg(CmTW~eYwp5YaPn)5l45vyz@cXIqb(UNV(vpri z>I|Kp{oZ!6s_go1(PHV$(CG{5Zz2)~HcS&r!n`G+kD4y_|4XVcDAM}N?XDO3sG^B# zQc32VLML7o)}*3SFG>G*e|$xF9i%rl7gIw4C1D6goQEgHO3Vp6m#zmzYE?R7`O_3y zbjvoIK%{YDnmiYPn-*y{9+yjvKKm`VI={ZQQz!R>`;WH~%|Vr6clv=jv;OC|qvB3~us2=?(3}6Uq);DtvubLR_`|^y zJ~q}F049r9QJ?4S-S|Wc6Ac`5s@l9J9ILJ`ciX(++E2hh1Xa@0f1m(SUu^!vu$)at zT9|EUz%tLx*S+neZI?dzdRjKmQx7%TdGL-MqVTQJ#3#)cWcyqdHO}mv5q*nn{a@9& zYbuFirG#`l&6>P{f4(0;-r?nRVIPMwabZJ9u*#Jym1vpD%^ucC4_3^fgcXBPF0I8Y z?HgpvIir#B_Z!EVQMQa$z1T0DwSuG!p-(W1D$|a^h9h!E8j@w1WmW7*I3^=NrB|_5`8u;6ewCJ8?u4iYx0RiLHUOUv> z;of~QGYZ<_y#{>)%;>rhyOIfNSFh1^9`6Gf=}gyH$c?6maUnqFxEM%sab(8uvNeoJ ztStJ`g1EL2I|&kiXs(RM3~8iM8vbAZs9N0EtI_vH@J927i>RRd7Ta_J`3XBJwU|s7 zQ)lycPmb2-*N(uFNXS-hcoLOaR|hr>p!W5p79JB53?m*QbhFO)*=2Vi03mPJQEmJR zO+g2eOq=qr`yn~gj#bYBK`<~4AB$%uv2)oYdI5mlHd?%A?LiZ)j zrB~QxSfg-&?V>RO0ZP{&FnA%+@-kGu#-kMfz|$aHW)j)%@v`09a^il*m2GK_N_=8% zDx89j_NjC_*@n3&h%%ZUv>^%g4R74x2!8|=CQtxHL*RNopz@+fIVf)KAgpxbKbzln zOg%%Vq%OHK-H@Q;6eA|F$nE?CYj;tbp7iC*JrCFyHHL}?a!6Ii5?t9cV$+)_ zqA(=U^lTJ>`j*joQaqTvIFP_SftdfWJtwrun7i`vmCj#|Od3Id#P zdZH&6DaNE6WHsC*~qhnPV#Fp#yU{*gc4(r5Nr(~EA-qYWM<_``| z4x2#3Qx6Fgrive z%`9C2O6do*W!OmY3&puk7?!jzO)jUm*{h;tblyiq`h6WLPM>Mkld(G0r4lgtiB)ob zws9|=S72euPBj!*umCNc#LKh{;>~Ot3dFu_`uX zroHs+%T-I$P~kX9aa7~8K)pDQJqPZ+-V^KJrj422jeK|~yu8MEC`oEpsz{$IPhb9Z z8Ymov!XLz0iwzS({pd7ovA^F~u}5cvG4vstUPx~jQ>#B&4~AiM$}0$4f-GO-_~E0r zJv62bGR+sA6RnlX%flnAJ}#;U5(TKj1w0YcC7`UPr%#;%mNjElHkGCo`)ZygrCfa( zmnaq=3m53(|?IBRt_x|W4}YNx6v66m#lo_l-7^QCn3Q)y0T zscJRH`3a{>AkvEnFFCHpSg9=#VB*88SQay;*Qf5&iVhL7xikvz5Hjoa<>c%Rmw!P# zA#TuMF?gaT*=@qvhd2`d!_^4B4u#H8NwGq}xZn+VL%qA=>hkp3URl8nl1czMCdEIk@FXx{5kB6@ee)P)U>yzi4h7{e-%*(sBXjGSu z=9MmbziBjr{&VWQj|LWqlqOFlsN#7N56i0}7*-aZWO~B=;vQ_Z)1IawHyTd7>x$=4 z)|oxs(}@vny?j`u026mn%;WdBGyO_IMQ>%v@h;HGqs@C@Irygwjf?S{&l48S=RX$2 z#vSb~Y}0qvcLr{U3`Ga8o|}1I@gf^Di~*E*_a zln)8Uv8T&r@t-FgeDIQAHeOWSVqVvg?FxwY-HQ7V>8ce;gD#W-trblqBeg}U7 zpWYJIb6Mm#KeMH}!(GlNQvKH9x;m?-CuyG5@13;XxzuS`9r+oMF#u-Ryt3_`TpWFR-{yAzZW};u9oz~y(TevU#Tc&VHc{Brd^3^Sam0Rh8Ac&dl zAZOEy-X)vwsAC#ul)4sG+Zzaje|eBP`ZObxb>WzWzl;H;;K#cy}2)LDlIZ zy8xb3PS%fc1%TD?TqDYtPR_r9(Zrs|W5U+7gQc`Xu88{?dAaf=PU*|!7i-$1uE%{u@c=-fX_ zXSr3{uTn(|zzfkVYyp)CB+%|A&*uS>Y}l?b%g{-Sp_*GOP*?PhzbSSwV_>}cjw8pP z^PaH!cZ+ANkT1n@)H#o4(N4-+dlo-}n!{z~a9yPt{Rt!RA9!^1Jr?^EseMVk(Xv%l zkt6k2%9t^%m$=LPr@^UB3}tM#FR7Inhxn^wWjs%{wZ|epydqilD_&kn)+&x6A#J1> z9(xhW6}smMkFms;C68nI890|Vm$DI7{*gj{+h3g0pNN~}xVt4g3y6Sggjq?tre~D6xmC)yL7XDPS_e$dwINg}5h<^p%aiyI9OcOu85WI-J%a>0yQwGT-8)g`6QsiQ39hph0@ZOb z7FBhIbLlf?mkF5b8=W#x@lB{VaAE^$X`q(6rzs0so?UN<#!)d_)(zjax+;i<$>7tE zOa8}tJe+C#CU1b3`)*EPAgul&wb-pI)Ly_IaPMj zSbt*7BXk%OtW-1NQ>F9Jj~qg(UC(cYo00HOx#l^3Oidmybmp@OR+=^g9!o`HETp-p zK#WHcW|5A>sZy+Htom4Y4N;Jsv2ljTw!_*d?YmNW5#9PRn&g~r%v9`h{Mw}~#fpo3 z0iT`*h}~jmsSu?GGT0iF$vdbIQ6-Fvtkf8&#n^tdPS5?h@>DBt>tgg1eXe7^jqc30 z-V7gNqjHJc|1VGJQo@y}m+IYKe{aqA&>hJCV=9wJ0PsXX0|IcM;%uOoN;#G^@kM%^ z3(7zru!feTVpfh0j})f8lA^AoZA?ETo4O-ya65J7;@HS@?sp!V#hhnVc*my8O=A5i zB!j`vmx$E^{7gQ(l0ZZcyGWdHXtyxy%#rf(iOiJEs!&;mW~S=d`KRB0G~Qj;q`5r9 zY^0O+Ry9$d%stD^hV9#r{=&uFssn(kz-w!8dfkGwYPwG^5ow|oSD%x3t!bJ&6c1-8 z5U>wb*OX7fT&0wjvx*OhNXuJ(yVF3T%8|jSe-S-E2J$d2ZA&=$uy==Ot6@zN1$U=e z#UKFDLqk%~)aK>cZ%?FSP@%8Ng$XO(zY;baMp@ycqzTxYCJOm&^cK{~NoVcCg!HF2 zKVgQ|Eqh+Y6n=61c_CF{=|XJl5Nf8IiLGn81)@y6c8m9*et0EyiKh1WLDPARQP%d& zhX?&(ce!L9C!3$h%=0L0Y0GIIaRt6qN`6tOp%wTQfuAB-U zWE?Im-D|H6j8=Vl!RKEukC=bY5aBcF!ML=!vcRwbHZ#>+Ujv_uvCG_Eqt0#^!r*@-TJW*r=D>ApEkt( z@7u)3H~D=A*T2G2zxq10^Zc27G?$O#mZR~TNh}^>vhjz8e^}NzU%=CyY21R5Jln9a ztcSul5ChW7|CwBmyq>RcJkVDlW_8Na)ka2crrl<^QOZ^+1+|-9J$d&of3rEO4)fh) zQkEfgfnjd>>7nFu3{SO)tyneX^2C)`;;C?gQ>(XGenjR2kbgV?8B@@B#KKhO5@57Q z3t|J|@@ZKsCZ)b^of6h)&pg_ zT@Ec4fbvlC=kFNw7d9VUPOd(WFIX zzh%~D#~xu`-+sQM=CWp|k_;vTw}pZ6&}h=VK29z9SoNcLWRT4kzd)gZ7=p1T(k~S0zm;L{8th*n}1}m!DayWVZ+zPvkS*l5QK%MV6Ub=w{03=JY(&cSewh($e9W3eE%oL6N`-;5^Q2 z;rFTyW_K+yeUtASRt^orrf19C7w6)P^l#U@?g=Y0YgePAbFW}z9EnJFI3)os|^|)Iz2&&tTP4coV7&%Cz3lU-+A z5s+T?*^bN8R9wCH&UV4?uYmf6s3QklS;^5{g+#7@;i|JUe|RxOTjFM|ky@aedLB<} z(p9Xy3IL!R{M`$%U|&dLF;mJHUX(X+gwy%z4LB2%fgrk|WJGu74TsH3l}5D!Chx@S z`Pc{Lr$_+4baDYs<5N(}_l_m?ujZSh=XL%1t-|ftdgo^I>u2|?il!SC(Y8D7u(S6b zkWk+ZuGDbeowm1R-Ae)zl*X=8qo@okWY1&rVJ{iblA$ zEK>lE{IZCMsSH#!43Igx4dsUFT*N+l?3#1G2q8sZi6e3?(@q7G?1pPdVxE(qQt^@Y zZ)hBvGNr}oOkG`bDO29wUQ6!4?7VsAAeDu|185YVAb+CMS=Ne zZ^XY9q(Uwc<%5!=9+do24sNVE=v#D9mu1xuT?w@ED}{3H?P_WdA96a*wZKAo;mGTzUp^Za95ts{a~-Hj7LG5f2#_V5zd)3|tVFb^Dv7kx_lTRtnC;UgZc z_c?z-Fkbdi)d@{CK(7cm~GxHI(r?Sh5j;?eW7)Y_H zWIUXnP9d><-_Bl=>;0Py;wD2iPoHflDx4J7$R1rcI&6BCs zS1zr|y0@~zwV&UP>c+fwo}SPz9T+d6y}Vf5oSHL)f=h-oI`-jIJCrS8_LZ|f53f2B zLjMj{%IA{V>VPKzU+Wozv;6Q4D|;!+a|81Bx6{?Ld2hW>6S?oJJl~F5Tu9Xk7+l(wQTRocler!QwI_RS zp)Pz0>@=~V+GxTXIT+JIA`>@Pe;+$-P5ih=Kk#~G*2LJ;`>-=r7! zB%+S98g87Y{4e5$ng1{(X+gE~a_6wpmw;D>EO7#3uT>Fvk0}D;F#q^5GG_nkf-cTRT#-eSLFsU?Q|t4br- zjR9nbAC3@kD46Ql+nQ}WHs{_EhwiNT=t=~X^g}SC( z2Nnu1_QA~s&?@S~#~sgYLfRUZW*rFh4BubqPb#L~L!RKt&5=DZ_sydnUROa*G~KZT zDxJpe^oG5Aom9eOppV9Q^>K+GZV_jYbc`kIm8 zyJ6SDa2~fW5g`RrZHVX_`j;15fNC%Ntwi{rWom*~w!w@py^I~*>l#VO%mdtQe&b#} zWMOW??-X{U`gG({gH&IZEHz_cIef%(;87VrP~gbrzZM1f;Cqf6g(^^OhPO-aZE-IO zHfhvQZWa?(>AGCFK~y#i@7Jh!QlassS5>~${piVgWX)ruZ0}59<;gS~xxa8a;K`E- z!hVuIUS#0w7+_8>{a$(S1*kUt<}G7Hm6!yI-%2`rEF&(oRu1WJEHjThzlJH^X!3;L zmwJvdgV8tSGM5H8g$M%jv;D)oRkKccp*E-au$20O_XZ46OuQ&QWIzu_=mR-eeV+`G zf-)ZQ%Ba;ZGRgMdf50D5S8$Ui_S=%=K*5}2VfKFM9G%dbb-uDkQ~k5VgiH=TMLS_s z_Di49(7+m;;CrZH3{K+?GEhh^s06(zl?$Es7{pj>#>G;m&TR~|^CfOxQ(mYSFfZ@M z<3F^D`_B-svjQal2=qJr!s+k~$y-r+>VAfO+?-^e9Zyvdc-*i)r+IsXSZNqDDJ)_C zvo7nE|B1^zj0aZ7(*nXbLx7Dv%1q~SJOT6U%Z;Am43$q1ekdiZfbQ0v zHx#-)3;~>hR0zt5hNG`uSSo+GGRt{|p?Eliu)X@V*awtnkmJzo;I7^^hge9-j9`g` z?pTY8Pj=U|{9ZmFNyUlqLy7q|sH9*6RG z?wqAzI*Ja1RDiK?&1=w9;7(~?|o`Y{zQaR5a2e|gu7%l644n}94c zOhkCqZ?ybEpV-1f+g9V_?-q%twPQ@PPrvj$#M|jwq+%UWBC5Go>yP0s$!n;6?%ID9 zqJ7rL$$9uG{`1x)L#d8TygF5P_O=WB zv^2rgcvI|AuvEXud+RD{GJZ9;a1t=TWT=XJ70{uy895v|kBtBBgdXBE?t$5_4 zuVG5AQD3Z8g!Rl+$N91c%+6BbvWm9$%;=YfC?8DX7LAzaYi=9mEd*9n&mkutNP*cH zpfZ?arhUGt)kVZw1Lg)fo0WK@rFpcDK80zTf0Pt)*C;795xIYblPJK~zJm{m=I27H zC007u9~g^}NnzyB)DrLz%3`zGRN~r2YXPVievN8dJ|&2i!E_fNoWaok#Lo|poBClb z!Q8I7HQY+o$GmpmdJRhPXI@>r^uedPuJ+?Ace@4ahT2}|@ubf5M*Dy2mq~>893E2q zgM)EuM$0wB5|`>!(HfFZa*_`#1?HIl)-w2SEt@CXR29K3Bh4LYEtS?ZVmr9^Ya0nt z6I!U@xLKWHynfOxrJPPG$5+BNFBZnaSIsOi??!E;9eOI-Uh#V5sR~ z!(h#rCK+El1>MP@^U{b+}KZP{{@d+*&Tc8VP*R*IeCBw(i?6332hNp>Vk=v;s$lmGz& zp?B_pfsRry-t4=$&%gWP-t0>+9^lrj?-b!y%ENuNhTW8ev-v;fNbKao%|g`pCK|pG z=}x4h|Gk{~Cq=1#OHr1GDaw5&6)=7Yw?vRCWdZ_! zq_3CZj#nnJvRh9*A5x8Xf?%A&HuFbN|+&@flV#Vf} z_Kps2N|4FTq$wGujmr||aXzzLG}YGJ(!zaI70+$=D5Z1@-56U3Q=gwq^1@vYimsOjp>YzKO+dJAj z+Pt(^z?~5nsHfY!ZTM%}roGM0EnJ2qle;HVCZL;T+-6B~*-TSoV^bsDs3XI}kV8tn zkPHb!4#N3C62}G!IW#$=$#BKjxuud~x`-}ja=E`ta#Z6v7&HFgLwh)_G>Ln{CKb=7 zd(z!vE-%T*y;i4|MUvcNcO=Ov;I>OsvbD~+I16hhL#7}H6*oXBHQ<8\Dfh;Lxq%-l#VT72V8cZkNm>6>g?GCoz`XU9wEm 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 PeDpKg|Ep|UG(GFz*hc0c delta 7306 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 G<^KSCk-t3v diff --git a/xonstat/batch/badges/img/overlay_minimal.png b/xonstat/batch/badges/img/overlay_minimal.png index 1f39a7128078f0d1c3e100abd2de0c7ca005ec8b..fa8eb8b532a5993c2236df3b89b2547260ae4e73 100644 GIT binary patch delta 1310 zcmV+(1>yS20+9=lVFwio0NW`$W|3$oe+2AFL_t(|+U?z4Xj^p{$MN5jWow;jJG)uk zSjRTnZ4D^83`5i1bk&Z67m5t=LJ_ZI;*D3rKxE(>G6r6_D|=NL>gL5nQB=H{6h|j3 zd(p{KQ<=K@vedQf+mb$BG?QaY-IAUR0^bjm=KRmedEj|&ekA9dNFi|dUU%;ne*geL zEphjhyT9P>E9eFQ0H~!9v&G%ta`$Gs0RRAMDa6Fx{e5>|M>hZfKrMxsU4;;{hHd}= zfLaPMd)@sgAqD^d)KY+1=I;IOe%RgX=?DM-sFe`2(cO=``#!n>003@P0BLadZA(1I zv+h3R?z`zI000Psl?WU$Nsmf;e@IeC;h482O-kyKv{h0}(v+l(q)#OsHM7}80!*W% zW0G=`_Ly0gwgUiwPy&p*H%WRz(&LgE$~@0SNiUk&_lty>XC&>F^og0hMB4!Xz>)%t zyDyjYq@<@Mt*r1o(~>46y=-PDN(7ijNuNoIN_xu7zN7U30AMKr=7^+?e}T21CA}+Y zRMHz-_`0arZ<4;0G$?7<%&y+3kh{Mrsaw)FX7(Jd2LJ$-iWY^J4<)^BX7lcTr=$@{ z_XhS~m2^nb5i`q`S?lvcfJwT02cN005PUf0S6eM^a}|c$t^9uhQ@$NoF=9>3m^xx4W;T{Qv+UtN>HW zkePjZeZ$@B-M!J>SCm=rY~g>M7QRjb001ak^d^s6@9qPV)<|j&1|N67BI&rKR|}uA z{GZ@;FWr(pW&{8LpjrWDUEwe2nid{n_m!j*HxXVWDIIvd!`+vee_5U}004k$1elm)^o7t~rzV}MtbxaFS`aQ!K002NW1I!so`^{{m!g_xdZ4+Ps06h?(0ICvTa=F~hfB5+LOqhl0>guA6jg4!I z>dZ0%000nHfSC%rP$H4o9En8!_3PEs)6-c-0000&2{6%UH1xZJHf`FpwRmlEa`G}G z0001?1(>F$ruwjotXj3IzNMw5qj)`=&Hl*<002NJ0Y;J%iNuz$ilkDh`y!FZe}1+g zlgV6U1ONaaf3yJ8-rk;wL?X7-0PUB6_0(%q$X*#~*BM zZH*5P4}U#0G?dQg^Yb@)UteEevbni=bE$ooE?qi1J3E`B{Qv-U3ZkByC8%w#gZjE;_8c6SdRyM6oijU62wyB0Z>4-O8Vp!EO%pi+MWoOOxH UVPAb&3;+NC07*qoM6N<$f|tu-SO5S3 delta 206 zcmbQpeTr#9BD;W~_0jvcjVETP*E1~jba4!+xb^m$p=g5xkIO;p7*|IdMF#(shDBOI zkD25QloPlAOlBYxeDF0^3QLn)RSPEIbS!)Wsb?3HoT9TCW3gho`Hb%Q~loCIImBEh7K` diff --git a/xonstat/batch/badges/img/overlay_minimal.xcf b/xonstat/batch/badges/img/overlay_minimal.xcf index fefa526d855e10ee2c67dc021aaa68fe3353e7fd..fe74fd6581652699a0b80694be5bb35fb3e046a4 100644 GIT binary patch delta 3426 zcmb_fdvKK16+hoTvYSmd+0Ev$39ks@Wk^7dxNh3lj5D-aH7(xppoid#- zgSG9{OoV0_kWo}p(P^z#7?I}ytrcYu!9oGi@)EF(4FR&7-Tm&pr@s>(WBLa(nc`x>DG)AO};Bz0j3V2-3y< zDZ(Diiz#fgABw)@V?&(A8PN8oYz{&eft?K*g>-=wz_@^l*aw*p=_e0Is1QCL&Y>uL zJRF7;pAZ#b?8aE62e!hS(jyCn;UG#E+ZN>@icGK}3yH}jM7dp3LV=!ziMMMf7IKks z{ZlDf8T$G7ph`utkxl4}p6jZ;{39CO_M@XX#z6X3vXh-_>gNyqNY~ zt!B@QY2V>&_Pm-sFQ$Emv)S`%_Pm((9nL1InN7NHm<~&Ef`Rp+h6Za~01d zA36D7Uy%f_W-mWz_!o=zw)6FaKTRhOIXUgEd6Y(KGq0d1smQ7;9AN$VNZ8a$-b7w< z9x!$yBbqlEUez*ox**P z`EklcQZ4M_)Ot4+{T*y|b%_`GJ5Ml=A{RL=+>wsL=&@(n!|K5H7&!W38D-k!1Y*1q zH;)ra@Lws1l&3*SqIw);_u}!akHF*2FxAXbbZU3XvXu zhJ);!`S_BS9NIPou>aUB=C{dvjk#RfS=GT2c9Jho31Ab+5jJzXXAIb;mlV~t%5V;= z)P{b@-t?6$A6O#Rbjlv2gi{jWF8FGifH}hK4g$Lhn$9*OodQLn|Tpa&}Fgq0*}WV_v2LZt@MXt65|yKUFu-yTpaA*44dxoj$M)q;?)OTs%x;RRcOuRIZDo#UZej|-Yd!PNB*iuS) z_ECd2C;#!w0xEkKO1;l3uR{1J#&NS_ikAvzwxkd@p8CT)yFaB(-DQOKNjBaW%d6{y$=%I@k84Vp6?+eF0x^DLsr3K8@A+XA7x> z9M^;wK1X-dq4LAhwA1SiWQpp=6MXZAyzK{8@CZ>(JD~8<><4nYbHqIxYlLu~L)Ap# z-vaBw-v@~ASrD3syEkmL-J3m@tGQ@)X>*yYs`({<#`FjX@_ci_NC)2RIKIwZ0HWs= zb?4-kz!2+h4APA delta 651 zcmY+?OGp(_9LMqB3_k9id&h;3@J8eV6lrx45mCHCR)UlZgW23WcM*sRCWMb}2wX%3G0>*8HVQ2iloVVj78C{HVAn*_sC?PuWq+G>QSY3K6>Q-L4$YigJMZqn$3r~9IA-w%3t_gu+4B5Hm){!w o1O9Vxo_{3edCt3LUw?_%7p!0n8(;>18{fbz{5tyssmZ~%{|t0xg#Z8m diff --git a/xonstat/batch/badges/img/xonotic_logo.svg b/xonstat/batch/badges/img/xonotic_logo.svg new file mode 100644 index 0000000..b8bc1b2 --- /dev/null +++ b/xonstat/batch/badges/img/xonotic_logo.svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + 2010 + + + Xonotic Community + + + + + + + + + + Xonotic Community + + + + + + + + + + + Xonotic + Phoenix + Logo + + + + The logo of the Xonotic project. + + + + + diff --git a/xonstat/batch/badges/img/xonotic_logo_black-white.svg b/xonstat/batch/badges/img/xonotic_logo_black-white.svg new file mode 100644 index 0000000..e0c8dbb --- /dev/null +++ b/xonstat/batch/badges/img/xonotic_logo_black-white.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + image/svg+xml + + + 2010 + + + Xonotic Community + + + + + + + + + + Xonotic Community + + + + + + Xonotic + Phoenix + Logo + + + A print version of the Xonotic logo. Completely black. + Xonotic Logo + + + + + diff --git a/xonstat/batch/badges/skin.py b/xonstat/batch/badges/skin.py index 0af57d8..a2bb0ed 100644 --- a/xonstat/batch/badges/skin.py +++ b/xonstat/batch/badges/skin.py @@ -64,31 +64,31 @@ class Skin: 'width': 560, 'height': 70, 'nick_fontsize': 20, - 'nick_pos': (5,18), - 'nick_maxwidth': 330, - 'gametype_fontsize':12, - 'gametype_pos': (60,31), - 'gametype_width': 110, + 'nick_pos': (56,18), + 'nick_maxwidth': 280, + 'gametype_fontsize':10, + 'gametype_pos': (101,33), + 'gametype_width': 94, 'gametype_color': (0.9, 0.9, 0.9), 'gametype_text': "[ %s ]", 'gametype_center': True, 'num_gametypes': 3, 'nostats_fontsize': 12, - 'nostats_pos': (60,59), + 'nostats_pos': (101,59), 'nostats_color': (0.8, 0.2, 0.1), 'nostats_angle': -10, 'nostats_text': "no stats yet!", - 'nostats_center': False, - 'elo_pos': (60,47), + 'nostats_center': True, + 'elo_pos': (101,47), 'elo_fontsize': 10, 'elo_color': (1.0, 1.0, 0.5), 'elo_text': "Elo %.0f", - 'elo_center': False, + 'elo_center': True, 'rank_fontsize': 8, - 'rank_pos': (60,57), + 'rank_pos': (101,57), 'rank_color': (0.8, 0.8, 1.0), 'rank_text': "Rank %d of %d", - 'rank_center': False, + 'rank_center': True, 'wintext_fontsize': 10, 'wintext_pos': (508,3), 'wintext_color': (0.8, 0.8, 0.8), @@ -281,6 +281,9 @@ class Skin: # show up to three gametypes the player has participated in xoffset = 0 for gt in data.total_stats['gametypes'][:self.num_gametypes]: + if not elos.has_key(gt) or not ranks.has_key(gt): + continue + if self.gametype_pos: ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_BOLD) ctx.set_font_size(self.gametype_fontsize) @@ -290,10 +293,11 @@ class Skin: if self.gametype_center: ctx.move_to(self.gametype_pos[0]+xoffset-xoff-tw/2, self.gametype_pos[1]-yoff) else: - ctx.move_to(self.gametype_pos[0]+xoffset-xoff, self.gametype_pos[1]-yoff) + ctx.move_to(self.gametype_pos[0]+xoffset-xoff-tw, self.gametype_pos[1]-yoff) ctx.show_text(txt) if not elos.has_key(gt) or not ranks.has_key(gt): + pass if self.nostats_pos: ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_BOLD) ctx.set_font_size(self.nostats_fontsize) -- 2.39.2