Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: preference advanced config rpc listen port #1436

Merged
merged 3 commits into from
Apr 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions electron-builder.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@
},
"linux": {
"category": "Network",
"mimeTypes": [
"application/x-bittorrent",
"x-scheme-handler/magnet"
],
"target": [
{
"target": "AppImage",
Expand Down
120 changes: 89 additions & 31 deletions src/renderer/components/Preference/Advanced.vue
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,59 @@
</div>
</div>
</el-form-item>
<el-form-item
:label="`${$t('preferences.rpc')}: `"
:label-width="formLabelWidth"
>
<el-row style="margin-bottom: 8px;">
<el-col
class="form-item-sub"
:xs="24"
:sm="18"
:md="10"
:lg="10"
>
{{ $t('preferences.rpc-listen-port') }}
<el-input
:placeholder="rpcDefaultPort"
:maxlength="8"
v-model="form.rpcListenPort"
@change="onRpcListenPortChange"
>
<i slot="append" @click.prevent="onRpcPortDiceClick">
<mo-icon name="dice" width="12" height="12" />
</i>
</el-input>
</el-col>
</el-row>
<el-row style="margin-bottom: 8px;">
<el-col
class="form-item-sub"
:xs="24"
:sm="18"
:md="18"
:lg="18"
>
{{ $t('preferences.rpc-secret') }}
<el-input
:show-password="hideRpcSecret"
placeholder="RPC Secret"
:maxlength="24"
v-model="form.rpcSecret"
>
<i slot="append" @click.prevent="onRpcSecretDiceClick">
<mo-icon name="dice" width="12" height="12" />
</i>
</el-input>
<div class="el-form-item__info" style="margin-top: 8px;">
<a target="_blank" href="https://github.com/agalwood/Motrix/wiki/RPC" rel="noopener noreferrer">
{{ $t('preferences.rpc-secret-tips') }}
<mo-icon name="link" width="12" height="12" />
</a>
</div>
</el-col>
</el-row>
</el-form-item>
<el-form-item
:label="`${$t('preferences.port')}: `"
:label-width="formLabelWidth"
Expand Down Expand Up @@ -221,7 +274,7 @@
:maxlength="8"
v-model="form.listenPort"
>
<i slot="append" @click.prevent="onPortDiceClick">
<i slot="append" @click.prevent="onBtPortDiceClick">
<mo-icon name="dice" width="12" height="12" />
</i>
</el-input>
Expand Down Expand Up @@ -271,7 +324,7 @@
</el-col>
</el-form-item>
<el-form-item
:label="`${$t('preferences.security')}: `"
:label="`${$t('preferences.user-agent')}: `"
:label-width="formLabelWidth"
>
<el-col class="form-item-sub" :span="24">
Expand All @@ -290,31 +343,6 @@
<el-button @click="() => changeUA('du')">du</el-button>
</el-button-group>
</el-col>
<el-col
class="form-item-sub"
:xs="24"
:sm="18"
:md="18"
:lg="18"
>
{{ $t('preferences.rpc-secret') }}
<el-input
:show-password="hideRpcSecret"
placeholder="RPC Secret"
:maxlength="24"
v-model="form.rpcSecret"
>
<i slot="append" @click.prevent="onDiceClick">
<mo-icon name="dice" width="12" height="12" />
</i>
</el-input>
<div class="el-form-item__info" style="margin-top: 8px;">
<a target="_blank" href="https://github.com/agalwood/Motrix/wiki/RPC" rel="noopener noreferrer">
{{ $t('preferences.rpc-secret-tips') }}
<mo-icon name="link" width="12" height="12" />
</a>
</div>
</el-col>
</el-form-item>
<el-form-item
:label="`${$t('preferences.developer')}: `"
Expand Down Expand Up @@ -376,7 +404,7 @@
import ShowInFolder from '@/components/Native/ShowInFolder'
import SubnavSwitcher from '@/components/Subnav/SubnavSwitcher'
import userAgentMap from '@shared/ua'
import { trackerSourceOptions } from '@shared/constants'
import { trackerSourceOptions, ENGINE_RPC_PORT, EMPTY_STRING } from '@shared/constants'
import {
backupConfig,
buildRpcUrl,
Expand Down Expand Up @@ -487,13 +515,23 @@
}
]
},
rpcDefaultPort () {
return ENGINE_RPC_PORT
},
...mapState('preference', {
config: state => state.config,
logPath: state => state.config.logPath,
sessionPath: state => state.config.sessionPath
})
},
watch: {
'form.rpcListenPort' (val) {
const url = buildRpcUrl({
port: this.form.rpcListenPort,
secret: val
})
navigator.clipboard.writeText(url)
},
'form.rpcSecret' (val) {
const url = buildRpcUrl({
port: this.form.rpcListenPort,
Expand Down Expand Up @@ -546,15 +584,25 @@
}
this.form.userAgent = ua
},
onPortDiceClick () {
onBtPortDiceClick () {
const port = generateRandomInt(20000, 24999)
this.form.listenPort = port
},
onDhtPortDiceClick () {
const port = generateRandomInt(25000, 29999)
this.form.dhtListenPort = port
},
onDiceClick () {
onRpcListenPortChange (value) {
console.log('onRpcListenPortChange===>', value)
if (EMPTY_STRING === value) {
this.form.rpcListenPort = this.rpcDefaultPort
}
},
onRpcPortDiceClick () {
const port = generateRandomInt(ENGINE_RPC_PORT, 20000)
this.form.rpcListenPort = port
},
onRpcSecretDiceClick () {
this.hideRpcSecret = false
const rpcSecret = randomize('Aa0', 12)
this.form.rpcSecret = rpcSecret
Expand Down Expand Up @@ -616,7 +664,13 @@
...changedConfig.basic
}

const { btAutoDownloadContent, autoHideWindow, btTracker, noProxy } = data
const {
btAutoDownloadContent,
autoHideWindow,
btTracker,
noProxy,
rpcListenPort
} = data

if ('btAutoDownloadContent' in data) {
data.pauseMetadata = !btAutoDownloadContent
Expand All @@ -632,6 +686,10 @@
data.noProxy = convertLineToComma(noProxy)
}

if (rpcListenPort === EMPTY_STRING) {
data.rpcListenPort = this.rpcDefaultPort
}

console.log('[Motrix] preference changed data:', data)

this.$store.dispatch('preference/save', data)
Expand Down
19 changes: 14 additions & 5 deletions src/renderer/components/TaskDetail/TaskFiles.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,25 @@
<template slot-scope="scope">{{ scope.row.extension | removeExtensionDot }}</template>
</el-table-column>
<el-table-column
:label="$t('task.file-size')"
v-if="mode === 'DETAIL'"
:label="`%`"
align="right"
width="85">
<template slot-scope="scope">{{ scope.row.length | bytesToSize }}</template>
width="50">
<template slot-scope="scope">{{ calcProgress(scope.row.length, scope.row.completedLength, 1) }}</template>
</el-table-column>
<el-table-column
v-if="mode === 'DETAIL'"
:label="$t('task.file-completed-size')"
:label="`✓`"
align="right"
width="95">
width="85">
<template slot-scope="scope">{{ scope.row.completedLength | bytesToSize }}</template>
</el-table-column>
<el-table-column
:label="$t('task.file-size')"
align="right"
width="85">
<template slot-scope="scope">{{ scope.row.length | bytesToSize }}</template>
</el-table-column>
</el-table>
</div>
<el-row class="file-filters" :gutter="12">
Expand Down Expand Up @@ -84,6 +91,7 @@
} from '@shared/constants'
import {
bytesToSize,
calcProgress,
filterVideoFiles,
filterAudioFiles,
filterImageFiles,
Expand Down Expand Up @@ -149,6 +157,7 @@
}
},
methods: {
calcProgress,
toggleAllSelection () {
if (!this.$refs.torrentTable) {
return
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/ar/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'منفذ BT للاستماع',
'dht-port': 'منفذ DHT للاستماع',
'security': 'الحماية',
'rpc': 'RPC',
'rpc-listen-port': 'منفذ استماع RPC',
'rpc-secret': 'رمز RPC السري',
'rpc-secret-tips': 'عرض دليل رمز RPC السري',
'developer': 'المطور',
'user-agent': 'User-Agent',
'mock-user-agent': 'وكيل مستخدم وهمي',
'app-log-path': 'مسار سجلات التطبيق',
'download-session-path': 'مسار التحميلات',
Expand Down
2 changes: 2 additions & 0 deletions src/shared/locales/bg/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ export default {
'bt-port':'пристанище на слушане BT',
'dht-port':'DHT слушане Порт',
'security':'сигурност',
'rpc': 'RPC',
'rpc-listen-port': 'RPC слушащ порт',
'rpc-secret': 'RPC Secret',
'rpc-secret-tips': 'Гледайте инструкцията RPC Secret',
'developer':'developer',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/ca/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'Port d\'escolta BT',
'dht-port': 'Port d\'escolta DHT',
'security': 'Seguretat',
'rpc': 'RPC',
'rpc-listen-port': 'Port d\'Escolta RPC',
'rpc-secret': 'Clau RPC',
'rpc-secret-tips': 'Mirar manual de la clau RPC',
'developer': 'Desenvolupador',
'user-agent': 'User-Agent',
'mock-user-agent': 'Mock User-Agent',
'app-log-path': 'Ruta del log',
'download-session-path': 'Ruta de descàrrega de la sessió',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/de/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'BT Listen Port',
'dht-port': 'DHT Listen Port',
'security': 'Sicherheit',
'rpc': 'RPC',
'rpc-listen-port': 'RPC-Hörport',
'rpc-secret': 'RPC-Geheimnis',
'rpc-secret-tips': 'Geheime RPC-Anleitung anzeigen',
'developer': 'Entwickler',
'user-agent': 'User-Agent',
'mock-user-agent': 'User-Agent simulieren',
'app-log-path': 'Appprotokollpfad',
'download-session-path': 'Downloadsitzungspfad',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/el/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'Ενεργή θύρα BT',
'dht-port': 'Ενεργή θύρα DHT',
'security': 'Ασφάλεια',
'rpc': 'RPC',
'rpc-listen-port': 'Θύρα Ακρόασης RPC',
'rpc-secret': 'Μυστικό για το RPC',
'rpc-secret-tips': 'Εμφάνιση εγχειριδίου για το Μυστικό RPC',
'developer': 'Προγραμματιστής',
'user-agent': 'User-Agent',
'mock-user-agent': 'Πλαστό User-Agent',
'app-log-path': 'Διαδρομή για το αρχείο log της εφαρμογής',
'download-session-path': 'Διαδρομή λήψεων για αυτή τη συνεδρία',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/en-US/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'BT Listen Port',
'dht-port': 'DHT Listen Port',
'security': 'Security',
'rpc': 'RPC',
'rpc-listen-port': 'RPC Listen Port',
'rpc-secret': 'RPC Secret',
'rpc-secret-tips': 'View RPC Secret Manual',
'developer': 'Developer',
'user-agent': 'User-Agent',
'mock-user-agent': 'Mock User-Agent',
'app-log-path': 'App log path',
'download-session-path': 'Download session path',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/es/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'Puerto de escucha BT',
'dht-port': 'Puerto de escucha DHT',
'security': 'Seguridad',
'rpc': 'RPC',
'rpc-listen-port': 'Puerto de Escucha RPC',
'rpc-secret': 'Clave RPC',
'rpc-secret-tips': 'Ver manual de la clave RPC',
'developer': 'Desarrollador',
'user-agent': 'User-Agent',
'mock-user-agent': 'Falsear Agente de Usuario',
'app-log-path': 'Ruta del registro',
'download-session-path': 'Ruta de descarga de la sesión',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/fa/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'درگاه BT',
'dht-port': 'درگاه DHT',
'security': 'امنیت',
'rpc': 'RPC',
'rpc-listen-port': 'پورت گوش دادن به RPC',
'rpc-secret': 'رمز RPC',
'rpc-secret-tips': 'مشاهده راهنمای رمز RPC',
'developer': 'توسعه‌دهنده',
'user-agent': 'User-Agent',
'mock-user-agent': 'جعل عامل کاربر',
'app-log-path': 'مسیر گزارش برنامه',
'download-session-path': 'مسیر نشست بارگیری',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/fr/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'Ports d\'écoute BT',
'dht-port': 'Ports d\'écoute DHT',
'security': 'Sécurité',
'rpc': 'RPC',
'rpc-listen-port': 'Port d\'écoute RPC',
'rpc-secret': 'RPC Secret',
'rpc-secret-tips': 'Voir le manuel secret RPC',
'developer': 'Développeur',
'user-agent': 'User-Agent',
'mock-user-agent': 'Mock User-Agent',
'app-log-path': 'Chemin des logs',
'download-session-path': 'Chemin de la session de téléchargement',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/hu/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'BT Listen Port',
'dht-port': 'DHT Listen Port',
'security': 'Biztonság',
'rpc': 'RPC',
'rpc-listen-port': 'RPC-hallgató-port',
'rpc-secret': 'RPC Secret',
'rpc-secret-tips': 'RPC Secret kézikönyv megnyitasa',
'developer': 'feljesztö',
'user-agent': 'User-Agent',
'mock-user-agent': 'User-Agent-t',
'app-log-path': 'Alkalmazásnapló helye',
'download-session-path': 'Letöltés folyamat helye',
Expand Down
3 changes: 3 additions & 0 deletions src/shared/locales/id/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,12 @@ export default {
'bt-port': 'Dengarkan Port BT',
'dht-port': 'Dengarkan Port DHT',
'security': 'Keamanan',
'rpc': 'RPC',
'rpc-listen-port': 'Port Dengar RPC',
'rpc-secret': 'RPC Secret',
'rpc-secret-tips': 'Lihat Petunjuk RPC Secret',
'developer': 'Developer',
'user-agent': 'User-Agent',
'mock-user-agent': 'Mock User-Agent',
'app-log-path': 'Lokasi Log Aplikasi',
'download-session-path': 'Lokasi Session Unduhan',
Expand Down
Loading