From 8e378c6129c09ab34f7c85a5e8889e60e5af3533 Mon Sep 17 00:00:00 2001
From: Mia <49593536+mia-pi-git@users.noreply.github.com>
Date: Wed, 9 Apr 2025 19:36:58 -0500
Subject: [PATCH] Add static website for viewing server-side teams
---
.gitignore | 5 +
build-tools/update | 22 +-
config/routes.json | 3 +-
eslint.config.mjs | 2 +
teams.pokemonshowdown.com/.htaccess | 7 +
teams.pokemonshowdown.com/404.html | 72 ++++
teams.pokemonshowdown.com/README.md | 5 +
.../apple-touch-icon.png | Bin 0 -> 39664 bytes
teams.pokemonshowdown.com/favicon.ico | Bin 0 -> 42304 bytes
teams.pokemonshowdown.com/index.template.html | 219 +++++++++++
teams.pokemonshowdown.com/src/teams-index.tsx | 75 ++++
.../src/teams-search.tsx | 115 ++++++
teams.pokemonshowdown.com/src/teams-view.tsx | 158 ++++++++
teams.pokemonshowdown.com/src/teams.tsx | 64 +++
teams.pokemonshowdown.com/src/utils.tsx | 370 ++++++++++++++++++
tsconfig.json | 3 +-
16 files changed, 1112 insertions(+), 8 deletions(-)
create mode 100644 teams.pokemonshowdown.com/.htaccess
create mode 100644 teams.pokemonshowdown.com/404.html
create mode 100644 teams.pokemonshowdown.com/README.md
create mode 100644 teams.pokemonshowdown.com/apple-touch-icon.png
create mode 100644 teams.pokemonshowdown.com/favicon.ico
create mode 100644 teams.pokemonshowdown.com/index.template.html
create mode 100644 teams.pokemonshowdown.com/src/teams-index.tsx
create mode 100644 teams.pokemonshowdown.com/src/teams-search.tsx
create mode 100644 teams.pokemonshowdown.com/src/teams-view.tsx
create mode 100644 teams.pokemonshowdown.com/src/teams.tsx
create mode 100644 teams.pokemonshowdown.com/src/utils.tsx
diff --git a/.gitignore b/.gitignore
index b9f279805..5c343146e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,3 +42,8 @@ npm-debug.log
/replay.pokemonshowdown.com/caches/
/replay.pokemonshowdown.com/theme/wrapper.inc.php
/replay.pokemonshowdown.com/ads.txt
+
+/teams.pokemonshowdown.com/js/
+/teams.pokemonshowdown.com/caches/
+/teams.pokemonshowdown.com/index.html
+/teams.pokemonshowdown.com/ads.txt
diff --git a/build-tools/update b/build-tools/update
index 96616c77c..2e9326834 100755
--- a/build-tools/update
+++ b/build-tools/update
@@ -88,7 +88,7 @@ const compileOpts = Object.assign(eval('(' + fs.readFileSync('.babelrc') + ')'),
if (process.argv[2] === 'full') {
delete compileOpts.ignore;
compiler.compileToDir(
- ['caches/pokemon-showdown/server/chat-formatter.ts'],
+ ['caches/pokemon-showdown/server/chat-formatter.ts', 'caches/pokemon-showdown/sim/teams.ts'],
'play.pokemonshowdown.com/js/server/',
compileOpts
);
@@ -104,6 +104,8 @@ compiledFiles += compiler.compileToDir(`play.pokemonshowdown.com/src`, `play.pok
compiledFiles += compiler.compileToDir(`replay.pokemonshowdown.com/src`, `replay.pokemonshowdown.com/js`, compileOpts);
+compiledFiles += compiler.compileToDir(`teams.pokemonshowdown.com/src`, `teams.pokemonshowdown.com/js`, compileOpts);
+
compiledFiles += compiler.compileToFile(
[
'play.pokemonshowdown.com/src/battle-dex.ts',
@@ -145,6 +147,7 @@ function addCachebuster(_, attr, url, urlQuery) {
url = url.replace('/dex.pokemonshowdown.com/', '/' + routes.dex + '/');
url = url.replace('/play.pokemonshowdown.com/', '/' + routes.client + '/');
url = url.replace('/pokemonshowdown.com/', '/' + routes.root + '/');
+ url = url.replace('/teams.pokemonshowdown.com/', '/' + routes.teams + '/');
if (urlQuery) {
if (url.startsWith('/')) {
@@ -157,12 +160,15 @@ function addCachebuster(_, attr, url, urlQuery) {
return attr + '="' + url + '?' + hash + '"';
} else {
- // hardcoded to Replays rn; TODO: generalize
+ // TODO: generalize better
let hash;
- try {
- const fstr = fs.readFileSync('replay.pokemonshowdown.com/' + url, UTF8);
- hash = crypto.createHash('md5').update(fstr).digest('hex').substr(0, 8);
- } catch {}
+ for (const subdir of ['teams', 'replays']) {
+ if (hash) break;
+ try {
+ const fstr = fs.readFileSync(subdir + '.pokemonshowdown.com/' + url, UTF8);
+ hash = crypto.createHash('md5').update(fstr).digest('hex').substr(0, 8);
+ } catch {}
+ }
return attr + '="' + url + '?' + (hash || 'v1') + '"';
}
@@ -226,4 +232,8 @@ let replaysContents = fs.readFileSync('replay.pokemonshowdown.com/index.template
replaysContents = replaysContents.replace(URL_REGEX, addCachebuster);
fs.writeFileSync('replay.pokemonshowdown.com/index.php', replaysContents);
+let teamsContents = fs.readFileSync('teams.pokemonshowdown.com/index.template.html', UTF8);
+teamsContents = teamsContents.replace(URL_REGEX, addCachebuster);
+fs.writeFileSync('teams.pokemonshowdown.com/index.html', teamsContents);
+
console.log("DONE");
diff --git a/config/routes.json b/config/routes.json
index 69553f29a..0b1959564 100644
--- a/config/routes.json
+++ b/config/routes.json
@@ -3,5 +3,6 @@
"client": "play.pokemonshowdown.com",
"dex": "dex.pokemonshowdown.com",
"replays": "replay.pokemonshowdown.com",
- "users": "pokemonshowdown.com/users"
+ "users": "pokemonshowdown.com/users",
+ "teams": "teams.pokemonshowdown.com"
}
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 71f81aa74..72f202f1d 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -105,6 +105,8 @@ export default configure([
'play.pokemonshowdown.com/src/*.tsx',
'replay.pokemonshowdown.com/src/*.ts',
'replay.pokemonshowdown.com/src/*.tsx',
+ 'teams.pokemonshowdown.com/src/*.ts',
+ 'teams.pokemonshowdown.com/src/*.tsx',
],
extends: [configs.es3ts],
languageOptions: {
diff --git a/teams.pokemonshowdown.com/.htaccess b/teams.pokemonshowdown.com/.htaccess
new file mode 100644
index 000000000..b7e254e16
--- /dev/null
+++ b/teams.pokemonshowdown.com/.htaccess
@@ -0,0 +1,7 @@
+RewriteEngine on
+RewriteRule ^api(/.*)?$ http://localhost:9000/api$1 [P,L]
+
+RewriteRule ^([A-Za-z0-9-/]+)$ index.html [L,QSA]
+
+DirectoryIndex index.php index.html /dirindex/dirindex.php
+ErrorDocument 404 /dirindex/404.html
diff --git a/teams.pokemonshowdown.com/404.html b/teams.pokemonshowdown.com/404.html
new file mode 100644
index 000000000..691d118fd
--- /dev/null
+++ b/teams.pokemonshowdown.com/404.html
@@ -0,0 +1,72 @@
+
+
+
+
+
Team Not Found - Pokémon Showdown!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not Found
+
+ The team you're looking for is unavailable - either nonexistent or hidden. Check the URL and password?
+
+
+
+
+
+
+
+
diff --git a/teams.pokemonshowdown.com/README.md b/teams.pokemonshowdown.com/README.md
new file mode 100644
index 000000000..3af439c61
--- /dev/null
+++ b/teams.pokemonshowdown.com/README.md
@@ -0,0 +1,5 @@
+PS teams viewer
+===================
+
+This is the code powering https://teams.pokemonshowdown.com/
+
diff --git a/teams.pokemonshowdown.com/apple-touch-icon.png b/teams.pokemonshowdown.com/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..00fe674b8395b4427d17a8ec02efd2c97f237246
GIT binary patch
literal 39664
zcmbSx^;;Y5^L22SQna{xp-{9ykmBy{+5*L00u(7yT#7psin~Mc;!+$M+#z_7kbHSQ
z?|<U@Lx-kQ2cy@J?nrlq*@mMGQf4=Efdkm7UFA%28%v`E(x&7Ky-kEl&A$5
zeXBD{3>YN`)M+=`U;|PC04KjdX$C+g9^mvwQ34IHT#>R)23Rhls=x$%M*?KB$ul8K
zb^{FGDCTepSUe;=8ezQ#pX8scE3}-v?Uokp&iyPLrz9E
z<7~FX*F!5l2cWdA7zzK3QR0MataAA<3zXZd(;*e1Rglf}}Rr9^Q
zMHJT&q&lx|mS>svf`r{9wwzhE-sMJ>&ln>n9A8q{%DP7!{+Y!p6ZlW40>n=G}>v
zK=5z5Y{mxPy{y95{4W4*S(2I6eZ^m&-7LR&*J#BbjH61w`vN^+gpWjkp5xhPx8K*B
zaFN7Z8br5gFsP3BwQD7Pr2mt)O>_j}yQEEj#!B(Q15`z-_o=mDG><#=1)n1!$Ko5z
zc>^Sauesyi;3NSE?cekHK>>i2-iHK9P9(r&M#&BU&~->|@-vl8Wf&6x_*f9iQ746g
z`nHDu#6p!C#e8i^FZ%73Rs1r;6ed|_JSu~w!u#Zq61t;r#F`94
zqwXch71E!ROcfZfxZR0GzMDusCa#Ur@x{Pmy5!%bhBj!T{6+SXZ2w97CT6(6W7hLM
zfoVv3k>l)}CK~aOmZI`mt|(1`KjK-
z>`(MC=xZffpJ*Ug#d1zhL!ZZN#)|*iJVk*C|4;I+8a6$1BA+6TqNBo^0(XgaiNqY?
zryLcQlSJn~|8_AOLaOL8l3Ei964jHR{tWE45{nLf+g8CUV$v!}B~lWw1@57i=JQEs
z7F23ZR^1?M+Zk=Z+vj^BJsYCC|I#kI8p>ql#{no@MNl#q0MJxj_U9(@lj^l{~-9`
zqHDl$#}P=9G)9yrnx>Z)oOV#DqwApyT=1*J(fOrI@XJgus7y|`QDdh9>o4iAg$ioj
z&I-YrDJ>tZ1dVA;^Wq-!=ded>yoSgKxq?WAVjb(&VT$kcq{Do+mj=>{?s_OET#i3f
zt&AHUPF1|oo+!O}0#vkRJSy#~?2_zq_uVFu@Q3R+FGN;yl&0vX@TLN|QMiHJ^^2dY
z?W%*Tg;xDndseN^+|NkQPF5jauDO!AT)DTR&Z1B+tPa5r&5nqUHLvMoiFxZ2zay;M
zv0MD3jam6y=bPeNvSY|1WR_Nl_dTXyB8AgCVe5;DMC(JxAD`N0FT%Hez8ZJvNE&n~
zo>eSnZDTo)vfmN#C6lnLa-p)SdjHRM-BHZa>J#5u$zaLQZV&rps$-U2$86KQ=fuP)
z*Lu}*)t}RNk%b(`JjAh*H^{A*EQs*pc+r^uTenbk%fd)ek)hJwLr$y`?I}
zMUxY*6X!*JCk;ydY}{??0Zl_vXA~u6h2pIJ+}@y?Vv@@5Y4qP|&X@)wkJ{e@q9&AyPLNP=jr^
ziJjc??DGEW!~-5PZ!<%)r*0bc#vGQsMPBF8wL#;}?(qN%Q3-L|$EhO}iD3!keEBHmrbHaV^mfscWr5c(A(r=_ar0&o+p^YexD72`VsHGSJ
zXy4H~(RpwsNThMG@C<3)Q(XGUt|%X@`Pc2avSvxfFmp+aC?9zzSX5{hU&TjGV}c2T
zUCJI*jwV_#zirApeQTrrM3G7M5Jb$*!B_eAShGpn)6EmgwOF-l_+;N5f0K?6#1$%C=D7sC(JV3?k3hOju{pyMxPv;?X-E$OleY{5iW>I_aL)
zHGAtt?PU8$Q{#C)Vuk{SiGjiqKZr6KfO}u*q&0ZR)%VK3s8YYa3eS#Em+dL~UZh#y
z+NLCyyq~L=b|<{?AxP%YAyQq=YnUHPU5nE%i6Xh3@mf{y6`r4*zQ*Ln
zzHJKK3PykV!FKTD2S%JQ(!lP-I*qov#^p9&!^=&EUfE7k##n7KpSSN!wK{BkKV8fP
zjXR7tq(5tH8))fXefC?wir4x&S6V8=8K(a}ts?c$_?Ma+qjqZ&%QPEZ$mfg&V?7WD
zS(TAc?kif0T_3(kdx1z
zE>7#Uy}b=s&RT-sX%s|V_p(D=Rm>rFumw~-=0T62`xZQw?w8)0=KFO+hEFM5zp!jjwJ~?x
z-h1Djk@;YstE`*)C-~OFdRCv0F&+tyK~3;_+dk*bdy77c=>bCm2tHO+9y}E>AGI|n
zKOw)sD989cA(xhx67Nm-mCaPjR(V7D>*=vzJ%rzh$FBqM^Y)YSv;l1S0_P!iy0^x!
z;@TbZtD;tPgmHwnYsydjvJ6%|wH5?vgLHsLx@j}nV3Kf+>)A)^k@6XJsKh}a9L56;
zzkcGD7oL70nRM0)TB-nmKMMd55)J@7zWfw&2mpBT0szMr0D$NZ0D#Ojr$bZhWdX}o
z!O#N$zP&rk*y@#wvX!Z{4!NsJE`XPn0gw?p@fApbmvh}z@Bj`PU*oMm10=t`@ubrJ|M;sr%W-Tt
z;psnPUS3|xi$zw60=JqND}u%`Smv0J%23Q5#@yzJ#^PFMa5=7(r&UMwse14Xx
z^smIU$CCb7ntUg|=lX3V=hQ!?!QHv8D!Y8qr>LiRH^k!0^Qs!Iwz=E~r8|SH8)~f?
zDoi+n5n*W_5($yVezJuM;p2P>
z`h1<=b+#J&MVh~t3^%_%#MOY%;l;CMc+SV8K;#_9c#>7ET+(Fhu&yTZWYXfXxkgjj
z+Sp!uj%2OJ)j&E%Vh^W$ik70GWa2bB9@#W=Gj`@)DA2s^4k!QNUab#}!-3E>x{vPd
zE6Ln7m;Vf-y%`J`YHOE@Fj3>zw
z8B?lTQT6C+tV3f817@Y^R65w^DoqePb`%&%WGE4+OBw$DNq{0T(M-HF$>w1tH+P`-
zi+8O>?4i5WEah!*eI??phU=BwjMl<&eXF9*ZFbwyKBiH#}jHtl^-kL)iJg8`ko
zU3T%*7{h@wLgc@l#EfV^9Ob2q`b;Q0Vv}pnGXj0txu!8Y#<4jiLv2~By3p_GH6*XA
zz7J!5eVw+fKP9B&ii$?^fx(b@}rU%*VRDoLtPED(+QhM0>%
zLzp3{^S@2t>F){Ir0C=D$RUoA_%ypEVxv*G?4+kAL|8ab{nx))B%Z(rJ8sqSDvtPT
zA2g`Mc(_{U2eV1bU0hv#>tI}}>1~`E=+DE+%mi3P08lam*d#>idv&sgM^Ye_qLyxJ
zP7GAT9QxMu6ClDcOh92IcMzy6f0Qd-@)@5A=?DEqV6-Ra{TJrt^jBY!rjnQ>CUx^0
z1NV*vl=Z9D|MuA16D<6el0zg=q9iOc&HWb#qK4^S!7u}M@>IP(wpZ8L3q3`BFLfcu
zF=8iaOUWE7uvEGXI@zMdLT|eIBu~LM$?(ZoC(wD>yv=tdM!BZzu7oytM;Wb>0?h1=
zGi>^m;jVc{>m^CNCtN}=2~X+I$taW3)Sbxo0!`gQK!J7UQeq)ICh?6to^?ZO_5
z)d_L07>p}>Z#XiX@v0~-W=IR9-Ws*|gm-N}bKb|4q&$N?{K^mIznrMZyw)%sOZx#C
zy+l?@N>1nGk%rE85VnO&Q1+mshoW-GeZfA^&E*z`3oS#hK#Kg7D0s9kg!&$nlu?l>f6n-l9L4fF^oBqKzDl{WS=8e#CZN
zctG9q-%^Prdvr23GxHqu_Cl;0-It`~V5{S8tZ`!rbtgy2!AiLx?P|N1GS*~cv;~v(
z6N^Nj0zm%bONyQ;NltZ7vORj>07Ms*ph{P0Gzoo?WdHiJH!Ea`eHum>!KoB|#jK@N
za!@RWhdKszGtJ1cZgjHaw>8)64%!)j`V>;E$z3}K4(cP?P%m=QljNvg9GwzQxE+3v
zRZ&1pe2aDaL|(i!wg2fijGjGJi;bDy!v7^CYe!rQKN@RCk~A8Vvv+QFVn58z4M5jt
zF}K%*uWA1WDJe?Q-y-b5(&eM+sWZwMm)XUPNNJV@7L;GVRfwlbb5!U8_85Z*
z*u_gApGo?lnp%8XTyA4wnG=6XD}0madxM};=d($c(_#&x#p#zLYqT=|iwU_CA80N5
z;*XthjhhEjnLN5z9|4sXel6k>;5ZZOVu*U-#OMSA$KLdky;Ua&4+I;aB|KFQNGVA*&)I{b0j=eFS>Q
z@k(_iKisM|pHz~tDE*@%FcBG9pik&rGWz79>c@PHwSIt*po_0BG!g@HRxS!#I!(~0
zW_wFbmHvjK?{68|n^it;UljVc-)NNzz^(nfEtM25_X^ZyH&}&
z3voGRThhr1x3PW^T$1j}kg|LbBHNg}^Z02e&gjoe21Ej+sAP*?sirCU<=GnYqgs^_
z_S^U~&yt#zBx|wjCiR%7YQ;bH05|nGzIL_%*PcdPy6jTxzX9`}?3FI#2pQs#2oEVt
zQXR+&um|mA+iLR~A2*1LXVTbzXM`?83dN|geu@#4s87#e)(YFAu}o<1}vo}i3&_)NcIy9x|x-1_&AC;#*)CKE~bu9?{qh#A#t>pO}YJAsa_*
zGO>a5kV!}q_C*)T`kyjM|0JzgL=V}!UfMw<+}&8N{Ee}danc!cHhtB&{NMx7&NfI4
zWrnw>0!P@)x$mF^9Y7`PZ!_KZr{&DV$#7Bj5Vv(^NI**9RfMgfa$Oa3%Z^E!lD$K&
zNbJj+Vt@k|{L22peD!w8s0rsXClnoYF=j*nvRJl?O8Oz7ae&Kin%_G4Y9&$68MC&+kI%`@5dJn!-+(?!xTPU(ItK9OpxR
z6_sp_mV}@KU^Fk($K@%{C+$qQ7WFO4qBwYZrj3penX9lBo$I5D#S(g*B$?i-e7qZv
zIEG<*vuLJLtyLCE
zSG=3X#3b(xv3Z6sDyQ_-f^acu3gePNHiVa~L1cRYshqZUwkak}?(b~Xb∋)^En`
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
Se6Rlj;0yjpSFKLPHvE6;*{-<&
literal 0
HcmV?d00001
diff --git a/teams.pokemonshowdown.com/favicon.ico b/teams.pokemonshowdown.com/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..cf7439e089cb5fc368e569c457ed0ba32582a6fd
GIT binary patch
literal 42304
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 |