From 59db0af1222f9e74214d31be2217d0c876f8a719 Mon Sep 17 00:00:00 2001 From: adevopg <133045315+adevopg@users.noreply.github.com> Date: Wed, 13 Nov 2024 10:34:42 +0100 Subject: [PATCH] Implementacion de TOP --- home/__pycache__/views.cpython-313.pyc | Bin 35254 -> 43782 bytes home/templates/partials/novawow_players.html | 659 ++++--------------- home/views.py | 228 ++++++- 3 files changed, 358 insertions(+), 529 deletions(-) diff --git a/home/__pycache__/views.cpython-313.pyc b/home/__pycache__/views.cpython-313.pyc index 681483ba3d3f72f357fbde1a23a4583bd74536a3..f7ac9fb8f9cf306891a330f1d17e3e6b7eb5dffe 100644 GIT binary patch delta 12089 zcmbVS3wT?_mA+S&WWD{8ZApGzJ9Zp7ekQgPCn3(m&clhF)Ur%y0OdxKZGn8Hj^sQ{ zK;hLU+ZITt-3H3DWj_K7d;ym(+ifW{eNhT1I3?7+mE@dm|6#1r)&f@CB@*3rkb+xfn^KWJa%>GS$BdQqn}cYrkM#P)^6K;O_+ zuO?XJ)DYxIS`gY0+7Y?{oLZ%7ITo}cu=)=Ak`Dl5a9e^TppWvZ^Ckb%c(VG=t9Bk^?Hfon9)t!5V~er&-oa zPKOV#kPD{6vmmwKdZYFLHaJ9oWF3dzYszc*2k6@JUqfR@#lxx%$Dvj(nDQSY4`50Y ziIPB=d=At4!9!kuI2s5^U@}Dus(J|Pw8S5o2}a2Y`e$3Ol?~n`&P1pDQZ(QdVen7P zZL+_mN_Xz4Ud2B}N2|AJ*~p%x4_8-fpFnM&qc2xCv^wM@CX37FDrN)(h(H^wx`SL>iHMuhU)gHQd8ue@_TRg zMEv9c%upmMMrR`A%-nbDzo`;lKviY{Su+tJV2LxBE);z}7;S{SLQgbSG(3kwuOYmN zwZ&;o{-EEBwj!_7R~ws4m`U_gp=rNDJVE)U(?I3I-CA zB1)@^^f%2_(CVY+Z}n&CFcK<-#J{1Qv>hQWmwQ7}6ub2jzZeaXl&0U(_m{1Kk+nI? zc;k;iko*|oCv->4(%7q*{3!qo?Pr*N9pP;(&@oe!Z0BfgGLP^I!Z`#+NUae1ITmEv zf6Pfr)APV)R2k#%IGSv^Gi91DF8_2ddYG&UNIw4|@Rrl44_%G?D?qNvjNoyhnUsCs zp*5{5V0^nm5q3i$C-p<t`fb&%waNVN!*KWe8|yS<7b5PpYxxeFO&rGqP1Na%K_AW^ZVjG~o%u z4sb9;d<4fK8^8x9JpO4h5F~%Vwv6F>bhfXnQyCr>eg)xvlrMrv7&su}!thLqktuQs ztIi|*k^Zu;rkt%4Gx1LbA{a8+B3I9u*W9J$lk`g)8o;(MZ1|Ir*+dx#eRiXxE^8P@ zINLR|_Iva{Ha0XphrJZQN{|g%7L0I?@6h&5RlH?xXwwtCDc23?N1Gjd3AGK>fd6!E zT}R1)qof#=EpQh4(15MT3Z?g8O(_COuciMpU~j%kni&Ka5zz6>q?S(w?H^S7SW8b1 z+E?XmRTA`1ib0PQg6NtGD0b-V%h+M1((5~eLuR%(Pyu-NbF_a;MJfzIJI_RDM)Hwr zIc}xASyuI0BCZ;1Ea4rw9^#ySDQfzBM`2+BOq!gb|lm$5v2!gR?jTdGoN=i`h0)VXbAA$uDAuK9ru=q)O(^wz>A$@#oee5GF zu%ldo6go%@KteVW|3Q)XJd!x=CnluDmUT(avR;9uJqW!B$VfJcUe>qACq_j!9Ed9r zOFeK3Scy{I0Jza07)5cL zCp#hKG?8ZdrdZF9&`YANWH-}`m8=Jzr;hz=l`hs})%v-8`+reThVvwA*lA*nJcvEr z&wAQ7@pS4mt0{vyWnwxANgfvFeot3Tw!~I}9$BwgMw$qbj4fpg#5IpMedvn-wd~BZ z-R0xck39QOoqB&L6eO#WABL@J0A$U`jN}ywJL9&}mqKmzZ3-FY z+n>hXSY+Lcsp}DLpr-H=zLj={yPer-Vl%|%>O<6xb0zEGBsCEYfLrdPUkp1ovr(`n zI4D`SUz8N@8$rE(gfRp+0uLZtg8l>kpl5X_#3NiMH`3pSmo1rss)z-;New>rk8*-$ zR$V>U^O@%hR<1`X_=H0?14M8>6j?=dJJuk48=?Ri!WMzHc6C|>sf3iQ6~kdz49-$z#@JYK+GI<{Pdq_b-?AF>gy2B&{2^2^nN-u{bm*-U{Gg-B{Q#nZrgG}sd6 z3UChTqp#h5L!M6h?x^Dbp1SWy5AxYNM)OFO+*!$=q|Q4PDLWm%Ymahny^g+or>z}M z^eoV^7{}sQ?)eFqfqu##3@dK-0M*{r%bsPuJWXn?{3cqZtx~&8?M8Y+T@^F;;0_GG zM$Ty&nKew!Op8+6v>5cy>O#b;qzpdTgeH`nb0Fck7-^_hG`^h^E#lYP<%Hyg_Rfg#3jH`s*- z*$9N$jRskPDGV`i^1{_C8{iJW?+L*9DYD=p%8XY8nL6??Ow}GRUgR2Rbdw~|=y0V5@ zS1tg<${J?VS$)QwvR1LAtW}H%HwtJ!S;I^xYZa@_>NEC|3sa^d52D{)WeFpRWlgcb z7DWqe0Z-UZfr3D;HA)l4;)D^fB4I3Je~^a1vV^HJVJg2=X)4nm-GRoaytn^&|HScJfWD+@v9tbc z>HgL{dU)R06<2q`(U;fW5ObPGWZl*oKOue+n$bbuyTzdBJM)Yr7j713MPG=_6k_R_ zXJEGt$$A%!os|S$lLa2{tIXx9@o0eV=}`X5QElS9g#;i~@9@qaucvGGF03 zIT!Czd3aZWOAV-TX#opeIzYY40BCfX0L?B7V3DgBu*6jgSmv?;EtWu;$3>7|QF!xD(GHIQxaGi=bX zSOawItnArORGwZ^S@}51H!sv3%T8`)k!4!Edla6j79Z?3+7YV~cTmbKKIMv}4Y}GAol+n5kx& z^~oB{)TV0cFe9)`PqH2}4J@-FxdbzfT+yn8r8{9+k+7_Le>oJz)#b@{&Qx>WD4aD4 zkJiS!2Ih@}arI#O98xz^&KJ^qm)FplyK3nT+uI9yms(P}c^Ve1#cmZo5aCbY-2AAK zeyXyHo~|hCEaS%2NbM_mx(BG^m z*Xz>C=qr_08Y?r{x;491!(AL_1pSg;DwMR6Mp8>Udj0keAflBFX(EPn+bofo(Z%6^ z=^aGit~D}Vrg8JQWxOcG3nC8VwKM!{smQH%749ud^KzTgS}oj4)!y<bELn7tSuz3Jq7++$RFY;}l5U^Fw)85trNGuaUN&wWFOO)L4V!?g zn&UumnPip97hz-suJ{DYe(nrcce%UFZH2=+@`O<{o)w^{4D^+!NSdX}G|9?5ByCrb zv}H_cPmzTE1WAT>f?E6k)1Y>jrCkj);aJ3IIuu)~BzuZykyMrDS#>qfwbdWz*}+LQ z*H)Kt+kOh>t994T!2N+#$2ba7{Z+15pVo=47;_b;vr>b*&Q-Ez566jCj@xTXTX__( z;6L`WaIVsoDrw2CF=$h^7HUOU1AFoG!hTurk{aED%gVIE1C*2L z-Hp(R&D{iOU#W$z>N1TMYvWkNX{uJLr6ul~(YiFf?7vfc>(d!`UD^_CV)KjzSBiUy zyTMi6u1U)Z+%UX0!in6A`!D;sIaiHa?=E&b+!by(41#n4E#A;z+o~G*<240!+yoy{ z32@IN>6CR(-}BUBtr&1%8E6zXLQ?BhJ?wIij4hj-Zl8ol2`5TU`=|H&N#trWlkLjOBe*B_r`5!SEu*`J z1!x@f36tqkVQ3c+#pf*O6?6$+VHXYo`w*^y@hjuSY^KT1!7XD-JEqK|&=4l4v8lo@ z=u0(c60B`ZG1S)4UGCk&rt3g;woa+qH99ajidCs`2?K+!&DmbJ4{sk6dNTQ0U6Ze^ zX}YcHy4f#e3RBajOd3uDOdWm}(JDl1LQyfeBM=N?Cgc+jvvj&89TDxZ41s7yHXnzs z&U7nbR=qzk**06)HtqKXW~Sjg3cMeb^_fcpc!p)4W#FT!Y-D;pHzNtm00|`{wxI8& zEF=i2Q7FtaeWe`DQI-`XpLq3gN;5@KdWtn^LHc)7RIN( zv{`YY;kE;(OV*_a2X`j8phSJ11+6S(T+k`+Xixda@WwsMyka=k&UpEWVy>Lir*eUq zA;cC_X5B0}bi(B*oO&a$mc(#IKL0us!|9c#EV--?WbMEtGI}yTntRMuxcwi#>QpP2 z*Z6R)7_szf9Wn8id{z_Nb41hOFpm{s6mXZ0@zE=`=SCkT_~f-0h-OAN6w4cq#E)4i zwG=Skjt*j1IqX>A%_v04?j8ug-96yD-Mtu&dm$`$_kvG%_hLma_;q(rAEr86V}Ri5 z-MtXB7bxlK?nLMB?t~_QAPxvZfY83HyQ`BS=!Z0P00=!mZ8l;#GYT`4n6eTC^HiW~ z0=}~)P21Kq4X?Slp0O4T-yhtQ?-Nrt_kj?JVou1vJ+ebEU-@S1syZ$7zSc{LB%KO`;%Im;~K$~n- z_Qub^#o%G`Hj1#FL96Via$#zhmkU#yoot9@_iPwKh)j#osNd&FS;WY84G+^N>!YEt zVio1}6J8#Y*AVdLhMWhG%a~0(seV!oOBWV0b6HYxGv-%fw`|M_PKUzZmRpo=wgsN?BSgj~#&j7JksqR_L7btVW1S^y8uT1; z4y)0p$QF=^ETtFwDrs>@lm5R2R#fWaDk*e8JQzCYNjnnzuHijsI)}FdrD|%qyOyr- zmd3`DDr2STm=P{c^+oquj$7`#<(zIwqNMVxbtmfPOB#-8uhejc6_*;hwHx^>ngW~l zH)}SWHT51FIN5w^C|ST6EcYFJ+IHUA|CY1=Wy8F4$9d=2S?5^X?U{G(o7aiIShFFi z;WXu!IcR&?#2L!t<;`dH%g*aN&gwhp2Co`9Xcz~$YsleXb$oT#iCy#7repdmB?^a) z{1AVoMDNgED&{bK*0c_Y7*1Cu&0M)XQC0W2`IK*7SQ)SDj@x@K)GR+WG+(nSUcLIo z!nk8YqG~DpT{ddX;|JW;dc z5zqae`I`2)&T*w2=`7<0`D^(POY~NxgXy!T4abH~T22{H@4am1YFjhCYvYdo3yx){ z9P^IuM7fZ#Ed@*y!Ins*pa1Q~Lp@0d1En(k9W@024dj>!eJw z?3~V-SmJ!5|FQo0CEanIaK#QLfjbyHoaVZoJ-x?3y zmgKk?KcIqtY=f%f+x~q)51w=TqK4UDVmm>*``>b#)hn z?$bBU3j+zOEm2edc*p6+`G!^T`qlBOzJyIkSQ{=Gwe^M%Ij!D!sfM$4UWO~EQv3vI zb)vK(QQMhlTA#2rCaPOOZmsqMPHQSma#~H{mCb4}+uQoC|Nc;b<#7d;hmx~`M_#e9 zT&(NA|H}qGmdaud=H^O;BKntz3u3`sj;TvYdNOj>G z&4!WQLMK1syovl1$5nFV77R&uBiw`V7lc30-FWvjANvfXWi32g!Y9RqeQ&T1YuU#O z9!!Y{_z8)u-U5+c`G)ui7CwOR1j6$OFCd&jNFe+Q;UdCs5q^j84uTp3par3X=LR@p z#bgD79ibYb7C}I0Kxjf3LSUcvtjCmyuo|I{($8(!aT1dcAh0d*DNJSeMYi){{3K!I zkohE9)~%Zk`DTLt^+W|n3J~BTuRee5X};`~MCP#m~ zdEe*zeV*ria?g8)7r;>TWnp1K4u0M|&^Bb4JXBQ0o_nUL#K3yNWB6&_5Oek=|7Tcg zU{1K!c#^r{FUHgPtw`@Q@OF5>WUq1I7p-haj(L3{Nmacuc@&qb%Ddqu(@iE19{X}( z`#xLpGqsk%%KS;T7;f8NWx5tm_)^$zu7ErDmzO(@oDAVkf@=ttz@uhIn(SqB#Vz`- zU_)@u(-{`ihTv+URfdQZq@^}rK1!*5+3YA>Mg*pm6tt;w-4!wgPe!KBNGt`P3rod@ zP$!6l9VC)3ArRb7XfNnzOc*tnrQa^1RxY9zkhtWF$=n+ZOG7g6h2xg5 znJ0PFnro;OWW|1khozV-aj#$YA-NxtMVpKwvWH45pt1Ng3&C5(_fZQE?$$9-p^W*iDf$6B@AaC98061F={ zF=7~oPi)_1F6gePV@F_f#f*Nv21wM{lI!O0H}u?#WLj=O9_2@9WmIE480GtEZC*3# zlcTYq62U0z;z;JBbY|kR8V|+zLomPEWfNXorFbkLM`A%Ay3U_WZm)jZkha28>t-h* zTD#UHTs#3U*4CPyBx(C$rglN|Q?$ISLe0ak_4pA{(F#J!P%z>h4$33^EHu~s79((} zu7fQkOZblojw4`#i;X96tr`%BAJ#e=STY%KY%*XN&NWoCbIA`Ho-@=ZiLDSpGx~!Z zy*@|ldD7q@dZzN1;ORy4El(5Cp9ua8(~IV_*WvGrno5PY=718Gb(`J;N8?$vX}XcI zfj5bIn!t*nUI9atbVei{K@K zw+VzndAdR8Y2z~gx9+}7mH9B1ni`X0@swpB=Ri@*Bsw|OqPi$)G-EI_D34+SoFQ41 zJ^XJ7v%_Vv-=N_DG--3B+?RcCWgEJk6*t5{%+SEWb z#`hwm>)X`8B0FH3Vgf+ZRX`p3APHp>Yp#F|Omn#^ly=U)Uh1R}sTJ;0ai zN-Oj!iz9w-6x;rY!Us9|p%vi$`@M2l3WoUS#49Yk2uC`XFVo$lO(1xL=!>!W1&1Z- z3*LaF2KYbe=v{&@;J=-96{0>0xjYn9sY{BwH6&ZQ_L+CcD`;9e@Vq`vm ze_xiMs6@^MOXo z2Z^|ZKo?NArn)JsfMTjOwA`D{WgBc;Q-`TcYF}7WT{?#gK3r32t3=U1BJmYM2U_kE zEgT$cm#-J4LwuP36d%njr~CF5b#9I*F|S{VM+SKfQa^%!YH212N4ie>-mk8;cs-2ds<9jvOpn&zw$ z%DC)DYp)Pc4_o`vs-N$(Ey~Jh^(o2^f^w=|EQE`KW!=5i$wfCs=UGI0Q3vG5;IZ2V z<~O22S`n9hJRXeU)s9G58YdukT_^iTa>cq`tTBPa{WjA{68iQT99Ax7Fh0rzd_WM9E68&*zyO&irjmm5(=cs@B`(GB-Tq_E5j$SlzVN@w+eWwhHy z&`v-WX;#T6bbAM-m?Yf6CWKAbi&MaIqH0B;=UzmmiFR6GVq*`!rY~=_v%chojTelj zV<>982hMG`!P{H9OuDa7wzb8yT4;jRTO0H_W(9p;kyN(!=V2dsar-@{XNh;O;N2?4 zYcp}Wg-GdT=QrcZY2}S@QEFiQP`sn6bU?_ZL!sfD9PsSu)>T|bN7p6y?07%7obFmP ziUDE+7giocO;vEW|D>2|E6ec`1yMdWEU##SpTWkV=7|oJqM7wjL~x+H96YTEyPlWE zIxJ+Ft7ur}s>R#$?fWJx-6Sq=hoXeIi|nJz;eG_CdDab)Qaw{TSJ6_Wm$K?f_=?-i*vSZ0Z;d|LU5!|T)U|lw7Q>H2xlUka+HRC`$;*<2L zw*@XJOB!f0Mr%ZQY$A1{@ouKo9RypTIl7QF!$7p%nYkr#LE@^uBH46RT0YKG{#Xzb z@lH4$tywMH5G>@CmcK)a==s)9a(x816RaorhO8?J$-{EU>sjX2D`P9hu?spQut>@hxgJ6!LPCCc^`fABt7xpFg^A5i_|L~dBU`c zj@sduBTa1?|AcGqvS*Bl*AZ~-w(VDI(d9V{fGlrFjJjQjI#2%-k z)wJTYqTz(c2!;tpKpwqXca2hoyOW1UH?z47cxt?c?E(9^-UK^g@~(QA8V}DUgp#|e zSpu5xa){@JC=X_K>SA{~_aL|qoD zfkZVs2!TY}wR4HuEL4{gRqSDyw>M3-eQ%8`y9-nm0qpt;Pra5?=)y{ha04#T;In%V z-7lFo!6ZT!5eqqp2h5?la=f+^iJv_sD{MkCVj&F z9?VQuU3)5b)~t;x=FUpyfE8aEuGVOo#MB&lMOg!{yZ5qMleYr=IsB_ z>fg!npM}|kf@{r$HsDWqF6z6RPDQiWMk_A?b!aVbE&iU@f1HogCjC<8;@9h0S|th2 z5xht60l^HxM+6@ed`e&-C#?iHgx-|H%V=pMp!rS=WxSSFG$rwRf`tTq1mfKkFPoRX ziuNZO#U6O-WY3bLv`L}i5mMzL5Oa9`bzx;N9+Fq`GkA*sa?~@)j#EEp1z*lLu`WUR Ef0dZY@c;k- diff --git a/home/templates/partials/novawow_players.html b/home/templates/partials/novawow_players.html index 3bdc8c2..5dbd7b7 100644 --- a/home/templates/partials/novawow_players.html +++ b/home/templates/partials/novawow_players.html @@ -4,551 +4,156 @@

Personajes - {{ server.name }}

-

La información de esta página se actualiza 1 vez al día automáticamente

+

La información de esta página se actualiza cada 5 minutos automáticamente

-

Personajes creados por clase

-
-
-
- - - - - - - - - - - - - - - - -
Total: 81330

Alianzas: 38864
Hordas: 42466
-
-
- - - - - - - - - - - - - - - - -
Total: 96653

Alianzas: 48027
Hordas: 48626
-
-
- - - - - - - - - - - - - - - - -
Total: 78977

Alianzas: 30116
Hordas: 48861
-
-
- - - - - - - - - - - - - - - - -
Total: 62207

Alianzas: 27424
Hordas: 34783
-
-
- - - - - - - - - - - - - - - - -
Total: 52155

Alianzas: 23715
Hordas: 28440
-
-
- - - - - - - - - - - - - - - - -
Total: 61145

Alianzas: 25117
Hordas: 36028
-
-
- - - - - - - - - - - - - - - - -
Total: 44359

Alianzas: 15615
Hordas: 28744
-
-
- - - - - - - - - - - - - - - - -
Total: 64815

Alianzas: 28326
Hordas: 36489
-
-
- - - - - - - - - - - - - - - - -
Total: 52705

Alianzas: 18121
Hordas: 34584
-
-
- - - - - - - - - - - - - - - - -
Total: 58315

Alianzas: 28540
Hordas: 29775
-
- - - - - - -
Personajes totales: 652661Personajes alianzas: 283865Personajes hordas: 368796
-
-
-
+

Personajes creados por clase

+
+ {% for data in classes_data %} +
+ + + + + + + + + + + + + + +
Total: {{ data.total }}

+ + Alianzas: {{ data.alliance }} +
+ + Hordas: {{ data.horde }} +
+
+ {% endfor %} +
+ +


-

Primeros del Reino - Nivel 80

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LogroPersonajeFecha
¡Primero del reino! Nivel 80Vitom21:06:20 11-08-2018
¡Primero del reino! Pícaro nivel 80Froxphil23:15:33 12-08-2018
¡Primero del reino! Guerrero nivel 80Tomyh18:02:27 12-08-2018
¡Primero del reino! Mago nivel 80Danndy14:08:35 14-08-2018
¡Primero del reino! C. de la M. nivel 80Shermine11:34:37 12-08-2018
¡Primero del reino! Cazador nivel 80Vitom21:06:20 11-08-2018
¡Primero del reino! Brujo nivel 80Dean22:47:57 12-08-2018
¡Primero del reino! Sacerdote nivel 80Nespheros05:05:37 13-08-2018
¡Primero del reino! Paladín nivel 80Renzo22:12:50 11-08-2018
¡Primero del reino! Druida nivel 80Dreikas04:45:27 13-08-2018
¡Primero del reino! Chamán nivel 80Jalh01:18:45 15-08-2018
¡Primero del reino! Gnomo nivel 80Shermine11:34:37 12-08-2018
¡Primero del reino! Elfo de sangre nivel 80Renzo22:12:50 11-08-2018
¡Primero del reino! Draenei nivel 80Hyrtael17:56:16 12-08-2018
¡Primero del reino! Enano nivel 80Hunkx12:53:40 19-08-2018
¡Primero del reino! Humano nivel 80Tomyh18:02:27 12-08-2018
¡Primero del reino! Elfo de la noche nivel 80Dreikas04:45:27 13-08-2018
¡Primero del reino! Orco nivel 80Vitom21:06:20 11-08-2018
¡Primero del reino! Tauren nivel 80Kael21:36:31 13-08-2018
¡Primero del reino! Trol nivel 80Capa00:28:26 15-08-2018
¡Primero del reino! No-muerto nivel 80Retaliated02:43:12 13-08-2018
-
-
+

Primeros del Reino - Nivel 80

+
+ + + + + + + + {% for achievement in first_realm_data %} + + + + + + {% endfor %} + +
LogroPersonajeFecha
+ + {{ achievement.achievement_name }} + {{ achievement.name }}{{ achievement.date }}
+
+ +


-

Top de logros

-
-

Los 10 jugadores con más logros

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NombreRazaClasePuntos de logros
Zeroz11500
Carlangas11350
Juanmaverick11220
Acolchado11170
Suku11045
Chamsky11030
Leyenda11020
Farandilqt10945
Diablo10925
Hermosito10760
-
-
+

Top de logros

+
+

Los 10 jugadores con más logros

+ + + + + + + + {% for player in players_with_achievements %} + + + + + + + {% endfor %} +
NombreRazaClasePuntos de logros
{{ player.name }}{{ player.achievement_points }}
+
+ +


-

Top de muertes con honor

-
-

Los 10 jugadores con más muertes con honor

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NombreRazaClaseTotal de muertesTotal de muertes hoy
Shimo391004261
Pesterson362495278
Gannikuss3164400
Blutengel273296358
Kheysi267510121
Keillath263755612
Makipala256404524
Descarga251601163
Shakary24802216
Criminal247483244
-
-
+

Top de muertes con honor

+
+

Los 10 jugadores con más muertes con honor

+ + + + + + + + + {% for player in players_with_kills %} + + + + + + + + {% endfor %} +
NombreRazaClaseTotal de muertesTotal de muertes hoy
{{ player.name }} + {{ player.total_kills }}{{ player.today_kills }}
+
+


-
-

Top de hermandades

-
-

Las 5 hermandades con más miembros

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NombreLíderFacciónMiembrosFecha de creación
<Guild Not Found>Maxshami420523-08-2023
<Honor y Gloria>Ravenschwert193026-07-2022
<Fearsome legion>Directora152606-01-2024
<Dragons>Dragonsaky130402-08-2024
<Casablanca Baby Gang>Fumapedrolos117615-07-2024
-
-
+
+

Top de hermandades

+
+

Las 5 hermandades con más miembros

+ + + + + + + + + + + + {% for guild in guilds %} + + + + + + + + {% endfor %} + +
NombreLíderFacciónMiembrosFecha de creación
<{{ guild.0 }}>{{ guild.1 }} + + {{ guild.3 }}{{ guild.4 }}
+
+
\ No newline at end of file diff --git a/home/views.py b/home/views.py index 30c353e..f6564f4 100644 --- a/home/views.py +++ b/home/views.py @@ -853,6 +853,95 @@ def help_view(request): # Si está logueado, renderizar la página de ayuda return render(request, 'community/help.html') +def get_race_icon(race): + race_icons = { + 1: "human-male", + 2: "orc-male", + 3: "dwarf-male", + 4: "night-elf-male", + 5: "undead-male", + 6: "tauren-male", + 7: "gnome-male", + 8: "troll-male", + 9: "goblin-male", + 10: "blood-elf-male", + 11: "draenei-male" + } + return race_icons.get(race, "unknown") + + +def get_race_iconss(race): + race_iconss = { + 1: "human", + 2: "orc", + 3: "dwarf", + 4: "night-elf", + 5: "undead", + 6: "tauren", + 7: "gnome", + 8: "troll", + 9: "goblin", + 10: "blood-elf", + 11: "draenei" + } + return race_iconss.get(race, "unknown") + +def get_class_icon(char_class): + class_icons = { + 1: "warrior", + 2: "paladin", + 3: "hunter", + 4: "rogue", + 5: "priest", + 6: "death-knight", + 7: "shaman", + 8: "mage", + 9: "warlock", + 11: "druid" + } + return class_icons.get(char_class, "unknown") + + +def get_class_name(char_class): + names = { + 1: "Guerrero", + 2: "Paladín", + 3: "Cazador", + 4: "Pícaro", + 5: "Sacerdote", + 6: "Caballero de la Muerte", + 7: "Chamán", + 8: "Mago", + 9: "Brujo", + 11: "Druida" + } + return names.get(char_class, "Desconocido") + +def get_achievement_name(achievement_id): + achievement_names = { + 457: "¡Primero del reino! Nivel 80", + 458: "¡Primero del reino! Pícaro nivel 80", + 463: "¡Primero del reino! Brujo nivel 80", + 461: "¡Primero del reino! Caballero de la Muerte nivel 80", + 462: "¡Primero del reino! Cazador nivel 80", + 467: "¡Primero del reino! Chamán nivel 80", + 466: "¡Primero del reino! Druida nivel 80", + 459: "¡Primero del reino! Guerrero nivel 80", + 460: "¡Primero del reino! Mago nivel 80", + 465: "¡Primero del reino! Paladín nivel 80", + 464: "¡Primero del reino! Sacerdote nivel 80", + 1408: "¡Primero del reino! Humano nivel 80", + 1407: "¡Primero del reino! Enano nivel 80", + 1409: "¡Primero del reino! Elfo de la noche nivel 80", + 1404: "¡Primero del reino! Gnomo nivel 80", + 1406: "¡Primero del reino! Draenei nivel 80", + 1410: "¡Primero del reino! Orco nivel 80", + 1413: "¡Primero del reino! Renegado nivel 80", + 1411: "¡Primero del reino! Tauren nivel 80", + 1412: "¡Primero del reino! Trol nivel 80", + 1405: "¡Primero del reino! Elfo de sangre nivel 80" + } + return achievement_names.get(achievement_id, "Logro Desconocido") def novawow_players_view(request): @@ -860,5 +949,140 @@ def novawow_players_view(request): if 'username' not in request.session: return redirect('/login') - # Si está logueado, renderizar la plantilla - return render(request, 'realms/novawow_players.html') \ No newline at end of file + # Obtener las 5 hermandades con más miembros + with connections['acore_characters'].cursor() as cursor: + guild_query = """ + SELECT g.name, c.name AS leader, + CASE WHEN c.race IN (1, 3, 4, 7, 11) THEN 'alliance' ELSE 'horde' END AS faction, + COUNT(gm.guid) AS members, + g.createdate + FROM guild g + JOIN characters c ON c.guid = g.leaderguid + LEFT JOIN guild_member gm ON gm.guildid = g.guildid + GROUP BY g.guildid + ORDER BY members DESC + LIMIT 5 + """ + cursor.execute(guild_query) + guilds = cursor.fetchall() + + formatted_guilds = [ + (name, leader, faction, members, datetime.fromtimestamp(createdate).strftime('%d-%m-%Y')) + for name, leader, faction, members, createdate in guilds + ] + + # Obtener el top 10 de jugadores con más muertes con honor + with connections['acore_characters'].cursor() as cursor: + kills_query = """ + SELECT name, race, class, totalKills, todayKills + FROM characters + ORDER BY totalKills DESC + LIMIT 10 + """ + cursor.execute(kills_query) + top_kills = cursor.fetchall() + + players_with_kills = [ + { + 'name': name, + 'race_icon': f"big-{get_race_icon(race)}", + 'class_icon': f"{get_class_icon(char_class)}-medium", + 'total_kills': total_kills, + 'today_kills': today_kills + } + for name, race, char_class, total_kills, today_kills in top_kills + ] + + # Obtener personajes por clase y facción + with connections['acore_characters'].cursor() as cursor: + class_faction_query = """ + SELECT class, + SUM(CASE WHEN race IN (1, 3, 4, 7, 11) THEN 1 ELSE 0 END) AS alliance_count, + SUM(CASE WHEN race IN (2, 5, 6, 8, 10) THEN 1 ELSE 0 END) AS horde_count, + COUNT(*) AS total_count + FROM characters + GROUP BY class + """ + cursor.execute(class_faction_query) + class_faction_data = cursor.fetchall() + + classes_data = [ + { + 'class_icon': f"{get_class_icon(char_class)}-chest", + 'class_name': get_class_name(char_class), + 'total': total_count, + 'alliance': alliance_count, + 'horde': horde_count + } + for char_class, alliance_count, horde_count, total_count in class_faction_data + ] + + # Obtener el top 10 de jugadores con más logros + with connections['acore_characters'].cursor() as cursor: + achievements_query = """ + SELECT c.name, c.race, c.class, MAX(cap.counter) AS achievement_points + FROM character_achievement_progress cap + JOIN characters c ON cap.guid = c.guid + GROUP BY c.guid + ORDER BY achievement_points DESC + LIMIT 10 + """ + cursor.execute(achievements_query) + top_achievements = cursor.fetchall() + + players_with_achievements = [ + { + 'name': name, + 'race_icon': f"big-{get_race_icon(race)}", + 'class_icon': f"{get_class_icon(char_class)}-medium", + 'achievement_points': achievement_points + } + for name, race, char_class, achievement_points in top_achievements + ] + + # Obtener logros "Primeros del Reino" + with connections['acore_characters'].cursor() as cursor: + first_realm_query = """ + SELECT ca.achievement, c.name, c.race, c.class, c.gender, ca.date + FROM character_achievement ca + JOIN characters c ON ca.guid = c.guid + WHERE ca.achievement IN ( + 457, 458, 463, 461, 462, 467, 466, 459, 460, 465, 464, + 1408, 1407, 1409, 1404, 1406, 1410, 1413, 1411, 1412, 1405 + ) + ORDER BY ca.date ASC + """ + cursor.execute(first_realm_query) + first_realm_achievements = cursor.fetchall() + + first_realm_data = [] + for achievement in first_realm_achievements: + achievement_id, name, race, char_class, gender, date = achievement + formatted_date = datetime.fromtimestamp(date).strftime('%H:%M:%S %d-%m-%Y') + + # Determinar el ícono correcto basado en el logro + if achievement_id == 457: + icon_url = f"{settings.URL_PRINCIPAL}/static/nw-themes/nw-ryu/nw-images/nw-icons/achievement-level-80.jpg" + elif achievement_id in [1408, 1407, 1409, 1404, 1406, 1410, 1413, 1411, 1412, 1405]: + race_iconss = get_race_iconss(race) + gender_suffix = "male" if gender == 0 else "female" + icon_url = f"{settings.URL_PRINCIPAL}/static/nw-themes/nw-ryu/nw-images/nw-races/big-{race_iconss}-{gender_suffix}.webp" + else: + icon_url = f"{settings.URL_PRINCIPAL}/static/nw-themes/nw-ryu/nw-images/nw-classes/{get_class_icon(char_class)}-medium.jpg" + + first_realm_data.append({ + 'achievement_name': get_achievement_name(achievement_id), + 'name': name, + 'race_iconss': f"big-{get_race_iconss(race)}", + 'icon_url': icon_url, + 'date': formatted_date + }) + + # Renderizar la plantilla con los datos obtenidos + return render(request, 'realms/novawow_players.html', { + 'guilds': formatted_guilds, + 'players_with_kills': players_with_kills, + 'players_with_achievements': players_with_achievements, + 'classes_data': classes_data, + 'first_realm_data': first_realm_data + })