Compare commits

...

24 Commits

Author SHA1 Message Date
Dr_rOot 830bc9336e chore: bump version to 1.8.16 2023-05-02 17:35:14 +08:00
Dr_rOot 3b049219e4 chore: update deps 2023-05-02 17:33:51 +08:00
Dr_rOot bbc68b6a8a chore: github action remove notarization api key 2023-05-02 17:33:22 +08:00
Dr_rOot 0afc01080d fix: preference save relaunch application twice 2023-04-29 11:26:26 +08:00
Dr_rOot af1cc4db8e chore: bump version to 1.8.15 2023-04-28 22:54:29 +08:00
Dr_rOot 8defa9ee71 Merge pull request #1466 from agalwood/hotfix/aria2_x64_20230428
fix: rebuild darwin x64 aria2c bin
2023-04-28 22:51:56 +08:00
Dr_rOot cb6d9f2b20 chore: change node mini version to 16 2023-04-28 22:50:01 +08:00
Dr_rOot 9f6c31ffa3 fix: rebuild darwin x64 aria2c bin 2023-04-28 22:49:10 +08:00
greenhandzdl 0b3161ca6f docs: fix yay install script (#1465)
* Fix Doc
2023-04-28 22:39:06 +08:00
Dr_rOot c79bdff4b8 Merge pull request #1464 from agalwood/hotfix/aria2_arm64_20230428
fix: rebuild arm64 aria2c bin
2023-04-28 18:45:00 +08:00
Dr_rOot b92957668b chore: update deps 2023-04-28 18:19:57 +08:00
Dr_rOot b1b52e2640 fix: rebuild arm64 aria2c bin 2023-04-28 18:16:01 +08:00
Dr_rOot a39fa2979c chore: bump version to 1.8.14 2023-04-27 17:49:04 +08:00
Dr_rOot e0a74f7979 fix: selected task item border color in dark mode 2023-04-27 17:47:59 +08:00
Dr_rOot a7b8333710 chore: bump version to 1.8.13 2023-04-27 17:08:14 +08:00
Dr_rOot 77850da0fe Merge pull request #1455 from agalwood/hotfix/auto_update_20230427
fix: app auto update failed
2023-04-27 17:06:53 +08:00
Dr_rOot 71f4eeeb25 chore: change app update generic url 2023-04-27 16:51:28 +08:00
Dr_rOot e5eace479d fix: handle auto updater update canceled event 2023-04-27 16:51:06 +08:00
Dr_rOot 7e927fea10 chore: bump version to 1.8.12 2023-04-27 11:11:34 +08:00
Dr_rOot 38cd952b44 Merge pull request #1453 from agalwood/hotfix/stop_engine_20230427
fix: stop engine failed when app quit
2023-04-27 11:10:23 +08:00
Dr_rOot b07fedeba0 chore: electron build mac target add universal 2023-04-27 10:54:38 +08:00
Dr_rOot 2bbaae5d7d feat: preference advanced add log level setting 2023-04-27 10:53:27 +08:00
Dr_rOot 003e9ffccb fix: stop engine failed when app quit 2023-04-27 10:23:08 +08:00
Dr_rOot 7a51dbaf5e chore: update bug report issue template 2023-04-27 08:00:07 +08:00
24 changed files with 139 additions and 66 deletions
+8
View File
@@ -17,6 +17,14 @@ body:
validations:
required: true
- type: textarea
id: app-version
attributes:
label: Motrix Version
description: Please provide detailed version information and installation method, such as macOS Apple silicon dmg, Windows Universal installation file, etc.
validations:
required: true
- type: textarea
attributes:
label: Environment
@@ -17,6 +17,14 @@ body:
validations:
required: true
- type: textarea
id: app-version
attributes:
label: Motrix 版本
description: 请提供详细的版本信息以及安装的方式,如 macOS Apple silicon dmg、Windows Universal 安装文件等
validations:
required: true
- type: textarea
attributes:
label: 环境
+1 -3
View File
@@ -54,9 +54,7 @@ jobs:
env:
# Snapcraft
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }}
# macOS notarization API key
API_KEY_ID: ${{ secrets.api_key_id }}
API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }}
# macOS notarization
TEAM_ID: ${{ secrets.team_id }}
APPLE_ID: ${{ secrets.apple_id }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.apple_app_specific_password }}
+1 -1
View File
@@ -91,7 +91,7 @@ v1.5.10 提示
运行以下命令进行安装:
```bash
yay motrix
yay -S motrix
```
#### Flatpak
+1 -1
View File
@@ -93,7 +93,7 @@ For Arch Linux users, Motrix is available in [aur](https://aur.archlinux.org/pac
Run the following command to install:
```bash
yay motrix
yay -S motrix
```
#### Flatpak
+1 -1
View File
@@ -1,2 +1,2 @@
provider: generic
url: 'https://dl.motrix.app/release/'
url: 'https://dl.motrix.app/releases/'
+5 -3
View File
@@ -64,14 +64,16 @@
"target": "dmg",
"arch": [
"x64",
"arm64"
"arm64",
"universal"
]
},
{
"target": "zip",
"arch": [
"x64",
"arm64"
"arm64",
"universal"
]
}
],
@@ -189,7 +191,7 @@
"publish": [
{
"provider": "generic",
"url": "https://dl.motrix.app/release/"
"url": "https://dl.motrix.app/releases/"
},
{
"provider": "github"
Binary file not shown.
Binary file not shown.
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "Motrix",
"version": "1.8.11",
"version": "1.8.16",
"description": "A full-featured download manager",
"homepage": "https://motrix.app",
"author": {
@@ -32,19 +32,19 @@
"postinstall": "electron-builder install-app-deps && npm run lint:fix"
},
"engines": {
"node" : ">=18.0.0"
"node" : ">=16.0.0"
},
"dependencies": {
"node-fetch": "^2.6.1",
"ws": "^8.13.0"
},
"devDependencies": {
"@babel/core": "^7.21.4",
"@babel/core": "^7.21.5",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-transform-runtime": "^7.21.4",
"@babel/preset-env": "^7.21.4",
"@babel/preset-env": "^7.21.5",
"@babel/register": "^7.21.0",
"@babel/runtime": "^7.21.0",
"@babel/runtime": "^7.21.5",
"@bany/curl-to-json": "^1.2.7",
"@electron/notarize": "^1.2.3",
"@electron/osx-sign": "^1.0.4",
@@ -54,7 +54,7 @@
"@panter/vue-i18next": "^0.15.2",
"@vue/eslint-config-standard": "^6.1.0",
"ajv": "^8.12.0",
"axios": "^1.3.6",
"axios": "^1.4.0",
"babel-eslint": "^10.1.0",
"babel-loader": "^9.1.2",
"babel-plugin-component": "^1.1.1",
@@ -67,13 +67,13 @@
"css-loader": "^6.7.3",
"css-minimizer-webpack-plugin": "^5.0.0",
"del": "^6.1.1",
"electron": "^22.3.5",
"electron-builder": "^24.2.0",
"electron": "^22.3.7",
"electron-builder": "^24.3.0",
"electron-devtools-installer": "^3.2.0",
"electron-is": "^3.0.0",
"electron-log": "^4.4.8",
"electron-store": "^8.1.0",
"electron-updater": "^5.3.0",
"electron-updater": "^6.1.0",
"element-ui": "^2.15.13",
"eslint": "^7.32.0",
"eslint-friendly-formatter": "^4.0.1",
@@ -104,7 +104,7 @@
"vue-template-compiler": "^2.7.14",
"vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0",
"webpack": "^5.80.0",
"webpack": "^5.81.0",
"webpack-cli": "^5.0.2",
"webpack-dev-server": "^4.13.3",
"webpack-hot-middleware": "^2.25.3",
+38 -10
View File
@@ -46,6 +46,8 @@ export default class Application extends EventEmitter {
this.initConfigManager()
this.setupLogger()
this.initLocaleManager()
this.setupApplicationMenu()
@@ -105,6 +107,18 @@ export default class Application extends EventEmitter {
this.configListeners = {}
}
setupLogger () {
const { userConfig } = this.configManager
const key = 'log-level'
const logLevel = userConfig.get(key)
logger.transports.file.level = logLevel
this.configListeners[key] = userConfig.onDidChange(key, async (newValue, oldValue) => {
logger.info(`[Motrix] detected ${key} value change event:`, newValue, oldValue)
logger.transports.file.level = newValue
})
}
initLocaleManager () {
this.locale = this.configManager.getLocale()
this.localeManager = setupLocaleManager(this.locale)
@@ -151,8 +165,10 @@ export default class Application extends EventEmitter {
}
async stopEngine () {
logger.info('[Motrix] stopEngine===>')
try {
await this.engineClient.shutdown({ force: true })
logger.info('[Motrix] stopEngine.setImmediate===>')
setImmediate(() => {
this.engine.stop()
})
@@ -509,22 +525,27 @@ export default class Application extends EventEmitter {
this.windowManager.destroyWindow(page)
}
async stop () {
stop () {
try {
await this.shutdownUPnPManager()
const promises = [
this.stopEngine(),
this.shutdownUPnPManager(),
this.energyManager.stopPowerSaveBlocker(),
this.trayManager.destroy()
]
this.energyManager.stopPowerSaveBlocker()
await this.stopEngine()
this.trayManager.destroy()
return promises
} catch (err) {
logger.warn('[Motrix] stop error: ', err.message)
}
}
async stopAllSettled () {
await Promise.allSettled(this.stop())
}
async quit () {
await this.stop()
await this.stopAllSettled()
app.exit()
}
@@ -642,9 +663,16 @@ export default class Application extends EventEmitter {
win.setProgressBar(0)
})
this.updateManager.on('update-cancelled', (event) => {
this.menuManager.updateMenuItemEnabledState('app.check-for-updates', true)
this.trayManager.updateMenuItemEnabledState('app.check-for-updates', true)
const win = this.windowManager.getWindow('index')
win.setProgressBar(-1)
})
this.updateManager.on('will-updated', async (event) => {
this.windowManager.setWillQuit(true)
await this.stop()
await this.stopAllSettled()
})
this.updateManager.on('update-error', (event) => {
@@ -654,7 +682,7 @@ export default class Application extends EventEmitter {
}
async relaunch () {
await this.stop()
await this.stopAllSettled()
app.relaunch()
app.exit()
}
+1
View File
@@ -183,6 +183,7 @@ export default class Launcher extends EventEmitter {
app.on('will-quit', () => {
logger.info('[Motrix] will-quit')
if (global.application) {
logger.info('[Motrix] will-quit.application.stop')
global.application.stop()
}
})
+1
View File
@@ -111,6 +111,7 @@ export default class ConfigManager {
'last-check-update-time': 0,
'last-sync-tracker-time': 0,
'locale': app.getLocale(),
'log-level': 'warn',
'new-task-show-downloading': true,
'no-confirm-before-delete-task': false,
'open-at-login': false,
+2
View File
@@ -5,6 +5,7 @@ import logger from './Logger'
let psbId
export default class EnergyManager {
startPowerSaveBlocker () {
logger.info('[Motrix] EnergyManager.startPowerSaveBlocker', psbId)
if (psbId && powerSaveBlocker.isStarted(psbId)) {
return
}
@@ -14,6 +15,7 @@ export default class EnergyManager {
}
stopPowerSaveBlocker () {
logger.info('[Motrix] EnergyManager.stopPowerSaveBlocker', psbId)
if (typeof psbId === 'undefined' || !powerSaveBlocker.isStarted(psbId)) {
return
}
+1
View File
@@ -67,6 +67,7 @@ export default class Engine {
}
stop () {
logger.info('[Motrix] engine.stop.instance')
if (this.instance) {
this.instance.kill()
this.instance = null
+1 -1
View File
@@ -1,7 +1,7 @@
import is from 'electron-is'
import logger from 'electron-log'
logger.transports.file.level = is.production() ? 'warn' : 'silly'
logger.transports.file.level = is.production() ? 'info' : 'silly'
logger.info('[Motrix] Logger init')
logger.warn('[Motrix] Logger init')
+2
View File
@@ -72,6 +72,8 @@ export default class UpdateManager extends EventEmitter {
}).then(({ response }) => {
if (response === 0) {
this.updater.downloadUpdate()
} else {
this.emit('update-cancelled', info)
}
})
}
+2 -1
View File
@@ -5,6 +5,7 @@ import is from 'electron-is'
import { APP_RUN_MODE, APP_THEME } from '@shared/constants'
import { getInverseTheme } from '@shared/utils'
import logger from '../core/Logger'
import { getI18n } from './Locale'
import {
translateTemplate,
@@ -12,7 +13,6 @@ import {
updateStates
} from '../utils/menu'
import { convertArrayBufferToBuffer } from '../utils/index'
// import logger from '../core/Logger'
let tray = null
const { platform } = process
@@ -357,6 +357,7 @@ export default class TrayManager extends EventEmitter {
}
destroy () {
logger.info('[Motrix] TrayManager.destroy')
if (tray) {
this.unbindEvents()
}
+30 -16
View File
@@ -358,16 +358,6 @@
/>
</el-input>
</el-col>
<el-col class="form-item-sub" :span="24">
{{ $t('preferences.app-log-path') }}
<el-input placeholder="" disabled v-model="logPath">
<mo-show-in-folder
slot="append"
v-if="isRenderer"
:path="logPath"
/>
</el-input>
</el-col>
<el-col class="form-item-sub" :span="24">
{{ $t('preferences.download-session-path') }}
<el-input placeholder="" disabled v-model="sessionPath">
@@ -378,6 +368,30 @@
/>
</el-input>
</el-col>
<el-col class="form-item-sub" :span="24">
{{ $t('preferences.app-log-path') }}
<el-row :gutter="16">
<el-col :span="18">
<el-input placeholder="" disabled v-model="logPath">
<mo-show-in-folder
slot="append"
v-if="isRenderer"
:path="logPath"
/>
</el-input>
</el-col>
<el-col :span="6">
<el-select v-model="form.logLevel">
<el-option
v-for="item in logLevels"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col class="form-item-sub" :span="24">
<el-button plain type="warning" @click="() => onSessionResetClick()">
{{ $t('preferences.session-reset') }}
@@ -414,7 +428,7 @@
import ShowInFolder from '@/components/Native/ShowInFolder'
import SubnavSwitcher from '@/components/Subnav/SubnavSwitcher'
import userAgentMap from '@shared/ua'
import { trackerSourceOptions, ENGINE_RPC_PORT, EMPTY_STRING } from '@shared/constants'
import { trackerSourceOptions, ENGINE_RPC_PORT, EMPTY_STRING, LOG_LEVELS } from '@shared/constants'
import {
backupConfig,
buildRpcUrl,
@@ -446,6 +460,7 @@
lastCheckUpdateTime,
lastSyncTrackerTime,
listenPort,
logLevel,
noProxy,
protocols,
rpcListenPort,
@@ -466,6 +481,7 @@
lastCheckUpdateTime,
lastSyncTrackerTime,
listenPort,
logLevel,
noProxy: convertCommaToLine(noProxy),
protocols: {
...protocols
@@ -528,6 +544,9 @@
rpcDefaultPort () {
return ENGINE_RPC_PORT
},
logLevels () {
return LOG_LEVELS
},
...mapState('preference', {
config: state => state.config,
aria2ConfPath: state => state.config.aria2ConfPath,
@@ -722,11 +741,6 @@
'application:auto-hide-window', autoHideWindow)
}
if (checkIsNeedRestart(data)) {
this.$electron.ipcRenderer.send('command',
'application:relaunch')
}
if (checkIsNeedRestart(data)) {
this.$electron.ipcRenderer.send('command', 'application:relaunch')
}
@@ -614,11 +614,6 @@
'application:auto-hide-window', autoHideWindow)
}
if (checkIsNeedRestart(data)) {
this.$electron.ipcRenderer.send('command',
'application:relaunch')
}
if (checkIsNeedRestart(data)) {
this.$electron.ipcRenderer.send('command', 'application:relaunch')
}
+4
View File
@@ -84,6 +84,10 @@
}
}
.selected .task-item {
border-color: $--dk-task-item-hover-border-color;
}
.task-name {
color: $--dk-task-item-text-color;
}
+1 -2
View File
@@ -15,14 +15,13 @@ const userKeys = [
'last-check-update-time',
'last-sync-tracker-time',
'locale',
'log-path',
'log-level',
'new-task-show-downloading',
'no-confirm-before-delete-task',
'open-at-login',
'protocols',
'resume-all-when-app-launched',
'run-mode',
'session-path',
'show-progress-bar',
'task-notification',
'theme',
+9
View File
@@ -27,6 +27,15 @@ export const TASK_STATUS = {
SEEDING: 'seeding'
}
export const LOG_LEVELS = [
'error',
'warn',
'info',
'verbose',
'debug',
'silly'
]
export const MAX_NUM_OF_DIRECTORIES = 5
export const ENGINE_RPC_HOST = '127.0.0.1'
+12 -12
View File
@@ -2024,10 +2024,10 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axios@^1.3.6:
version "1.3.6"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.6.tgz#1ace9a9fb994314b5f6327960918406fa92c6646"
integrity sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==
axios@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f"
integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@@ -3279,10 +3279,10 @@ electron-updater@^5.3.0:
semver "^7.3.5"
typed-emitter "^2.1.0"
electron@^22.3.5:
version "22.3.6"
resolved "https://registry.yarnpkg.com/electron/-/electron-22.3.6.tgz#ab79a2da20e83b02ec9cbb22a4069468e6949b4f"
integrity sha512-/1/DivFHH5AWa/uOuqpkeg12/jjicjkBU8kYv70oeqRFwXzoyuJhgwlzER4jZXnbGjF5Nxz9900oXq/QzAViAw==
electron@^22.3.7:
version "22.3.7"
resolved "https://registry.yarnpkg.com/electron/-/electron-22.3.7.tgz#1df3d15f8cee6468818485596b0d88840fa34018"
integrity sha512-QUuRCl0QJk0w2yPAQXl6sk4YV1b9353w4e1eO/fF2OUmrGQV9Fy2pEpEDV1PIq/JJ/oeVVlI3H07LHpEcNb0TA==
dependencies:
"@electron/get" "^2.0.0"
"@types/node" "^16.11.26"
@@ -7604,10 +7604,10 @@ webpack-sources@^3.2.3:
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.80.0:
version "5.80.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.80.0.tgz#3e660b4ab572be38c5e954bdaae7e2bf76010fdc"
integrity sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==
webpack@^5.81.0:
version "5.81.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.81.0.tgz#27a2e8466c8b4820d800a8d90f06ef98294f9956"
integrity sha512-AAjaJ9S4hYCVODKLQTgG5p5e11hiMawBwV2v8MYLE0C/6UAGLuAF4n1qa9GOwdxnicaP+5k6M5HrLmD4+gIB8Q==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.0"