From 76bc74c58c148ee4f7bcd05046167d92d0403cf1 Mon Sep 17 00:00:00 2001 From: GDColon Date: Fri, 24 Apr 2020 15:26:29 -0400 Subject: [PATCH] Google Sheets is now used to fetch accurate leaderboard smjs is going to be ditching his api soon --- api/accurateLeaderboard.js | 14 +++++++++++--- api/leaderboardLevel.js | 1 - assets/ulButton.png | Bin 0 -> 13700 bytes html/leaderboard.html | 2 +- index.js | 2 ++ misc/credits.json | 35 ++++++++++++++++++----------------- misc/secretStuff.json | 5 +++-- package.json | 1 + 8 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 assets/ulButton.png diff --git a/api/accurateLeaderboard.js b/api/accurateLeaderboard.js index 19e25e9..24d3e1d 100644 --- a/api/accurateLeaderboard.js +++ b/api/accurateLeaderboard.js @@ -1,15 +1,23 @@ const request = require('request') +const {GoogleSpreadsheet} = require('google-spreadsheet'); +const sheet = new GoogleSpreadsheet('1ADIJvAkL0XHGBDhO7PP9aQOuK3mPIKB2cVPbshuBBHc'); // accurate leaderboard spreadsheet module.exports = async (app, req, res) => { - if (app.endpoint != "http://boomlings.com/database/") return res.send([]) + if (!app.sheetsKey || app.endpoint != "http://boomlings.com/database/") return res.send([]) let type = req.query.type ? req.query.type.toLowerCase() : '' if (type == "usercoins") type = "coins" if (type != "demons" && type != "coins") type = '' + + let cell = type == "demons" ? 2 : type == "coins" ? 1 : 0 + + sheet.useApiKey(app.sheetsKey) + sheet.loadInfo().then(async () => { + let tab = sheet.sheetsById[1555821000] + await tab.loadCells('A2:C2') + let topPlayers = tab.getCell(1, cell).value - request.get(`https://gdleaderboards.com/incl/lbxml.php${type ? `?${type}=1` : ''}`, function (err, resp, topPlayers) { - if (err || !topPlayers) topPlayers = "" let idArray = topPlayers.split(",") let leaderboard = [] diff --git a/api/leaderboardLevel.js b/api/leaderboardLevel.js index b1ea2f4..f57f4bc 100644 --- a/api/leaderboardLevel.js +++ b/api/leaderboardLevel.js @@ -1,4 +1,3 @@ - const request = require('request') module.exports = async (app, req, res) => { diff --git a/assets/ulButton.png b/assets/ulButton.png new file mode 100644 index 0000000000000000000000000000000000000000..bb677a09bb2a43807068b7481c69bb428e7ecaa8 GIT binary patch literal 13700 zcmV-~HG9g5P)00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKAH5o}nK~#8N?R^QH zmDPFvd$+mw&OVGF5M*EmMG#j|G0~V*jJ5wPO$;_o^G~{Bv$p-WDI{r{CTSCCW7B_< z+CXe-wwj1bL?cFU0R%xEWDyV$5CmkMeeRv*E`6T!eeb>Je)HX#J1`mqL~PdZfHed9s`em6TmSyBXG=2GwfmB zXK(p1)29U^O0-MtTm+KKn8#;P93*@N0!d$Na^4_}2+<&z+BqNLEV(BSl1{RhfOMuu z6sJTq2&U%Vjxfh$oW)3CA;RL3B>bd^c1<)jn86pVt*z4B+?)$MR_xic$AsSmG&VMx zKu`uVXU>$mx;mLNXHG6%1QggpkWJE08N((TB-1=oiw8JU9LS0lD`fHF#U?(Bp+Umu z&6{W9BBWE03qUv>x|7DRhz7~?5G`_!@*u$r7cP_~OP2h`XzECVT0eL0T$w+Az8~S# z?ps0jNo!BZM1y1!Ori@wf~mo02_6}caFR_e_W{XX;--g%l86S$G}Q&`F}3)%+io*j ze6kod@oi@Iw(LJxu!f(7W76-v_g+8kz71p#dn-01(SGKd&J{^!JQ&Wu?rP(3G+jDF zLKDWAbbG2-YQoVW;}@P<<+k$H#w#1Qm^j;+kU&+rnbfp?$6wkx)jHCpbVEUUp|0r)V=lYZ+x?4a~gEx0RYLg8TUFz4oL2;x8CYY zG70|7UH>LuS$?0~^oJjnAZD))$cEqG30naF8{sDhk~jNfx5&31`nmk;lS}35KlqS) zHV?|0isiMQsJrN$ANjpG-+SQxqWd!&MTrJTa;_1*pr6zAk-z+uA^64*eZU;sgxSP; z^XxR^V#gW}RqjkaR%pHr=AAR+0{P;1?~pIw|DyrxauKrYu#R&{Es1Df(+zE=<3$H7 z2WqmPulYpdiB6tb^>Wv>BKsL8sbkHocLJ4n!5;hM;wja?2`(>I7%oz75 zkKh0D-^k6M{ZseI(cI066KBaiNs#nQ%Iga>{{%erznXP}dz1&Yn%gf0meUnYO-;O2 zO0s>uv7O(1j-I(gL7#i*A7B^LxCV1Q>aS$Gn zUv;$R{F#sZ)u#tIXLN|UoZ7hk_S^Llah)I8gA(m+jNlC8Oe0i_wbSgVrqvM{7&`;f zG~r**DL0%lXKua|heD3rSf(a4DpyvID!}dza+zwKNjCBk;cB+V;wWPrmZq?=+5Aeob~d%Z}hms#>~NVR38q-#Ep52S*!CviX~ zU3#Ty(*~8%zDo)7tr|@fIA(@u*W1piySD+wxi`HdN3srv$agG%qrfIm2ckl-%j743 z6BiCN--a!$!OEYh`T5wH=(hYc&yHoPoj5)r?L9$B z_q0fRGGLC=y}hPfI@#l#@5OoM^SCD>@t!twKE>nSKDXV7dmT(RZKnrq^z=FPyzQWT zytf^(+YZV)?dIF*fVa#s7eci=ujL9`ZhjNOCZ6REHP*W|3*qGo`)f7dM2>88!vq># zaLbeTRsBr&yYByvM5ax0kGkBBI%e1zWThcFKL~cxInJLOnAf`H89B0SgY>nuAulDN zD9-nGn=}zBtCnpFSfdZdf(@RC`xX3gmx*6uy(&l|Fmgx z*?;_lgd?>$(K|pU0||D{SF zWlA)kIp>_QKp^0z^5D~z%kTY`d!(~dVDxAEv@BfS}ydox_{{9D@>_MTz zN8Jp}WdH#%T$o zein45Q8$WmEL#EX?*JkCJR$%Klx4$7`T6HX{_t0$WcojTPGVzW0i;|awIM01A1}5% zy`<*hul<_e-+D-%m_2ZtMPxZ<7a+RXC0fn5AzIhyf`!`;d^;i!XQpXqH0^X!ZxD33 z$66-8t#Hcc^8$eo{^uG82}jot3=ss;um<571kB@xWQXoEm@ka~Jxh$6%ggz;L$ z&mydJCO{B@aR8wkq2dJ)hERoc7KEokw19Au-iwezNNxwYAUo-XBd|It5Z{70fzW}_ zb{uJhV@JUbNNz!2PaqtG;qFA}Lcl!eJ=!k;6x)Hh5G;#GCadGbB|8tme}Iz*t42*$ zXxbUSO>lnl+j$P`ba8l|H;~slTcd}BSEKV7n6_uI4rUFR_n+*tPA7AEC$mIB$?@> z&Ce5>g(n`0vVlrVlWncG;mAWLzXK;vHNF(oB-6S!=TzI)=n+L>XG=ss1VpJ(;8-4w zFl|yPLxL9G3(A(~S)Ov$$)RQK7dqI!yGocfn-XAmIZ?dQ(Ef13sc*(|%;zz#%PQEm5$myC9#gyBa#=9Uq#+vD$eOKLAp&#;Pa^`+4%KAU zYD0Xq9PF~Fxv_xdcX-U z3fJh;!8>02fAX+w{nS57^uDDMd+1RKFMCR&4?HBX2bW3tvR_L>C@teFAOs4Xfx@LG zkvt09HoZJ=&pDk4cAlo~387G}*LK++Eu(6#4HD0?Y@eiZ0#T!xMqpFC1nH|EBhpmW zC!@D-km}9rr3Rr2A-3#c2|Tbwwte;+vislfkyLk5GW{p7G((|1Ua)-RNH2LGU3S%U zx&H3kjaSFlUNr8+K9XJ~y~Qf*X}#xLlHGE6;oVZV?$`2*|NIzQ3V??o1jNCzQ)&DQ z$>iFoR8E29W8ceb3%fxrqOhrPtiq}3wU8vjTb87#RZx&f&Q~(TOOqkiV;w)ImXm;G zIU!hAukC7b7Hx6Ez&UaNMyaD#N92G-^?1QNk>|!|<^2*KcxD@nvcn9sEWTN$H7H1ZOVlW=Hzl16vR3g+Nh#RVwIpk0isd?-jg{)4P-|9gEC}~Pu%`(Z< zvbKEK2DO;&GR>Qsk<%U9UMQ6?dvr#h9yyK!Xj3%1W zXRK!1(QL=WIOn@^W<3zBFmjYE*#Kw;sf83A$4P1Nm;z)G5#=(&(~g39Y8lujCxw!$ZP?H}N=eh&2e(}{AaQrXWVNhb2k8JO3Xn!a@nBdo*)|CV zY9*6CW-O&cYSdSjc77?S4App@F_SKtXno9y=f`qAXS)ZCp0y&wy(6YQfA28`!jkPtW**4e@ zmSq_-%4@JJ`k-B7H5TbXnFtaomgPi1d6r2d-N);=NM^bnl1X-Gv~-3#Ju-7hb*yBK z8|#Chq2V#zB;9DY5^c`_U)ZyausdR7Kt3FW3r^L)e@qp!M z)=8j(c{(XHR&cJ`WeK(mN6M6SH7^I%UiORU*tT1?2gmFxgPEV0u)OCJVf!qHK69=` zF)7T_ZwfgB%Vd*M4l9>QgY@iJOJ;?Nxkd#;t#%btb_^#w0}gX0y$*j`PPOYgeF%sgJy z?m)}(b+Y$M-!)Hais8m-B9AV=Q8p}HE}Ql_4lrd+d2-5Kclr4;_B}U&NNlet2a?Q~ zByt=)W??T#EX}YIGuYiizp};JC3t-XmZhSQaCRKVkcV{g**(swr&o)t-;RU_oD6d> z7y0rckyRM?U>G;=7Mbvw_vYkEIP#_ytt^S?mi-5t>l-GV{Pv0$C%NnZFU|`q;fa^_ z8}HqtsNe92W&kb>XtEgxOFN?D&b!1W_|iP#bM?%(k?w4Qi=1gdErx1+TAd zx$Uw!c9C6p0o$qv*E->0gh$-;GKBqnJ)5Q;WsYn?*n|Kv9a%53?|G4C_bZ(KjyCDq zvP+UXj!MUtjnaQK|18@v<3l6ctFJK`3~#`h4qn3NY3Bj^#PbV9%#dhd)L91CrwYm?JE`zbvefS2c z$CxzqS5-+F3nBC$$EBdb-O%!GSg>x0vj=&5osTjMg7j_hFVo#4nO?pmSem!3s7xoR z!D_aN0*%(pqVT(5o_N>(#UL39Pwzl6n{$F!!71_(z`y8(S}8lPPNEaXnh*#=UAQly z#2DCyYP336YPsz7ltSkHx*YmY>!D%d!Y6#&HcUy&<;kK{myX4IkOggqrP~@($|_lR(uNH&q;aU)U~(UOXm8 zR>Rv|17`!C=D}Z!ypFAL>&qyR9%Tm5wPCw-KDX6`_O+XG+p=`(WmER>M$}t@HqZ{! z2jG=p*W9n#qn+*yLdQmZhI zb(r(dBHjqsV>KMBUGSudVq;6h8mP@|Q`B8FGrvIpe>hA5t;w>&q*s?P2)-zqB0tmJ&*jS zeC5X-M)|s{M5|bYB9;-gl6|CGd)j2NhGzFGGrO1Sx?K@ zpeD17#+X2Nd>`b3oFwW;Fun{-csa(}fif4K3-kCxjM?i)xTwJZ9{7&PVpz8X>IXo) zW#Od@>8-CoZkL=d=lt%wB~)21UF{t*`ts>genEpNLs{>1!NoR>DXNOdTBGR_wp!6Sk4egYhZ=ZT! zIv`htUzJsBKM75`7d<=S2$=$<6nHs=o34f_e7#0$XJ01ivY2E;z1V}Iz2>ble|k#3 z{*xp=5Gis+ngXk-Rp`+hAQzK&$L0zAkdl%cG_8+N-g@ zZI@^n#)kE`ZT)6BKX^j6K~)l1cYC>BgJ^7l%|?RvlGw}#J}s3{ES!EHEI-9-!|dR98O8# z8m%N}GS&_s$Oex{;OZ-->bIsz-EUnb6*pZW=Ug*O;#W|BtGRlDZ^3`pEg4(rZ-Bst{U?KYTI@(O1NNyB$#B`pj2&=36ja{ zP}^9C$1JB4&2!(!Uqx18!IXqXjlnYLJgX+j zCEpoyyzT-FYkS3SfAlj>y)d;|J7VXLX>5@6v<9ia@FIy`3bO0Zkp#_I2A2y$1ia&< zL@~{E5Q1b8Zb^E;08LjWm5`oFOp@wKhm=|tc0tle0`DhinhkJ7Y}W?YViHRe&#fEV zVp&c&meu<{3bMp@I3ZXD)`Op6WuSegUzwzd1Jx0U#LFf3WRP5-U4F{dgUMEl3BWn0 z6!8rct;@LfyvdT8-eA_^RO2`k$EIE`a_M-9Pn|A_x=c>N2Hb@#0(jljWJ1^I)?sb0 z2K)9$J7UMN^O~e@VqD^l7fQM!C}EOe*r1dFUYSYyWz--D)hJ>n1(P2$o@YE1mSA}d zOL|nwSjKkZND%Amy35KsX_!_uA~+dH8a0$YnJ3_J@~C=dw+5>{8$t1j% zj^ybiAZTuxXWF&EJhnlLLk3v~?e`sMiM9 zV?PcLVx2yUct5&(2;sHZ7m2iSmra@x9tD#0? z)vADWeoT3IALaq-v3WM#hwF!s=s~$hv7dkNd96?gSY7$iH${GYzsPGKne&4s)hO_l z;78Vo96#@Tsro-NB~(^#h_0VDMN-oz=Hy0s*@WB5!!o68uUxO2zvrn$5AVf;(brri zwg3J%Cha9u^R!b6<^|GY`UfR-FXmJ*3LC)N=`%v|v zC$JAiyJ7SpLlaCfaI(RX`-eYghg}=&Z47;V9owrf{~X%KQ|@WbDXsBnGsZe)5{Q1M z**?;AN6xR3=+p}(9CKb5Qn?a#TIIa!3ceRV5JkLhf@Bx$qf6ReOCZnRm#P8Q9;%K{OpM8>-P%HTAwZM5f)co3@F3^+&igCQ%Q{X0V1w z5vM^szodEcK@{pmrGA7Y`o?RUP9UJ%*S;ol`=iL_e6TE$q6clnuewNTZhDvVgenUs z^MZ*Iy{Hje=wyymm93wQOC;L&1^!_X-SGV{x@oY`-~^@fi5KO&zcp1p{gdk;{O>uYl>(!-aSe5yngDOev2P)sbb&#RfD~i0H8q|5K03qC5-ixnGR+xi!#*FvKBMZl-!8Qu{eaZWog>xneYccf zd686Hd%47~yi|e}kajs3V1F4%3Z=-HB&+=cBICzM)q7^=LhPa@=LEHrp0rgq2by_$ z>12p8hr(DV6TmsZtmw4KQvEyca@xQ7?NZh--kdi;A(~@VTGq*eX!9C7z(gtr-9H7jl@1uwM zX$3VioOxc@dHjaBj3#T^q+Bq!JQXCG<7ceBBjGMWqpBo+`BW*N34zX@A!U=52ud4$ zw94kdJY|R0f((&ht`6=BL9d!m2E+9=5}kp)KduqGc!Gq_b$|0Kgo;7zn~`KQ>@kcI zG#+DeCs&{hxt2BL1ZMy2v6fvp)x@zGQ?Qkq?3Nr+7%v-8(_OHS)|00UznSOFqdAK< zO~{2{JPLV3tLde&M|8y08tFF3gKQ=O(+_s^`{N!+yAt}wvNXpE9`o{?2W*qY>E!9& z+Pw}R9rHVO?%Q*K!xV^;T7c!y776COVa$gU9&B4g57}gYY@- zm}myOAUN_u`>LSX*0rAO@R$>cOM>PB)Kcbj%gTeFD7CF)f_N)l}OgA_33Qhav@pB%(e1d5@Wg8B4 z%EqU+$#Wp~`6op-J|?o^X$TQv4Yoa-+~2oLd7jy3_$xsMu3ctigQU`2GoK_=?&?i3 z-_=HbDa5UwgoC-Z6K+gAjy^5tGiZ?f_*#))uLs#0K)Cr;B5S9hZE$QHqmFqnIoR+X zmx@4DxlM8oB@=B!JE8B9@mSOOJm+^W3I04J)B63Ew+v_f3GlaSE3^b*1Hv}MbY`&nt7g~C^HmN|sdOuHU7wK#(v z&OO-4-E)t~&oHT0JWFyo7vL$oZ3lypm%B1--jB(Kz4ig@;IV*tA0w7Oi2 zsq`EvyGFS}bNRb)`#}zGQ|{b}ofF~=CR-#GG;Q-5@kj>i>3P@^#pRLJV#3ed*c)C? z1SB+WjPwM1P5ne7A?3kJspxlp6V)q&{7+ChZ`azg)HK0zEUz*j3bm*DhKb$+We3<1 zosF7yW@!Fb@z}BaIj5sMwqqT1prcB9_imEPY^9_-yQSlm{SxU+N?*3e+$Zmc3TCri zCY>5nBjvF;YJ%NJN;0o>NaCkUg-dlU{U{Kc29diLUoUbIm`yzAkV~?u*{)NzV~fbm z`o;2ma|mLuudsAOosX-hZ%!{ zopvtn!0wS%F_j}iBx+}`71+1ptrhZ7MAKqE8fk2bd_snG#gh3aw~Pah+rue=KVYm`w} z&63d6aZ=gXh}CDRM8C8hJuX$)w{~Xwi^hQ{bbZtmN%tR=Kub*0 znWK{4(jpyq{Fh|@>q?QCSg-n_(e$kC?G?0_Ui@W$3}5YrSrX|!6gtD{m^Uq2!;VSEy|KncdB ze`Lq)m6uFsmgRq!TVr;Rrlyow2WGd|RUVQ0rUpq)JV(Nls-$mnlZkn(`HVy3CPL$& zsFkCoc5*$+G)dLu(IA#K8bhPUO=9T)Gqyc$S2od#a%f^iQnhdjarvHjL@GzsNpD?+ zRGm`~OEx<93lHpbAT~;BC)Aj0=`}SDOblR6hedMx9IOpkGRb40Rde9AdN%yDzX(*L z)k>SVWTI)hy=2-X*<=qqw#`-H`9jk31GLW%=Q`bCkYQe&N1y{rj_jQwcR1Wcu;BIMM z@Xylqz5Co>B8IIdxl}N&2u!mn#+D1x-@IMg?tfB}53ZD+hgV8E!Jp(9`LSp{yG~)6 zn(dVFUW3TXVMy58oP!cwkm(2K7HEF9<)P`k5FFUYI*|OJyn`g{fid5?mcsu!$p@Py zweop+XJ3oV8<&>bCS>H3Gixy-XaMhYamz)onjmTK?(y&Y7;!#F0Ht=sF@j9Y@XSOrl3JM_MFv=(wa09+PZqreOQx;AF=#)Hw6! z^VTdsar~Y)cyY?_b-z(huL@`O@L?WR5@nz%2|`kQ#Z&{*r@1b3t}wVytjt4b zH}oXZ=DkAuX%jyMVki}-Iu;xGwuYJwYtlBgSa7`=PReX4`hgI0O<-)wRtz zz)zyg_Int_o{50zE->4GNuQ+YK7)`mtBC1r4+bTjbAxFQyaxI$3ZunVY)rWlZO?$W z6!NAUF~9Ay!S$G4x0-HhG+#KN`Suj$)|(GQvV;6q+FJph8zw}7Mr&qKywPu%42CqE zqwXIsla8DlgSgva*m$5ZiWbL^~ABN;|gsRar+0thCFbzsSnp?z>Pb{^WhI2w@41s+M3KLM6+e9<+V> zThjO3HuorxBJXt*)arug(PuQw`_iGH#L^Lo1z$$IQDWg2B^F&TvFsL!)ozj?@}-lv zFI{jg<~E8;I6Z92f}>@cn(dj(A!v6j&>^w5S0&bQ0`sCn;;n5GLx{I#0H9AMS5Pg_nU=Mc0PVy_bJ@#KFxsX=I1ZQ1k)6gNGg|_V#=RH+OSQx zI%8VTJ8Es0W%RiM?~=J?c?om=Or_FgxkL#Ahz!<;!e2fP4p);^M^dq>A>BG3O+ z+SX#dd>&I4fj@z~k1x-^fUwyOSi<+MLs*S~bNnH@R}t?(K6YiY8D%$bKtS1C*eUV? zmi-MlzZ%CTz_(kCva3<{IUFB>_-xZ1us_{7P3Yh5`H4Zm%hldvhrL9bW8Ger^r!#% zAv|9aJl*K{+7G2^%QN!1-@^gdOKK*y6{eZrF9#ui{?rqH3#S)p?hbpgFAl;~52}MG zn?ySinCO0JHUF-7We2hmccbkXEJ2cMGgSI9Oqi|FNfQ6vce<6K^bKPra#7=H`|RfE zm4ED}^0?vZx66uk{F~YitUvuvs2R_FHd~<4GiT<0<>Jf$wpJ}IB2Ph6pMvH+1xQfn#3_P2>;0+u>P+XAqu7SW7M5C9)i8{-j1T^P$~q z(9TA-gS;20{g4iJRd1^4E@n-yeBVuO$^nR0E|ug0jc!Cb_h;mmELkGA-g>Khltr z$tO;yM)Ost&Tst4J<8+p2Og3eKlpz4NaQwP@#4iwa89EQ(FDlm>xafuqlZ3fRN?EU z1W6{@ryIQGXl_n)CCqxAe)V-pA2k#8w84B?31`Usjc9()oymgeb0u=&q|-ul`xpL0 zdRM?H@t_5!&T+II1OkB@5h=k$D>yD7dJ&>|<^Z5ZQ?qS^-Zt70{bsDw3X-1MxnELy z_?uOy7yMv9+n;hi+=mGWpMRc&CXDg@1K}eH-u9$6d(HRUxpU>-d+&9R%WP`G~qShm>njz5uJ0TRD9xh zO#00v`!@k3nc$;R@52n5>)pF|7np5$+qc3Qvq@&$OrmYSgUH!xHZXs__Xo0JM%HgN zGmLj>{GOzo#mImpQ^v*Q{I{R_YyrtI+bcXI6O2vTOEf>u%7JFVZj9i|@g!UC(&(%^ zi;;tpOwil*f}Gs;*MI3AIash@L7_wC5S~K;(VxBL!`y@EX1l0X^WwZqL$YplbJ7!cPvi zvZySX=eKVr7e3ld&XimtM>f`HU(>BxT|hRyJ3kXnPmnP?WrH2I&Cgl*gEBH2e8~A4 zL@gxY=Vg-va$y7O@(S#b$eEI>MCG)ZDDb*%zyp5)QSM%7vAbn~s&eCnho?;{=qO#>t$2tHpzzqwLHZr!d!kB=g3IcM1LGUwnRnMY0mZn8!Bp z#ff%Jc!3Jj3+LX=@1X}x5X}uc>-RX#h7Qn%p8#xl&)e|U^PWFb;O!%0%1ZBJQ-)qp zv8c&ZG#jw6i~sq~@7gBYj(L-$fas#8Tj9N9M(`#IA7#3;$rm)~5twsh(vjwUVuE>o z#Eeu-jAY($;}nSFShGlLtWK+fAK#}B95wlV+N)5Ky^6&>b5m0jcSkn4HfXkoM>GMl z3!YaKBzxXR|F7Kl*st82k;7Zzj@wWqohoRiX|BCXWf78Xvdt||H=RRCL=#`T>j(32 z(L$FG_`y9tmHD6k+<;r9XK`{MvD_znw@}226)P6QlJboZTi7<)1rC^v!JM%I{QaN) z*<#EleKL~6pZ)&F%(~6kJNwRJc;Gz?%F>TyKCrMzRzVkNGD1;p3tcs>^hb{CmM>q^ z9Sp1)KYskR@pwGPD$?@4TRvo*HLlHvUfq9I!%IYCW23omz4-1Q8i$Lrw86VxfA`m4 zS@8en|CLRo`#DK2CboIkWg8`%ZW~8J!I`%M=%oK!ga942?a6K1V%(a`ZBAvwu zfm*y6Sg>G$y{)my)ilF^t&|^5nrMP#BWhf)*TyPS+Q{8!WH0HJ!YFwKa$OQ zT`I}MDHBb&WGmqYSbOSV)e+5XoIHALBY#AtCYf%9vsQ7C7G_NL)>b` z!t#i{=S_aLx4IQ=NVL1EE)eY~$Y=jjy=^9sedsRlZ)G{;=lbI9n;!4nzG2V)gDvLK zqD!uqOm9putpw|YC>bL{G+~j=K*H?~z8PskkG(Nb>|CiaF<2fkSlOXs!cGrci){>R zdo>u)P7gxsbKAGm-Pg{j`_B$DK3!?Ot{(gKhk1VIiq-Mf@ literal 0 HcmV?d00001 diff --git a/html/leaderboard.html b/html/leaderboard.html index 5729fe9..6aad068 100644 --- a/html/leaderboard.html +++ b/html/leaderboard.html @@ -80,7 +80,7 @@ let top250Text = `The Top 250<> leaderboard contains the top 250 players<>, sorted by star<> value. However, due to hackers<> flooding the leaderboard, this leaderboard has been frozen<> for well over 2 years and displays very outdated information<>.` let accurateText = -`The Accurate Leaderboard<> is a highly accurate, hacker-proof leaderboard with proper stats and positioning<> (unlike the regular one). It is managed by SMJSGaming, XShadowWizardX, Pepper360, Octeract<>, and many many other helpers. You can check out their interactive leaderboard spreadsheet here<>.` +`The Accurate Leaderboard<> is a highly accurate, hacker-proof leaderboard with proper stats and positioning<> (unlike the regular one). It is managed by XShadowWizardX, Pepper360, Octeract<>, and many many other helpers. You can check out their interactive leaderboard spreadsheet here<>.` let creatorText = `The Creators Leaderboard<> is sorted by creator points<>, rather than stars. A player's creator points<> (CP) is calculated by counting their number of star rated<> levels, plus an extra point for every level that has been featured<>, plus an additional point for epic rated<> levels.` diff --git a/index.js b/index.js index 338b096..6953c9b 100644 --- a/index.js +++ b/index.js @@ -34,7 +34,9 @@ try { const secrets = require("./misc/secretStuff.json") app.id = secrets.id app.gjp = secrets.gjp + app.sheetsKey = secrets.sheetsKey if (app.id == "account id goes here" || app.gjp == "account gjp goes here") console.warn("Warning: No account ID and/or GJP has been provided in secretStuff.json! These are required for level leaderboards to work.") + if (app.sheetsKey.startsWith("google sheets api key")) app.sheetsKey = undefined } catch(e) { diff --git a/misc/credits.json b/misc/credits.json index 5a86267..f1668d9 100644 --- a/misc/credits.json +++ b/misc/credits.json @@ -27,6 +27,23 @@ { "header": "Accurate Leaderboard", + "name": "XShadowWizardX", + "youtube": ["https://www.youtube.com/channel/UCaf3-yyZDsAwh1IlYte5VtA", "youtube"], + "twitter": ["https://twitter.com/XShadowWizardX", "twitter"], + "github": ["https://docs.google.com/spreadsheets/d/10lbPnDYJXhbtlA0ls0cGjjX_osFSG559IDrTbhgPHvc", "ulButton"] + }, + + { + "header": "Demon List", + "name": "stadust1971", + "ign": "stardust1971", + "youtube": ["https://youtube.com/user/stardust19710", "youtube"], + "twitter": ["https://twitter.com/stadust1971", "twitter"], + "github": ["https://pointercrate.com", "demonButton"] + }, + + { + "header": "API Help", "name": "SMJSGaming", "youtube": ["https://youtube.com/channel/UCwEsWDs9kGN2vvoiNTJKdaQ", "youtube"], "twitter": ["https://instagram.com/smjs_gaming", "instagram"], @@ -41,22 +58,6 @@ "github": ["https://github.com/Alex1304", "github"] }, - { - "header": "Web Design Help", - "name": "Ucrash", - "youtube": ["https://youtube.com/channel/UCfPgDZBhCodHIFo6OOVcH2A", "youtube"], - "twitter": ["https://twitter.com/GDUcrash", "twitter"], - "github": ["https://github.com/GDUcrash", "github"] - }, - - { - "header": "Demon List API", - "name": "stadust1971", - "ign": "stardust1971", - "youtube": ["https://youtube.com/user/stardust19710", "youtube"], - "twitter": ["https://twitter.com/stadust1971", "twitter"], - "github": ["https://pointercrate.com", "demonButton"] - }, { "header": "Everything Else", @@ -72,7 +73,7 @@ "AlFas", "ViPriN", "Cvolton", - "cos8o", + "Ucrash", "zmxmx" ] } \ No newline at end of file diff --git a/misc/secretStuff.json b/misc/secretStuff.json index 478db9f..687928a 100644 --- a/misc/secretStuff.json +++ b/misc/secretStuff.json @@ -1,4 +1,5 @@ { "id": "account id goes here", - "gjp": "account gjp goes here" -} + "gjp": "account gjp goes here", + "sheetsKey": "google sheets api key (for accurate leaderboard - delete this line if you don't need it)" +} \ No newline at end of file diff --git a/package.json b/package.json index 732b320..2e1583d 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "compression": "^1.7.4", "connect-timeout": "^1.9.0", "express": "^4.17.1", + "google-spreadsheet": "^3.0.11", "jimp": "^0.8.5", "plist": "^3.0.1", "request": "^2.88.2"