1import{_ as D}from"./B5bxtIz2.js";import{d as G,G as z,r as f,o as A,c as l,f as t,e as E,w as W,t as r,P as w,u as i,n as S,i as m,F as k,h as P,a as c,j as $}from"./BkU8sLL4.js";import{C as N}from"./BTmWE9Wq.js";const L={class:"container mx-auto p-4"},M={class:"mb-6 flex flex-wrap items-center gap-4 bg-opacity-50 bg-base-200 p-4 rounded-xl backdrop-blur-sm"},R={class:"flex-1"},T={class:"text-xl font-bold"},V={class:"text-sm opacity-70 text-base-content"},F={class:"join"},O=["disabled"],J=["disabled"],K={class:"card bg-opacity-50 bg-base-100 shadow-xl backdrop-blur-sm"},U={class:"card-body"},q={key:0,class:"flex justify-center items-center py-8"},H={key:1,class:"alert alert-error"},Q={class:"text-sm"},X={key:2,class:"space-y-6"},Y={class:"rounded-box bg-opacity-50 bg-base-200 p-6 backdrop-blur-sm"},Z={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},tt={class:"font-medium opacity-70 text-base-content"},st={class:"font-mono text-primary"},et={class:"rounded-box bg-opacity-50 bg-base-200 p-6 backdrop-blur-sm"},ot={class:"overflow-x-auto"},at={class:"table table-zebra w-full"},rt={class:"font-medium bg-opacity-30 bg-base-100"},it={class:"text-right font-mono bg-opacity-30 bg-base-100"},nt={class:"text-right font-mono bg-opacity-30 bg-base-100"},lt={class:"text-right font-mono bg-opacity-30 bg-base-100"},ct={class:"text-right font-mono bg-opacity-30 bg-base-100"},dt={class:"text-right font-mono bg-opacity-30 bg-base-100"},bt={key:3,class:"whitespace-pre-wrap text-sm font-mono bg-opacity-30 bg-base-200 p-4 rounded-lg"},pt="https://lg.pysio.online/api/",gt=G({__name:"[protocol]",setup(ut){const h=z(),_=f(""),b=f(""),p=f(!1),g=f(!1),y=f({basic:{},routeStats:{}}),j=o=>({"Import updates":"å¯¼å ¥æ´æ°","Import withdraws":"å¯¼å ¥æ¤å","Export updates":"å¯¼åºæ´æ°","Export withdraws":"å¯¼åºæ¤å","BGP Next hop":"BGPä¸ä¸è·³","IGP IPv6 table":"IGP IPv6表"})[String(o)]||String(o),u=o=>{if(!o||o==="---")return"---";const s=parseInt(o);return isNaN(s)?o:s.toLocaleString()},v=o=>{const s=o.split(` 2`),n={basic:{},routeStats:{}};let a=!1;return s.forEach(e=>{if(e=e.trim(),e.startsWith("BGP state:")?n.basic.BGPç¶æ=e.split(":")[1].trim():e.startsWith("Neighbor address:")?n.basic.é»å± å°å=e.split(":")[1].trim():e.startsWith("Neighbor AS:")?n.basic.é»å± AS=e.split(":")[1].trim():e.startsWith("Local AS:")?n.basic.æ¬å°AS=e.split(":")[1].trim():e.startsWith("Neighbor ID:")&&(n.basic.é»å± ID=e.split(":")[1].trim()),e.includes("Route change stats:"))a=!0;else if(a&&e.includes(":")){const[B,x]=e.split(":").map(d=>d.trim());if(x){const d=x.split(/\s+/).filter(C=>C!=="");n.routeStats[B]={received:d[0],rejected:d[1],filtered:d[2],ignored:d[3],accepted:d[4]}}}else a&&!e.includes(":")&&e!==""&&(a=!1)}),n},I=async()=>{p.value=!0,b.value="";try{const o=`protocol_${h.params.server}_${h.params.protocol}`,s=N.get(o);if(s){_.value=s,y.value=v(s);return}const a=await(await fetch(pt,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({servers:[h.params.server],type:"bird",args:`show protocols all ${h.params.protocol}`})})).json();if(a.error){b.value=a.error;return}a.result&&a.result.length>0&&(_.value=a.result[0].data,y.value=v(a.result[0].data),N.set(o,a.result[0].data))}catch(o){console.error("è·åå议详æ 失败:",o),b.value="请æ±å¤±è´¥: "+(o instanceof Error?o.message:String(o))}finally{p.value=!1}};return A(()=>{I()}),(o,s)=>{const n=D;return c(),l("div",L,[t("div",M,[E(n,{to:"/lg",class:"btn btn-ghost btn-sm gap-2 hover:bg-opacity-50 hover:bg-base-300"},{default:W(()=>[...s[2]||(s[2]=[t("i",{class:"fas fa-arrow-left"},null,-1),m(" è¿å ",-1)])]),_:1}),t("div",R,[t("h2",T,r((o._.provides[w]||o.$route).params.server),1),t("p",V,"show protocols all "+r((o._.provides[w]||o.$route).params.protocol),1)]),t("div",F,[t("button",{class:S(["join-item btn btn-sm",i(g)?"btn-ghost hover:bg-opacity-50 hover:bg-base-300":"btn-primary"]),onClick:s[0]||(s[0]=()=>g.value=!1),disabled:i(p)},[...s[3]||(s[3]=[t("i",{class:"fas fa-code mr-2"},null,-1),m(" åå§æ°æ® ",-1)])],10,O),t("button",{class:S(["join-item btn btn-sm",i(g)?"btn-primary":"btn-ghost hover:bg-opacity-50 hover:bg-base-300"]),onClick:s[1]||(s[1]=()=>g.value=!0),disabled:i(p)},[...s[4]||(s[4]=[t("i",{class:"fas fa-chart-line mr-2"},null,-1),m(" åæè§å¾ ",-1)])],10,J)])]),t("div",K,[t("div",U,[i(p)?(c(),l("div",q,[...s[5]||(s[5]=[t("div",{class:"loading loading-spinner loading-lg text-primary"},null,-1),t("span",{class:"ml-2 opacity-70 text-base-content"},"æ£å¨è·å详æ ...",-1)])])):i(b)?(c(),l("div",H,[s[6]||(s[6]=t("i",{class:"fas fa-exclamation-circle"},null,-1)),t("pre",Q,r(i(b)),1)])):i(g)?(c(),l("div",X,[t("div",Y,[s[7]||(s[7]=t("h3",{class:"flex items-center gap-2 text-lg font-bold mb-4"},[t("i",{class:"fas fa-info-circle text-primary"}),m(" åºæ¬ä¿¡æ¯ ")],-1)),t("div",Z,[(c(!0),l(k,null,P(i(y).basic,(a,e)=>(c(),l("div",{key:e,class:"flex items-center justify-between p-3 rounded-lg bg-opacity-30 bg-base-100 hover:bg-opacity-30 hover:bg-base-300 transition-colors"},[t("span",tt,r(e),1),t("span",st,r(a),1)]))),128))])]),t("div",et,[s[9]||(s[9]=t("h3",{class:"flex items-center gap-2 text-lg font-bold mb-4"},[t("i",{class:"fas fa-chart-bar text-primary"}),m(" è·¯ç±ç»è®¡ ")],-1)),t("div",ot,[t("table",at,[s[8]||(s[8]=t("thead",null,[t("tr",null,[t("th",{class:"bg-opacity-50 bg-base-300 font-bold"},"ç±»å"),t("th",{class:"bg-opacity-50 bg-base-300 text-right"},"æ¥æ¶"),t("th",{class:"bg-opacity-50 bg-base-300 text-right"},"æç»"),t("th",{class:"bg-opacity-50 bg-base-300 text-right"},"è¿æ»¤"),t("th",{class:"bg-opacity-50 bg-base-300 text-right"},"忽ç¥"),t("th",{class:"bg-opacity-50 bg-base-300 text-right"},"æ¥å")])],-1)),t("tbody",null,[(c(!0),l(k,null,P(i(y).routeStats,(a,e)=>(c(),l("tr",{key:e},[t("td",rt,r(j(e)),1),t("td",it,r(u(a.received)),1),t("td",nt,r(u(a.rejected)),1),t("td",lt,r(u(a.filtered)),1),t("td",ct,r(u(a.ignored)),1),t("td",dt,r(u(a.accepted)),1)]))),128))])])])])])):(c(),l("pre",bt,r(i(_)),1))])])])}}}),yt=$(gt,[["__scopeId","data-v-efbd1dd8"]]);export{yt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.