From e33f1ff6db85f0945f1b509177ac8412643d1411 Mon Sep 17 00:00:00 2001 From: fatkun Date: Tue, 5 Mar 2024 19:08:19 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=99=9A=E5=81=87?= =?UTF-8?q?=E7=9A=84userID=E7=BB=99=E7=AC=AC=E4=B8=89=E6=96=B9=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _worker.js | 73 ++++++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/_worker.js b/_worker.js index 7faa4cccc..9663d3da8 100644 --- a/_worker.js +++ b/_worker.js @@ -24,6 +24,10 @@ if (!isValidUUID(userID)) { let parsedSocks5Address = {}; let enableSocks = false; +// 虚假uuid和hostname,用于发送给配置生成服务 +let fakeUserID = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; +let fakeHostName = "EXAMPLE.COM"; + export default { /** * @param {import("@cloudflare/workers-types").Request} request @@ -778,6 +782,10 @@ function socks5AddressParser(address) { } } +function revertFakeInfo(content, userID, hostName) { + return content.replace(new RegExp(fakeUserID, 'g'), userID).replace(new RegExp(fakeHostName, 'g'), hostName); +} + /** * @param {string} userID * @param {string | null} hostName @@ -857,47 +865,30 @@ async function getVLESSConfig(userID, hostName, sub, userAgent, RproxyIP) { --------------------------------------------------------------- ################################################################ `; - } else if (sub && userAgent.includes('clash')) { - // 如果sub不为空且UA为clash,则发起特定请求 - if (typeof fetch === 'function') { - try { - const response = await fetch(`https://${subconverter}/sub?target=clash&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${hostName}%26uuid%3D${userID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`); - const content = await response.text(); - return content; - } catch (error) { - console.error('Error fetching content:', error); - return `Error fetching content: ${error.message}`; - } - } else { - return 'Error: fetch is not available in this environment.';// - } - } else if (sub && userAgent.includes('sing-box') || userAgent.includes('singbox')) { - // 如果sub不为空且UA为sing-box,则发起特定请求 - if (typeof fetch === 'function') { - try { - const response = await fetch(`https://${subconverter}/sub?target=singbox&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${hostName}%26uuid%3D${userID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`); - const content = await response.text(); - return content; - } catch (error) { - console.error('获取内容时出错:', error); - return `获取内容时出错: ${error.message}`; - } + } else if (sub) { + if (typeof fetch != 'function') { + return 'Error: fetch is not available in this environment.'; + } + // 如果是使用默认域名,则改成一个workers的域名,订阅器会加上代理 + if (hostName.includes(".workers.dev") || hostName.includes(".pages.dev")) { + fakeHostName = "EXAMPLE.workers.dev"; + } + var content = ""; + var url = ""; + if (userAgent.includes('clash')) { + url = `https://${subconverter}/sub?target=clash&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${fakeHostName}%26uuid%3D${fakeUserID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`; + } else if (userAgent.includes('sing-box') || userAgent.includes('singbox')) { + url = `https://${subconverter}/sub?target=singbox&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${fakeHostName}%26uuid%3D${fakeUserID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`; } else { - return '错误: 在此环境中不支持 fetch。'; + url = `https://${sub}/sub?host=${fakeHostName}&uuid=${fakeUserID}&edgetunnel=cmliu&proxyip=${RproxyIP}`; + } + try { + const response = await fetch(url); + content = await response.text(); + return revertFakeInfo(content, userID, hostName); + } catch (error) { + console.error('Error fetching content:', error); + return `Error fetching content: ${error.message}`; } - } else { - // 如果sub不为空且UA,则发起一般请求 - if (typeof fetch === 'function') { - try { - const response = await fetch(`https://${sub}/sub?host=${hostName}&uuid=${userID}&edgetunnel=cmliu&proxyip=${RproxyIP}`); - const content = await response.text(); - return content; - } catch (error) { - console.error('Error fetching content:', error); - return `Error fetching content: ${error.message}`; - } - } else { - return 'Error: fetch is not available in this environment.'; - } } -} +} \ No newline at end of file From 34406e89c8808b5aa66ca975711bd83bf1f50928 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 5 Mar 2024 11:09:23 +0000 Subject: [PATCH 2/4] Automatically package and commit worker.zip --- worker.zip | Bin 8840 -> 8944 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worker.zip b/worker.zip index c0ea59a18193f2a570ee423f43102116a59fd836..ed814b94397ee9df60b1a7b065f0052e5f363367 100644 GIT binary patch delta 8878 zcmV;fB2nFlMes#`P)h>@6aWAK2mmWtWmw4eS&Bv?006;n000UA8~|T;Z*ps8axQ9f zRa6N817ZE z5k=`!{zAHYW_D+Rr9{a-RoMh)dU|?#`aO+WjlFQDT77ll`YY{f_3|DMLdW-5#|$}x zzn0(YIT4$l>Y8@_f^FF*pXyv}PFWYGtY&kjJKLCTbgc^=d-`ItImIh1a(bLOA#2u~ zQ`P!Rwb^8UjSH=2y;Z-!ZfvyEy%v|Rz5y3M1oI9I^MSN$Q2e73_q9+(kl2mT;n{?KDLZd|+4LWs?q zj%WMBaEq-5JPg?+d}rs`+GK?}UVjiVt7kLQvso~I@LG(m`a@vCE_Yp4UG^9E;rP`y zumK?^H+Ke(z13Cq-)k~Ke zooaoyIWuK-`6a7SN6K+kKk)YtuC3y-;v5iq^xIF4@7_Q9n{SUk{PO?)@X@1tzd8EF zZ;$?e>8+#R|L(#6+&Q}c-$#Fc=fVA79{>EO$M^sC@mpUY%(r(Retz%xo4f5-9(?o9 z$Dh9Y;QqJApM41+|NGWYik9se`(Cx$nb|QdgAWWp*eO;Rj#o|B&7I@+4vz-FeAh6& z1Ir8}HHqv-vco|qA^G@ccaQ(=>!bI9ia#EI|I61$AAfQD!TU$=zH{`|?+Y3%{4uPa z>kLBpXAJ$|Hn7;R`JOoUyYC#||LVaXK7ahy2amq`_2bXqIsWX6hwp!SbQjrh^vS(P z@BRCuUw!oO)Big9=4-YaMg6c4R zX#tBvT))nv$nkbq1b9r_CY>8PpiV-^mDnTb;=bAIyBxF*H*DcPFYWqa)FLZ?!2E!* ze6I zfghBL15jr)TzI}cTv9C06=JEVW)O0FePr*$c#hFD_sovVX&Q!UdtsX%-TnE|+wURf zqrdwI4}u&;>H6%;2VZ}D^a&_`@!O!g;sS)sKm5g=qYr;YXuIZZenT0SNmKr-=KN3n zo19A)UWMJ3@%~`x;_D07SC-tIe(xNXD0iQ2>HaVXJE^umA9W+Nv6eV_@0d zGw-;#&#gfO-l>g>un${X(Z0YEfXNEHkR7gqvv5NG!Ws|zz8CV#F#^;I6J~heS**(= zYqumRt{@c^L_!iV5d{bIcLKya6gGVU+)4y2lq-x~ZrW(Mz(kgccsEsoD3*=LUqZjp z2ESPX!2v9ZPk>zveqwnrWQSigXfnOOl(_LiV- zyi6d2j+)R7p@djiy(WQ@Nex<9BMI7GS$^f(t0^>05@@ZqmOaUuc9b(}>P1$Jf&nkG zR;r({7*#ZL2yqh=6HmaYuTSp`_?fGu8SJYF5{&F95KUy27>N~s6Ch+M= zTitR6!p$%;qe0k$u(i%&xgjCluAMy;N*iytl&A@U_b}3ED>X5PCPa$Bz}J=**Vo0c z^f;A#KBI{)!tS6?mDJi)5?`jIB=0oaXAiaQq2%Wqz`}+1L^r(oQGsVLbmH z35vYE5(Q0vjXOhSDC$^?3PX2)|2Bli_JLEOhfvIw%~epr7b8Ti)cI zb+SF1TQS81+0;{N^-w{rnob}M(oKDg+`E9?v|NXOR5n?(1uIrMZ$Rd1KoAL}mNNKY zX<;H6F-*(i{isBvcoSwOuB9P7)=fwO)_?(iZ^_?LlY#=521*(yWQc{A>v&zi!p7zp zSY{8@7ZL-T;P@UKqRi$mlc4BMYkTwTp(HA9ojn{QCf;Ia4{;l`K!k=oG`WsAA(ESc zdvL{njLawdose7A#6MI)9U|ZIT~HE2i98bM0$7B8Gr1KIP7ZQ6&w3E}uI10B_fQ$7 zr-EFhJJ48l$msrB>@<=k5CdO5$g|=YWee{v;5|R$V)CZh@6*wd#S%3_R|KOF+zGFE zdIEv+ISg5~dRbyBOq_6Zqwnl)P)8fcs*EtlVp|?j{2u$BSkcg1|f|ZPqKS zzEu{WPI%+WYDM_WdGs9?F2(gilGVk?M3)Yi+LR1QA_d7YF55!Q1yo$Eo;|z{zRm~; zq*RVk;gJlCHV1Z}QM4IZ@Ii*l+et)!sJNI7^`zVxobqnTTX`v?S$Q(caBY``ocBVI z#*lReJC!kPqRfC9Joju&HbDc_&Z*S}MFy|ds6&LrvfF25LM(%G;9)xhVTuVk=mC8J z0uU8*qEv$bxU7XTx^RHYzc8gHCzQ79nT8ez?q)?o|e9t|Qg$IbS0-|Yuxa)w+ zcS1qwg{h*7AjgUw&y43g@?Yny4EiL0Hz#Gud9uPLAK(4y(TBf$@a?Z2zJ2fU&%QnS z`d``dGc4(NY=Ez&5#U)I(TKI%9;cWAT!%o#YWtHjE=C zF@rT@8gqyqwUh$aMtgN-5WS2@0dtPstT5g3WR=+^1hg_#LF~nolims(e@K{^#&0bq z<3E8mPJ&?(t%l4WL>;_N23MK8YDA zY>E8j;Uw}69g7MJvwkTL&xt4$A(~Co)|0I`d2y- zA&67CryY_B#Eo@kDo;z=1Vc4*B9na!8GperT+ImZu@dH<@7R}PoyCGoBQI5YvIY55 z+Kvio`Up8v2o^k>g0+&|u_E1Os8_s%rFh0%PF*sF+S0B=3?gq>R{bDC5z(Qj_q7F0 zr94(B!q66?*=ng1lw>?8Yxk{WK@$44#L_}iAki5wqF40tinuvxwzlO4+(v;M%YU+B zVOB@N;{;1?Jd6u+!r{!73Qyj30)-YrcR%QvE*j&=4V4z+^QT`pIewM~R6kZMG8XWc zs96v!B$fbzL#biA<{pO)Av3i=$Uz5eDP|zzSjq)f1l)E4T;}x0#EO8VcS66c)la3r z(S<o9m@yzo%P{Ou`t;`p0*;y|PM}ce$5wr6|}KA{mK6@Qc_Q3(-P#NxK;S=`lLJcOAGRT)QwW%`Pe49kFZ zW0i{$N(>N@MXW?EIbnoNA*G^B@<8rO*;1FPQH&Fpq-kS`izHU!#L_9EG|-UEsre)+ z@_sbn1D;KCW0_dUmv&J#>v7Y=ki?9H^%PcEYOOW`QX0}RCASQT>8d~EbQlc?D44pJsrBmxko+;;kU zj!O&0ThtTmqaahJ-p?mrnGH)?q9{H-og>Q5XR;-kFO96GY+k^Z#|4-7Zi$VlmQ}M6MT&@~H6@JuG=+Ns#5OlWLg4 zr0*mZ)WtqX-?(8BVlgCn0O|1iWX7_h(j_+r@e9H@*vryGnd_L=?LIoH0cDJcO7--J zwV{E%GsY0qX1IghRkc6kq8ERr3Z9@p2zRR^I7E6*!jnz00e8coYpKU5uOWbd$-t>^5=&X1k0 zSL6E@_BKIIK=L){*E+7>5e;N}P0-Ec-Ni^jb0Zn1sj|$E#TS+rrO0NOOs1O+Hgc-j zg$WHU2#!EfpzFlD)@FZ=&OyYNxVIDSvKLr$T3oqg?4hW!iDGn%?uo=ux~CQ^Iv%xr zQ943}`k10pRdzh7IIj~R3W)UzYf#xrJm`qtvyhTE73_!^tiYyY)CZGPzn;2F19rJs zE|;mMEQ|djDa!091u_=+&uEj+$sXKFV~^sG-;X5gPr;$aMIe8Ewp`w<<1;zfLv*r$ zf!vAb4->4G?71DoS(uo}K|9ONr-a}Z`gi!;0M!+nQq*7HuQ#wPr@l0?%&)#ovFkTp z7hFrI08TfEZJN{3C!6X9#LX(+rY8{?;$p`liVv8D2E{=hqxQET!a>vC4r0(3mOJM<2`8!7?-@XOck4 zu}&jOI^s%p8!1Loh8mbOI{m$Arl6D>Ow)W5=WQR2tL%TJ)uHAyv~4!FXw8(wIWvZ{ zF*9-~ssztxk0`WCV^5-(_3Zd-SeR108$DwVsA@Y zZTu#la2F}Hm7D{d&mNY1blG^rcf3;3kWp<1eCzEwMQ1aY&hM3^h9E;+NcQv+WS$tE z%a{$mA6J) z)#0D`->li>t@_l(dh6oU)O1QAsn0yy6r4xDQX;2IS^$4uV6*V&{Q2ae7T^txxl8J7 zn!#}(WNDVu7O2KdSxbgS?v5}C!D|(h1Bh2s&li7DFf0Mm$lW1$<_`3xI^AF7ISkEX zfPZ#en`I0GnBt_Wj05qus8MSHflmChMFiWKbHi4=*N+Y=ryxK@4%$xXMidUwOQK%p zYh?sRn^rv-S`D|5?XYM)UDhgvYzsz9g?p7k+Het5J@0u7da9b2DNBAYFIzg2@pydX zy()iG4ivSL%v)1gH86=nrVf5iR0{K6p2iBM*@vfRsF~6)5k~8=X&+S^-|5@_fEx0Z zH>1bWzt0x-_{+w@r~_A+aQ`6R+xJNStM}i4tbw*H+muwJKNA z>_2~z6+0A3MM9?WXWU~@Mb&lihnQH$sj&7d5~Azu)6k1A8b-Q0ZM@TT<}&)xdcCY~ zGaa?7&s@^1Ld>z>lzBd5SzOYF*TC2!c3gc zK)pLpGG9t`ruQUi9id|+trKSwV{CiBfVMNKjd@lNsBC=)Ir^my^<>$3i`%w^A} zD2ZmCOa+5esDdnMj+kTtrfda?mOr3-5NWIsrh;m3%-XIq6c`rtjP0 z)s!BwDGthiBveH+Q8Wiv@T9s~US)qhS(uc{&SZy@@Jld5v?4PZ8>-(_0fTmYtog8> zZ#!KFnD{bbA)&vqw#0(2H9a#uD;oyi2$>oA9lcTkSkgnxrw0Ol_gxdRgIcw=Q(?vP z#d11yi-u}Ntph@2K$xk*2HNpb2r#(^NtT~FKm!ZRC9%B1N)}18W#G?T+Ax2#5S8j> zy`e#SzG!JUjgF{6j+XxfT%7DkZxu6r!TVqs)dP2_7XYu~|6z zt92iCfuKlRqiF%7af_lsffjKbH~lcxBl#Ac$L`)9?~bG_6}5}dfJ}eh%|32#c6Mg= zH?yY!i`fcxXN<6qTw*c~AeOU4g)q9ckAlB8qk=X^63bDM0^T-(%X;s?hxObdI_7-> zF9M|Ryf|F**W1^KZ&081vz&7?v-4tNqCxHH0&G2ltvrDQZfjXNXcNREdUSVN*t<3D z^oGfn6zzK5CiDmEDUyHR;<}v;pxTf`6CzWoz~6wI* zXNQ&l=IHWs!^&S8T|PT}=!TA6cIe<`r-t4gI&fJSIZq_D!7}zxW^rU6#^?oeS7Lr( zKSWDV83s;ZdGswXSU#d^!3B_HHOg<^5sB~&G6iE0^2cSK@78}hi)@(vZ@mD1aG+p# zsRp~N?vDp9mv+4adt-G0BMr1_t&tkEnO<$)few)B0Sh&##JKo_m6D>0ZduhW)UZ+Q zZr9Cv+}k8{r;XQXpGOI7sZq3SiGL`F*j#EZHJzG{Nz1<4+NN#aY>NJgY8`tGIwzW2 zO7FxJGmQ?$L70Dau420w=Yc|c40puX{)jUM$hzRI4!Tv33hC_(ZuXTUA>6Tj3_*0sr*5xnUW%E=z zxBHu6HcW%8GoN^jk%1P&!zfN3F5nT+qap5ofM+G06?6;t_fZfeb;h5hP{M&r5}3;; z(+2MWFY4G20`XCz5)HJIAWuIDq}!0r{AAd%`DLIug;t>932TUmbE+pqICAm~iK@v{ ziHS-0&>w&Pm|uzD-p!>lNa51T()zXQ#Wnb#Z zdFeYhmdi^;1J|&&R4y&7ETvZ$*4Dmzy82W1uTIU^+FNPF5v9Sn z&tA%1GGCni?XG1JRLdK6H7XdCi266BHz^@L23}aNDxvE@7R|2 zVhML_xY?dw0-(Jzql%pHeXB(~tj3<}QcLc+&a0gV+*^n%A3g>5;C~>8IkaP5@~Dje zQT%^tawT#p^Q$j^x>%CmurCh{Fdp$;03G{(?Tt)@yz0OOGlnOM2Ty8D3fiP)A(w+S zWWPhJdtS_J8V(X?_YeuQ6Q>yIr#*gO#XY5ve+3Co?&p zsxvvGYFFRUISWh0Ztpf%&Piyb2;;;!Qi^{W!HAI#DGdlW+iTP;E%MTemg_RGf--8u z9A)psc1sB3jox?@t$rbH;1ncDu_~|7bS%qr8+cxv5@lG;yG@55nY5KQ`*SS2S`cpL9i=2!3y_SLkry;z|*@qP%t! z*XI@acw=dP%M_^*VXIgb+0rzNm~v#-V@)8Wil~`6K__#4H5;kVCICcgqHR&$@`!Sb-^I*^MqR zOpO4`~!$s<>B$bFz>CvBktp#!v-nM%dK8~-+>C}5=oJrO(ccqro2<}?V*Vh zq9uJi{Lg?y>bo?%U^x$pU6vF(cvd+erWGMBUlwz&3sF)CNL&Z0b%wYe)aqnvpqNC) z{}=SH(}~ma(yCXSeydbe;uL?szCPmAt8QgH>XwtZfY20{^m;mO2G>eRv1Nk=J=$N8 z4@bY_!OI*WA!CgLuvi18_rPvW+nWfoY9yUR$+*!Z2W67@$m&)cXspWf_C^FZDp6~; zw2?5{YL*^nt~FtJA^8f0!qYd^Oy1FGC5aSiq=e*Du=8MAmt~35XTyJ6t<^VmbtQ z!`tDC?tyJe1|AOV9)ELpufx7hmf&$oo9eVX?4{zwDWz(OklZfk`boMBol%3S`(ZQ2 zQuaexerm(>t&P+--l|+k%RZ>msYYw7xeE(2mBT&yb6sZ>Q&F9!p9ZE;4{_L0b&~;} z4rFHoPKRk&uU6lN<)DAwj?0|SDy0)MR!L>PlntuH&}s+W$ZhE45KfBNHfEcY;UYoA zDsQkN*X^168vfBe-aFdWt!nWrj2W;4>ZF92{@F2@>~i1F85WR)^R|Apz>J%6tK#sF z?;ri{F;E>mdw%?<=a_`t$Z&r6@lR!jb2d3K=PswkB^ervnKOT!+_WpGp%ug?{m7@C zl%j83xT|{A&reTJT>&kn`wsah3$1p`irUuJE=bCE3caQswOfsXQ6O6H6gVwc<6Wy3 zMMb!9$ByEC7a8WNEL_Z8y*PE%s$HBa<}%ZB=M93*`LGZUZecSVI)BPfI7G2z;n3vi zKH-o|bBY7lKZAejPXAz(GJbN$LTKlyyE94FOP-k|91?f{^ zJC8^q`HJddGb2whT7k(u7|BiKwT?tvQvuW-;n{8tna7JfCH5$-5AWYF$rG*4*yyZkJFw113?_} zk;0+ZKm_-|)Z0eQ@8J29qkp`2{KXS-^x*!{<4+Ese0=cFzx?R%@zdky|2lm5%j2K? z?3^>>dZ`^Ny}0rwA1QMNPr|YC;;TP=hG)N!pb~#;y=wQI^XHt=zUTBA=iHoEVpzQ^ zo0B#Rc^y5bco+s4lp>}yXO)y+t^_d^mPLdTTvOcxL!SZoElw+8we}j_b_+8Sq+)Dj z;_|Qc=%Wum;e&L(`uxK$|N7+cqmK?B{aotQAAEN7<3|V2?jJn+vqZ3fkk=Ga+W-3L z!Ha+2U}Df`5BQKHs$bc5CAV#7o-P!j+|hnSo$9tFN%&9)`~;nwV%9iMv}i`}RlCaa zLgL80yvFAk@Nev+pRPc{OX&$AF0tt>Cgyn@{WSc#0_+FuRiJWFpf3>d#i<2c)^k^R z8H6wJAFT5D#IVj^xNANU+@3}0q;IfYh?jpI-i4dQ&TvuYqbG8`Xhs_?DAg;F$cpkY zAfRiobM;1fd9l6I0kx&oi|bQD68)&P)Ba(jfHE)IY}l%Fuilp5?5#cdtzK)XYi->O zn5aKMflM_}dSQdJ{f1Ym5S%+ah=K@C{0d~ruU~=-XyiA3JZw@MbqzukhoImZfT(Em z_yv0Ss5 zBtyAFD#r~}n0F=N)2ep>u@|GHcNF{o0Z>Z;0v-bt0000804rH#SjhHSibf&;0KspQ wJR&10Vg2T1b$AN^0R-s-000Dk0000`O9ci1000010096{0001rA^-pY0PHjwdH?_b delta 8760 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 From c88f0fc453ac7a804e4b41eeda25a11b72a1303b Mon Sep 17 00:00:00 2001 From: fatkun Date: Wed, 6 Mar 2024 12:17:38 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A4=84=E7=90=86base64=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _worker.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/_worker.js b/_worker.js index 9663d3da8..ba91c56da 100644 --- a/_worker.js +++ b/_worker.js @@ -782,8 +782,15 @@ function socks5AddressParser(address) { } } -function revertFakeInfo(content, userID, hostName) { - return content.replace(new RegExp(fakeUserID, 'g'), userID).replace(new RegExp(fakeHostName, 'g'), hostName); +function revertFakeInfo(content, userID, hostName, isBase64) { + if (isBase64) { + content = atob(content) + } + content = content.replace(new RegExp(fakeUserID, 'g'), userID).replace(new RegExp(fakeHostName, 'g'), hostName); + if (isBase64) { + content = btoa(content) + } + return content; } /** @@ -873,19 +880,21 @@ async function getVLESSConfig(userID, hostName, sub, userAgent, RproxyIP) { if (hostName.includes(".workers.dev") || hostName.includes(".pages.dev")) { fakeHostName = "EXAMPLE.workers.dev"; } - var content = ""; - var url = ""; + let content = ""; + let url = ""; + let isBase64 = false; if (userAgent.includes('clash')) { url = `https://${subconverter}/sub?target=clash&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${fakeHostName}%26uuid%3D${fakeUserID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`; } else if (userAgent.includes('sing-box') || userAgent.includes('singbox')) { url = `https://${subconverter}/sub?target=singbox&url=https%3A%2F%2F${sub}%2Fsub%3Fhost%3D${fakeHostName}%26uuid%3D${fakeUserID}%26edgetunnel%3Dcmliu%26proxyip%3D${RproxyIP}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=false&fdn=false&sort=false&new_name=true`; } else { url = `https://${sub}/sub?host=${fakeHostName}&uuid=${fakeUserID}&edgetunnel=cmliu&proxyip=${RproxyIP}`; + isBase64 = true; } try { const response = await fetch(url); content = await response.text(); - return revertFakeInfo(content, userID, hostName); + return revertFakeInfo(content, userID, hostName, isBase64); } catch (error) { console.error('Error fetching content:', error); return `Error fetching content: ${error.message}`; From 669c91c5e333a76d282c4b49b4d8075eef07ddcf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 Mar 2024 04:21:17 +0000 Subject: [PATCH 4/4] Automatically package and commit worker.zip --- worker.zip | Bin 8944 -> 8987 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worker.zip b/worker.zip index ed814b94397ee9df60b1a7b065f0052e5f363367..f3e41533ca1f9d00d837aeb194cca1e53a065ea5 100644 GIT binary patch delta 3112 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 CIO_=j delta 3069 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