HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/page9.js
import{t as T,J as O,f as v,w as k,b as P,P as E,k as L,a3 as z}from"./utils-lib.js?v=1777008528";import{_ as M}from"./index109.js?v=1777008528";import{r as B,e as f,ap as U,c as V,x as F,y as I,C as m,A as $,z as h,D as A}from"./base-lib.js?v=1777008528";import{u as q}from"./hooks2.js?v=1777008528";import{a5 as W,a6 as G,a7 as N,a8 as H,a9 as J,aa as K}from"./index432.js?v=1777008528";import{u as Q}from"./column.js?v=1777008528";const X=["自定义的优先级如下:IP白名单> IP黑名单 > UA白名单> URL白名单 > UA黑名单> URL白名单>URL黑名单>禁止海外>禁止国内>地区拦截>自定义拦截>IDC拦截>User-Agent拦截>CC拦截>","如果在自定义拦截的优先级前面会先执行前面的规则"],Y={eq:"等于/完全匹配",neq:"不等于",like:"模糊匹配",regexp:"正则表达式",in:"包含以下各项",not_in:"不包含以下各项",prefix:"匹配开头",suffix:"匹配结尾",null:"匹配空",gt:"大于",lt:"小于",egt:"大于或等于",elt:"小于或等于",gt_len:"大于这个长度",eq_len:"等于这个长度",elt_len:"UA长度小于或等于"};function _(){return{input:"",select:null,show:!1,widget:{type:"text",value:[]}}}function Ot(){return{type:"and",field:"",condition:"",conOptions:[],left_factor:_(),right_factor:_()}}function kt(){return{type:"or",children:[]}}function x(t){if(Array.isArray(t))return t;if(!t||typeof t!="object")return[];const e=t;return!e.children||!Array.isArray(e.children)?[]:e.children.map(n=>{var o;return{type:"or",children:((o=n.children)!=null?o:[]).filter(l=>{const i=l;return i.type==="option"&&i.option}).map(l=>{var s,c;const i=l.option;return{type:"and",field:i.type,condition:i.operator,conOptions:[],left_factor:{input:(s=i.left_factor)!=null?s:"",select:null,show:!1,widget:{type:"text",value:[]}},right_factor:{input:(c=i.right_factor)!=null?c:"",select:null,show:!1,widget:{type:"text",value:[]}}}})}})}async function Z(){var n,a;const t=await W(),e=(a=(n=t.data)!=null?n:t)!=null?a:{};if(e&&typeof e=="object"){const r=e,{rules:o}=r;if(o&&typeof o=="object"&&!Array.isArray(o))return Object.entries(o).map(([l,i])=>{var c,u,p,d,y;const s=i;return{id:l,name:(c=s.name)!=null?c:"",servers:(u=s.servers)!=null?u:"",status:(p=s.status)!=null?p:0,hit:(d=s.hit)!=null?d:0,root:x(s.root),action:(y=s.action)!=null?y:{type:"",response:{type:""}}}});if(!r.rules&&!Array.isArray(e))return Object.entries(r).map(([l,i])=>{var c,u,p,d,y;const s=i;return{id:l,name:(c=s.name)!=null?c:"",servers:(u=s.servers)!=null?u:"",status:(p=s.status)!=null?p:0,hit:(d=s.hit)!=null?d:0,root:x(s.root),action:(y=s.action)!=null?y:{type:"",response:{type:""}}}})}return[]}async function tt(){var n,a;const t=await H(),e=(a=(n=t.data)!=null?n:t)!=null?a:{};return e!=null?e:{action:[],sitemap:{},options:[]}}async function et(t,e){await J({id:t,status:e})}async function nt(t){await K({id:t})}async function rt(t){return G(t)}async function Bt(t,e){return N(t,e)}function ot(t){return!t||Array.isArray(t)&&t.length===0?"所有站点":Array.isArray(t)?t.join(","):t.split(",").filter(Boolean).join(",")}function at(t,e){var r,o,l;if(!t)return"-";const n=(r=e==null?void 0:e.action)==null?void 0:r.find(i=>i.type===t.type);if(!n)return t.type;const a=(l=(o=n.response)==null?void 0:o.find(i=>{var s;return i.type===((s=t.response)==null?void 0:s.type)}))==null?void 0:l.text;return a?"".concat(n.text,"(").concat(a,")"):n.text}function st(t,e){if(!t||t.length===0)return"-";const a=t.flatMap(r=>{var o;return((o=r.children)!=null?o:[]).map(l=>l.field)}).filter(Boolean).map(r=>{var l,i;const o=(l=e==null?void 0:e.options)==null?void 0:l.find(s=>s.type===r);return(i=o==null?void 0:o.text)!=null?i:r});return[...new Set(a)].join(",")||"-"}function S(t,e){const n=t.find(a=>a.type===e);return e==="ip_range"&&n&&(n.right_widget.hint+="用“,”分割"),n}function j(t){return t.map(e=>{var n;return{label:(n=Y[e])!=null?n:e,value:e}})}function St(t,e){var l,i,s,c,u,p;const n=Array.isArray(t.servers)?t.servers:t.servers?t.servers.split(",").filter(Boolean):[],a=it(t.root,e),r=(i=(l=t.action)==null?void 0:l.type)!=null?i:"",o=(u=(c=(s=t.action)==null?void 0:s.response)==null?void 0:c.type)!=null?u:"";return{name:(p=t.name)!=null?p:"",servers:n,root:a,actionType:r,responseType:o}}function it(t,e){return!t||t.length===0?[]:t.map(n=>{var a;return{type:"or",children:((a=n.children)!=null?a:[]).map(r=>lt(r,e))}})}function lt(t,e){var o,l,i,s,c,u,p,d;if(!t.field)return{...t};const n=S(e,t.field);if(!n)return{...t};const a=(o=n.right_widget)!=null?o:{type:"text",value:[]};let r=(i=(l=t.right_factor)==null?void 0:l.select)!=null?i:null;return!r&&((s=t.right_factor)!=null&&s.input)&&["list_mult","mult","area_select"].includes(a.type)?r=t.right_factor.input.split(",").filter(Boolean):a.type==="select"&&(r=t.right_factor.input),{...t,type:"and",conOptions:j(n.operators),left_factor:{...(c=t.left_factor)!=null?c:_(),show:n.left_factor_enabled,widget:(u=n.left_widget)!=null?u:{type:"text",value:[]}},right_factor:{...(p=t.right_factor)!=null?p:_(),show:(d=n.right_factor_enabled)!=null?d:!0,widget:a,select:r}}}function jt(t){const e=D(t.root),n={type:t.actionType};return n.response={type:t.responseType,response_id:0,status:0,headers:{},body:""},{name:t.name,servers:t.servers,root:e,action:n,status:1,is_global:0,priority:0}}function D(t){return{logic:"or",type:"block",option:null,children:t.map(e=>({logic:"and",type:"block",option:null,children:e.children.map(n=>ct(n))}))}}function ct(t){return{type:"option",logic:"",children:[],option:{type:t.field,operator:t.condition,left_factor:w(t.left_factor),right_factor:w(t.right_factor)}}}function w(t){var e;return Array.isArray(t.select)&&t.select.length>0?t.select.join(","):typeof t.select=="string"&&t.select?t.select:(e=t.input)!=null?e:""}function Dt(t,e){var r,o,l,i;const n=S(e,t.field);if(!n)return t;const a=j(n.operators);return{...t,condition:(r=n.operators[0])!=null?r:"",conOptions:a,left_factor:{..._(),show:n.left_factor_enabled,widget:(o=n.left_widget)!=null?o:{type:"text",value:[]}},right_factor:{..._(),show:(l=n.right_factor_enabled)!=null?l:!0,widget:(i=n.right_widget)!=null?i:{type:"text",value:[]}}}}const g=B(null),R=B(!1),ut=(t,e,n,a)=>[{prop:"name",label:"规则名",minWidth:120},{prop:"servers",label:"网站名",maxWidth:280,render:r=>f("span",null,[ot(r.servers)])},{prop:"status",label:"状态",width:80,render:r=>f(U,{modelValue:!!r.status,onChange:o=>t(r,o?1:0)},null)},{prop:"hit",label:"命中次数",width:90},{prop:"root",label:"匹配规则",render:r=>f("span",null,[st(r.root,g.value)])},{prop:"action",label:"执行操作",render:r=>f("span",null,[at(r.action,g.value)])},Q([{title:"复制",onClick:r=>n(r)},{title:"编辑",onClick:r=>e(r)},{title:"删除",onClick:r=>a(r)}])];async function C(){R.value||(g.value=await tt(),R.value=!0)}const{BtTable:pt,BtPage:Pt,refresh:b,BtRefresh:ft}=q({request:async()=>{await C();const t=await Z();return{data:t,total:t.length}},columns:ut(dt,yt,mt,ht)});async function dt(t,e){const n=t.status;t.status=e;try{await et(t.id,e),v().success(e?"已启用":"已禁用")}catch(a){t.status=n}}async function _t(){await C(),T({title:"添加自定义拦截规则",area:"800px",component:()=>O(()=>import("./index451.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{mode:"create",configHelp:g.value},btn:["确定","取消"],onConfirm:async()=>(b(),!0)})}async function yt(t){await C(),T({title:"编辑自定义规则 - ".concat(t.name),area:"800px",component:()=>O(()=>import("./index451.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{mode:"edit",row:t,configHelp:g.value},btn:["保存","取消"],onConfirm:async()=>(b(),!0)})}async function mt(t){var e,n,a,r,o;try{await k({content:"是否复制该规则,并创建为新规则?"});const l=Math.random().toString(36).slice(2,8),i={name:"".concat(t.name,"_copy_").concat(l),servers:Array.isArray(t.servers)?t.servers:t.servers.split(",").filter(Boolean),status:1,is_global:0,priority:0,root:D(t.root),action:{type:(n=(e=t.action)==null?void 0:e.type)!=null?n:"",response:{type:(o=(r=(a=t.action)==null?void 0:a.response)==null?void 0:r.type)!=null?o:"",response_id:0,status:0,headers:{},body:""}}},s=await rt(i);if(s.status)return b(),!0;v().error(s.msg)}catch(l){}}async function ht(t){try{await k({content:"确认删除规则「".concat(t.name,"」?删除后不可恢复。")}),await nt(t.id),v().success("规则已删除"),b()}catch(e){}}const gt={class:"flex flex-col"},bt={class:"flex items-center"},vt=V({__name:"page",setup(t){const{mainHeight:e}=P(),n=X.map(r=>({content:r}));function a(){window.open("https://www.bt.cn/bbs/thread-134263-1-1.html","_blank")}return(r,o)=>{const l=E,i=L,s=M,c=z;return F(),I("div",gt,[f(s,null,{"header-left":m(()=>[$("div",bt,[f(l,{type:"primary",onClick:h(_t)},{default:m(()=>[...o[0]||(o[0]=[A("添加自定义拦截",-1)])]),_:1},8,["onClick"]),f(i,{class:"ml-4",onClick:a},{default:m(()=>[...o[1]||(o[1]=[A("查看教程",-1)])]),_:1})])]),content:m(()=>[f(h(pt),{"max-height":h(e)-236},null,8,["max-height"])]),"header-right":m(()=>[f(h(ft))]),_:1}),f(c,{"list-style":"disc",options:h(n)},null,8,["options"])])}}}),Et=Object.freeze(Object.defineProperty({__proto__:null,default:vt},Symbol.toStringTag,{value:"Module"}));export{kt as a,jt as b,rt as c,Ot as d,Dt as e,Et as f,St as p,Bt as u};
function __vite__mapDeps(indexes) {
  if (!__vite__mapDeps.viteFileDeps) {
    __vite__mapDeps.viteFileDeps = []
  }
  return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}