Minor changes

This commit is contained in:
MHSanaei 2026-04-27 15:02:43 +02:00
parent b56db67759
commit 03393c9f52
No known key found for this signature in database
GPG key ID: 7E4060F2FBE5AB7A
3 changed files with 72 additions and 49 deletions

View file

@ -1027,14 +1027,18 @@ type kcpShareFields struct {
} }
func (f kcpShareFields) applyToParams(params map[string]string) { func (f kcpShareFields) applyToParams(params map[string]string) {
params["headerType"] = f.headerType if f.headerType != "" && f.headerType != "none" {
params["headerType"] = f.headerType
}
setStringParam(params, "seed", f.seed) setStringParam(params, "seed", f.seed)
setIntParam(params, "mtu", f.mtu) setIntParam(params, "mtu", f.mtu)
setIntParam(params, "tti", f.tti) setIntParam(params, "tti", f.tti)
} }
func (f kcpShareFields) applyToObj(obj map[string]any) { func (f kcpShareFields) applyToObj(obj map[string]any) {
obj["type"] = f.headerType if f.headerType != "" && f.headerType != "none" {
obj["type"] = f.headerType
}
setStringField(obj, "path", f.seed) setStringField(obj, "path", f.seed)
setIntField(obj, "mtu", f.mtu) setIntField(obj, "mtu", f.mtu)
setIntField(obj, "tti", f.tti) setIntField(obj, "tti", f.tti)

View file

@ -938,19 +938,23 @@
<template v-if="mask.type === 'header-custom'"> <template v-if="mask.type === 'header-custom'">
<!-- Clients --> <!-- Clients -->
<a-form-item label="Clients"> <a-form-item label="Clients">
<a-icon type="plus" @click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" /> <a-button
icon="plus"
type="primary"
size="small"
@click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
></a-button>
</a-form-item> </a-form-item>
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi"> <template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
Clients Group [[ gi + 1 ]] Clients Group [[ gi + 1 ]]
<a-icon type="delete" @click="mask.settings.clients.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" /> <a-icon
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" /> type="delete"
@click="mask.settings.clients.splice(gi, 1)"
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
></a-icon>
</a-divider> </a-divider>
<template v-for="(item, ii) in group" :key="'ci'+ii"> <template v-for="(item, ii) in group" :key="'ci'+ii">
<a-divider :style="{ margin: '0', fontSize: '12px' }">
Item [[ ii + 1 ]]
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.clients.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
</a-divider>
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'> <a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme" <a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }"> @change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
@ -979,19 +983,23 @@
<!-- Servers --> <!-- Servers -->
<a-form-item label="Servers"> <a-form-item label="Servers">
<a-icon type="plus" @click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" /> <a-button
icon="plus"
type="primary"
size="small"
@click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
></a-button>
</a-form-item> </a-form-item>
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi"> <template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
Servers Group [[ gi + 1 ]] Servers Group [[ gi + 1 ]]
<a-icon type="delete" @click="mask.settings.servers.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" /> <a-icon
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" /> type="delete"
@click="mask.settings.servers.splice(gi, 1)"
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
></a-icon>
</a-divider> </a-divider>
<template v-for="(item, ii) in group" :key="'si'+ii"> <template v-for="(item, ii) in group" :key="'si'+ii">
<a-divider :style="{ margin: '0', fontSize: '12px' }">
Item [[ ii + 1 ]]
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.servers.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
</a-divider>
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'> <a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme" <a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
@change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }"> @change="t => { if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
@ -1126,12 +1134,12 @@
<a-input-number v-model.number="mask.settings.reset" :min="0" /> <a-input-number v-model.number="mask.settings.reset" :min="0" />
</a-form-item> </a-form-item>
<a-form-item label="Noise"> <a-form-item label="Noise">
<a-icon <a-button
type="plus" icon="plus"
type="primary" type="primary"
size="small" size="small"
@click="mask.settings.noise.push({rand: 0, randRange: '0-255', type: 'array', packet: [], delay: ''})" @click="mask.settings.noise.push({rand: 0, randRange: '0-255', type: 'array', packet: [], delay: ''})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(n, index) in mask.settings.noise" :key="index"> <template v-for="(n, index) in mask.settings.noise" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
@ -1175,11 +1183,12 @@
</template> </template>
<template v-if="mask.type === 'header-custom'"> <template v-if="mask.type === 'header-custom'">
<a-form-item label="Client"> <a-form-item label="Client">
<a-icon <a-button
type="plus" icon="plus"
type="primary"
size="small" size="small"
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})" @click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(c, index) in mask.settings.client" :key="index"> <template v-for="(c, index) in mask.settings.client" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
@ -1216,11 +1225,12 @@
</template> </template>
<a-divider :style="{ margin: '0' }"></a-divider> <a-divider :style="{ margin: '0' }"></a-divider>
<a-form-item label="Server"> <a-form-item label="Server">
<a-icon <a-button
type="plus" icon="plus"
type="primary"
size="small" size="small"
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})" @click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(s, index) in mask.settings.server" :key="index"> <template v-for="(s, index) in mask.settings.server" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">

View file

@ -94,19 +94,23 @@
<template v-if="mask.type === 'header-custom'"> <template v-if="mask.type === 'header-custom'">
<!-- Clients --> <!-- Clients -->
<a-form-item label="Clients"> <a-form-item label="Clients">
<a-icon type="plus" @click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" /> <a-button
icon="plus"
type="primary"
size="small"
@click="mask.settings.clients.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
></a-button>
</a-form-item> </a-form-item>
<template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi"> <template v-for="(group, gi) in mask.settings.clients" :key="'cg'+gi">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
Clients Group [[ gi + 1 ]] Clients Group [[ gi + 1 ]]
<a-icon type="delete" @click="mask.settings.clients.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" /> <a-icon
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" /> type="delete"
@click="mask.settings.clients.splice(gi, 1)"
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
></a-icon>
</a-divider> </a-divider>
<template v-for="(item, ii) in group" :key="'ci'+ii"> <template v-for="(item, ii) in group" :key="'ci'+ii">
<a-divider :style="{ margin: '0', fontSize: '12px' }">
Item [[ ii + 1 ]]
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.clients.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
</a-divider>
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'> <a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme" <a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }"> @change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
@ -139,20 +143,23 @@
<!-- Servers --> <!-- Servers -->
<a-form-item label="Servers"> <a-form-item label="Servers">
<a-icon type="plus" @click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])" /> <a-button
icon="plus"
type="primary"
size="small"
@click="mask.settings.servers.push([{delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []}])"
></a-button>
</a-form-item> </a-form-item>
<template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi"> <template v-for="(group, gi) in mask.settings.servers" :key="'sg'+gi">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
Servers Group [[ gi + 1 ]] Servers Group [[ gi + 1 ]]
<a-icon type="delete" @click="mask.settings.servers.splice(gi, 1)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" /> <a-icon
<a-icon type="plus" @click="group.push({delay: 0, rand: 0, randRange: '0-255', type: 'array', packet: []})" :style="{ marginLeft: '8px' }" /> type="delete"
@click="mask.settings.servers.splice(gi, 1)"
:style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer', marginLeft: '8px' }"
></a-icon>
</a-divider> </a-divider>
<template v-for="(item, ii) in group" :key="'si'+ii"> <template v-for="(item, ii) in group" :key="'si'+ii">
<a-divider :style="{ margin: '0', fontSize: '12px' }">
Item [[ ii + 1 ]]
<a-icon type="delete" @click="() => { group.splice(ii, 1); if(group.length === 0) mask.settings.servers.splice(gi, 1); }" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }" />
</a-divider>
<a-form-item label='{{ i18n "pages.xray.outbound.type" }}'> <a-form-item label='{{ i18n "pages.xray.outbound.type" }}'>
<a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme" <a-select v-model="item.type" :dropdown-class-name="themeSwitcher.currentTheme"
@change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }"> @change="t => { if(t === 'base64') item.packet = RandomUtil.randomBase64(); else if(t === 'array') { item.rand = 0; item.packet = []; } else { item.packet = ''; } }">
@ -283,12 +290,12 @@
<a-input-number v-model.number="mask.settings.reset" :min="0" /> <a-input-number v-model.number="mask.settings.reset" :min="0" />
</a-form-item> </a-form-item>
<a-form-item label="Noise"> <a-form-item label="Noise">
<a-icon <a-button
type="plus" icon="plus"
type="primary" type="primary"
size="small" size="small"
@click="mask.settings.noise.push({rand: '1-8192', randRange: '0-255', type: 'array', packet: [], delay: '10-20'})" @click="mask.settings.noise.push({rand: '1-8192', randRange: '0-255', type: 'array', packet: [], delay: '10-20'})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(n, index) in mask.settings.noise" :key="index"> <template v-for="(n, index) in mask.settings.noise" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
@ -333,11 +340,12 @@
</template> </template>
<template v-if="mask.type === 'header-custom'"> <template v-if="mask.type === 'header-custom'">
<a-form-item label="Client"> <a-form-item label="Client">
<a-icon <a-button
type="plus" icon="plus"
type="primary"
size="small" size="small"
@click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})" @click="mask.settings.client.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(c, index) in mask.settings.client" :key="index"> <template v-for="(c, index) in mask.settings.client" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">
@ -378,11 +386,12 @@
</template> </template>
<a-divider :style="{ margin: '0' }"></a-divider> <a-divider :style="{ margin: '0' }"></a-divider>
<a-form-item label="Server"> <a-form-item label="Server">
<a-icon <a-button
type="plus" icon="plus"
type="primary"
size="small" size="small"
@click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})" @click="mask.settings.server.push({rand: 0, randRange: '0-255', type: 'array', packet: []})"
/> ></a-button>
</a-form-item> </a-form-item>
<template v-for="(s, index) in mask.settings.server" :key="index"> <template v-for="(s, index) in mask.settings.server" :key="index">
<a-divider :style="{ margin: '0' }"> <a-divider :style="{ margin: '0' }">