From 59b18fabdcfa5e6b18ce23ca5eb392832c0c9b8a Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Sat, 25 Mar 2023 12:11:10 +0300 Subject: [PATCH 1/9] Update msx.go --- server/web/msx/msx.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/web/msx/msx.go b/server/web/msx/msx.go index 0fa0acb..274dde2 100644 --- a/server/web/msx/msx.go +++ b/server/web/msx/msx.go @@ -62,7 +62,7 @@ func SetupRoute(r *gin.RouterGroup) { } c.Data(200, "text/html; charset=UTF-8", append(b, "\n\n"...)) default: - c.AbortWithStatus(400) + c.AbortWithStatus(404) } }) r.GET("/msx/imdb", func(c *gin.Context) { From 382c8d34e6507fb0d40903944de026984b434ffd Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:31:03 +0300 Subject: [PATCH 2/9] MSX: update - /search/?qyery=... check for 400 - search keyboard bugs fixed --- server/web/msx/russian.json.gz | Bin 6533 -> 6565 bytes server/web/msx/torrents.js.gz | Bin 3499 -> 3583 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/server/web/msx/russian.json.gz b/server/web/msx/russian.json.gz index 1c5ea9b502bd0ea1b7fdf8bdd036611bbd5e49cf..fc4f98f400c5d7addf3a17aa4d391817f5753e01 100644 GIT binary patch delta 68 zcmV-K0K5N%Go>>JABzYGtMDGN2WuHK#5i!h2-q4c0v}bYfSkj@!r)d0=p5RMeUR!G a(!NC=fd?jNuu-*K3bg=Br?u!6W&i-JfE(ff delta 36 scmZ2#+-l4&-_5}hl_9&4JzG+^MQ#V*wV=~W1GpJ(AG6ImnaaQb0M;A~Q2+n{ diff --git a/server/web/msx/torrents.js.gz b/server/web/msx/torrents.js.gz index 1a9e6323753903ed7fd2b7479fb3ce5378b789c8..3088d4b297621250a956cda6f67f197a0f585066 100644 GIT binary patch literal 3583 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 ZwGeY^zZR1o`<3M@{|EIk-+_EG001zxryT$Q From 2b76ded8a482e0cfcd5dfbc7f1c404bd9acb7279 Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Sat, 25 Mar 2023 16:43:23 +0300 Subject: [PATCH 3/9] MSX update --- server/web/msx/torrents.js.gz | Bin 3583 -> 3582 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/server/web/msx/torrents.js.gz b/server/web/msx/torrents.js.gz index 3088d4b297621250a956cda6f67f197a0f585066..8d479bd0feb2997b51f1397c1f94d9bfef32ed9b 100644 GIT binary patch literal 3582 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 E05#vxCjbBd literal 3583 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 Date: Fri, 10 May 2024 17:44:54 +0300 Subject: [PATCH 4/9] Delete server/web/msx/russian.json.gz new MSX --- server/web/msx/russian.json.gz | Bin 6565 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 server/web/msx/russian.json.gz diff --git a/server/web/msx/russian.json.gz b/server/web/msx/russian.json.gz deleted file mode 100644 index fc4f98f400c5d7addf3a17aa4d391817f5753e01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6565 zcmV;W8CvEaiwFp-@E&9U19Ek9b7^62E^2dcZUEdpX>%OMb>H(V+WZho6%Zr=9@18& zTq^*yP{LIJ$XIrzwg$Vs*a>!L)^mVZp-?4~Qm7PVQKDr@krYXk>^PTW5F|v91i-&A z`;YRDp1Wsvuw*56?6QoV>3;9^>v#8?*7jcs_|GZJ=*Ux*Q_H^Vnuc{Y_^yAef1`gR zcp4l8Pfm^TAj9`swgbZ&M#tPV!pED^aZTHT=jX=HPlQi5WN*zjoCZ8TKQVdX;-$;4 zy?!qEIQS&E7yKspH27_BBls-%JoqB`=itlWtKjS4UxIIfZ-eiG`@#3Y55ez(-v|F1 z{2}vtpui%fte+PdW8?XHICuja9#L{)_u5>(8x~D4J^a!8Ujjjh2RXWo0 z0YAXr503gDsY%HZHvONAgT4u#_x}-=d!QNCZ5us_D+dCf0kHl4yNOXv+vylyrD1r; z!$#w5r*pQ~(+%js`)NTV@~@kIyIoUb)F1$(1Jt&y^_oIAKQ9_%V&FK&3eW)NfPtP# zGSI4YIu+MFYjnCAB3;=v9K$0q7!&#T2_RVrZDUQgE5@4bd&F-641YH`4j#fkcY{Ot z?|y!?WdhW2i#`sHV1o{WUEHYt-Tdfow{6yGJna<#K7jo?4t_)dfWI{eU`j6@e8>a) zH~Syvhx!fE#-X1Fd;MF%Q_TR+W-|BsH-lsC`A+!RJB2vjGh!9^F0Ne^O9;yk*+N1uR$h;*dSWR=iCLPCCJo^CF@&NW_ zR}hG!{(JD?A=t=wSr+jb5%n-Q#*N!0ax~k(kS*J*8JmU)58DwZ3Vu^&7N zj*0)bU?sp|9Tv~1dof^S*;D<7!BE(-+PZJ@o_rcSgH6UgM?pbZ>VMS#C*bV+g>y}- zX~(8<&_3|^-0ERX{hK19b)P9NobO6!lf~ga8e$NHv^kDPo0cy_-9ARP0c}4P3BKL! zIp%tc*mghqksIba4icg49Jnf!q+7ru@CqWh2blJQLyc{!`>tnqV9FH#k$n&5+^Dr} zqfsDtk6{nNQo^P`CIbP>*=70AY)wP1`Rk!g06~PoPcEPJ+#f(WfJdv)oplPwr_G*bCfb$HLD=3aW%L?y)2z$LBGA|;WE=K$ zqs=gYy%<-^qcS-Xq(1g*|8u8(y4{k>>dgtEa?D6SOC9u z;KRM$HtTk!<8GaCWP=~>h~$3fCvKUvPxo-Y^`N&vI~u@h)JLZidBIO%^m7vZBc=^D z_(M``(DN_I>>L9_ioI&na0&G%fLbv-KPKGT@_X1syMEnvHelM7=d z7i|DcJR)Q)*GF1jwmh#JqkMC9b!jj|v%$EYVDlSQ!;#1xxS2_>lC%~a^DhM3kyZPRF*jW{Yp+@z_v>>opB zq0Za~{@%--8Hc&iDyaiO(K#f`*fiH^S8Ak+ zVW_uxHwf@!b5c0EHi&MK1*C~M2dC0%j3ZsyRu&f7{(yF9R~xuF;H~XW z4dJdC^$m^-pMkF5rkGiY?;gsBN;nTd787P#W7!;u<|Y{}q-{)|KaT9!kh5Ua>DVO6 zKajL@crzjq1k$!RLCwI^40k05udwa!5+;45O9R0Pc@Q73yP6r~$c9Ly0+LVBaxS^puh*sPCPSok3>GW(maK1_shdu{Eg@F=0rif8868_Z zupw>~G?UDHPxj_UI>6FMj<=cC`R8Ps_tYLxRP%jsFE`D%HZ1$PrJPY{42Ul}0)3|) z^TpLTf&LwFb$Kp74?@kFvCcJ_tMEfq=|^^)iqK>Y<2841l!kTT!YD1S1%uy%nPdj? zu?Gz6)xx|2OHvpFfx0{xkYdoBP|y=|4u{D6CTN(=1Rc;a3Wn6&uH^9GJ|=H$#8`_5 z*lpe7?6$Ac51MgE;BIJb@pZ$oz)U6Ow8S>PwG%QdEY7lUxk>vmnG zLtlZ=+ybuM)_UEZbd?>*y?V!{(naujHqL}d6wBH*Dj;LL>8dmhZ8xP4H+Y|d{V|fM zqcH8K=nkTvrViQVeweN`IR9Si<|!mUK`A)3qc4SQ0rD^VSfVbd#HK+566PvVG)6p@EQL6nw|r+k5zRe zd>T9%3%=-ogk0c1=*7nX=pmi5AOT$T>fc4@iEqE5dR_DrqvGhtr&$uLUy`dZvX~;PLar11PN_eVgfBJ3#TDoP-=@NN8JDHq5Tz=i>Bsb!v5Xabf55m{^l_ z1AK+(7+c|M2(#J(JaTj^lpS)T3mMgw&IT#_Oc)sG13d;%1E=@9`X#hVk_ z5dlr+0d*Z4LRfdyHD1U=Bp*H^xQlsk5KVMUZ$x;P^6)6`8WG&(1h_Td9aYAXQm@Pm zM8hKjONzeV9Uag_Qu4VXF(RPzDM0SXazBxjd(W(IpnDw+(qwvV(r`zm=|YO8k(ZVf zbjr#{ROyLJc|fFqBP#U7<&62O&(Lk%`EI>c8;M7zmOo8VwvY&Xn$#r4<1d0pvH z!NjWb+@1UgE)hBsMT<@*cLv~BwaZM0kKhC;s;Y68zgrR8-j+w%^7WSK$;x(hVRpW{ zI z^Rd{YBFJd=)#bS%acWW9Ot`Zv_*g`bg{qw4`D#y~Z-Ka8OxvPo`{KG`dBU?X+!A0E ze8?HBM(BdP7MR$$(dwsKTH*$pT2c-91qIIfH6-Sty3MN;ZumUv42iim#ZQLvOy7~R zU<>tX@P38!lPT7`v1NAr4sd#13cJ}v9;&H9QM-vH+@zdrkuCLJkz3G-rUVzP$wcQV~}m z4@cR-19Y%YXMHdU_y=)nOyDsG2%GG3|8zI)_N%+yL?hyD>ej0n=!%x1(z(Y z*G`7349M39fGnY^skCqj-u!ZVsrs{-+U&yg%+CQB)+#KtTzGtlddo6Z3gr2O;Wz=D zeCHOG73#L%ZjjAilc9mt%{C1PnL;8GF#*3o_D;`M=N5maXD{{zg(f~@z428UYu%KF z=Q}cI1y`}iqF#pXt0#w;#AJU=NY|{@K=dGf*IN<@g2-CXIKktD+ag{8pL`eH&}@?y zq7GKFYY^8>uLU5wHU+SPo59AoD5M~^WV`DU5HH+BwSnSoglvGauUj@OjAli31+yIH zR?me;ZNW#h(QvSEG{Up}dTS_mIOKUV$%v@ZhF-(7^Ks6bi`QnBYcp4_%uKE7gPkmj zRK%0wdfAvKg;O8+KpeG>hevMG2hZX|fe(l1Ha97S5vcAAjZZA_WLRLw3m=YB-_?`; zjd2nDmQF|yM6lPtBk*)GgwVfBM+j*M&tb%~{)gDHb;!-(+_Hy#FGo~|jru|8{0D2U z{ad+H@&2uRSj;gJ1iioVO-CQ`@@jeWXYp@#c0;#*c46r%?)mnbvy(-ur$D;iKmt;t zVaBAC6%3}RKqBJYvc|b(gl&pb&1CjTl~hJs5?E|6i@+(1)wMzHz*xmaZZPY~!QHmM zZj$dWHquD~!ez`x<>(j|gz0FoR~D}>Pf^f=aeK#i$p;vMCt%m#D=V+!yJ5JLPAq6C zW^%{iCsj`G(aZpdCLf(;!IJjcbnHS@OK^(5y_Bp3qE1vbUv z_z@nPJf)WP{jdvI(7_0u_l}ai zW)*qF^j58swSA5QouQhp!l{>_>M{D1uB(Wvte%JAomSDQ2{hWqduV^(rz2U_2mP47 zJ$M&eEvX?U|4oiACTW`hwBT?Kw4t3i85$UlBpNkC8dt%mETBmz$zC!)X8w7093)k;SVC;uGb+EZ9oo*sBtW=7mb-_!6(CYag_BTX4m$ey3C0} zS?uVMNG!mm>2_^EglBi9MIAYj4Hjn91LRC$?@cr- zHiOA|159D2<-54f(2d|xVG*leyp7mI!cc%44L$#|SlAsd^Q`dcaF@7TU6@{+uPs3o z^+t8-ExlXR;7UboP6lh)&@GEx?~GI+sV^gyFZ-*8^+cRS=_HnOvF>Y~;SaeoRg==? z9(~az4vTaJoslwhwGOr4=@QTI?Vg!mq=Tpz4&Gxj(xQ+isI(+7T}1+r{3M`I5OB?L z3(kp-gtXra3`9isHFIcnVw{Ap5DP&s0f@diNXj)m0M^$%u%$}AIjPEK2pIafBK!T%u!Hl!tj;uL#3UYFRqtEbMRD_PvBR@kvwQf6*dwK|EHc5bJ*pl5* zldB>&bCOgqRu<+kCL6p67zS|>ejvpXG?L;lpIC2Jk}MjgHK(^%rmAx!oiD655fLe^ zN$pr!or#Fjp^>u29~LgL8_6|^KeWvz1k^)ghuK8Ws$EJ-3VJI;# zrW@Ruk|;1mU!n{P2vkqYz<@wOkK^Y=Em#HgnMcA>Q=OtRURp^sN`NDVgfE60|CPDf>6w)`7yqs{3$fqwwd$PS-RqI21vZbq zwAkjUD3IZd^yLriGeU;x+fsG8IzIz&A&Wz0U5X@-3Y|QIeD-O~=qjf%-aM@i+bY`3 zPfy3h3(-LZSL|+pxlTbGsmD8+XgtW^Ef3^EG4TSs^Kk_WK))hB+ns?!UUVH7i`PN$ z%R{;}U@_{8A6(D1ndKF3G}0|e4Sdm6T^_J1g`zyL*K)v$T1*NI^{OUFal5i^Hcd)H z%zBIKGpdNFdQ#ZL3PY)j-yIi=79^5r^jpRzMt9uJ)6j-N!3>fQi=^E!qY}M zW2T$<$!2t`gWwBzu;QIXc+peQb3cJQ3z)4}Vs>Ixyzm#r!~Y#Q)G-m_Y|JiY z>I`93J;c(Ok*U*HmuIRc>{ZL*m?(+k1U+gw9Fs{LFR$+|hv&ix@Vv-+E|$hq3fv_< zxB=x=3>|9mm-VX{Ntl-DnSlQtBm7)|5c-q)#U;Rz5{jcbVb8#Hl-sW?125kJ$?#8phscPyc*eCl>WYN;LKgCyMQaV95WC==zv)4fM?~LR9j*r!S&QTjQUH-tA z3_nj_0EE&SH8TsoJ4>}PQ{UYI_eVeG8FXO|zab!Wi3+wj>pCtAR+fu0aBW}Vy=&OQ zDOeT5E^H>^F(oax6AhlQ61-9-ed}xi#`LD1D!80YwH<2u4ADN&<;KqwSADBR=F+L* zG@xvsif>FV1C(zFeZ8E? zZ)abDCGkDU^A54`K0BaGWGv;#a6u}p21C7(xiiL*ol}YH?35Hzrb`@2-x#j0;mutu zS2)2{caq+R_wPp;^S~)hyWQaH#^|oW@TNi1F}&3?b>SKhj_$~MN`1?BqHhJlIrK3? z1|6T|22O_O+uH__vTP06dDR-|J}b$j4GNi6JU;{CK;kLKeQ#81by zU|?7bNsZG3oH88Gwyg;0*Wp(jbc<&et{NS~j)!yEaTg~gCahjtY4P1+-v{^3W%UROM0=z1o2J@JeZ>zLqm zM01MhpJe*KL1ChNS6x7xg*T~ogR5|W|8WKqeMfVuBC;2P(-%sZHy^(e?7kZNqEHo6 z#beb+ConXne=7w0{3BKO`=5bMg2Xs*y$IMED*_)?tAL!t!NTBH2Iw5xi+zyl7t+2( X9)SlYXs}VWTne=SOQ*Hy6=nbcA~%_T From 820f1b6ed7b842ed7058ba745745518e48d10be7 Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Fri, 10 May 2024 17:45:17 +0300 Subject: [PATCH 5/9] Delete server/web/msx/torrent.js.gz new MSX --- server/web/msx/torrent.js.gz | Bin 3407 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 server/web/msx/torrent.js.gz diff --git a/server/web/msx/torrent.js.gz b/server/web/msx/torrent.js.gz deleted file mode 100644 index bc246dcd3cb2eed780ef3a2c156b2e3d21aa70a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3407 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 Date: Fri, 10 May 2024 17:45:32 +0300 Subject: [PATCH 6/9] Delete server/web/msx/torrents.js.gz new MSX --- server/web/msx/torrents.js.gz | Bin 3582 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 server/web/msx/torrents.js.gz diff --git a/server/web/msx/torrents.js.gz b/server/web/msx/torrents.js.gz deleted file mode 100644 index 8d479bd0feb2997b51f1397c1f94d9bfef32ed9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3582 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 E05#vxCjbBd From 1ce09cd1fa4dc0e4500f9d7cfab5a4cbfa03a304 Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Fri, 10 May 2024 17:45:52 +0300 Subject: [PATCH 7/9] Delete server/web/msx/ts.js.gz new MSX --- server/web/msx/ts.js.gz | Bin 425 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 server/web/msx/ts.js.gz diff --git a/server/web/msx/ts.js.gz b/server/web/msx/ts.js.gz deleted file mode 100644 index 4f6236c954a732d7216612e6d739d282ed6fa7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apGWiwFpm)*WO319WpPYI6W}lFM$}Fc3xe{R)DMfIn{HGD>C34N^kLYl zlU*?oM=lGBOlPP(5ai!O%2pEB(X0sS&f&c?s@9ha*KMq?LU62uUm}=0)pWj&Hh5Kt z`!^z0wZ5GDhy?xhwna0>?rH|!I3#udr#~$5Uxyq^@r1AwVJ4y}wxCg1@N00^Kt!{` z7_Hy%3mebPxvqf(h|>&OAzj-VS$E_XK+v+@U_9@fTSZb5j3H!}6Cq{seh*?B1x1gM zM?2Z66mK(hI}DCggX+2kW-lgBOJ9`9Q8 zUk+Xtq7*)j>(ByWgM_}$p=h^O`@FZZMc;kM6B~K%0GMm=kYXfu$7a6QVz8Tzy_nr$2sQ%)eB#th*f%%%=0NvuX?vd-o47_CK5-hQq7> Tv-LKrB*>yiiZI%QW&;2Ku8GMP From 2595c099a2839caabedcea9776c6df22a874d914 Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Fri, 10 May 2024 17:47:08 +0300 Subject: [PATCH 8/9] Update msx.go new MSX --- server/web/msx/msx.go | 202 +++++++++++++++++++++++++++--------------- 1 file changed, 130 insertions(+), 72 deletions(-) diff --git a/server/web/msx/msx.go b/server/web/msx/msx.go index 274dde2..4544397 100644 --- a/server/web/msx/msx.go +++ b/server/web/msx/msx.go @@ -1,96 +1,154 @@ package msx import ( - _ "embed" "encoding/json" "net/http" - "sync" + "net/url" + "os" + "path" + "path/filepath" + "server/settings" + "server/torr" "server/version" + "server/web/auth" + "strconv" + "strings" "github.com/gin-gonic/gin" ) -var ( - //go:embed russian.json.gz - rus []byte - //go:embed torrents.js.gz - trs []byte - //go:embed torrent.js.gz - trn []byte - //go:embed ts.js.gz - its []byte +const base, fls = "https://damiva.github.io/msx", "files" - idb = new(sync.Mutex) - ids = make(map[string]string) -) - -func asset(c *gin.Context, t string, d []byte) { - c.Header("Content-Encoding", "gzip") - c.Data(200, t+"; charset=UTF-8", d) -} -func SetupRoute(r *gin.RouterGroup) { - r.GET("/msx/:pth", func(c *gin.Context) { - js := []string{"http://msx.benzac.de/js/tvx-plugin.min.js"} - switch p := c.Param("pth"); p { - case "start.json": - c.JSON(200, map[string]string{ - "name": "TorrServer", - "version": version.Version, - "parameter": "menu:request:interaction:init@{PREFIX}{SERVER}/msx/ts", - }) - case "russian.json": - asset(c, "application/json", rus) - case "torrents.js": - asset(c, "text/javascript", trs) - case "torrent.js": - asset(c, "text/javascript", trn) - case "ts.js": - asset(c, "text/javascript", its) - case "torrents": - js = append(js, p+".js") - p = "torrent" - fallthrough - case "torrent": - if c.Query("platform") == "tizen" { - js = append(js, "http://msx.benzac.de/interaction/js/tizen-player.js") - } - fallthrough - case "ts": - b := []byte("\n\n\nTorrServer Plugin\n\n") - for _, j := range append(js, p+".js") { - b = append(b, "\n"...) - } - c.Data(200, "text/html; charset=UTF-8", append(b, "\n\n"...)) - default: - c.AbortWithStatus(404) +func SetupRoute(r gin.IRouter) { + authorized := r.Group("/", auth.CheckAuth()) + authorized.Any("/msx", func(c *gin.Context) { + if l := c.Query("url"); l != "" { + proxy(c, l, c.QueryArray("header")...) + } else if c.Request.Method == "POST" { + serve(c) + } else { + proxy(c, base+"/ts.html") } }) - r.GET("/msx/imdb", func(c *gin.Context) { - idb.Lock() - defer idb.Unlock() - l := len(ids) - ids = make(map[string]string) - c.JSON(200, l) + authorized.GET("/msx/*pth", func(c *gin.Context) { + p := c.Param("pth") + if _, n := path.Split(p); n == "" { + files(c, filepath.Join(fls, filepath.Clean(p))) + } else if n = strings.ToLower(path.Ext(n)); n == "" { + c.AbortWithStatus(http.StatusNotFound) + } else if n == ".html" || n == ".js" || n == ".json" { + proxy(c, base+p) + } else { + c.File(filepath.Join(fls, filepath.Clean(p))) + } }) - r.GET("/msx/imdb/:id", func(c *gin.Context) { - idb.Lock() - defer idb.Unlock() - p := c.Param("id") - i, o := ids[p] - if !o { - if r, e := http.Get("https://v2.sg.media-imdb.com/suggestion/h/" + p + ".json"); e == nil { - defer r.Body.Close() - if r.StatusCode == 200 { + authorized.GET("/imdb/:id", func(c *gin.Context) { + const x = ".json" + i, l := c.Param("id"), "" + j := strings.HasSuffix(i, x) + if i = strings.TrimSuffix(i, x); i != "" { + if r, e := http.Get("https://v2.sg.media-imdb.com/suggestion/h/" + i + x); e == nil { + if r.StatusCode == http.StatusOK { var j struct { D []struct{ I struct{ ImageUrl string } } } if e = json.NewDecoder(r.Body).Decode(&j); e == nil && len(j.D) > 0 { - i = j.D[0].I.ImageUrl + l = j.D[0].I.ImageUrl } } + r.Body.Close() } - ids[p] = i } - c.JSON(200, i) + if j { + c.JSON(200, l) + } else if l == "" { + c.Status(http.StatusNotFound) + } else { + c.Redirect(http.StatusMovedPermanently, l) + } }) } +func proxy(c *gin.Context, u string, h ...string) { + if u == "" { + c.AbortWithStatus(http.StatusBadRequest) + } else if q, e := http.NewRequest(c.Request.Method, u, c.Request.Body); e != nil { + c.AbortWithError(http.StatusInternalServerError, e) + } else { + for _, v := range h { + if v := strings.SplitN(v, ":", 2); len(v) == 2 { + q.Header.Add(v[0], v[1]) + } + } + if r, e := http.DefaultClient.Do(q); e != nil { + c.AbortWithError(http.StatusInternalServerError, e) + } else { + c.DataFromReader(r.StatusCode, r.ContentLength, r.Header.Get("Content-Type"), r.Body, nil) + r.Body.Close() + } + } +} +func serve(c *gin.Context) { + var j struct { + Data struct { + Update string + Info struct{ Content struct{ Flag string } } + } + } + if e := c.Bind(&j); e != nil { + c.AbortWithError(http.StatusBadRequest, e) + } else if j.Data.Update == "" && j.Data.Info.Content.Flag == "" { + r := map[string]any{"version": version.Version, "search": settings.BTsets.EnableRutorSearch} + if l, e := os.Readlink(fls); e == nil { + r["files"] = l + } else if !os.IsNotExist(e) { + r["error"] = e.Error() + } + c.JSON(200, r) + } else { + var r map[string]any + h, sc, st := j.Data.Info.Content.Flag, "", "" + if h == "" { + h = j.Data.Update[strings.LastIndexByte(j.Data.Update, ':')+1:] + } + if t := torr.GetTorrent(h); t != nil { + if t := t.Status(); t != nil && t.Stat < 5 { + switch t.Stat { + case 4: + sc = "msx-red" + case 3: + sc = "msx-green" + default: + sc = "msx-yellow" + } + st = "{ico:north} " + strconv.Itoa(t.ActivePeers) + " / " + strconv.Itoa(t.TotalPeers) + " {ico:south} " + strconv.Itoa(t.ConnectedSeeders) + } + } + if j.Data.Update != "" { + r = map[string]any{"action": "update:" + j.Data.Update, "data": map[string]string{"stamp": st, "stampColor": sc}} + } else { + if sc != "" { + sc = "{tb}{tb}{col:" + sc + "}" + } + r = map[string]any{"action": "player:label:position:{LABEL}" + sc + st} + } + c.JSON(200, map[string]any{"response": map[string]any{"status": http.StatusOK, "data": r}}) + } +} +func files(c *gin.Context, p string) { + if d, e := os.ReadDir(p); e == nil { + var ds, fs []map[string]any + u := c.Request.URL.EscapedPath() + for _, f := range d { + if n := f.Name(); f.IsDir() { + ds = append(ds, map[string]any{"id": u + url.PathEscape(n) + "/", "path": n}) + } else if f, e := f.Info(); e == nil { + fs = append(fs, map[string]any{"id": u + url.PathEscape(n), "path": n, "length": f.Size()}) + } + } + c.JSON(200, map[string]any{"title": filepath.Base(strings.TrimSuffix(p, "/")), "path": u, "files": append(ds, fs...)}) + } else if os.IsNotExist(e) { + c.AbortWithError(http.StatusNotFound, e) + } else { + c.AbortWithError(http.StatusInternalServerError, e) + } +} From 29a5a1328ea97f58daec5c1ef478688464408025 Mon Sep 17 00:00:00 2001 From: damiva <96115589+damiva@users.noreply.github.com> Date: Fri, 10 May 2024 18:00:35 +0300 Subject: [PATCH 9/9] Update msx.go new MSX --- server/web/msx/msx.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/web/msx/msx.go b/server/web/msx/msx.go index 4544397..3422e2d 100644 --- a/server/web/msx/msx.go +++ b/server/web/msx/msx.go @@ -24,6 +24,14 @@ func SetupRoute(r gin.IRouter) { authorized.Any("/msx", func(c *gin.Context) { if l := c.Query("url"); l != "" { proxy(c, l, c.QueryArray("header")...) + } else if l = c.Query("indb"); l != "" { + var r bool + for _, t := range settings.ListTorrent() { + if r = t.InfoHash.HexString() == l; r { + break + } + } + c.JSON(200, r) } else if c.Request.Method == "POST" { serve(c) } else {