🤞 Sync 2026-04-21 20:24:56

This commit is contained in:
github-actions[bot] committed 2026-04-21 20:24:56 +08:00
1 parent 13ee193edd
commit 57fecfdd0b
19 files changed
+990 -476

No files matched your search

+1 -1
View File
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.4.15
PKG_RELEASE:=86
PKG_RELEASE:=87
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
@@ -380,7 +380,7 @@ if api.compare_versions(xray_version, ">=", "26.1.31") then
o:depends({ [_n("tls")] = true, [_n("reality")] = false })
o:depends({ [_n("protocol")] = "hysteria2" })
o.description = translate("Once set, connects only when the server’s chain fingerprint matches.") ..
string.format("<a href='#' onclick='fetchCertSha256(); return false;'>%s</a>", "[ " .. translate("Fetch Manually") .. " ]")
string.format("<a href='javascript:void(0)' onclick='javascript:fetchCertSha256(this)'>%s</a>", "→ " .. translate("Fetch Manually"))
o = s:option(Value, _n("tls_CertByName"), translate("TLS Certificate Name (CertName)"), translate("TLS is used to verify the leaf certificate name."))
o:depends({ [_n("tls")] = true, [_n("reality")] = false })
@@ -53,8 +53,15 @@ local api = self.api
});
}
function fetchCertSha256() {
function fetchCertSha256(el) {
if (el.getAttribute("data-loading") === "1") return;
el.setAttribute("data-loading", "1");
el.style.pointerEvents = "none";
el.style.color = "red";
XHR.get('<%=api.url("fetch_certsha256")%>', { id: node_id }, function(x, res) {
el.setAttribute("data-loading", "0");
el.style.pointerEvents = "";
el.style.color = "";
if (!x || x.status !== 200) {
alert("<%:Error%>");
return;
+1 -1
View File
@@ -9,7 +9,7 @@ LUCI_TITLE:=LuCI support for quickstart
LUCI_DEPENDS:=+quickstart +luci-app-ttyd +luci-i18n-ttyd-zh-cn
LUCI_PKGARCH:=all
PKG_VERSION:=0.12.6-r1
PKG_VERSION:=0.12.7-r1
# PKG_RELEASE MUST be empty for luci.mk
PKG_RELEASE:=
@@ -1,3 +1,3 @@
var go=Object.defineProperty,vo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var xa=Object.getOwnPropertySymbols;var ho=Object.prototype.hasOwnProperty,_o=Object.prototype.propertyIsEnumerable;var We=(o,n,a)=>n in o?go(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a,st=(o,n)=>{for(var a in n||(n={}))ho.call(n,a)&&We(o,a,n[a]);if(xa)for(var a of xa(n))_o.call(n,a)&&We(o,a,n[a]);return o},vt=(o,n)=>vo(o,bo(n));var xo=(o,n)=>()=>(n||o((n={exports:{}}).exports,n),n.exports);var ve=(o,n,a)=>(We(o,typeof n!="symbol"?n+"":n,a),a);var L=(o,n,a)=>new Promise((l,c)=>{var d=g=>{try{k(a.next(g))}catch(p){c(p)}},u=g=>{try{k(a.throw(g))}catch(p){c(p)}},k=g=>g.done?l(g.value):Promise.resolve(g.value).then(d,u);k((a=a.apply(o,n)).next())});import{a as wo,c as ko,d as we,b as I,e as Q,u as e,o as r,f as s,g as t,t as i,n as ht,h as D,i as Y,r as _t,j as lt,k as Yt,w as O,v as Rt,l as Ia,m as Z,p as V,q as E,s as $t,x as Pt,y as pt,F as U,z as tt,A as at,B as jt,C as ct,D as ut,E as ke,G as ee,T as St,H as Nt,I as ft,J as xt,K as dt,L as gt,M as Bt,N as Xe,O as Ma,P as La,Q as Oa,R as ta,S as ea,U as Na,V as aa,W as Pe,X as yo,Y as oa,Z as ye,_ as Fo,$ as Eo,a0 as na,a1 as $o,a2 as Te,a3 as Co,a4 as Ie,a5 as Do,a6 as Bo,a7 as Yo,a8 as Ao,a9 as So,aa as zo,ab as Po,ac as To}from"./vendor.js?v=4c8355cf";var sT=xo(ae=>{const Io=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))l(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const u of d.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function a(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerpolicy&&(d.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?d.credentials="include":c.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(c){if(c.ep)return;c.ep=!0;const d=a(c);fetch(c.href,d)}};Io();const Gt={language:void 0,numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Mo=o=>L(ae,null,function*(){const n=window.vue_lang;new Date().getTime();let a={};try{const d=yield wo({url:window.vue_lang_data,method:"GET"});d.data&&(a=d.data)}catch(d){console.log(d)}const l=ko({defaultLanguage:n,mutedLanguages:["zh-cn"],translations:a,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});o.use(l),Gt.language=l;const{$gettext:c}=l;window.$i18n=c;try{Gt.numberFormat=new Intl.NumberFormat(n,{notation:"compact"})}catch(d){console.error("Intl.NumberFormat unsupported lang",n,d)}}),J=()=>{if(Gt.language)return Gt.language;throw new Error("I18N Uninitialized!")},Me=()=>({$gettext:(o,n,a)=>{if(Gt.language)return Gt.language.$gettext(o,n,a);throw new Error("I18N Uninitialized!")},$ngettext:(o,n,a,l,c)=>{if(Gt.language)return Gt.language.$ngettext(o,n,a,l,c);throw new Error("I18N Uninitialized!")}}),De=o=>typeof o=="number"?Gt.numberFormat.format(o):"?",{$gettext:Lo,$ngettext:cT}=Me(),Va=(o,n)=>L(ae,null,function*(){return new Promise((a,l)=>L(ae,null,function*(){try{const c=yield fetch(o,n);if(Math.floor(c.status/100)!=2)throw c.status+" "+c.statusText;const d=st({},c);d.data=yield c.json(),a(d)}catch(c){const d=c;l(Lo("\u7F51\u7EDC\u5F02\u5E38\uFF1A")+((d==null?void 0:d.message)||c))}}))});class ia{constructor(n){ve(this,"config",{baseURL:"",headers:{}});ve(this,"useRequest",n=>n);ve(this,"useResponse",n=>n);ve(this,"useError",n=>n);n.baseURL&&(this.config.baseURL=n.baseURL),n.headers&&(this.config.headers=n.headers)}static create(n){return new ia(n)}Do(n,a){return L(this,null,function*(){return new Promise((l,c)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.json(),l(this.useResponse(g))}catch(d){this.useError(d),c(d)}}))})}TEXT(n,a){return L(this,null,function*(){return new Promise((l,c)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.text(),l(g)}catch(d){this.useError(d),c(d)}}))})}interceptors(){const n=this;return{requset:{use(a){n.useRequest=a}},response:{use(a,l){n.useResponse=a,l&&(n.useError=l)}}}}}const Ga=ia.create({});Ga.interceptors().requset.use(o=>o);Ga.interceptors().response.use(o=>(o.data&&o.data.success==null&&o.data.success==0,o));const{$gettext:ja,$ngettext:uT}=Me(),Oo="/cgi-bin/luci/istore",No="/cgi-bin/luci/admin";let Ae=!1;const W=(o,n)=>(o.indexOf("//")==-1&&(o=`${Oo}${o}`),Va(o,n).then(a=>(a!=null&&a.data&&a.data.success==-1001&&a.data.error=="Forbidden"&&(Ae||(Ae=!0,alert(ja("\u767B\u5F55\u8FC7\u671F\uFF0C\u8BF7\u91CLine truncated
var go=Object.defineProperty,vo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var xa=Object.getOwnPropertySymbols;var ho=Object.prototype.hasOwnProperty,_o=Object.prototype.propertyIsEnumerable;var We=(o,n,a)=>n in o?go(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a,st=(o,n)=>{for(var a in n||(n={}))ho.call(n,a)&&We(o,a,n[a]);if(xa)for(var a of xa(n))_o.call(n,a)&&We(o,a,n[a]);return o},vt=(o,n)=>vo(o,bo(n));var xo=(o,n)=>()=>(n||o((n={exports:{}}).exports,n),n.exports);var ve=(o,n,a)=>(We(o,typeof n!="symbol"?n+"":n,a),a);var L=(o,n,a)=>new Promise((l,u)=>{var d=g=>{try{k(a.next(g))}catch(p){u(p)}},c=g=>{try{k(a.throw(g))}catch(p){u(p)}},k=g=>g.done?l(g.value):Promise.resolve(g.value).then(d,c);k((a=a.apply(o,n)).next())});import{a as wo,c as ko,d as we,b as I,e as Q,u as e,o as r,f as s,g as t,t as i,n as ht,h as D,i as Y,r as _t,j as lt,k as Yt,w as O,v as Rt,l as Ia,m as Z,p as V,q as E,s as $t,x as Pt,y as pt,F as U,z as tt,A as at,B as jt,C as ut,D as ct,E as ke,G as ee,T as St,H as Nt,I as ft,J as xt,K as dt,L as gt,M as Bt,N as Xe,O as Ma,P as La,Q as Oa,R as ta,S as ea,U as Na,V as aa,W as Pe,X as yo,Y as oa,Z as ye,_ as Fo,$ as Eo,a0 as na,a1 as $o,a2 as Te,a3 as Co,a4 as Ie,a5 as Do,a6 as Bo,a7 as Yo,a8 as Ao,a9 as So,aa as zo,ab as Po,ac as To}from"./vendor.js?v=4c8355cf";var sT=xo(ae=>{const Io=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))l(u);new MutationObserver(u=>{for(const d of u)if(d.type==="childList")for(const c of d.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function a(u){const d={};return u.integrity&&(d.integrity=u.integrity),u.referrerpolicy&&(d.referrerPolicy=u.referrerpolicy),u.crossorigin==="use-credentials"?d.credentials="include":u.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(u){if(u.ep)return;u.ep=!0;const d=a(u);fetch(u.href,d)}};Io();const Gt={language:void 0,numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Mo=o=>L(ae,null,function*(){const n=window.vue_lang;new Date().getTime();let a={};try{const d=yield wo({url:window.vue_lang_data,method:"GET"});d.data&&(a=d.data)}catch(d){console.log(d)}const l=ko({defaultLanguage:n,mutedLanguages:["zh-cn"],translations:a,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});o.use(l),Gt.language=l;const{$gettext:u}=l;window.$i18n=u;try{Gt.numberFormat=new Intl.NumberFormat(n,{notation:"compact"})}catch(d){console.error("Intl.NumberFormat unsupported lang",n,d)}}),J=()=>{if(Gt.language)return Gt.language;throw new Error("I18N Uninitialized!")},Me=()=>({$gettext:(o,n,a)=>{if(Gt.language)return Gt.language.$gettext(o,n,a);throw new Error("I18N Uninitialized!")},$ngettext:(o,n,a,l,u)=>{if(Gt.language)return Gt.language.$ngettext(o,n,a,l,u);throw new Error("I18N Uninitialized!")}}),De=o=>typeof o=="number"?Gt.numberFormat.format(o):"?",{$gettext:Lo,$ngettext:uT}=Me(),Va=(o,n)=>L(ae,null,function*(){return new Promise((a,l)=>L(ae,null,function*(){try{const u=yield fetch(o,n);if(Math.floor(u.status/100)!=2)throw u.status+" "+u.statusText;const d=st({},u);d.data=yield u.json(),a(d)}catch(u){const d=u;l(Lo("\u7F51\u7EDC\u5F02\u5E38\uFF1A")+((d==null?void 0:d.message)||u))}}))});class ia{constructor(n){ve(this,"config",{baseURL:"",headers:{}});ve(this,"useRequest",n=>n);ve(this,"useResponse",n=>n);ve(this,"useError",n=>n);n.baseURL&&(this.config.baseURL=n.baseURL),n.headers&&(this.config.headers=n.headers)}static create(n){return new ia(n)}Do(n,a){return L(this,null,function*(){return new Promise((l,u)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.json(),l(this.useResponse(g))}catch(d){this.useError(d),u(d)}}))})}TEXT(n,a){return L(this,null,function*(){return new Promise((l,u)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.text(),l(g)}catch(d){this.useError(d),u(d)}}))})}interceptors(){const n=this;return{requset:{use(a){n.useRequest=a}},response:{use(a,l){n.useResponse=a,l&&(n.useError=l)}}}}}const Ga=ia.create({});Ga.interceptors().requset.use(o=>o);Ga.interceptors().response.use(o=>(o.data&&o.data.success==null&&o.data.success==0,o));const{$gettext:ja,$ngettext:cT}=Me(),Oo="/cgi-bin/luci/istore",No="/cgi-bin/luci/admin";let Ae=!1;const W=(o,n)=>(o.indexOf("//")==-1&&(o=`${Oo}${o}`),Va(o,n).then(a=>(a!=null&&a.data&&a.data.success==-1001&&a.data.error=="Forbidden"&&(Ae||(Ae=!0,alert(ja("\u767B\u5F55\u8FC7\u671F\uFF0C\u8BF7\u91CLine truncated
`+k.value+`
`+d.value,disabled:""},null,8,RF)]),t("div",WF,[t("div",{class:"close",onClick:m,disabled:c.value},i(e(a)("\u5173\u95ED")),9,HF),c.value?D("",!0):(r(),s("div",{key:0,class:"next",onClick:v,disabled:c.value},i(e(a)("\u8FD0\u884C")),9,JF))])])]),_:1}))}});var KF=N(ZF,[["__scopeId","data-v-abf07ee0"]]);const QF={class:"actioner-container"},XF={class:"actioner-container_header"},tE={class:"tabs"},eE={class:"actioner-container_body"},aE={key:0,class:"table"},oE={class:"tr"},nE={class:"td left"},iE={class:"td left"},rE={class:"tr"},sE={class:"td left"},dE={class:"td left"},lE={class:"tr"},cE={class:"td left"},uE={class:"td left"},pE=["value"],fE=["value"],mE=["value"],gE={class:"actioner-container_footer"},vE=["disabled"],bE=I({props:{close:{type:Function,required:!0},disk:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),c=E(!1),d=E("info"),u=b=>{switch(d.value=b,b){case"info":break;case"attribute":m();break;case"log":p();break;case"extend":v();break}},k=()=>{c.value=!0,n.close()},g=gt({log:"",attribute:"",extend:""}),p=()=>L(this,null,function*(){try{const b=yield G.Smart.Test.Result.POST({type:"selftest",devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.log=y.result),f&&(g.log=f)}}catch(b){g.log=b}}),m=()=>L(this,null,function*(){try{const b=yield G.Smart.Attribute.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.attribute=y.result),f&&(g.attribute=f)}}catch(b){g.attribute=b}}),v=()=>L(this,null,function*(){try{const b=yield G.Smart.Extend.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.extend=y.result),f&&(g.extend=f)}}catch(b){g.extend=b}});return(b,y)=>(r(),Z(je,null,{default:V(()=>[t("div",QF,[t("div",XF,[t("ul",tE,[t("li",{class:lt({"active cbi-tab":d.value=="info"}),onClick:y[0]||(y[0]=f=>u("info"))},[t("a",null,i(e(a)("\u8BBE\u5907\u4FE1\u606F")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="attribute"}),onClick:y[1]||(y[1]=f=>u("attribute"))},[t("a",null,i(e(a)("\u5C5E\u6027")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="log"}),onClick:y[2]||(y[2]=f=>u("log"))},[t("a",null,i(e(a)("\u81EA\u68C0\u65E5\u5FD7")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="extend"}),onClick:y[3]||(y[3]=f=>u("extend"))},[t("a",null,i(e(a)("\u6269\u5C55\u4FE1\u606F")),1)],2)])]),t("div",eE,[d.value=="info"?(r(),s("table",aE,[t("tr",oE,[t("td",nE,i(e(a)("\u8BBE\u5907")),1),t("td",iE,i(o.disk.path),1)]),t("tr",rE,[t("td",sE,i(e(a)("\u578B\u53F7")),1),t("td",dE,i(o.disk.model),1)]),t("tr",lE,[t("td",cE,i(e(a)("\u5E8F\u53F7")),1),t("td",uE,i(o.disk.serial),1)])])):d.value=="attribute"?(r(),s("textarea",{key:1,disabled:"",value:e(g).attribute},null,8,pE)):d.value=="log"?(r(),s("textarea",{key:2,disabled:"",value:e(g).log},null,8,fE)):d.value=="extend"?(r(),s("textarea",{key:3,disabled:"",value:e(g).extend},null,8,mE)):D("",!0)]),t("div",gE,[t("div",{class:"close",onClick:k,disabled:c.value},i(e(a)("\u5173\u95ED")),9,vE)])])]),_:1}))}});var hE=N(bE,[["__scopeId","data-v-4a646cde"]]);const _E=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(tF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},xE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(GF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},wE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(KF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},kE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(hE,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},yE={class:"cbi-section"},FE={class:"cbi-value"},EE={class:"cbi-value-title"},$E={class:"cbi-value-field"},CE={class:"cbi-checkbox"},DE=["value"],BE={class:"cbi-value"},YE={class:"cbi-value-title"},AE={class:"cbi-value-field"},SE={class:"cbi-checkbox"},zE={value:"never"},PE={value:"sleep"},TE={value:"standby"},IE={value:"idle"},ME={class:"cbi-value-description"},LE=t("br",null,null,-1),OE=t("br",null,null,-1),NE=t("br",null,null,-1),VE=t("br",null,null,-1),GE={class:"cbi-value"},jE={class:"cbi-value-title"},UE={class:"cbi-value-field"},qE={class:"cbi-checkbox"},RE={value:0},WE=["value"],HE={class:"cbi-value-description"},JE={class:"cbi-value"},ZE={class:"cbi-value-title"},KE={class:"cbi-value-field"},QE={class:"cbi-checkbox"},XE={value:0},t$=["value"],e$={class:"cbi-value-description"},a$={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},o$={class:"table cbi-section-table"},n$={class:"tr cbi-section-table-titles anonymous"},i$={class:"th cbi-section-table-cell","data-widget":"value"},r$={class:"th cbi-section-table-cell","data-widget":"value"},s$={class:"th cbi-section-table-cell","data-widget":"value"},d$={class:"th cbi-section-table-cell","data-widget":"value"},l$={class:"th cbi-section-table-cell","data-widget":"value"},c$={class:"th cbi-section-table-cell","data-widget":"value" Line truncated
`+d.value,disabled:""},null,8,RF)]),t("div",WF,[t("div",{class:"close",onClick:m,disabled:u.value},i(e(a)("\u5173\u95ED")),9,HF),u.value?D("",!0):(r(),s("div",{key:0,class:"next",onClick:v,disabled:u.value},i(e(a)("\u8FD0\u884C")),9,JF))])])]),_:1}))}});var KF=N(ZF,[["__scopeId","data-v-70c3aae0"]]);const QF={class:"actioner-container"},XF={class:"actioner-container_header"},tE={class:"tabs"},eE={class:"actioner-container_body"},aE={key:0,class:"table"},oE={class:"tr"},nE={class:"td left"},iE={class:"td left"},rE={class:"tr"},sE={class:"td left"},dE={class:"td left"},lE={class:"tr"},uE={class:"td left"},cE={class:"td left"},pE=["value"],fE=["value"],mE=["value"],gE={class:"actioner-container_footer"},vE=["disabled"],bE=I({props:{close:{type:Function,required:!0},disk:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1),d=E("info"),c=b=>{switch(d.value=b,b){case"info":break;case"attribute":m();break;case"log":p();break;case"extend":v();break}},k=()=>{u.value=!0,n.close()},g=gt({log:"",attribute:"",extend:""}),p=()=>L(this,null,function*(){try{const b=yield G.Smart.Test.Result.POST({type:"selftest",devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.log=y.result),f&&(g.log=f)}}catch(b){g.log=b}}),m=()=>L(this,null,function*(){try{const b=yield G.Smart.Attribute.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.attribute=y.result),f&&(g.attribute=f)}}catch(b){g.attribute=b}}),v=()=>L(this,null,function*(){try{const b=yield G.Smart.Extend.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.extend=y.result),f&&(g.extend=f)}}catch(b){g.extend=b}});return(b,y)=>(r(),Z(je,null,{default:V(()=>[t("div",QF,[t("div",XF,[t("ul",tE,[t("li",{class:lt({"active cbi-tab":d.value=="info"}),onClick:y[0]||(y[0]=f=>c("info"))},[t("a",null,i(e(a)("\u8BBE\u5907\u4FE1\u606F")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="attribute"}),onClick:y[1]||(y[1]=f=>c("attribute"))},[t("a",null,i(e(a)("\u5C5E\u6027")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="log"}),onClick:y[2]||(y[2]=f=>c("log"))},[t("a",null,i(e(a)("\u81EA\u68C0\u65E5\u5FD7")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="extend"}),onClick:y[3]||(y[3]=f=>c("extend"))},[t("a",null,i(e(a)("\u6269\u5C55\u4FE1\u606F")),1)],2)])]),t("div",eE,[d.value=="info"?(r(),s("table",aE,[t("tr",oE,[t("td",nE,i(e(a)("\u8BBE\u5907")),1),t("td",iE,i(o.disk.path),1)]),t("tr",rE,[t("td",sE,i(e(a)("\u578B\u53F7")),1),t("td",dE,i(o.disk.model),1)]),t("tr",lE,[t("td",uE,i(e(a)("\u5E8F\u53F7")),1),t("td",cE,i(o.disk.serial),1)])])):d.value=="attribute"?(r(),s("textarea",{key:1,disabled:"",value:e(g).attribute},null,8,pE)):d.value=="log"?(r(),s("textarea",{key:2,disabled:"",value:e(g).log},null,8,fE)):d.value=="extend"?(r(),s("textarea",{key:3,disabled:"",value:e(g).extend},null,8,mE)):D("",!0)]),t("div",gE,[t("div",{class:"close",onClick:k,disabled:u.value},i(e(a)("\u5173\u95ED")),9,vE)])])]),_:1}))}});var hE=N(bE,[["__scopeId","data-v-313197ee"]]);const _E=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(tF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},xE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(GF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},wE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(KF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},kE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(hE,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},yE={class:"cbi-section"},FE={class:"cbi-value"},EE={class:"cbi-value-title"},$E={class:"cbi-value-field"},CE={class:"cbi-checkbox"},DE=["value"],BE={class:"cbi-value"},YE={class:"cbi-value-title"},AE={class:"cbi-value-field"},SE={class:"cbi-checkbox"},zE={value:"never"},PE={value:"sleep"},TE={value:"standby"},IE={value:"idle"},ME={class:"cbi-value-description"},LE=t("br",null,null,-1),OE=t("br",null,null,-1),NE=t("br",null,null,-1),VE=t("br",null,null,-1),GE={class:"cbi-value"},jE={class:"cbi-value-title"},UE={class:"cbi-value-field"},qE={class:"cbi-checkbox"},RE={value:0},WE=["value"],HE={class:"cbi-value-description"},JE={class:"cbi-value"},ZE={class:"cbi-value-title"},KE={class:"cbi-value-field"},QE={class:"cbi-checkbox"},XE={value:0},t$=["value"],e$={class:"cbi-value-description"},a$={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},o$={class:"table cbi-section-table"},n$={class:"tr cbi-section-table-titles anonymous"},i$={class:"th cbi-section-table-cell","data-widget":"value"},r$={class:"th cbi-section-table-cell","data-widget":"value"},s$={class:"th cbi-section-table-cell","data-widget":"value"},d$={class:"th cbi-section-table-cell","data-widget":"value"},l$={class:"th cbi-section-table-cell","data-widget":"value"},u$={class:"th cbi-section-table-cell","data-widget":"value" Line truncated
@@ -1,2 +1,2 @@
@keyframes bganimation-41cbce66{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-41cbce66{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-41cbce66{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-41cbce66]{animation:rotateEnter-41cbce66 .7s;position:relative}.rotate-leave-active[data-v-41cbce66]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-41cbce66]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.disk-item-tooltip[data-v-41cbce66]{position:fixed;background:rgba(0,0,0,.7);z-index:10111;color:#fff;padding:.5rem 1rem;font-size:1em;min-width:200px;line-height:24px}.disk-item-tooltip[data-v-41cbce66]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}#main .app-btn,#actioner .app-btn{min-height:36px}@keyframes bganimation-2d97dedc{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-2d97dedc{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-2d97dedc{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-2d97dedc]{animation:rotateEnter-2d97dedc .7s;position:relative}.rotate-leave-active[data-v-2d97dedc]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-2d97dedc]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#main[data-v-2d97dedc]{width:100%}#main[data-v-2d97dedc],#main[data-v-2d97dedc] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}@media (prefers-color-scheme: light){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-Line truncated
@keyframes bganimation-0698ba82{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0698ba82{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0698ba82{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0698ba82]{animation:rotateEnter-0698ba82 .7s;position:relative}.rotate-leave-active[data-v-0698ba82]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0698ba82]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.disk-item-tooltip[data-v-0698ba82]{position:fixed;background:rgba(0,0,0,.7);z-index:10111;color:#fff;padding:.5rem 1rem;font-size:1em;min-width:200px;line-height:24px}.disk-item-tooltip[data-v-0698ba82]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}#main .app-btn,#actioner .app-btn{min-height:36px}@keyframes bganimation-9bc295c2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9bc295c2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9bc295c2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9bc295c2]{animation:rotateEnter-9bc295c2 .7s;position:relative}.rotate-leave-active[data-v-9bc295c2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9bc295c2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#main[data-v-9bc295c2]{width:100%}#main[data-v-9bc295c2],#main[data-v-9bc295c2] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}@media (prefers-color-scheme: light){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-Line truncated
.page-container>div>div>a:first-child{display:none}
+1 -1
View File
@@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-ssr-plus
PKG_VERSION:=190
PKG_RELEASE:=11
PKG_RELEASE:=12
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \
@@ -1674,6 +1674,65 @@ o:depends("type", "hysteria2")
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp"})
o:depends({type = "v2ray", v2ray_protocol = "hysteria2"})
o = s:option(ListValue, "domain_resolver", translate("Domain DNS Resolve"))
o.description = translate(
"<ul>" ..
"<li>" .. translate("If the node address is a domain name, this DNS will be used for resolution.") .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Note: For node-specific DNS only. Keep Auto to avoid extra overhead.")) .. "</li>" ..
"</ul>"
)
o:value("", translate("Auto"))
o:value("tcp", translate("TCP"))
o:value("udp", translate("UDP"))
o:value("https", translate("DoH"))
o:depends("type", "v2ray")
o = s:option(Value, "domain_resolver_dns", translate("DNS"))
o.datatype = "or(ipaddr,ipaddrport)"
o:value("114.114.114.114")
o:value("223.5.5.5:53")
o.default = "114.114.114.114"
o:depends("domain_resolver", "tcp")
o:depends("domain_resolver", "udp")
o = s:option(Value, "domain_resolver_dns_https", translate("DNS"))
o:value("https://120.53.53.53/dns-query", translate("DNSPod"))
o:value("https://223.5.5.5/dns-query", translate("AliDNS"))
o.default = "https://120.53.53.53/dns-query"
o:depends("domain_resolver", "https")
o = s:option(ListValue, "domain_strategy", translate("Domain Strategy"))
o.description = translate(
"<ul>" ..
"<li>" .. translate("If is domain name, The requested domain name will be resolved to IP before connect.") .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Note: For node-specific DNS only. Keep Auto to avoid extra overhead.")) .. "</li>" ..
"</ul>"
)
o.default = ""
o:value("", translate("Auto"))
o:value("UseIPv4v6", translate("Prefer IPv4"))
o:value("UseIPv6v4", translate("Prefer IPv6"))
o:value("UseIPv4", translate("IPv4 Only"))
o:value("UseIPv6", translate("IPv6 Only"))
o:depends("type", "v2ray")
local v2ray_protocols = s.fields["v2ray_protocol"]
if #v2ray_protocols > 0 then
for i, v in ipairs(v2ray_protocols) do
if not v:find("^_") then
s.fields["server"]:depends({ ["v2ray_protocol"] = v })
s.fields["server_port"]:depends({ ["v2ray_protocol"] = v })
s.fields["domain_resolver"]:depends({ ["v2ray_protocol"] = v })
s.fields["domain_strategy"]:depends({ ["v2ray_protocol"] = v })
if v ~= "hysteria2" then
s.fields["fast_open"]:depends({ ["v2ray_protocol"] = v })
s.fields["mptcp"]:depends({ ["v2ray_protocol"] = v })
end
end
end
end
o = s:option(Flag, "switch_enable", translate("Enable Auto Switch"))
o.rmempty = false
o.default = "1"
@@ -235,6 +235,48 @@ end
o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL"))
o.rmempty = true
o = s:option(ListValue, "domain_resolver", translate("Domain DNS Resolve"))
o.description = translate(
"<ul>" ..
"<li>" .. translate("If the node address is a domain name, this DNS will be used for resolution.") .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Supports only Xray node types.")) .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Note: For node-specific DNS only. Keep Auto to avoid extra overhead.")) .. "</li>" ..
"</ul>"
)
o:value("", translate("Auto"))
o:value("tcp", translate("TCP"))
o:value("udp", translate("UDP"))
o:value("https", translate("DoH"))
o = s:option(Value, "domain_resolver_dns", translate("DNS"))
o.datatype = "or(ipaddr,ipaddrport)"
o:value("114.114.114.114")
o:value("223.5.5.5:53")
o.default = "114.114.114.114"
o:depends("domain_resolver", "tcp")
o:depends("domain_resolver", "udp")
o = s:option(Value, "domain_resolver_dns_https", translate("DNS"))
o:value("https://120.53.53.53/dns-query", "DNSPod")
o:value("https://223.5.5.5/dns-query", "AliDNS")
o.default = o.keylist[1]
o:depends("domain_resolver", "https")
o = s:option(ListValue, "domain_strategy", translate("Domain Strategy"))
o.description = translate(
"<ul>" ..
"<li>" .. translate("If is domain name, The requested domain name will be resolved to IP before connect.") .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Supports only Xray node types.")) .. "</li>" ..
"<li>" .. string.format('<font style=\'color:red;\'>%s</font>', translate("Note: For node-specific DNS only. Keep Auto to avoid extra overhead.")) .. "</li>" ..
"</ul>"
)
o.default = ""
o:value("", translate("Auto"))
o:value("UseIPv4v6", translate("Prefer IPv4"))
o:value("UseIPv6v4", translate("Prefer IPv6"))
o:value("UseIPv4", translate("IPv4 Only"))
o:value("UseIPv6", translate("IPv6 Only"))
o = s:option(Value, "filter_words", translate("Subscribe Filter Words"))
o.rmempty = true
o.description = translate("Filter Words splited by /")
+118 -34
View File
@@ -99,9 +99,13 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1527
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1540
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1679
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1706
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:188
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:214
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:267
msgid "<ul><li>"
msgstr ""
@@ -126,11 +130,15 @@ msgstr ""
msgid "Advertising Data"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1700
msgid "AliDNS"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:268
msgid "AliYun Public DNS (223.5.5.5)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:325
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:367
msgid "Alias"
msgstr ""
@@ -150,7 +158,7 @@ msgstr ""
msgid "Allow listed only"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:297
msgid "Allow subscribe Insecure nodes By default"
msgstr ""
@@ -192,8 +200,8 @@ msgstr ""
msgid "Apple domains optimization"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:357
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:363
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:399
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:405
msgid "Apply"
msgstr ""
@@ -207,13 +215,17 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:282
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:313
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1684
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1712
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:172
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:200
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:229
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:246
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:274
msgid "Auto"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:375
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:417
msgid "Auto Switch"
msgstr ""
@@ -489,6 +501,10 @@ msgid "DL Backup"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1168
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1690
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:251
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:259
msgid "DNS"
msgstr ""
@@ -500,6 +516,10 @@ msgstr ""
msgid "DNS Query Mode For Shunt Mode"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1699
msgid "DNSPod"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:267
msgid "DNSPod Public DNS (119.29.29.29)"
msgstr ""
@@ -561,7 +581,7 @@ msgstr ""
msgid "Delete"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:273
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:315
msgid "Delete All Subscribe Servers"
msgstr ""
@@ -617,12 +637,24 @@ msgstr ""
msgid "Do you want to restore the client to default settings?"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:249
msgid "DoH"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:230
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:259
msgid "DoT upstream (Need use wolfssl version)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:238
msgid "Domain DNS Resolve"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:419
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:265
msgid "Domain Strategy"
msgstr ""
@@ -679,7 +711,7 @@ msgid "Enable Authentication"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:63
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1736
msgid "Enable Auto Switch"
msgstr ""
@@ -821,7 +853,7 @@ msgstr ""
msgid "FORCE BRUTAL"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:282
msgid "Filter Words splited by /"
msgstr ""
@@ -1034,16 +1066,39 @@ msgstr ""
msgid "IP Stack Preference"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1715
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:277
msgid "IPv4 Only"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1716
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:278
msgid "IPv6 Only"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:243
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1707
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:268
msgid ""
"If is domain name, The requested domain name will be resolved to IP before "
"connect."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1393
msgid ""
"If it is not empty, it indicates that the Client has enabled Encrypted "
"Client, see:"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1680
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:241
msgid ""
"If the node address is a domain name, this DNS will be used for resolution."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:865
msgid "If this option is not set, the socket behavior is platform dependent."
msgstr ""
@@ -1094,19 +1149,19 @@ msgstr ""
msgid "KcpTun"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1746
msgid "KcpTun Enable"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1763
msgid "KcpTun Param"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1699
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1758
msgid "KcpTun Password"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1693
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1752
msgid "KcpTun Port"
msgstr ""
@@ -1205,7 +1260,7 @@ msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:348
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1681
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1740
msgid "Local Port"
msgstr ""
@@ -1387,8 +1442,8 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:322
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:327
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:364
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:369
msgid "None"
msgstr ""
@@ -1405,6 +1460,13 @@ msgstr ""
msgid "Not exist"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1681
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1708
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:243
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:270
msgid "Note: For node-specific DNS only. Keep Auto to avoid extra overhead."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua:27
msgid ""
"Note: Restoring configurations across different versions may cause "
@@ -1516,7 +1578,7 @@ msgstr ""
msgid "Permit Without Stream"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:351
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:393
msgid "Ping Latency"
msgstr ""
@@ -1548,6 +1610,16 @@ msgstr ""
msgid "Pre-shared key"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1713
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:275
msgid "Prefer IPv4"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1714
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:276
msgid "Prefer IPv6"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
msgid "Prefer firewall tools"
msgstr ""
@@ -1627,7 +1699,7 @@ msgstr ""
msgid "Really reset all changes?"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:361
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:403
msgid "Reapply"
msgstr ""
@@ -1744,7 +1816,7 @@ msgstr ""
msgid "Save Order"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:244
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:286
msgid "Save Words splited by /"
msgstr ""
@@ -1782,7 +1854,7 @@ msgstr ""
msgid "Server Address"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:275
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:317
msgid "Server Count"
msgstr ""
@@ -1793,7 +1865,7 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:469
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:96
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:112
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:330
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:372
msgid "Server Port"
msgstr ""
@@ -1873,7 +1945,7 @@ msgstr ""
msgid "Short ID"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:335
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:377
msgid "Socket Connected"
msgstr ""
@@ -1914,15 +1986,15 @@ msgstr ""
msgid "Status"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:302
msgid "Subscribe Default Auto-Switch"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:238
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:280
msgid "Subscribe Filter Words"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:242
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:284
msgid "Subscribe Save Words"
msgstr ""
@@ -1930,11 +2002,11 @@ msgstr ""
msgid "Subscribe URL"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:262
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:304
msgid "Subscribe new add server default Auto-Switch on"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:257
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:299
msgid "Subscribe nodes allows insecure connection as TLS client (insecure)"
msgstr ""
@@ -1946,10 +2018,20 @@ msgstr ""
msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:242
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:269
msgid "Supports only Xray node types."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:67
msgid "Switch check cycly(second)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1685
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:247
msgid "TCP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1667
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
@@ -2069,11 +2151,11 @@ msgstr ""
msgid "The keep-alive period.(Unit:second)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:265
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:307
msgid "Through proxy update"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:309
msgid "Through proxy update list, Not Recommended"
msgstr ""
@@ -2118,11 +2200,13 @@ msgid "Trojan"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:412
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:320
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:362
msgid "Type"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:622
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1686
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:248
msgid "UDP"
msgstr ""
@@ -2154,7 +2238,7 @@ msgstr ""
msgid "UL Restore"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:280
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:322
msgid "URL Test Address"
msgstr ""
@@ -2167,12 +2251,12 @@ msgstr ""
msgid "Unknown"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:269
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:311
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:16
msgid "Update All Subscribe Servers"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:246
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:288
msgid "Update Subscribe List"
msgstr ""
@@ -2180,7 +2264,7 @@ msgstr ""
msgid "Update cycle (Day/Week)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:248
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:290
msgid "Update subscribe url list first"
msgstr ""
@@ -2252,7 +2336,7 @@ msgid "User cancelled."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1268
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:290
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:332
msgid "User-Agent"
msgstr ""
+118 -34
View File
@@ -103,9 +103,13 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1527
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1540
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1679
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1706
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:188
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:214
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:267
msgid "<ul><li>"
msgstr ""
@@ -130,11 +134,15 @@ msgstr "高级设置"
msgid "Advertising Data"
msgstr "【广告屏蔽】数据库"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1700
msgid "AliDNS"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:268
msgid "AliYun Public DNS (223.5.5.5)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:325
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:367
msgid "Alias"
msgstr "别名"
@@ -154,7 +162,7 @@ msgstr "除列表外主机皆允许"
msgid "Allow listed only"
msgstr "仅允许列表内主机"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:297
msgid "Allow subscribe Insecure nodes By default"
msgstr "订阅节点允许不验证 TLS 证书"
@@ -196,8 +204,8 @@ msgstr "Apple 域名更新 URL"
msgid "Apple domains optimization"
msgstr "Apple 域名解析优化"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:357
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:363
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:399
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:405
msgid "Apply"
msgstr "应用"
@@ -211,13 +219,17 @@ msgstr "是否真的要恢复客户端默认配置?"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:282
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:313
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1684
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1712
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:172
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:200
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:229
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:246
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:274
msgid "Auto"
msgstr "自动"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:375
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:417
msgid "Auto Switch"
msgstr "自动切换"
@@ -498,6 +510,10 @@ msgid "DL Backup"
msgstr "下载备份"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1168
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1690
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:251
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:259
msgid "DNS"
msgstr ""
@@ -509,6 +525,10 @@ msgstr "DNS 防污染服务"
msgid "DNS Query Mode For Shunt Mode"
msgstr "分流模式下的 DNS 查询模式"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1699
msgid "DNSPod"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:267
msgid "DNSPod Public DNS (119.29.29.29)"
msgstr ""
@@ -574,7 +594,7 @@ msgstr "延迟(ms)"
msgid "Delete"
msgstr "删除"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:273
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:315
msgid "Delete All Subscribe Servers"
msgstr "删除所有订阅服务器节点"
@@ -630,12 +650,24 @@ msgstr "执行重置"
msgid "Do you want to restore the client to default settings?"
msgstr "是否要恢复客户端默认配置?"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:249
msgid "DoH"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:230
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:259
msgid "DoT upstream (Need use wolfssl version)"
msgstr "DoT 上游(需使用 wolfssl 版本)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:238
msgid "Domain DNS Resolve"
msgstr "域名 DNS 解析"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:419
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:265
msgid "Domain Strategy"
msgstr "域名解析策略"
@@ -692,7 +724,7 @@ msgid "Enable Authentication"
msgstr "启用用户名/密码认证"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:63
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1736
msgid "Enable Auto Switch"
msgstr "启用自动切换"
@@ -834,7 +866,7 @@ msgstr "分流服务器(前置)代理"
msgid "FORCE BRUTAL"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:282
msgid "Filter Words splited by /"
msgstr "命中关键字的节点将被丢弃。多个关键字用 / 分隔"
@@ -1047,16 +1079,39 @@ msgstr "绕过中国大陆 IP 模式"
msgid "IP Stack Preference"
msgstr "IP 栈优先级"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1715
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:277
msgid "IPv4 Only"
msgstr "仅 IPv4"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1716
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:278
msgid "IPv6 Only"
msgstr "仅 IPv6"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:243
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1707
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:268
msgid ""
"If is domain name, The requested domain name will be resolved to IP before "
"connect."
msgstr "如果是域名,域名将在请求发出之前解析为 IP。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1393
msgid ""
"If it is not empty, it indicates that the Client has enabled Encrypted "
"Client, see:"
msgstr "如果不为空,表示客户端已启用加密客户端,具体请参见:"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1680
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:241
msgid ""
"If the node address is a domain name, this DNS will be used for resolution."
msgstr "如果节点地址是域名,则将使用此 DNS 进行解析。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:865
msgid "If this option is not set, the socket behavior is platform dependent."
msgstr "如果未设置此选项,则 Socket 行为依赖于平台。"
@@ -1108,19 +1163,19 @@ msgstr "无效的格式。"
msgid "KcpTun"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1746
msgid "KcpTun Enable"
msgstr "KcpTun 启用"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1763
msgid "KcpTun Param"
msgstr "KcpTun 参数"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1699
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1758
msgid "KcpTun Password"
msgstr "KcpTun 密码"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1693
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1752
msgid "KcpTun Port"
msgstr "KcpTun 端口"
@@ -1219,7 +1274,7 @@ msgid "Listen only on the given interface or, if unspecified, on all"
msgstr "仅监听指定的接口,未指定则监听全部。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:348
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1681
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1740
msgid "Local Port"
msgstr "本地端口"
@@ -1403,8 +1458,8 @@ msgstr "噪声"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:322
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:327
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:364
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:369
msgid "None"
msgstr ""
@@ -1421,6 +1476,13 @@ msgstr "未运行"
msgid "Not exist"
msgstr "未安装可执行文件"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1681
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1708
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:243
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:270
msgid "Note: For node-specific DNS only. Keep Auto to avoid extra overhead."
msgstr "注意:仅用于节点专用 DNS,通常请保持自动,以免增加开销。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua:27
msgid ""
"Note: Restoring configurations across different versions may cause "
@@ -1532,7 +1594,7 @@ msgstr "执行重置"
msgid "Permit Without Stream"
msgstr "允许无数据流"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:351
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:393
msgid "Ping Latency"
msgstr "Ping 延迟"
@@ -1564,6 +1626,16 @@ msgstr "预连接"
msgid "Pre-shared key"
msgstr "预共享密钥"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1713
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:275
msgid "Prefer IPv4"
msgstr "IPv4 优先"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1714
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:276
msgid "Prefer IPv6"
msgstr "IPv6 优先"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
msgid "Prefer firewall tools"
msgstr "首选防火墙工具"
@@ -1643,7 +1715,7 @@ msgstr "读取缓冲区大小"
msgid "Really reset all changes?"
msgstr "真的重置所有更改吗?"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:361
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:403
msgid "Reapply"
msgstr "重新应用"
@@ -1760,7 +1832,7 @@ msgstr "与全局服务器相同"
msgid "Save Order"
msgstr "保存当前顺序"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:244
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:286
msgid "Save Words splited by /"
msgstr ""
"命中关键字的节点将被保留。多个关键字用 / 分隔。此项为空则不启用保留匹配"
@@ -1799,7 +1871,7 @@ msgstr "服务器"
msgid "Server Address"
msgstr "服务器地址"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:275
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:317
msgid "Server Count"
msgstr "服务器节点数量"
@@ -1810,7 +1882,7 @@ msgstr "服务器节点类型"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:469
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:96
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:112
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:330
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:372
msgid "Server Port"
msgstr "端口"
@@ -1890,7 +1962,7 @@ msgstr ""
msgid "Short ID"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:335
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:377
msgid "Socket Connected"
msgstr "连接测试"
@@ -1931,15 +2003,15 @@ msgstr "专门用于编辑 DNSPROXY 的 DNS 解析文件。"
msgid "Status"
msgstr "状态"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:302
msgid "Subscribe Default Auto-Switch"
msgstr "订阅新节点自动切换设置"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:238
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:280
msgid "Subscribe Filter Words"
msgstr "订阅节点关键字过滤"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:242
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:284
msgid "Subscribe Save Words"
msgstr "订阅节点关键字保留检查"
@@ -1947,11 +2019,11 @@ msgstr "订阅节点关键字保留检查"
msgid "Subscribe URL"
msgstr "SS/SSR/V2/TROJAN/HY2/TUIC 订阅 URL"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:262
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:304
msgid "Subscribe new add server default Auto-Switch on"
msgstr "订阅加入的新节点默认开启自动切换"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:257
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:299
msgid "Subscribe nodes allows insecure connection as TLS client (insecure)"
msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)"
@@ -1963,10 +2035,20 @@ msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表"
msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5."
msgstr "支持固定值或随机范围(如 30 或 5-30),最小 5 秒。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:242
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:269
msgid "Supports only Xray node types."
msgstr "仅支持 Xray 类型节点。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:67
msgid "Switch check cycly(second)"
msgstr "自动切换检查周期(秒)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1685
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:247
msgid "TCP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1667
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
@@ -2088,11 +2170,11 @@ msgstr "输入的内容不正确!"
msgid "The keep-alive period.(Unit:second)"
msgstr "心跳包发送间隔(单位:秒)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:265
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:307
msgid "Through proxy update"
msgstr "通过代理更新"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:309
msgid "Through proxy update list, Not Recommended"
msgstr "通过路由器自身代理更新订阅"
@@ -2137,11 +2219,13 @@ msgid "Trojan"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:412
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:320
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:362
msgid "Type"
msgstr "类型"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:622
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1686
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:248
msgid "UDP"
msgstr ""
@@ -2173,7 +2257,7 @@ msgstr "UDP/TCP 上游"
msgid "UL Restore"
msgstr "上传恢复"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:280
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:322
msgid "URL Test Address"
msgstr "URL 测试地址"
@@ -2186,12 +2270,12 @@ msgstr "无法复制 SSR 网址到剪贴板。"
msgid "Unknown"
msgstr "未知"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:269
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:311
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:16
msgid "Update All Subscribe Servers"
msgstr "更新所有订阅服务器节点"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:246
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:288
msgid "Update Subscribe List"
msgstr "更新订阅 URL 列表"
@@ -2199,7 +2283,7 @@ msgstr "更新订阅 URL 列表"
msgid "Update cycle (Day/Week)"
msgstr "更新周期(天/周)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:248
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:290
msgid "Update subscribe url list first"
msgstr "修改订阅 URL 和节点关键字后,请先点击更新"
@@ -2271,7 +2355,7 @@ msgid "User cancelled."
msgstr "用户已取消。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1268
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:290
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:332
msgid "User-Agent"
msgstr "用户代理(User-Agent)"
File diff suppressed because it is too large. Load diff
@@ -23,20 +23,24 @@ local nodeResult = setmetatable({}, {__index = cache}) -- update result
local name = 'shadowsocksr'
local uciType = 'servers'
local ucic = require "luci.model.uci".cursor()
local proxy = ucic:get_first(name, 'server_subscribe', 'proxy', '0')
local switch = ucic:get_first(name, 'server_subscribe', 'switch', '1')
local allow_insecure = ucic:get_first(name, 'server_subscribe', 'allow_insecure', '0')
local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {})
local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期时间/剩余流量')
local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '')
local user_agent = ucic:get_first(name, 'server_subscribe', 'user_agent', 'v2rayN/9.99')
local proxy = ucic:get_first(name, 'server_subscribe', 'proxy') or '0'
local switch = ucic:get_first(name, 'server_subscribe', 'switch') or '1'
local allow_insecure = ucic:get_first(name, 'server_subscribe', 'allow_insecure') or '0'
local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url') or {}
local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words') or '过期时间/剩余流量'
local save_words = ucic:get_first(name, 'server_subscribe', 'save_words') or ''
local user_agent = ucic:get_first(name, 'server_subscribe', 'user_agent') or 'v2rayN/9.99'
local domain_resolver = ucic:get_first(name, 'server_subscribe', 'domain_resolver') or ''
local domain_resolver_dns = ucic:get_first(name, 'server_subscribe', 'domain_resolver_dns') or ''
local domain_resolver_dns_https = ucic:get_first(name, 'server_subscribe', 'domain_resolver_dns_https') or ''
local domain_strategy = ucic:get_first(name, 'server_subscribe', 'domain_strategy') or ''
-- 读取 ss_type 设置
local ss_type = ucic:get_first(name, 'server_subscribe', 'ss_type')
local ss_type = ucic:get_first(name, 'server_subscribe', 'ss_type') or ''
-- 读取 xray_hy2_type 设置
local xray_hy2_type = ucic:get_first(name, 'server_subscribe', 'xray_hy2_type')
local xray_hy2_type = ucic:get_first(name, 'server_subscribe', 'xray_hy2_type') or ''
-- 读取 xray_tj_type 设置
local xray_tj_type = ucic:get_first(name, 'server_subscribe', 'xray_tj_type')
local xray_tj_type = ucic:get_first(name, 'server_subscribe', 'xray_tj_type') or ''
local has_ss_rust = luci.sys.exec('type -t -p sslocal 2>/dev/null || type -t -p ssserver 2>/dev/null') ~= ""
local has_ss_libev = luci.sys.exec('type -t -p ss-redir 2>/dev/null || type -t -p ss-local 2>/dev/null') ~= ""
@@ -1755,6 +1759,24 @@ local execute = function()
if section then
ucic:tset(name, section, vv)
ucic:set(name, section, "switch_enable", switch)
-- 为 Xray 节点添加域名解析配置
if vv.type == "v2ray" then
if domain_resolver and domain_resolver ~= "" then
ucic:set(name, section, "domain_resolver", domain_resolver)
if domain_resolver == "https" then
if domain_resolver_dns_https and domain_resolver_dns_https ~= "" then
ucic:set(name, section, "domain_resolver_dns_https", domain_resolver_dns_https)
end
else
if domain_resolver_dns and domain_resolver_dns ~= "" then
ucic:set(name, section, "domain_resolver_dns", domain_resolver_dns)
end
end
end
if domain_strategy and domain_strategy ~= "" then
ucic:set(name, section, "domain_strategy", domain_strategy)
end
end
add = add + 1
end
end
+1 -1
View File
@@ -9,7 +9,7 @@ LUCI_TITLE:=Design Theme
LUCI_DEPENDS:=
PKG_LICENSE:=Apache-2.0
PKG_VERSION:=7.1
PKG_RELEASE:=3
PKG_RELEASE:=4
LUCI_MINIFY_CSS:=
CONFIG_LUCI_CSSTIDY:=
@@ -65,6 +65,18 @@
});
}
function getOverviewPortColumns(width, cardCount) {
if (width <= 480) {
return 1;
}
if (width <= 768) {
return Math.min(cardCount, 2);
}
return Math.min(cardCount, 8);
}
function syncOverviewPortStatus() {
var view = document.getElementById('view');
var portGroups = new Map();
@@ -186,7 +198,7 @@
portGroups.forEach(function (cards, parent) {
var width = window.innerWidth || document.documentElement.clientWidth || 1280;
var columns;
var columns = getOverviewPortColumns(width, cards.length);
cards.forEach(function (card) {
var body = card.querySelector('.ifacebox-body');
@@ -220,18 +232,6 @@
}
});
if (width <= 480) {
columns = 1;
} else if (width <= 768) {
columns = Math.min(cards.length, 2);
} else if (cards.length <= 4) {
columns = cards.length;
} else if (cards.length <= 6) {
columns = 3;
} else {
columns = 4;
}
parent.style.setProperty('display', 'grid', 'important');
parent.style.setProperty('grid-template-columns', 'repeat(' + columns + ', minmax(0, 1fr))', 'important');
parent.style.setProperty('align-items', 'stretch', 'important');
@@ -258,6 +258,8 @@
childList: true,
subtree: true
});
window.addEventListener('resize', syncOverviewPortStatus);
}
function syncNetworkInterfaceIcons() {
@@ -1,5 +1,6 @@
'use strict';
'require baseclass';
'require fs';
'require request';
'require ui';
@@ -15,15 +16,60 @@ return baseclass.extend({
window.location.hash);
}
this.dynamicMenuTargets = {};
this.syncConditionalMenuCache()
.then(L.bind(function(reloading) {
if (reloading)
return;
return ui.menu.load().then(L.bind(this.render, this));
return this.resolveDynamicMenuTargets()
.then(L.bind(function() {
return ui.menu.load().then(L.bind(this.render, this));
}, this));
}, this));
},
resolveDynamicMenuTargets: function() {
this.dynamicMenuTargets = {};
if (!document.body.classList.contains('logged-in'))
return Promise.resolve();
return this.resolveFirewallMenuTarget().then(L.bind(function(target) {
if (target)
this.dynamicMenuTargets['admin/status/nftables'] = target;
}, this));
},
resolveFirewallMenuTarget: function() {
return L.resolveDefault(fs.exec_direct('/usr/sbin/nft', [ '--terse', '--json', 'list', 'ruleset' ], 'json'), null).then(function(nft) {
var hasTables = false;
if (!Array.isArray(nft && nft.nftables))
return null;
for (var i = 0; i < nft.nftables.length; i++) {
if (nft.nftables[i] && nft.nftables[i].hasOwnProperty('table')) {
hasTables = true;
break;
}
}
return hasTables ? null : 'admin/status/nftables/iptables';
});
},
getMenuHref: function(url, child) {
var path = [ url, child.name ].filter(Boolean).join('/'),
target = this.dynamicMenuTargets[path];
if (target)
return L.url.apply(L, target.split('/'));
return L.url(url, child.name);
},
reloadPageWithMenuFlush: function() {
var url = new URL(window.location.href);
@@ -180,11 +226,11 @@ return baseclass.extend({
ul.classList.add('active');
slideClass += " active";
menuClass += " active";
}
}
ul.appendChild(E('li', { 'class': slideClass }, [
E('a', {
'href': L.url(url, children[i].name),
'href': this.getMenuHref(url, children[i]),
'click': (l == 1) ? ui.createHandlerFn(this, 'handleMenuExpand') : null,
'class': menuClass,
'data-title': hasChildren ? children[i].title.replace(" ", "_") : children[i].title.replace(" ", "_"),
+3 -3
View File
@@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=mihomo-alpha
PKG_VERSION:=2026.04.20
PKG_RELEASE:=4
PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
PKG_SOURCE_VERSION:=a84724665eb7f989809abe463c05f5723bd24975
PKG_SOURCE_VERSION:=c59c99a051c5c4fb3c2a7454d7c00fea9a8ee4bb
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL3.0+
@@ -18,7 +18,7 @@ PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16
PKG_BUILD_VERSION:=alpha-a8472466
PKG_BUILD_VERSION:=alpha-c59c99a0
PKG_BUILD_TIME:=$(shell date -u -Iseconds)
GO_PKG:=github.com/metacubex/mihomo
+4 -4
View File
@@ -1,14 +1,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mihomo-meta
PKG_VERSION:=1.19.23
PKG_RELEASE:=2
PKG_VERSION:=1.19.24
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
PKG_SOURCE_VERSION:=v1.19.23
PKG_SOURCE_VERSION:=v1.19.24
PKG_MIRROR_HASH:=skip
PKG_LICENSE:=GPL3.0+
@@ -18,7 +18,7 @@ PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16
PKG_BUILD_VERSION:=v1.19.23
PKG_BUILD_VERSION:=v1.19.24
PKG_BUILD_TIME:=$(shell date -u -Iseconds)
GO_PKG:=github.com/metacubex/mihomo
+2 -2
View File
@@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_quickstart:=$(ARCH)
PKG_NAME:=quickstart
PKG_VERSION:=0.11.15
PKG_RELEASE:=2
PKG_VERSION:=0.12.1
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/
PKG_HASH:=skip