From b11f715aab67d1f5d23b316ca9a9d2b05106daf7 Mon Sep 17 00:00:00 2001 From: SNRainiar Date: Mon, 20 May 2024 22:30:21 +0800 Subject: [PATCH] Update frontend --- frontend/package.json | 8 +- frontend/pnpm-lock.yaml | 122 ++++---- frontend/src/assets/stun-servers.txt | 274 +++++++++--------- .../src/components/receiver/ReceiverSaver.vue | 78 ++--- frontend/src/i18n/en.json | 20 +- frontend/src/i18n/locales/ja.json | 1 + frontend/src/i18n/zh.json | 20 +- frontend/src/utils/receiver.ts | 2 +- 8 files changed, 270 insertions(+), 255 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 086c518..beaa343 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,13 +1,13 @@ { "name": "frontend", "private": true, - "version": "1.0.4", + "version": "1.1.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc && vite build", "preview": "vite preview", - "renew:stun": "node scripts/update-stun.js" + "update:stun": "node scripts/update-stun.js" }, "dependencies": { "@types/file-saver": "^2.0.7", @@ -25,7 +25,7 @@ }, "devDependencies": { "@iconify-json/mdi": "^1.1.66", - "@types/node": "^20.12.11", + "@types/node": "^20.12.12", "@types/pako": "^2.0.3", "@types/streamsaver": "^2.0.4", "@vitejs/plugin-vue": "^5.0.4", @@ -36,7 +36,7 @@ "typescript": "^5.4.5", "unplugin-icons": "^0.18.5", "vite": "^5.2.11", - "vue-tsc": "^2.0.17" + "vue-tsc": "^2.0.19" }, "packageManager": "pnpm@9.1.0+sha256.22e36fba7f4880ecf749a5ca128b8435da085ecd49575e7fb9e64d6bf4fad394" } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 1176d4e..fd2cfcc 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -49,8 +49,8 @@ importers: specifier: ^1.1.66 version: 1.1.66 '@types/node': - specifier: ^20.12.11 - version: 20.12.11 + specifier: ^20.12.12 + version: 20.12.12 '@types/pako': specifier: ^2.0.3 version: 2.0.3 @@ -59,7 +59,7 @@ importers: version: 2.0.4 '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.11))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -71,7 +71,7 @@ importers: version: 5.1.0(jiti@1.21.0)(postcss@8.4.38) tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5)) + version: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -80,10 +80,10 @@ importers: version: 0.18.5(@vue/compiler-sfc@3.4.27)(vue-template-compiler@2.7.16) vite: specifier: ^5.2.11 - version: 5.2.11(@types/node@20.12.11) + version: 5.2.11(@types/node@20.12.12) vue-tsc: - specifier: ^2.0.17 - version: 2.0.17(typescript@5.4.5) + specifier: ^2.0.19 + version: 2.0.19(typescript@5.4.5) packages: @@ -430,8 +430,8 @@ packages: '@types/file-saver@2.0.7': resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} - '@types/node@20.12.11': - resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} '@types/pako@2.0.3': resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} @@ -449,14 +449,14 @@ packages: vite: ^5.0.0 vue: ^3.2.25 - '@volar/language-core@2.2.2': - resolution: {integrity: sha512-GuvEL4JdxbnLVhPLICncCGT+tVW4cIz9GxXNeDofNnJ4iNTKhr5suGVsA1GLOne9PbraSjn8PlLt+pvLxuRVeQ==} + '@volar/language-core@2.2.4': + resolution: {integrity: sha512-7As47GndxGxsqqYnbreLrfB5NDUeQioPM2LJKUuB4/34c0NpEJ2byVl3c9KYdjIdiEstWZ9JLtLKNTaPWb5jtA==} - '@volar/source-map@2.2.2': - resolution: {integrity: sha512-vUwvZuSW6iN4JI9QRinh9EjFasx1TUtnaWMKwgWx08xz1PyYuNkLlWlrZXBZ5GGBhML0u230M/7X+AHY2h9yKg==} + '@volar/source-map@2.2.4': + resolution: {integrity: sha512-m92FLpR9vB1YEZfiZ+bfgpLrToL/DNkOrorWVep3pffHrwwI4Tx2oIQN+sqHJfKkiT5N3J1owC+8crhAEinfjg==} - '@volar/typescript@2.2.2': - resolution: {integrity: sha512-WcwOREz7+uOrpjUrKhOMaOKKmyPdtqF95HWX7SE0d9hhBB1KkfahxhaAex5U9Bn43LfINHlycLoYCNEtfeKm0g==} + '@volar/typescript@2.2.4': + resolution: {integrity: sha512-uAQC53tgEbHO62G8NXMfmBrJAlP2QJ9WxVEEQqqK3I6VSy8frL5LbH3hAWODxiwMWixv74wJLWlKbWXOgdIoRQ==} '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} @@ -473,8 +473,8 @@ packages: '@vue/devtools-api@6.6.1': resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - '@vue/language-core@2.0.17': - resolution: {integrity: sha512-tHw2J6G9yL4kn3jN5MftOHEq86Y6qnuohBQ1OHkJ73fAv3OYgwDI1cfX7ds0OEJEycOMG64BA3ql5bDgDa41zw==} + '@vue/language-core@2.0.19': + resolution: {integrity: sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -581,8 +581,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001617: - resolution: {integrity: sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==} + caniuse-lite@1.0.30001620: + resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -684,8 +684,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.763: - resolution: {integrity: sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==} + electron-to-chromium@1.4.774: + resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -963,8 +963,8 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1212,8 +1212,8 @@ packages: resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} engines: {node: '>=14.0.0'} - update-browserslist-db@1.0.15: - resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -1282,8 +1282,8 @@ packages: vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - vue-tsc@2.0.17: - resolution: {integrity: sha512-RRZsiCBD1hvATQb321xV+SkRDKsK5hgFQ4WXy5wuYsyyjz8xAK4DjxHkpH7PFoJKUbZTbeW8KzhejzXZS49Tzw==} + vue-tsc@2.0.19: + resolution: {integrity: sha512-JWay5Zt2/871iodGF72cELIbcAoPyhJxq56mPPh+M2K7IwI688FMrFKc/+DvB05wDWEuCPexQJ6L10zSwzzapg==} hasBin: true peerDependencies: typescript: '*' @@ -1600,7 +1600,7 @@ snapshots: '@types/file-saver@2.0.7': {} - '@types/node@20.12.11': + '@types/node@20.12.12': dependencies: undici-types: 5.26.5 @@ -1610,22 +1610,22 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.11))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.11) + vite: 5.2.11(@types/node@20.12.12) vue: 3.4.27(typescript@5.4.5) - '@volar/language-core@2.2.2': + '@volar/language-core@2.2.4': dependencies: - '@volar/source-map': 2.2.2 + '@volar/source-map': 2.2.4 - '@volar/source-map@2.2.2': + '@volar/source-map@2.2.4': dependencies: muggle-string: 0.4.1 - '@volar/typescript@2.2.2': + '@volar/typescript@2.2.4': dependencies: - '@volar/language-core': 2.2.2 + '@volar/language-core': 2.2.4 path-browserify: 1.0.1 '@vue/compiler-core@3.4.27': @@ -1660,9 +1660,9 @@ snapshots: '@vue/devtools-api@6.6.1': {} - '@vue/language-core@2.0.17(typescript@5.4.5)': + '@vue/language-core@2.0.19(typescript@5.4.5)': dependencies: - '@volar/language-core': 2.2.2 + '@volar/language-core': 2.2.4 '@vue/compiler-dom': 3.4.27 '@vue/shared': 3.4.27 computeds: 0.0.1 @@ -1744,10 +1744,10 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001617 + caniuse-lite: 1.0.30001620 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -1767,16 +1767,16 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001617 - electron-to-chromium: 1.4.763 + caniuse-lite: 1.0.30001620 + electron-to-chromium: 1.4.774 node-releases: 2.0.14 - update-browserslist-db: 1.0.15(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.0) call-me-maybe@1.0.2: {} camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001617: {} + caniuse-lite@1.0.30001620: {} chokidar@3.6.0: dependencies: @@ -1876,7 +1876,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.763: {} + electron-to-chromium@1.4.774: {} emoji-regex@8.0.0: {} @@ -2146,7 +2146,7 @@ snapshots: pathe@1.1.2: {} - picocolors@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} @@ -2172,13 +2172,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.38 - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)): dependencies: lilconfig: 3.1.1 yaml: 2.4.2 optionalDependencies: postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.11)(typescript@5.4.5) + ts-node: 10.9.2(@types/node@20.12.12)(typescript@5.4.5) postcss-load-config@5.1.0(jiti@1.21.0)(postcss@8.4.38): dependencies: @@ -2203,7 +2203,7 @@ snapshots: postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 queue-microtask@1.2.3: {} @@ -2328,9 +2328,9 @@ snapshots: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.0 + picocolors: 1.0.1 - tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5)): + tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -2345,11 +2345,11 @@ snapshots: micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 postcss: 8.4.38 postcss-import: 15.1.0(postcss@8.4.38) postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5)) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)) postcss-nested: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.0.16 resolve: 1.22.8 @@ -2373,14 +2373,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@20.12.11)(typescript@5.4.5): + ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.11 + '@types/node': 20.12.12 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -2422,11 +2422,11 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 - update-browserslist-db@1.0.15(browserslist@4.23.0): + update-browserslist-db@1.0.16(browserslist@4.23.0): dependencies: browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 util-deprecate@1.0.2: {} @@ -2438,13 +2438,13 @@ snapshots: svgo: 3.3.2 vue: 3.4.27(typescript@5.4.5) - vite@5.2.11(@types/node@20.12.11): + vite@5.2.11(@types/node@20.12.12): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.17.2 optionalDependencies: - '@types/node': 20.12.11 + '@types/node': 20.12.12 fsevents: 2.3.3 vue-demi@0.14.7(vue@3.4.27(typescript@5.4.5)): @@ -2468,10 +2468,10 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.17(typescript@5.4.5): + vue-tsc@2.0.19(typescript@5.4.5): dependencies: - '@volar/typescript': 2.2.2 - '@vue/language-core': 2.0.17(typescript@5.4.5) + '@volar/typescript': 2.2.4 + '@vue/language-core': 2.0.19(typescript@5.4.5) semver: 7.6.2 typescript: 5.4.5 diff --git a/frontend/src/assets/stun-servers.txt b/frontend/src/assets/stun-servers.txt index 4928e71..1974abb 100644 --- a/frontend/src/assets/stun-servers.txt +++ b/frontend/src/assets/stun-servers.txt @@ -1,169 +1,174 @@ -111.206.174.2:3478 -111.206.174.3:3478 -83.64.250.246:3478 77.237.51.83:3478 +83.64.250.246:3478 111.230.157.11:3478 +111.206.174.3:3478 +111.206.174.2:3478 202.1.117.2:3478 180.235.108.91:3478 -94.140.180.141:3478 84.198.248.217:3478 -81.82.206.117:3478 +94.140.180.141:3478 81.83.12.46:3478 +81.82.206.117:3478 177.66.4.31:3478 198.100.144.121:3478 198.72.119.88:3478 192.99.194.90:3478 66.51.128.11:3478 198.27.70.99:3478 -185.88.236.76:3478 -157.161.10.32:3478 +212.101.4.120:3478 +77.72.169.211:3478 +212.25.7.87:3478 77.72.169.212:3478 +77.72.169.213:3478 +185.88.236.76:3478 212.103.68.7:3478 -212.25.7.87:3478 +157.161.10.32:3478 77.72.169.210:3478 -77.72.169.213:3478 -212.101.4.120:3478 -77.72.169.211:3478 213.140.209.236:3478 31.184.236.23:3478 88.86.102.51:3478 -81.173.115.217:3478 -213.239.206.5:3478 -185.45.152.22:3478 -46.101.202.148:3478 -217.0.136.1:3478 -193.22.17.97:3478 -217.19.174.41:3478 +79.140.42.88:3478 217.19.174.42:3478 -3.78.237.53:3478 -154.48.203.211:3478 -159.69.191.124:443 +136.243.59.79:3478 +80.155.54.123:3478 +87.129.12.229:3478 188.40.203.74:3478 +136.243.202.77:3478 +176.9.24.184:3478 +212.18.0.14:3478 +188.40.18.246:3478 +212.29.18.56:3478 +45.15.102.34:3478 +159.69.191.124:3478 +217.0.11.241:3478 +81.173.115.217:3478 +213.239.206.5:3478 +185.39.86.17:3478 +91.212.41.85:3478 +94.130.130.49:3478 +91.213.98.54:3478 +217.0.11.225:3478 +138.201.243.186:3478 5.9.87.18:3478 -217.119.210.45:3478 87.106.115.74:3478 -88.198.151.128:3478 -217.0.12.1:3478 +89.106.220.34:3478 +217.0.136.1:3478 +185.45.152.22:3478 +217.19.174.41:3478 81.3.27.44:3478 -88.99.67.241:3478 -217.0.11.225:3478 -212.118.209.86:3478 82.97.157.254:3478 -109.235.234.65:3478 -83.125.8.47:3478 +88.198.151.128:3478 +109.68.96.189:3478 +62.72.83.10:3478 +217.119.210.45:3478 +217.0.136.17:3478 +217.0.12.17:3478 +159.69.191.124:443 +217.91.243.229:3478 78.111.72.53:3478 -91.213.98.54:3478 -212.29.18.56:3478 -79.140.42.88:3478 +217.0.12.1:3478 49.12.125.53:3478 +157.90.156.59:3478 +212.227.67.34:3478 +3.78.237.53:3478 +178.63.240.148:3478 +109.235.234.65:3478 +193.22.17.97:3478 +3.123.43.132:3478 35.158.233.7:3478 -94.130.130.49:3478 -136.243.59.79:3478 -85.197.87.182:3478 -195.201.132.113:3478 -136.243.202.77:3478 -87.129.12.229:3478 -159.69.191.124:3478 -217.0.12.17:3478 -62.72.83.10:3478 -195.145.93.141:3478 +157.240.252.2:3478 +83.125.8.47:3478 193.22.2.248:3478 -89.106.220.34:3478 -217.0.136.17:3478 -217.0.11.241:3478 -217.91.243.229:3478 -3.75.197.182:3478 +195.242.206.1:3478 +46.101.202.148:3478 +85.197.87.182:3478 212.144.246.197:3478 -91.212.41.85:3478 -176.9.24.184:3478 +212.118.209.86:3478 +18.156.18.152:3478 +195.145.93.141:3478 212.227.67.33:3478 -178.63.240.148:3478 -109.68.96.189:3478 -45.15.102.34:3478 -138.201.243.186:3478 -80.155.54.123:3478 -188.40.18.246:3478 -212.227.67.34:3478 -18.156.18.150:3478 -212.18.0.14:3478 -185.39.86.17:3478 +88.99.67.241:3478 91.217.201.14:3478 194.149.74.157:3478 +37.139.120.14:3478 193.22.119.20:3478 95.216.190.5:3478 -95.216.145.84:3478 95.216.78.222:3478 -51.68.112.203:3478 +95.216.145.84:3478 +147.135.128.132:3478 62.138.0.157:3478 +194.169.214.30:3478 +51.255.31.35:3478 +92.205.106.161:3478 +35.180.81.93:3478 +51.68.45.75:3478 +37.97.65.52:3478 172.233.245.118:3478 +178.33.166.29:3478 +51.68.112.203:3478 +52.47.70.236:3478 +92.222.127.114:3478 37.9.136.90:3478 -137.74.112.113:3478 188.138.90.169:3478 -37.97.65.52:3478 +137.74.112.113:3478 94.23.17.185:3478 -51.83.15.212:3478 78.40.125.40:3478 -52.47.70.236:3478 -51.68.45.75:3478 +51.83.15.212:3478 217.146.224.74:3478 -92.222.127.114:3478 -51.255.31.35:3478 -178.33.166.29:3478 -35.180.81.93:3478 -147.135.128.132:3478 -194.169.214.30:3478 -92.205.106.161:3478 185.112.247.26:3478 -185.41.24.6:3478 -77.246.29.197:3478 -185.41.24.10:3478 +212.69.48.253:3478 81.187.30.115:3478 +27.111.15.93:3478 213.251.48.147:3478 -212.69.48.253:3478 162.13.119.185:3478 -27.111.15.93:3478 +185.41.24.10:3478 +77.246.29.197:3478 +185.41.24.6:3478 176.62.31.10:3478 161.53.1.100:3478 88.218.220.40:3478 139.59.84.212:3478 +188.64.120.28:3478 +195.254.254.20:3478 82.113.193.63:3478 +185.18.24.50:3478 83.211.9.232:3478 95.110.198.3:3478 -185.18.24.50:3478 -195.254.254.20:3478 -188.64.120.28:3478 216.144.89.2:3478 85.93.219.114:3478 -85.17.88.164:3478 -20.93.239.169:3478 -90.145.158.66:3478 -194.61.59.25:3478 +185.125.180.70:3478 +209.250.250.224:3478 85.17.186.7:3478 -198.211.120.59:3478 +142.93.228.31:3478 +90.145.158.66:3478 185.67.224.58:3478 -209.250.250.224:3478 -194.140.246.192:3478 +85.17.88.164:3478 +195.35.114.37:3478 +195.35.115.37:3478 +94.75.247.45:3478 87.253.140.133:3478 +212.45.38.40:3478 +194.140.246.192:3478 +198.211.120.59:3478 5.178.34.84:3478 -185.67.224.59:3478 104.45.13.239:3478 -94.75.247.45:3478 -195.35.114.37:3478 -142.93.228.31:3478 -212.45.38.40:3478 194.61.59.30:3478 -182.154.16.7:3478 -202.49.164.50:3478 +185.67.224.59:3478 +194.61.59.25:3478 +20.93.239.171:3478 +182.154.16.5:3478 202.49.164.49:3478 103.124.135.6:3478 -182.154.16.5:3478 +202.49.164.50:3478 +182.154.16.7:3478 +193.43.148.37:3478 150.254.161.60:3478 51.83.201.84:3478 -193.43.148.37:3478 193.16.148.245:3478 +195.208.107.138:3478 +195.211.238.18:3478 195.209.116.72:3478 91.122.224.102:3478 -195.211.238.18:3478 91.205.60.185:3478 193.182.111.151:3478 52.76.91.67:3478 @@ -173,58 +178,51 @@ 193.28.184.4:3478 81.25.228.2:3478 81.162.64.162:3478 -204.197.144.2:3478 -63.211.239.133:3478 +209.105.241.31:3478 65.17.128.101:3478 +23.253.102.137:3478 23.252.81.20:3478 -69.20.59.115:3478 -24.204.48.11:3478 +207.38.89.164:3478 +66.110.73.74:3478 +204.197.159.2:3478 157.22.130.80:3478 +5.161.52.174:3478 +131.153.146.5:3478 +162.243.29.166:3478 +204.197.144.2:3478 +216.228.192.76:3478 +70.42.198.34:3478 23.21.92.55:3478 -66.110.73.74:3478 -147.182.188.245:3478 34.206.168.53:3478 -69.89.160.30:3478 -209.105.241.31:3478 +70.42.198.30:3478 +143.198.60.79:3478 +52.24.174.49:3478 +54.173.127.160:3478 +64.131.63.217:3478 23.21.199.62:3478 216.93.246.18:3478 -204.197.159.2:3478 -34.193.110.91:3478 -209.242.17.106:3478 -64.131.63.217:3478 -44.230.252.214:3478 -52.24.174.49:3478 -74.125.250.129:19302 -23.253.102.137:3478 -143.198.60.79:3478 +24.204.48.11:3478 13.59.93.103:3478 -209.251.63.76:3478 -52.26.251.34:3478 +64.131.63.216:3478 5.161.57.75:3478 +63.211.239.133:3478 +69.20.59.115:3478 +69.89.160.30:3478 34.74.124.204:3478 -192.76.120.66:3478 -34.197.205.39:3478 -3.132.228.249:3478 -207.38.89.164:3478 +52.26.251.34:3478 +129.153.212.128:3478 54.183.232.212:3478 -70.42.198.30:3478 54.197.117.0:3478 -70.42.198.34:3478 -129.153.212.128:3478 -5.161.52.174:3478 192.172.233.145:3478 -64.131.63.216:3478 -131.153.146.5:3478 173.255.213.166:3478 +74.125.250.129:19302 +192.76.120.66:3478 +209.242.17.106:3478 +147.182.188.245:3478 +209.251.63.76:3478 +34.197.205.39:3478 +44.230.252.214:3478 +34.193.110.91:3478 +3.132.228.249:3478 154.73.34.8:3478 -41.79.23.6:3478 -154.48.203.210:3478 -57.144.112.133:3478 -195.35.115.37:3478 -54.173.127.160:3478 -52.52.70.85:3478 -185.125.180.70:3478 -195.242.206.1:3478 -37.139.120.14:3478 -162.243.29.166:3478 -195.208.107.138:3478 \ No newline at end of file +41.79.23.6:3478 \ No newline at end of file diff --git a/frontend/src/components/receiver/ReceiverSaver.vue b/frontend/src/components/receiver/ReceiverSaver.vue index f04811e..d7b0303 100644 --- a/frontend/src/components/receiver/ReceiverSaver.vue +++ b/frontend/src/components/receiver/ReceiverSaver.vue @@ -5,9 +5,6 @@ import { Ref, ref } from 'vue'; import { useStore } from '@/stores'; import { useRecvFileStore } from '@/stores/recv-file'; -// Icons -import MdiCheckBold from '~icons/mdi/check-bold'; - // Injects const { status } = useStore(); const { saveMemory, saveStream } = useRecvFileStore(); @@ -31,39 +28,46 @@ const streamSave = (): void => { diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index 830fbee..60365ed 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -11,6 +11,7 @@ "receive_file": "Receive File", "save_file": "Save File", "send_file": "Send File", + "start": "Start", "start_sending": "Start Sending" }, "index": { @@ -27,6 +28,7 @@ "use_memory": "Use Memory Saving", "use_stream": "Use Stream Saving", "saving": { + "$": "Saving", "cons": "Cons: ", "pros": "Pros: ", "text": [ @@ -48,17 +50,21 @@ "Built with Vue3 & Node.js for modern Web tech" ], "fail": { + "channel": "Channel error", + "connection": "Fail to construct connection", + "failed": "Connection failed", "invalid_code": "Invalid receive code", + "local_answer": "Fail to create answer", + "local_offer": "Fail to create offer", + "message": "Fail to handle message", "not_found": "Receive code not found or has been used", + "remote_answer": "Fail to handle remote answer", + "remote_candidate": "Fail to handle remote candidate", + "remote_offer": "Fail to handle remote offer", + "send": "Fail to send data", "server": "Fail to connect to signal server", "timeout": "Session timeout", - "unsupport": "Browser unsupport WebRTC", - "webrtc_answer": "Fail to handle answer", - "webrtc_candidate": "Fail to add candidate", - "webrtc_channel": "P2P channel error", - "webrtc_connection": "Fail to create P2P connection", - "webrtc_message": "Fail to handle message", - "webrtc_offer": "Fail to handle offer" + "unsupport": "Browser unsupport WebRTC" }, "status": { "connecting": "Connecting", diff --git a/frontend/src/i18n/locales/ja.json b/frontend/src/i18n/locales/ja.json index b21a8df..22b4320 100644 --- a/frontend/src/i18n/locales/ja.json +++ b/frontend/src/i18n/locales/ja.json @@ -10,6 +10,7 @@ "receive_file": "ファイル受信", "save_file": "保存ファイル", "send_file": "ファイル送信", + "start": "開始", "start_sending": "送信開始" }, "index": { diff --git a/frontend/src/i18n/zh.json b/frontend/src/i18n/zh.json index ad45d96..ee4fa79 100644 --- a/frontend/src/i18n/zh.json +++ b/frontend/src/i18n/zh.json @@ -11,6 +11,7 @@ "receive_file": "接收文件", "save_file": "保存文件", "send_file": "发送文件", + "start": "开始", "start_sending": "开始发送" }, "index": { @@ -27,6 +28,7 @@ "use_memory": "使用内存保存", "use_stream": "使用数据流保存", "saving": { + "$": "保存中", "cons": "缺点:", "pros": "优点:", "text": [ @@ -48,17 +50,21 @@ "使用 Vue3Node.js 构建,拥抱现代 Web 技术" ], "fail": { + "channel": "信道错误", + "connection": "无法建立连接", + "failed": "连接意外断开", "invalid_code": "取件码不合法", + "local_answer": "无法创建回复", + "local_offer": "无法创建请求", + "message": "无法处理数据", "not_found": "取件码不存在或已被使用", + "remote_answer": "无法处理远程回复", + "remote_candidate": "无法处理远程候选", + "remote_offer": "无法处理远程请求", + "send": "无法发送数据", "server": "无法连接信令服务器", "timeout": "会话超时", - "unsupport": "浏览器不支持 WebRTC", - "webrtc_answer": "无法处理 P2P 回复", - "webrtc_candidate": "无法添加 P2P 候选", - "webrtc_channel": "P2P 通道错误", - "webrtc_connection": "无法建立 P2P 连接", - "webrtc_message": "无法处理数据包", - "webrtc_offer": "无法处理 P2P 请求" + "unsupport": "浏览器不支持 WebRTC" }, "status": { "connecting": "连接中", diff --git a/frontend/src/utils/receiver.ts b/frontend/src/utils/receiver.ts index 0317d6c..0565d1e 100644 --- a/frontend/src/utils/receiver.ts +++ b/frontend/src/utils/receiver.ts @@ -41,7 +41,7 @@ export class Receiver extends EventEmitter { // Reconnect failed listener this.socket.io.on('reconnect_failed', (): void => { - this.emit('failed', 'signal_server'); + this.emit('failed', 'server'); }); // Session timeout listener