better link generator

This commit is contained in:
Alireza Ahmadi
2024-07-23 16:24:26 +02:00
parent 39022c1b2d
commit eef7e200ba
4 changed files with 56 additions and 59 deletions
+19 -21
View File
@@ -254,28 +254,26 @@ const saveModal = (data:Inbound, stats: boolean, tls_id: number, cData: any) =>
modal.value.visible = false
}
const updateLinks = (i: any) => {
if(i.users && i.users.length>0){
i.users.forEach((u:any) => {
const client = clients.value.find(c => u.username? c.name == u.username : c.name == u.name)
if (client){
const clientInbounds = <Inbound[]>inbounds.value.filter(inb => client?.inbounds.includes(inb.tag))
const newLinks = <Link[]>[]
clientInbounds.forEach(i =>{
const tlsClient = tlsConfigs?.value.findLast((t:any) => t.inbounds.includes(i.tag))?.client?? {}
const cData = <any>Data().inData?.findLast((d:any) => d.tag == i.tag)
const addrs = cData ? <any[]>cData.addrs : []
const uris = LinkUtil.linkGenerator(client.name,i, tlsClient, addrs)
if (uris.length>0){
uris.forEach(uri => {
newLinks.push(<Link>{ type: 'local', remark: i.tag, uri: uri })
})
}
})
let links = client.links && client.links.length>0? client.links : <Link[]>[]
links = [...newLinks, ...links.filter(l => l.type != 'local')]
if(i.users){
const uClients = clients.value.filter(c => c.inbounds.includes(i.tag))
uClients.forEach((u:Client) => {
const clientInbounds = <Inbound[]>inbounds.value.filter(inb => u.inbounds.includes(inb.tag))
const newLinks = <Link[]>[]
clientInbounds.forEach(i =>{
const tlsClient = tlsConfigs?.value.findLast((t:any) => t.inbounds.includes(i.tag))?.client?? {}
const cData = <any>Data().inData?.findLast((d:any) => d.tag == i.tag)
const addrs = cData ? <any[]>cData.addrs : []
const uris = LinkUtil.linkGenerator(u,i, tlsClient, addrs)
if (uris.length>0){
uris.forEach(uri => {
newLinks.push(<Link>{ type: 'local', remark: i.tag, uri: uri })
})
}
})
let links = u.links && u.links.length>0? u.links : <Link[]>[]
links = [...newLinks, ...links.filter(l => l.type != 'local')]
client.links = links
}
u.links = links
})
}
}