rssany 0.1.1 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.env.example +1 -1
  2. package/README.md +32 -50
  3. package/app/plugins/builtin/rss.rssany.js +107 -24
  4. package/app/plugins/site.rssany.js +1 -1
  5. package/dist/index.js +1003 -271
  6. package/dist/index.js.map +1 -1
  7. package/{config.examples.json → init/config.json} +7 -1
  8. package/init/sources.json +353 -0
  9. package/package.json +4 -6
  10. package/statics/401.html +1 -1
  11. package/statics/README.md +1 -1
  12. package/webui/build/200.html +16 -18
  13. package/webui/build/_app/immutable/assets/0.DjU2hdCQ.css +1 -0
  14. package/webui/build/_app/immutable/assets/10.Dj8_pmut.css +1 -0
  15. package/webui/build/_app/immutable/assets/11.qYZMiTb0.css +1 -0
  16. package/webui/build/_app/immutable/assets/12.Ct59LCqW.css +1 -0
  17. package/webui/build/_app/immutable/assets/13.BhO9zvFi.css +1 -0
  18. package/webui/build/_app/immutable/assets/14.CujIhjQK.css +1 -0
  19. package/webui/build/_app/immutable/assets/15.nNGjXhCQ.css +1 -0
  20. package/webui/build/_app/immutable/assets/16.PP9XLDf7.css +1 -0
  21. package/webui/build/_app/immutable/assets/4.9wPHhVwv.css +1 -0
  22. package/webui/build/_app/immutable/assets/6.DSJfjJwx.css +1 -0
  23. package/webui/build/_app/immutable/assets/7.CrNxmd8B.css +1 -0
  24. package/webui/build/_app/immutable/assets/8.Ba5_jYIY.css +1 -0
  25. package/webui/build/_app/immutable/assets/{9.BZheTlzZ.css → 9.m-LCx_kl.css} +1 -1
  26. package/webui/build/_app/immutable/assets/BackToParentRoute.DGk-X5ow.css +1 -0
  27. package/webui/build/_app/immutable/assets/SourcesList.yTBBi3_m.css +1 -0
  28. package/webui/build/_app/immutable/assets/homeFeedPanelStore.BopJZtHu.css +1 -0
  29. package/webui/build/_app/immutable/chunks/{V2-VOe88.js → B-OsL1Ct.js} +1 -1
  30. package/webui/build/_app/immutable/chunks/B2Q1a1-H.js +2 -0
  31. package/webui/build/_app/immutable/chunks/BK3WtZwv.js +1 -0
  32. package/webui/build/_app/immutable/chunks/BQqoDzLx.js +1 -0
  33. package/webui/build/_app/immutable/chunks/BbWUOQ_m.js +1 -0
  34. package/webui/build/_app/immutable/chunks/Bp63qm3L.js +1 -0
  35. package/webui/build/_app/immutable/chunks/{CZDFXKiF.js → C85CNwD2.js} +1 -1
  36. package/webui/build/_app/immutable/chunks/CVzlFH44.js +1 -0
  37. package/webui/build/_app/immutable/chunks/CWNeClHp.js +6 -0
  38. package/webui/build/_app/immutable/chunks/CdMsRjxJ.js +1 -0
  39. package/webui/build/_app/immutable/chunks/Cihqbfi5.js +1 -0
  40. package/webui/build/_app/immutable/chunks/CllQAdvt.js +1 -0
  41. package/webui/build/_app/immutable/chunks/CtijX1u3.js +31 -0
  42. package/webui/build/_app/immutable/chunks/D5GvRCv7.js +1 -0
  43. package/webui/build/_app/immutable/chunks/DEDI7Ecm.js +1 -0
  44. package/webui/build/_app/immutable/chunks/DFuhmi31.js +1 -0
  45. package/webui/build/_app/immutable/chunks/DMWEh-Ek.js +2 -0
  46. package/webui/build/_app/immutable/chunks/DjNLq3TF.js +1 -0
  47. package/webui/build/_app/immutable/chunks/Dt2CddFe.js +1 -0
  48. package/webui/build/_app/immutable/chunks/Dv1VCsiB.js +41 -0
  49. package/webui/build/_app/immutable/chunks/Dw782Tjs.js +1 -0
  50. package/webui/build/_app/immutable/chunks/Xy_fhzQq.js +1 -0
  51. package/webui/build/_app/immutable/chunks/lk5LaiqA.js +1 -0
  52. package/webui/build/_app/immutable/chunks/mW5RwvnK.js +13 -0
  53. package/webui/build/_app/immutable/chunks/{CtHRh_pJ.js → tB7QMF3U.js} +1 -1
  54. package/webui/build/_app/immutable/chunks/xtNWTdbD.js +1 -0
  55. package/webui/build/_app/immutable/entry/app.BcD2eSsQ.js +2 -0
  56. package/webui/build/_app/immutable/entry/start.CbkdJdz1.js +1 -0
  57. package/webui/build/_app/immutable/nodes/0.DSUDmOx2.js +11 -0
  58. package/webui/build/_app/immutable/nodes/1.DU9aYGAb.js +1 -0
  59. package/webui/build/_app/immutable/nodes/10.Db6vw7Ih.js +1 -0
  60. package/webui/build/_app/immutable/nodes/11.BaAcorz3.js +1 -0
  61. package/webui/build/_app/immutable/nodes/12.Cg8AeCSH.js +1 -0
  62. package/webui/build/_app/immutable/nodes/13.nT3SOzEB.js +1 -0
  63. package/webui/build/_app/immutable/nodes/14.DqT4pcrQ.js +1 -0
  64. package/webui/build/_app/immutable/nodes/15.CCLbjxnH.js +1 -0
  65. package/webui/build/_app/immutable/nodes/{12.CMcby_lY.js → 16.DiigpVdP.js} +15 -15
  66. package/webui/build/_app/immutable/nodes/2.BYWOpaxy.js +1 -0
  67. package/webui/build/_app/immutable/nodes/3.DEcYOQc-.js +1 -0
  68. package/webui/build/_app/immutable/nodes/4.DTSxpKm7.js +2 -0
  69. package/webui/build/_app/immutable/nodes/5.CvM1TkLG.js +1 -0
  70. package/webui/build/_app/immutable/nodes/6.Dscr6LkS.js +1 -0
  71. package/webui/build/_app/immutable/nodes/7.Bp60MobD.js +1 -0
  72. package/webui/build/_app/immutable/nodes/8.DwSg0MHh.js +1 -0
  73. package/webui/build/_app/immutable/nodes/9.BeYOUjxR.js +1 -0
  74. package/webui/build/_app/version.json +1 -1
  75. package/sources.example.json +0 -562
  76. package/webui/build/_app/immutable/assets/0.BUAXpTm6.css +0 -1
  77. package/webui/build/_app/immutable/assets/10.I1OuCLrU.css +0 -1
  78. package/webui/build/_app/immutable/assets/11.CrO9xaki.css +0 -1
  79. package/webui/build/_app/immutable/assets/12.BEi6fInA.css +0 -1
  80. package/webui/build/_app/immutable/assets/14.Ctlgn1LZ.css +0 -1
  81. package/webui/build/_app/immutable/assets/2.eJ80XOGm.css +0 -1
  82. package/webui/build/_app/immutable/assets/4.B8-jYAVj.css +0 -1
  83. package/webui/build/_app/immutable/assets/6.Drn-0DON.css +0 -1
  84. package/webui/build/_app/immutable/assets/7.ms2diq_q.css +0 -1
  85. package/webui/build/_app/immutable/assets/8.DKymkjjs.css +0 -1
  86. package/webui/build/_app/immutable/assets/SourcesList.BhtYlRsQ.css +0 -1
  87. package/webui/build/_app/immutable/chunks/BUngiKFg.js +0 -1
  88. package/webui/build/_app/immutable/chunks/Bt0fzibd.js +0 -1
  89. package/webui/build/_app/immutable/chunks/BxHqDcpw.js +0 -1
  90. package/webui/build/_app/immutable/chunks/ByQRbEUX.js +0 -1
  91. package/webui/build/_app/immutable/chunks/C12mHcUp.js +0 -6
  92. package/webui/build/_app/immutable/chunks/C1kQ4pHy.js +0 -1
  93. package/webui/build/_app/immutable/chunks/C74gbb4Q.js +0 -1
  94. package/webui/build/_app/immutable/chunks/CAtemnMo.js +0 -1
  95. package/webui/build/_app/immutable/chunks/CVjCNJia.js +0 -1
  96. package/webui/build/_app/immutable/chunks/CjQQ9_Q2.js +0 -2
  97. package/webui/build/_app/immutable/chunks/D-6mYMI1.js +0 -1
  98. package/webui/build/_app/immutable/chunks/D1Gs8-g3.js +0 -1
  99. package/webui/build/_app/immutable/chunks/D9dRVKgL.js +0 -1
  100. package/webui/build/_app/immutable/chunks/DCEY1XiC.js +0 -1
  101. package/webui/build/_app/immutable/chunks/DI-t-G_K.js +0 -2
  102. package/webui/build/_app/immutable/chunks/DTUxjyWL.js +0 -1
  103. package/webui/build/_app/immutable/chunks/DWJZOHke.js +0 -1
  104. package/webui/build/_app/immutable/chunks/Dgs6d7X5.js +0 -1
  105. package/webui/build/_app/immutable/chunks/DjpPK99f.js +0 -71
  106. package/webui/build/_app/immutable/chunks/DjzVVxpy.js +0 -1
  107. package/webui/build/_app/immutable/chunks/DvtNA-3X.js +0 -1
  108. package/webui/build/_app/immutable/chunks/LQVMBmDN.js +0 -1
  109. package/webui/build/_app/immutable/chunks/Qw0Qgx6J.js +0 -1
  110. package/webui/build/_app/immutable/chunks/bohabpgg.js +0 -1
  111. package/webui/build/_app/immutable/chunks/c-YfbAB_.js +0 -8
  112. package/webui/build/_app/immutable/chunks/tpTQfoNn.js +0 -1
  113. package/webui/build/_app/immutable/entry/app.Cra5Zsz4.js +0 -2
  114. package/webui/build/_app/immutable/entry/start.ToY0Qh0_.js +0 -1
  115. package/webui/build/_app/immutable/nodes/0.D2-xzG_8.js +0 -11
  116. package/webui/build/_app/immutable/nodes/1.CFixzRR6.js +0 -1
  117. package/webui/build/_app/immutable/nodes/10.ayxWydPr.js +0 -1
  118. package/webui/build/_app/immutable/nodes/11.B0JS3E2j.js +0 -1
  119. package/webui/build/_app/immutable/nodes/13.DRpZV72T.js +0 -1
  120. package/webui/build/_app/immutable/nodes/14.DVeJW6bd.js +0 -1
  121. package/webui/build/_app/immutable/nodes/2.DIZ4IPNm.js +0 -1
  122. package/webui/build/_app/immutable/nodes/3.BFSNf0FK.js +0 -1
  123. package/webui/build/_app/immutable/nodes/4.BSsIjejE.js +0 -2
  124. package/webui/build/_app/immutable/nodes/5.COxRT9Oe.js +0 -1
  125. package/webui/build/_app/immutable/nodes/6.CBgQ4YzB.js +0 -1
  126. package/webui/build/_app/immutable/nodes/7.BbzWOL0V.js +0 -6
  127. package/webui/build/_app/immutable/nodes/8.C8120200.js +0 -1
  128. package/webui/build/_app/immutable/nodes/9.BH_BGQQ4.js +0 -1
  129. /package/webui/build/_app/immutable/nodes/{15.BtYZF6FM.js → 17.BtYZF6FM.js} +0 -0
  130. /package/webui/build/_app/immutable/nodes/{16.Ba_qJjp6.js → 18.Ba_qJjp6.js} +0 -0
@@ -0,0 +1 @@
1
+ import{a as u,t as rt,f as p}from"../chunks/BK3WtZwv.js";import"../chunks/lk5LaiqA.js";import{o as Et}from"../chunks/Bp63qm3L.js";import{at as Lt,aC as bt,aD as Ot,f as lt,i as t,au as Nt,d as zt,av as r,az as ot,a5 as o,aw as c,z as h,$ as Jt,ax as s,U as b,ay as H}from"../chunks/BbWUOQ_m.js";import{d as Mt,a as D,e as Bt,s as K}from"../chunks/DMWEh-Ek.js";import{g as Ft}from"../chunks/D5GvRCv7.js";import{i as Q}from"../chunks/Dt2CddFe.js";import{e as Ht}from"../chunks/BQqoDzLx.js";import{h as Kt}from"../chunks/DEDI7Ecm.js";import{s as O,P as Qt,r as it}from"../chunks/B2Q1a1-H.js";import{b as nt}from"../chunks/Dw782Tjs.js";import{i as qt}from"../chunks/CVzlFH44.js";import{a as q}from"../chunks/CBY2biv-.js";import{p as Gt}from"../chunks/C85CNwD2.js";import{g as dt}from"../chunks/CdMsRjxJ.js";import{s as m}from"../chunks/tB7QMF3U.js";import{P as Vt}from"../chunks/CWNeClHp.js";import{D as Wt,P as Xt,a as Yt,b as Zt,c as te,d as gt}from"../chunks/mW5RwvnK.js";var ee=p('<div class="state svelte-1nj0iur">加载中…</div>'),ae=p('<div class="state error svelte-1nj0iur"> </div>'),se=p('<div class="state svelte-1nj0iur">暂无已加载插件。可 <button type="button" class="link-btn svelte-1nj0iur">添加插件</button> 从模板创建,或在 <code>app/plugins/builtin/</code>、<code>.rssany/plugins/</code> 放置 *.rssany.js / *.rssany.ts</div>'),re=p('<div class="state svelte-1nj0iur">无匹配结果</div>'),le=p('<span class="kind-badge svelte-1nj0iur">Source</span>'),oe=p('<button type="button" class="cell-btn cell-btn--primary svelte-1nj0iur">登录</button>'),ie=p('<span class="cell-dash svelte-1nj0iur" title="未声明站点登录">—</span>'),ne=p('<button type="button" class="cell-btn cell-btn--secondary svelte-1nj0iur">检查登录</button>'),de=p('<span class="cell-dash svelte-1nj0iur" title="未声明站点登录">—</span>'),ce=p('<tr class="plugin-row svelte-1nj0iur" tabindex="0"><td class="td-name svelte-1nj0iur"><div class="name-cell svelte-1nj0iur"><span class="plugin-id-text svelte-1nj0iur"> </span> <!></div></td><td class="td-pattern svelte-1nj0iur"><span class="pattern-text svelte-1nj0iur"> </span></td><td class="td-login svelte-1nj0iur"><!></td><td class="td-check svelte-1nj0iur"><!></td></tr>'),ve=p('<div class="plugin-table-wrap svelte-1nj0iur"><table class="plugin-table svelte-1nj0iur"><thead class="svelte-1nj0iur"><tr><th class="th-name svelte-1nj0iur" scope="col">插件名</th><th class="th-pattern svelte-1nj0iur" scope="col">匹配规则</th><th class="th-login svelte-1nj0iur" scope="col">登录</th><th class="th-check svelte-1nj0iur" scope="col">检查登录</th></tr></thead><tbody class="svelte-1nj0iur"></tbody></table></div>'),ue=p('<div class="modal-header svelte-1nj0iur"><!> <!></div> <form class="modal-body svelte-1nj0iur"><p class="add-hint svelte-1nj0iur">对于不支持RSS的站点,添加插件可以覆盖特定站点的解析规则</p> <div class="field svelte-1nj0iur"><span class="field-label svelte-1nj0iur">站点匹配规则</span> <input class="field-input svelte-1nj0iur" type="text" name="listUrlPattern" placeholder="例如 https://www.example.com/* 或 https://example.com/list/{segment}" autocomplete="off"/></div> <div class="field svelte-1nj0iur"><span class="field-label svelte-1nj0iur">插件 id</span> <input class="field-input svelte-1nj0iur" type="text" name="pluginId" placeholder="例如 my-site" autocomplete="off"/></div> <div class="modal-footer svelte-1nj0iur"><div class="modal-footer-right svelte-1nj0iur"><!> <button type="submit" class="btn-save svelte-1nj0iur"> </button></div></div></form>',1),pe=p("<!> <!>",1),fe=p('<div class="feed-wrap svelte-1nj0iur"><div class="feed-col svelte-1nj0iur"><div class="plugins-toolbar-block svelte-1nj0iur"><div class="feed-header svelte-1nj0iur"><div class="header-left svelte-1nj0iur"><input class="filter-input svelte-1nj0iur" type="search" placeholder="过滤…" autocomplete="off"/></div> <div class="header-right svelte-1nj0iur"><button type="button" class="btn-add svelte-1nj0iur" title="添加插件" aria-label="添加插件"><!></button></div></div></div> <div class="plugins-body-scroll svelte-1nj0iur"><!></div></div></div> <!>',1);function Re(jt,yt){Lt(yt,!1);const U=h(),N=h();let $=h([]),z=h(""),G=h(!0),C=h(!1),j=h(""),y=h(""),S=h(!1),J=h("");function ct(){o(j,""),o(y,""),o(C,!0)}function wt(e){o(C,e),e||(o(j,""),o(y,""))}async function Pt(e){e.preventDefault();const a=t(j).trim(),i=t(y).trim();if(!a){m("请填写插件 id","error");return}if(!i){m("请填写支持的站点(URL 或匹配规则)","error");return}o(S,!0);try{const n=await q("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,listUrlPattern:i})}),_=await n.text();let l={};try{l=_?JSON.parse(_):{}}catch{l={}}if(!n.ok){m(l.error||_||`HTTP ${n.status}`,"error");return}l.ok&&(m("已创建插件文件","success"),o(C,!1),o(j,""),o(y,""),await vt(),await dt("/plugins/"+encodeURIComponent(a)))}catch(n){m("请求失败: "+(n instanceof Error?n.message:String(n)),"error")}finally{o(S,!1)}}async function vt(){o(G,!0),o(z,"");try{const a=await(await q("/api/plugins")).json();o($,[...a].sort((i,n)=>(n.hasAuth?1:0)-(i.hasAuth?1:0)))}catch(e){o(z,"加载失败: "+(e instanceof Error?e.message:String(e)))}finally{o(G,!1)}}async function kt(e,a){a.preventDefault(),a.stopPropagation();try{const n=await(await q(`/auth/check?siteId=${encodeURIComponent(e.id)}`)).json();n.ok?m(`${e.id}:${n.authenticated?"✓ 已登录":"✗ 未登录"}`,n.authenticated?"success":"error"):m(n.message||"检查失败","error")}catch(i){m("请求失败: "+(i instanceof Error?i.message:String(i)),"error")}}function ut(e){dt("/plugins/"+encodeURIComponent(e.id))}function $t(e,a){(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),ut(e))}async function xt(e,a){a.preventDefault(),a.stopPropagation();try{const n=await(await q(`/auth/open?siteId=${encodeURIComponent(e.id)}`,{method:"POST"})).json();n.ok?m(n.message||"已打开登录页面","success"):m(n.message||"打开失败","error")}catch(i){m("请求失败: "+(i instanceof Error?i.message:String(i)),"error")}}Et(()=>{vt(),Ft(Gt).url.searchParams.get("openAdd")==="1"&&(o(j,""),o(y,""),o(C,!0),dt("/plugins",{replaceState:!0}))}),bt(()=>t(J),()=>{o(U,t(J).trim().toLowerCase())}),bt(()=>(t(U),t($)),()=>{o(N,t(U)?t($).filter(e=>e.id.toLowerCase().includes(t(U))||e.listUrlPattern.toLowerCase().includes(t(U))):t($))}),Ot(),qt();var pt=fe();Kt("1nj0iur",e=>{zt(()=>{Jt.title=`插件 - ${Qt}`})});var V=lt(pt),ft=r(V),W=r(ft),mt=r(W),X=r(mt),Y=r(X);it(Y),O(Y,"spellcheck",!1),s(X);var _t=c(X,2),Z=r(_t),Dt=r(Z);Vt(Dt,{size:16,"aria-hidden":"true"}),s(Z),s(_t),s(mt),s(W);var ht=c(W,2),Ut=r(ht);{var Ct=e=>{var a=ee();u(e,a)},St=e=>{var a=ae(),i=r(a,!0);s(a),ot(()=>K(i,t(z))),u(e,a)},At=e=>{var a=se(),i=c(r(a));H(5),s(a),D("click",i,ct),u(e,a)},It=e=>{var a=re();u(e,a)},Rt=e=>{var a=ve(),i=r(a),n=c(r(i));Ht(n,5,()=>t(N),_=>_.id,(_,l)=>{var g=ce(),A=r(g),tt=r(A),x=r(tt),I=r(x,!0);s(x);var M=c(x,2);{var et=d=>{var v=le();u(d,v)};Q(M,d=>{t(l),b(()=>t(l).kind==="source")&&d(et)})}s(tt),s(A);var w=c(A),P=r(w),R=r(P,!0);s(P),s(w);var k=c(w),T=r(k);{var B=d=>{var v=oe();D("click",v,st=>xt(t(l),st)),u(d,v)},F=d=>{var v=ie();u(d,v)};Q(T,d=>{t(l),b(()=>t(l).hasAuth)?d(B):d(F,-1)})}s(k);var E=c(k),L=r(E);{var at=d=>{var v=ne();D("click",v,st=>kt(t(l),st)),u(d,v)},f=d=>{var v=de();u(d,v)};Q(L,d=>{t(l),b(()=>t(l).hasAuth)?d(at):d(f,-1)})}s(E),s(g),ot(()=>{O(g,"aria-label",`打开插件 ${t(l),b(()=>t(l).id)??""}`),K(I,(t(l),b(()=>t(l).id))),O(P,"title",(t(l),b(()=>t(l).listUrlPattern))),K(R,(t(l),b(()=>t(l).listUrlPattern)))}),D("click",g,()=>ut(t(l))),D("keydown",g,d=>$t(t(l),d)),u(_,g)}),s(n),s(i),s(a),u(e,a)};Q(Ut,e=>{t(G)?e(Ct):t(z)?e(St,1):(t($),b(()=>t($).length===0)?e(At,2):(t(N),b(()=>t(N).length===0)?e(It,3):e(Rt,-1)))})}s(ht),s(ft),s(V);var Tt=c(V,2);Wt(Tt,{get open(){return t(C)},onOpenChange:wt,children:(e,a)=>{Xt(e,{children:(i,n)=>{var _=pe(),l=lt(_);Yt(l,{class:"modal-overlay"});var g=c(l,2);Zt(g,{class:"modal","aria-describedby":void 0,children:(A,tt)=>{var x=ue(),I=lt(x),M=r(I);te(M,{class:"modal-title",children:(f,d)=>{H();var v=rt("添加插件");u(f,v)},$$slots:{default:!0}});var et=c(M,2);gt(et,{class:"modal-close","aria-label":"关闭",children:(f,d)=>{H();var v=rt("✕");u(f,v)},$$slots:{default:!0}}),s(I);var w=c(I,2),P=c(r(w),2),R=c(r(P),2);it(R),O(R,"spellcheck",!1),s(P);var k=c(P,2),T=c(r(k),2);it(T),O(T,"spellcheck",!1),s(k);var B=c(k,2),F=r(B),E=r(F);gt(E,{class:"btn-cancel",get disabled(){return t(S)},type:"button",children:(f,d)=>{H();var v=rt("取消");u(f,v)},$$slots:{default:!0}});var L=c(E,2),at=r(L,!0);s(L),s(F),s(B),s(w),ot(()=>{L.disabled=t(S),K(at,t(S)?"创建中…":"创建并打开编辑")}),Bt("submit",w,Pt),nt(R,()=>t(y),f=>o(y,f)),nt(T,()=>t(j),f=>o(j,f)),u(A,x)},$$slots:{default:!0}}),u(i,_)},$$slots:{default:!0}})},$$slots:{default:!0}}),nt(Y,()=>t(J),e=>o(J,e)),D("click",Z,ct),u(jt,pt),Nt()}Mt(["click","keydown"]);export{Re as component};
@@ -0,0 +1 @@
1
+ import{a,f as p}from"../chunks/BK3WtZwv.js";import"../chunks/lk5LaiqA.js";import{o as m}from"../chunks/Bp63qm3L.js";import{at as e,au as s,X as i,$ as f}from"../chunks/BbWUOQ_m.js";import{h as n}from"../chunks/DEDI7Ecm.js";import{i as c}from"../chunks/CVzlFH44.js";import{g as d}from"../chunks/CdMsRjxJ.js";var h=p('<p class="redirect-msg svelte-1b0rhdm">正在打开添加插件…</p>');function A(o,r){e(r,!1),m(()=>{d("/plugins?openAdd=1",{replaceState:!0})}),c();var t=h();n("1b0rhdm",l=>{i(()=>{f.title="插件"})}),a(o,t),s()}export{A as component};