mirror of
https://github.com/snltty/linker.git
synced 2025-09-26 21:15:57 +08:00
app
This commit is contained in:
20
.github/workflows/dotnet.yml
vendored
20
.github/workflows/dotnet.yml
vendored
@@ -250,3 +250,23 @@ jobs:
|
||||
bucket: ide-qbcode
|
||||
asset-path: ./src/linker/linker-install.sh
|
||||
target-path: /downloads/linker/linker-install.sh
|
||||
- name: upload-apk-oss
|
||||
id: upload-apk-oss
|
||||
uses: tvrcgo/oss-action@v0.1.1
|
||||
with:
|
||||
region: oss-cn-shenzhen
|
||||
key-id: ${{ secrets.ALIYUN_OSS_ID }}
|
||||
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
|
||||
bucket: ide-qbcode
|
||||
asset-path: ./public/publish-zip/linker.apk
|
||||
target-path: /downloads/linker/v1.7.4/linker.apk
|
||||
- name: upload-apk
|
||||
id: upload-apk
|
||||
uses: actions/upload-release-asset@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./public/publish-zip/linker.apk
|
||||
asset_name: linker.apk
|
||||
asset_content_type: application/apk
|
||||
|
@@ -128,7 +128,7 @@ function writeUpload(data, tagName) {
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
|
||||
data.jobs.build.steps.push({
|
||||
name: `upload-apk-oss`,
|
||||
id: `upload-apk-oss`,
|
||||
@@ -156,7 +156,7 @@ function writeUpload(data, tagName) {
|
||||
'asset_content_type': 'application/apk'
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
}
|
||||
function writeUploadIpk(data, tagName) {
|
||||
const platforms = ['x64', 'arm', 'arm64'];
|
||||
|
@@ -18,8 +18,8 @@ cd ../../
|
||||
echo F|xcopy "version.txt" "public\\version.txt" /f /h /y
|
||||
|
||||
echo F|xcopy "public\\extends\\any\\web\\*" "src\\linker.app\\public\\web\\*" /s /f /h /y
|
||||
rem dotnet publish ./src/linker.app -c:Release -f:net8.0-android /p:AndroidSigningKeyPass=123321 /p:AndroidSdkDirectory=%sdkpath%
|
||||
rem echo F|xcopy "src\\linker.app\\bin\\Release\\net8.0-android\\publish\\com.snltty.linker.app-Signed.apk" "public\\publish-zip\\linker.apk" /s /f /h /y
|
||||
dotnet publish ./src/linker.app -c:Release -f:net8.0-android /p:AndroidSigningKeyPass=123321 /p:AndroidSdkDirectory=%sdkpath%
|
||||
echo F|xcopy "src\\linker.app\\bin\\Release\\net8.0-android\\publish\\com.snltty.linker.app-Signed.apk" "public\\publish-zip\\linker.apk" /s /f /h /y
|
||||
|
||||
for %%r in (win-x86,win-x64,win-arm64) do (
|
||||
echo F|xcopy "src\\linker.tray.win\\dist\\*" "public\\extends\\%%r\\linker-%%r\\*" /s /f /h /y
|
||||
|
@@ -12,8 +12,6 @@ namespace linker.app
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
|
||||
|
||||
|
||||
|
||||
MainPage = new MainPage();
|
||||
}
|
||||
|
||||
@@ -30,7 +28,7 @@ namespace linker.app
|
||||
}
|
||||
private void HandleException(Exception ex)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine($"全局异常: {ex}");
|
||||
//System.Diagnostics.Debug.WriteLine($"全局异常: {ex}");
|
||||
/*
|
||||
MainThread.BeginInvokeOnMainThread(async () =>
|
||||
{
|
||||
|
@@ -2,9 +2,9 @@
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
|
||||
<ActiveDebugFramework>net8.0-ios</ActiveDebugFramework>
|
||||
<ActiveDebugProfile>模拟器</ActiveDebugProfile>
|
||||
<SelectedPlatformGroup>Simulator</SelectedPlatformGroup>
|
||||
<ActiveDebugFramework>net8.0-android</ActiveDebugFramework>
|
||||
<ActiveDebugProfile>Pixel 5 - API 34 (Android 14.0 - API 34)</ActiveDebugProfile>
|
||||
<SelectedPlatformGroup>Emulator</SelectedPlatformGroup>
|
||||
<DefaultDevice>pixel_5_-_api_34</DefaultDevice>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'">
|
||||
|
1
src/linker.app/public/web/css/260.891b317e.css
Normal file
1
src/linker.app/public/web/css/260.891b317e.css
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/css/270.96c012fe.css
Normal file
1
src/linker.app/public/web/css/270.96c012fe.css
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/css/353.753df2fe.css
Normal file
1
src/linker.app/public/web/css/353.753df2fe.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/google.svg
Normal file
1
src/linker.app/public/web/google.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1745458919168" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2606" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M214.101333 512c0-32.512 5.546667-63.701333 15.36-92.928L57.173333 290.218667A491.861333 491.861333 0 0 0 4.693333 512c0 79.701333 18.858667 154.88 52.394667 221.610667l172.202667-129.066667A290.56 290.56 0 0 1 214.101333 512" fill="#FBBC05" p-id="2607"></path><path d="M516.693333 216.192c72.106667 0 137.258667 25.002667 188.458667 65.962667L854.101333 136.533333C763.349333 59.178667 646.997333 11.392 516.693333 11.392c-202.325333 0-376.234667 113.28-459.52 278.826667l172.373334 128.853333c39.68-118.016 152.832-202.88 287.146666-202.88" fill="#EA4335" p-id="2608"></path><path d="M516.693333 807.808c-134.357333 0-247.509333-84.864-287.232-202.88l-172.288 128.853333c83.242667 165.546667 257.152 278.826667 459.52 278.826667 124.842667 0 244.053333-43.392 333.568-124.757333l-163.584-123.818667c-46.122667 28.458667-104.234667 43.776-170.026666 43.776" fill="#34A853" p-id="2609"></path><path d="M1005.397333 512c0-29.568-4.693333-61.44-11.648-91.008H516.650667V614.4h274.602666c-13.696 65.962667-51.072 116.650667-104.533333 149.632l163.541333 123.818667c93.994667-85.418667 155.136-212.650667 155.136-375.850667" fill="#4285F4" p-id="2610"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
@@ -1 +1 @@
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.cfba5739.js"></script><script defer="defer" src="js/app.33e5fb11.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.7c444b43.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.cfba5739.js"></script><script defer="defer" src="js/app.9d5a1c80.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.7c444b43.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/260.458d1487.js
Normal file
1
src/linker.app/public/web/js/260.458d1487.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/270.e7d9bf4d.js
Normal file
1
src/linker.app/public/web/js/270.e7d9bf4d.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[270],{7332:function(e,n,a){a.r(n),a.d(n,{default:function(){return O}});var t=a(6768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},o={class:"body flex-1 relative"},c={class:"status"};function r(e,n,a,r,u,d){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",o,[(0,t.bF)(p)]),(0,t.Lk)("div",c,[(0,t.bF)(v,{config:!1})])])])}a(4114);var u=a(4232);const d=e=>((0,t.Qi)("data-v-6bfe19a3"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=d((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,n,a,s,l,i){const o=(0,t.g2)("Refresh"),c=(0,t.g2)("el-icon"),r=(0,t.g2)("el-button"),d=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,u.v_)(s.state.group),1),h,(0,t.bF)(r,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(o)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(d,{name:"net"})])])])}var C=a(3830),m=a(144),b=a(7477),L=a(5096),_={components:{Edit:b.ffu,Refresh:b.C42,Background:L.A},setup(){const e=(0,C.B)(),n=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),a=()=>{window.location.reload()};return{state:n,handleRefresh:a}}},w=a(1241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-6bfe19a3"]]);var F=S;const x=e=>((0,t.Qi)("data-v-68d1c30a"),e=e(),(0,t.jt)(),e),T={class:"net-list-wrap flex flex-column absolute"},z={class:"flex-1 scrollbar"},E={class:"flex"},A=x((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),I={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,n,a,s,l,i){const o=(0,t.g2)("DeviceName"),c=(0,t.g2)("UpdaterBtn"),r=(0,t.g2)("TuntapShow"),u=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",T,[(0,t.Lk)("div",z,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,n)=>((0,t.uX)(),(0,t.CE)("li",{key:n},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",E,[(0,t.Lk)("div",null,[(0,t.bF)(o,{item:e},null,8,["item"])]),A,(0,t.Lk)("div",null,[(0,t.bF)(c,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",I,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(r,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(u,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var D=a(8104),X=a(7985),y=a(9383),N=a(7115),U=a(263),Q=a(3694),W=a(9983),H={components:{StarFilled:b.BQ2,UpdaterBtn:N.A,DeviceName:U.A,TuntapShow:Q.A},setup(e){(0,C.B)();const n=(0,m.Kh)({}),{devices:a,machineId:s,_getSignList:l,_getSignList1:i,handleDeviceEdit:o,handlePageChange:c,handlePageSizeChange:r,handleDel:u,clearDevicesTimeout:d}=(0,X.r)(),{tuntap:g,_getTuntapInfo:p,handleTuntapRefresh:v,clearTuntapTimeout:h,handleTuntapEdit:f,sortTuntapIP:k}=(0,D.O)(),{_getUpdater:b,_subscribeUpdater:L,clearUpdaterTimeout:_}=(0,y.d)(),{connections:w,forwardConnections:S,_getForwardConnections:F,tuntapConnections:x,_getTuntapConnections:T,socks5Connections:z,_getSocks5Connections:E,handleTunnelConnections:A,clearConnectionsTimeout:I}=(0,W.L2)();return(0,t.sV)((()=>{c(),v(),l(),i(),p(),b(),L()})),(0,t.hi)((()=>{d(),h(),_()})),{state:n,devices:a,machineId:s,handlePageChange:c,handlePageSizeChange:r,tuntap:g}}};const K=(0,w.A)(H,[["render",R],["__scopeId","data-v-68d1c30a"]]);var j=K,q=a(9653),M=a(1387),V={components:{Head:F,List:j,Status:q.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,C.B)(),n=(0,M.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&n.push({name:"NoPermission"})})),{}}};const G=(0,w.A)(V,[["render",r],["__scopeId","data-v-6a3f3b43"]]);var O=G}}]);
|
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/32.c86fd9ce.js
Normal file
1
src/linker.app/public/web/js/32.c86fd9ce.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/353.eaaf2d3e.js
Normal file
1
src/linker.app/public/web/js/353.eaaf2d3e.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/736.3a98830e.js
Normal file
1
src/linker.app/public/web/js/736.3a98830e.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/754.f9bdb301.js
Normal file
1
src/linker.app/public/web/js/754.f9bdb301.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[922],{427:function(e,n,a){a.r(n),a.d(n,{default:function(){return O}});var t=a(6768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},o={class:"body flex-1 relative"},c={class:"status"};function r(e,n,a,r,u,d){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",o,[(0,t.bF)(p)]),(0,t.Lk)("div",c,[(0,t.bF)(v,{config:!1})])])])}a(4114);const u=e=>((0,t.Qi)("data-v-1fd9ef80"),e=e(),(0,t.jt)(),e),d={class:"head-wrap"},g={class:"tools flex"},p=u((()=>(0,t.Lk)("span",{class:"label"},"服务器 ",-1))),v=u((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),h={style:{"margin-left":"1rem"}};function f(e,n,a,s,l,i){const o=(0,t.g2)("el-input"),c=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),u=(0,t.g2)("el-button"),f=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",d,[(0,t.Lk)("div",g,[p,(0,t.bF)(o,{modelValue:s.state.server,"onUpdate:modelValue":n[0]||(n[0]=e=>s.state.server=e),readonly:"",style:{width:"14rem"},size:"small"},null,8,["modelValue"]),v,(0,t.bF)(u,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(c)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",h,[(0,t.bF)(f,{name:"net"})])])])}var k=a(3830),m=a(144),C=a(7477),b=a(5096),L={components:{Edit:C.ffu,Refresh:C.C42,Background:b.A},setup(){const e=(0,k.B)(),n=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host))}),a=()=>{window.location.reload()};return{state:n,handleRefresh:a}}},_=a(1241);const w=(0,_.A)(L,[["render",f],["__scopeId","data-v-1fd9ef80"]]);var F=w;const S=e=>((0,t.Qi)("data-v-68d1c30a"),e=e(),(0,t.jt)(),e),x={class:"net-list-wrap flex flex-column absolute"},T={class:"flex-1 scrollbar"},z={class:"flex"},E=S((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),A={class:"tuntap"},I={class:"page t-c"},P={class:"page-wrap t-c"};function B(e,n,a,s,l,i){const o=(0,t.g2)("DeviceName"),c=(0,t.g2)("UpdaterBtn"),r=(0,t.g2)("TuntapShow"),u=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",x,[(0,t.Lk)("div",T,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,n)=>((0,t.uX)(),(0,t.CE)("li",{key:n},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",z,[(0,t.Lk)("div",null,[(0,t.bF)(o,{item:e},null,8,["item"])]),E,(0,t.Lk)("div",null,[(0,t.bF)(c,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",A,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(r,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",I,[(0,t.Lk)("div",P,[(0,t.bF)(u,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var y=a(8104),R=a(7985),D=a(9383),U=a(7115),X=a(6588),V=a(3694),N=a(9983),Q={components:{StarFilled:C.BQ2,UpdaterBtn:U.A,DeviceName:X.A,TuntapShow:V.A},setup(e){(0,k.B)();const n=(0,m.Kh)({}),{devices:a,machineId:s,_getSignList:l,_getSignList1:i,handleDeviceEdit:o,handlePageChange:c,handlePageSizeChange:r,handleDel:u,clearDevicesTimeout:d}=(0,R.r)(),{tuntap:g,_getTuntapInfo:p,handleTuntapRefresh:v,clearTuntapTimeout:h,handleTuntapEdit:f,sortTuntapIP:C}=(0,y.O)(),{_getUpdater:b,_subscribeUpdater:L,clearUpdaterTimeout:_}=(0,D.d)(),{connections:w,forwardConnections:F,_getForwardConnections:S,tuntapConnections:x,_getTuntapConnections:T,socks5Connections:z,_getSocks5Connections:E,handleTunnelConnections:A,clearConnectionsTimeout:I}=(0,N.L2)();return(0,t.sV)((()=>{c(),v(),l(),i(),p(),b(),L()})),(0,t.hi)((()=>{d(),h(),_()})),{state:n,devices:a,machineId:s,handlePageChange:c,handlePageSizeChange:r,tuntap:g}}};const H=(0,_.A)(Q,[["render",B],["__scopeId","data-v-68d1c30a"]]);var K=H,W=a(8478),j=a(1387),q={components:{Head:F,List:K,Status:W.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,k.B)(),n=(0,j.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&n.push({name:"NoPermission"})})),{}}};const M=(0,_.A)(q,[["render",r],["__scopeId","data-v-6a3f3b43"]]);var O=M}}]);
|
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/app.9d5a1c80.js
Normal file
1
src/linker.app/public/web/js/app.9d5a1c80.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/xiaomi.svg
Normal file
1
src/linker.app/public/web/xiaomi.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1745458938525" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3743" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 0m184.32 0l655.36 0q184.32 0 184.32 184.32l0 655.36q0 184.32-184.32 184.32l-655.36 0q-184.32 0-184.32-184.32l0-655.36q0-184.32 184.32-184.32Z" fill="#FE7945" p-id="3744"></path><path d="M184.32 286.72h317.44a153.6 153.6 0 0 1 153.6 153.6v307.2H184.32v-460.8z" fill="#FFFFFF" p-id="3745"></path><path d="M737.28 286.72h102.4v460.8H737.28z" fill="#FFFFFF" p-id="3746"></path><path d="M286.72 389.12h215.04a51.2 51.2 0 0 1 51.2 51.2v307.2H286.72v-358.4z" fill="#FE7945" p-id="3747"></path><path d="M368.64 491.52h102.4v256H368.64z" fill="#FFFFFF" p-id="3748"></path></svg>
|
After Width: | Height: | Size: 905 B |
@@ -121,10 +121,10 @@ namespace linker.messenger.store.file
|
||||
ConfigExportInfo configExportInfo = param.Content.DeJson<ConfigExportInfo>();
|
||||
|
||||
var (client, clientObject, common, commonObject) = await GetConfig(configExportInfo).ConfigureAwait(false);
|
||||
Dictionary<string, string> dic = new Dictionary<string, string>
|
||||
Dictionary<string, object> dic = new Dictionary<string, object>
|
||||
{
|
||||
{"Client",clientObject.ToJson()},
|
||||
{"Common",commonObject.ToJson()},
|
||||
{"Client",Convert.ToBase64String(Encoding.UTF8.GetBytes(clientObject.ToJson()))},
|
||||
{"Common",Convert.ToBase64String(Encoding.UTF8.GetBytes(commonObject.ToJson()))},
|
||||
};
|
||||
|
||||
return Convert.ToBase64String(Encoding.UTF8.GetBytes(dic.ToJson()));
|
||||
@@ -145,8 +145,8 @@ namespace linker.messenger.store.file
|
||||
var (client, clientObject, common, commonObject) = await GetConfig(configExportInfo).ConfigureAwait(false);
|
||||
Dictionary<string, object> dic = new Dictionary<string, object>
|
||||
{
|
||||
{"Client",clientObject},
|
||||
{"Common",commonObject},
|
||||
{"Client",Convert.ToBase64String(Encoding.UTF8.GetBytes(clientObject.ToJson()))},
|
||||
{"Common",Convert.ToBase64String(Encoding.UTF8.GetBytes(commonObject.ToJson()))},
|
||||
};
|
||||
string value = Convert.ToBase64String(Encoding.UTF8.GetBytes(dic.ToJson()));
|
||||
return await exportResolver.Save(signInClientState.Connection.Address, value);
|
||||
|
@@ -94,7 +94,6 @@ namespace linker.messenger.store.file
|
||||
socket.SafeClose();
|
||||
return;
|
||||
}
|
||||
Console.WriteLine(info.Type);
|
||||
switch (info.Type)
|
||||
{
|
||||
case ExportSaveType.Save:
|
||||
|
@@ -76,9 +76,13 @@ namespace linker.snat
|
||||
error = "only win x64 and win x86";
|
||||
return false;
|
||||
}
|
||||
if (info.Src == null || info.Dsts == null || info.Dsts.Length == 0)
|
||||
if (info.Src == null)
|
||||
{
|
||||
error = "src is null,snat fail";
|
||||
return false;
|
||||
}
|
||||
if (info.Dsts == null || info.Dsts.Length == 0)
|
||||
{
|
||||
error = "src is null, or dsts empty,snat fail";
|
||||
return false;
|
||||
}
|
||||
if (info.InterfaceIp == null || info.InterfaceIp.Equals(IPAddress.Any))
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.251" ProductVersion="0.0.0.251" publishDir="/dist/" dstrip="false" local="false" ignored="false">
|
||||
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.252" ProductVersion="0.0.0.252" publishDir="/dist/" dstrip="false" local="false" ignored="false">
|
||||
<file name="main.aardio" path="main.aardio" comment="main.aardio"/>
|
||||
<folder name="资源文件" path="res" embed="true" local="false" ignored="false">
|
||||
<file name="favicon.ico" path="res\favicon.ico" comment="res\favicon.ico"/>
|
||||
|
BIN
src/linker.tray.win/dist/linker.tray.win.exe
vendored
BIN
src/linker.tray.win/dist/linker.tray.win.exe
vendored
Binary file not shown.
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/css/223.dabf53db.css
Normal file
1
src/linker.tray.win/web/css/223.dabf53db.css
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/css/353.753df2fe.css
Normal file
1
src/linker.tray.win/web/css/353.753df2fe.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/css/849.6ebe66e5.css
Normal file
1
src/linker.tray.win/web/css/849.6ebe66e5.css
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/css/app.7c444b43.css
Normal file
1
src/linker.tray.win/web/css/app.7c444b43.css
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/google.svg
Normal file
1
src/linker.tray.win/web/google.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1745458919168" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2606" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M214.101333 512c0-32.512 5.546667-63.701333 15.36-92.928L57.173333 290.218667A491.861333 491.861333 0 0 0 4.693333 512c0 79.701333 18.858667 154.88 52.394667 221.610667l172.202667-129.066667A290.56 290.56 0 0 1 214.101333 512" fill="#FBBC05" p-id="2607"></path><path d="M516.693333 216.192c72.106667 0 137.258667 25.002667 188.458667 65.962667L854.101333 136.533333C763.349333 59.178667 646.997333 11.392 516.693333 11.392c-202.325333 0-376.234667 113.28-459.52 278.826667l172.373334 128.853333c39.68-118.016 152.832-202.88 287.146666-202.88" fill="#EA4335" p-id="2608"></path><path d="M516.693333 807.808c-134.357333 0-247.509333-84.864-287.232-202.88l-172.288 128.853333c83.242667 165.546667 257.152 278.826667 459.52 278.826667 124.842667 0 244.053333-43.392 333.568-124.757333l-163.584-123.818667c-46.122667 28.458667-104.234667 43.776-170.026666 43.776" fill="#34A853" p-id="2609"></path><path d="M1005.397333 512c0-29.568-4.693333-61.44-11.648-91.008H516.650667V614.4h274.602666c-13.696 65.962667-51.072 116.650667-104.533333 149.632l163.541333 123.818667c93.994667-85.418667 155.136-212.650667 155.136-375.850667" fill="#4285F4" p-id="2610"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
@@ -1 +1 @@
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.cfba5739.js"></script><script defer="defer" src="js/app.876d9dd7.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.73965826.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.cfba5739.js"></script><script defer="defer" src="js/app.c8896a4c.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.7c444b43.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/223.1e4a3062.js
Normal file
1
src/linker.tray.win/web/js/223.1e4a3062.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[223],{7332:function(e,n,a){a.r(n),a.d(n,{default:function(){return O}});var t=a(6768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},o={class:"body flex-1 relative"},c={class:"status"};function r(e,n,a,r,u,d){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",o,[(0,t.bF)(p)]),(0,t.Lk)("div",c,[(0,t.bF)(v,{config:!1})])])])}a(4114);var u=a(4232);const d=e=>((0,t.Qi)("data-v-6bfe19a3"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=d((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,n,a,s,l,i){const o=(0,t.g2)("Refresh"),c=(0,t.g2)("el-icon"),r=(0,t.g2)("el-button"),d=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,u.v_)(s.state.group),1),h,(0,t.bF)(r,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(c,null,{default:(0,t.k6)((()=>[(0,t.bF)(o)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(d,{name:"net"})])])])}var C=a(3830),m=a(144),b=a(7477),L=a(5096),_={components:{Edit:b.ffu,Refresh:b.C42,Background:L.A},setup(){const e=(0,C.B)(),n=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),a=()=>{window.location.reload()};return{state:n,handleRefresh:a}}},w=a(1241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-6bfe19a3"]]);var F=S;const x=e=>((0,t.Qi)("data-v-68d1c30a"),e=e(),(0,t.jt)(),e),T={class:"net-list-wrap flex flex-column absolute"},z={class:"flex-1 scrollbar"},E={class:"flex"},A=x((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),I={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,n,a,s,l,i){const o=(0,t.g2)("DeviceName"),c=(0,t.g2)("UpdaterBtn"),r=(0,t.g2)("TuntapShow"),u=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",T,[(0,t.Lk)("div",z,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,n)=>((0,t.uX)(),(0,t.CE)("li",{key:n},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",E,[(0,t.Lk)("div",null,[(0,t.bF)(o,{item:e},null,8,["item"])]),A,(0,t.Lk)("div",null,[(0,t.bF)(c,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",I,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(r,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(u,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var D=a(8104),X=a(7985),y=a(9383),N=a(7115),U=a(263),Q=a(3694),W=a(9983),H={components:{StarFilled:b.BQ2,UpdaterBtn:N.A,DeviceName:U.A,TuntapShow:Q.A},setup(e){(0,C.B)();const n=(0,m.Kh)({}),{devices:a,machineId:s,_getSignList:l,_getSignList1:i,handleDeviceEdit:o,handlePageChange:c,handlePageSizeChange:r,handleDel:u,clearDevicesTimeout:d}=(0,X.r)(),{tuntap:g,_getTuntapInfo:p,handleTuntapRefresh:v,clearTuntapTimeout:h,handleTuntapEdit:f,sortTuntapIP:k}=(0,D.O)(),{_getUpdater:b,_subscribeUpdater:L,clearUpdaterTimeout:_}=(0,y.d)(),{connections:w,forwardConnections:S,_getForwardConnections:F,tuntapConnections:x,_getTuntapConnections:T,socks5Connections:z,_getSocks5Connections:E,handleTunnelConnections:A,clearConnectionsTimeout:I}=(0,W.L2)();return(0,t.sV)((()=>{c(),v(),l(),i(),p(),b(),L()})),(0,t.hi)((()=>{d(),h(),_()})),{state:n,devices:a,machineId:s,handlePageChange:c,handlePageSizeChange:r,tuntap:g}}};const K=(0,w.A)(H,[["render",R],["__scopeId","data-v-68d1c30a"]]);var j=K,q=a(8948),M=a(1387),V={components:{Head:F,List:j,Status:q.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,C.B)(),n=(0,M.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&n.push({name:"NoPermission"})})),{}}};const G=(0,w.A)(V,[["render",r],["__scopeId","data-v-6a3f3b43"]]);var O=G}}]);
|
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/32.c86fd9ce.js
Normal file
1
src/linker.tray.win/web/js/32.c86fd9ce.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/353.eaaf2d3e.js
Normal file
1
src/linker.tray.win/web/js/353.eaaf2d3e.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/736.3a98830e.js
Normal file
1
src/linker.tray.win/web/js/736.3a98830e.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/754.f9bdb301.js
Normal file
1
src/linker.tray.win/web/js/754.f9bdb301.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/849.13158ce4.js
Normal file
1
src/linker.tray.win/web/js/849.13158ce4.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/853.d0536fbb.js
Normal file
1
src/linker.tray.win/web/js/853.d0536fbb.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[922],{427:function(e,n,a){a.r(n),a.d(n,{default:function(){return O}});var t=a(6768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},o={class:"body flex-1 relative"},c={class:"status"};function r(e,n,a,r,u,d){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",o,[(0,t.bF)(p)]),(0,t.Lk)("div",c,[(0,t.bF)(v,{config:!1})])])])}a(4114);const u=e=>((0,t.Qi)("data-v-1fd9ef80"),e=e(),(0,t.jt)(),e),d={class:"head-wrap"},g={class:"tools flex"},p=u((()=>(0,t.Lk)("span",{class:"label"},"服务器 ",-1))),v=u((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),h={style:{"margin-left":"1rem"}};function f(e,n,a,s,l,i){const o=(0,t.g2)("el-input"),c=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),u=(0,t.g2)("el-button"),f=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",d,[(0,t.Lk)("div",g,[p,(0,t.bF)(o,{modelValue:s.state.server,"onUpdate:modelValue":n[0]||(n[0]=e=>s.state.server=e),readonly:"",style:{width:"14rem"},size:"small"},null,8,["modelValue"]),v,(0,t.bF)(u,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(c)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",h,[(0,t.bF)(f,{name:"net"})])])])}var k=a(3830),m=a(144),C=a(7477),b=a(5096),L={components:{Edit:C.ffu,Refresh:C.C42,Background:b.A},setup(){const e=(0,k.B)(),n=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host))}),a=()=>{window.location.reload()};return{state:n,handleRefresh:a}}},_=a(1241);const w=(0,_.A)(L,[["render",f],["__scopeId","data-v-1fd9ef80"]]);var F=w;const S=e=>((0,t.Qi)("data-v-68d1c30a"),e=e(),(0,t.jt)(),e),x={class:"net-list-wrap flex flex-column absolute"},T={class:"flex-1 scrollbar"},z={class:"flex"},E=S((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),A={class:"tuntap"},I={class:"page t-c"},P={class:"page-wrap t-c"};function B(e,n,a,s,l,i){const o=(0,t.g2)("DeviceName"),c=(0,t.g2)("UpdaterBtn"),r=(0,t.g2)("TuntapShow"),u=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",x,[(0,t.Lk)("div",T,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,n)=>((0,t.uX)(),(0,t.CE)("li",{key:n},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",z,[(0,t.Lk)("div",null,[(0,t.bF)(o,{item:e},null,8,["item"])]),E,(0,t.Lk)("div",null,[(0,t.bF)(c,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",A,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(r,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",I,[(0,t.Lk)("div",P,[(0,t.bF)(u,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var y=a(8104),R=a(7985),D=a(9383),U=a(7115),X=a(6588),V=a(3694),N=a(9983),Q={components:{StarFilled:C.BQ2,UpdaterBtn:U.A,DeviceName:X.A,TuntapShow:V.A},setup(e){(0,k.B)();const n=(0,m.Kh)({}),{devices:a,machineId:s,_getSignList:l,_getSignList1:i,handleDeviceEdit:o,handlePageChange:c,handlePageSizeChange:r,handleDel:u,clearDevicesTimeout:d}=(0,R.r)(),{tuntap:g,_getTuntapInfo:p,handleTuntapRefresh:v,clearTuntapTimeout:h,handleTuntapEdit:f,sortTuntapIP:C}=(0,y.O)(),{_getUpdater:b,_subscribeUpdater:L,clearUpdaterTimeout:_}=(0,D.d)(),{connections:w,forwardConnections:F,_getForwardConnections:S,tuntapConnections:x,_getTuntapConnections:T,socks5Connections:z,_getSocks5Connections:E,handleTunnelConnections:A,clearConnectionsTimeout:I}=(0,N.L2)();return(0,t.sV)((()=>{c(),v(),l(),i(),p(),b(),L()})),(0,t.hi)((()=>{d(),h(),_()})),{state:n,devices:a,machineId:s,handlePageChange:c,handlePageSizeChange:r,tuntap:g}}};const H=(0,_.A)(Q,[["render",B],["__scopeId","data-v-68d1c30a"]]);var K=H,W=a(8478),j=a(1387),q={components:{Head:F,List:K,Status:W.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,k.B)(),n=(0,j.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&n.push({name:"NoPermission"})})),{}}};const M=(0,_.A)(q,[["render",r],["__scopeId","data-v-6a3f3b43"]]);var O=M}}]);
|
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/js/app.c8896a4c.js
Normal file
1
src/linker.tray.win/web/js/app.c8896a4c.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.tray.win/web/xiaomi.svg
Normal file
1
src/linker.tray.win/web/xiaomi.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1745458938525" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3743" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 0m184.32 0l655.36 0q184.32 0 184.32 184.32l0 655.36q0 184.32-184.32 184.32l-655.36 0q-184.32 0-184.32-184.32l0-655.36q0-184.32 184.32-184.32Z" fill="#FE7945" p-id="3744"></path><path d="M184.32 286.72h317.44a153.6 153.6 0 0 1 153.6 153.6v307.2H184.32v-460.8z" fill="#FFFFFF" p-id="3745"></path><path d="M737.28 286.72h102.4v460.8H737.28z" fill="#FFFFFF" p-id="3746"></path><path d="M286.72 389.12h215.04a51.2 51.2 0 0 1 51.2 51.2v307.2H286.72v-358.4z" fill="#FE7945" p-id="3747"></path><path d="M368.64 491.52h102.4v256H368.64z" fill="#FFFFFF" p-id="3748"></path></svg>
|
After Width: | Height: | Size: 905 B |
@@ -196,12 +196,13 @@ namespace linker.tun
|
||||
bool isSupport = string.IsNullOrWhiteSpace(supportError) && support.Contains("No such file or directory") == false;
|
||||
|
||||
CommandHelper.Linux(string.Empty, new string[] {
|
||||
$"iptables -t nat -D POSTROUTING -o {Name} -j MASQUERADE",
|
||||
$"iptables -D FORWARD -i {interfaceLinux} -o {Name} -j ACCEPT",
|
||||
$"iptables -D FORWARD -i {Name} -j ACCEPT",
|
||||
$"iptables -t nat -D POSTROUTING -o {Name} -j MASQUERADE",
|
||||
|
||||
isSupport ? $"iptables -D FORWARD -i {Name} -o {interfaceLinux} -m state --state ESTABLISHED,RELATED -j ACCEPT"
|
||||
: $"iptables -D FORWARD -i {Name} -o {interfaceLinux} -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT",
|
||||
|
||||
$"iptables -D FORWARD -i {Name} -j ACCEPT",
|
||||
isSupport ? $"iptables -D FORWARD -o {Name} -m state --state ESTABLISHED,RELATED -j ACCEPT"
|
||||
: $"iptables -D FORWARD -o {Name} -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"
|
||||
});
|
||||
|
@@ -50,6 +50,7 @@ export default {
|
||||
'status.groupPassword': 'Password',
|
||||
'status.groupOper': 'Oper',
|
||||
'status.groupDelConfirm': 'Are you sure to delete?',
|
||||
'status.groupValidate': 'Name or Id empty item has exists',
|
||||
|
||||
'status.support': 'Support',
|
||||
'status.website': 'Website',
|
||||
@@ -231,7 +232,7 @@ export default {
|
||||
'server.updaterMM': 'Minute',
|
||||
'server.updaterS': 'Second',
|
||||
|
||||
'server.asyncText': 'Synchronize to all clients',
|
||||
'server.asyncText': 'to group all clients',
|
||||
'server.asyncSelect': 'Please select',
|
||||
'server.asyncCheckAll': 'Check all',
|
||||
'server.asyncSignInSecretKey': 'Signin secretKey',
|
||||
|
@@ -50,6 +50,7 @@ export default {
|
||||
'status.groupPassword': '密码',
|
||||
'status.groupOper': '操作',
|
||||
'status.groupDelConfirm': '确认删除吗?',
|
||||
'status.groupValidate': '有名称或者id未设置的项',
|
||||
|
||||
'status.support': '赞助',
|
||||
'status.website': '官网',
|
||||
@@ -327,7 +328,7 @@ export default {
|
||||
|
||||
|
||||
|
||||
'server.asyncText': '同步到所有客户端',
|
||||
'server.asyncText': '到本组所有客户端',
|
||||
'server.asyncSelect': '请选择',
|
||||
'server.asyncCheckAll': '全选',
|
||||
'server.asyncSignInSecretKey': '信标密钥',
|
||||
|
@@ -82,7 +82,7 @@ export default {
|
||||
const {t} = useI18n();
|
||||
const globalData = injectGlobalData();
|
||||
const state = reactive({
|
||||
list:globalData.value.config.Client.Groups || [],
|
||||
list:globalData.value.config.Client.Groups,
|
||||
show:true
|
||||
});
|
||||
watch(()=>globalData.value.config.Client.Groups,()=>{
|
||||
@@ -122,6 +122,7 @@ export default {
|
||||
}
|
||||
const handleAdd = (index)=>{
|
||||
if(state.list.filter(c=>c.Id == '' || c.Name == '').length > 0){
|
||||
ElMessage.error(t('status.groupValidate'));
|
||||
return;
|
||||
}
|
||||
state.list.splice(index+1,0,{Name:'',Id:'',Password:''});
|
||||
|
@@ -2,12 +2,12 @@
|
||||
<el-dropdown>
|
||||
<span class="el-dropdown-link" :class="{connected:state.connected}">
|
||||
<el-icon><Avatar /></el-icon>
|
||||
{{state.groupName}}
|
||||
{{state.groupName|| '未知'}}
|
||||
<el-icon><ArrowDown /></el-icon>
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu v-if="hasGroup">
|
||||
<el-dropdown-item v-for="item in state.groups" @click="handleGroupChange(item.Id)">{{item.Name}}</el-dropdown-item>
|
||||
<el-dropdown-item v-for="item in state.groups" @click="handleGroupChange(item.Id)">{{item.Name || '未知'}}</el-dropdown-item>
|
||||
<el-dropdown-item @click="state.showGroups = true">{{$t('status.group')}}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
@@ -32,27 +32,28 @@ export default {
|
||||
const state = reactive({
|
||||
loading: false,
|
||||
connected: computed(() => globalData.value.signin.Connected),
|
||||
groupName: globalData.value.config.Client.Group.Name,
|
||||
groups: globalData.value.config.Client.Groups.slice(),
|
||||
groupName: computed(()=>globalData.value.config.Client.Group.Name),
|
||||
groups:computed(()=>globalData.value.config.Client.Groups),
|
||||
showGroups:false
|
||||
});
|
||||
console.log(globalData.value.config.Client.Groups);
|
||||
|
||||
const handleGroupChange = (value)=>{
|
||||
|
||||
const index = state.groups.map((item,index)=>{
|
||||
const groups = globalData.value.config.Client.Groups;
|
||||
const index = groups.map((item,index)=>{
|
||||
item.$index = index;
|
||||
return item;
|
||||
}).filter(c=>c.Id == value)[0].$index;
|
||||
const temp = state.groups[index];
|
||||
state.groups[index] = state.groups[0];
|
||||
state.groups[0] = temp;
|
||||
handleSave();
|
||||
const temp =groups[index];
|
||||
groups[index] = groups[0];
|
||||
groups[0] = temp;
|
||||
handleSave(groups);
|
||||
}
|
||||
const handleSave = () => {
|
||||
const handleSave = (groups) => {
|
||||
state.loading = true;
|
||||
setSignIn({
|
||||
Name:globalData.value.config.Client.Name,
|
||||
Groups:state.groups,
|
||||
Groups:groups,
|
||||
}).then(() => {
|
||||
state.loading = false;
|
||||
state.show = false;
|
||||
|
@@ -23,7 +23,7 @@ export default {
|
||||
ElMessage.success(t('common.access'));
|
||||
return;
|
||||
}
|
||||
ElMessageBox.confirm(`${t('server.sync')} ${t(`server.async${props.name}`)} ? `, t('common.tips'), {
|
||||
ElMessageBox.confirm(`${t('server.sync')}【${t(`server.async${props.name}`)}】${t(`server.asyncText`)}? `, t('common.tips'), {
|
||||
confirmButtonText: t('common.confirm'),
|
||||
cancelButtonText:t('common.cancel'),
|
||||
type: 'warning'
|
||||
|
@@ -1,5 +1,5 @@
|
||||
v1.7.4
|
||||
2025-04-24 17:28:28
|
||||
2025-04-25 10:39:50
|
||||
1. 一些优化
|
||||
2. 内置应用层SNAT,用于无法使用系统NetNat的windows系统
|
||||
3. 如果你设备很多,请尝试升级其中一个成功重启后再升级其它
|
Reference in New Issue
Block a user