Skip to content

Commit b324b6f

Browse files
committed
设置页面增加socks5选项;默认配置增加端口;
1 parent e1ea242 commit b324b6f

File tree

13 files changed

+112
-52
lines changed

13 files changed

+112
-52
lines changed

.github/ISSUE_TEMPLATE/issue_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ assignees: ''
1313
#### 问题描述:
1414

1515

16-
#### 异常日志:
16+
#### 异常日志(上传文件到这里)
1717
```
1818
1919
```

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "magnetw",
33
"version": "3.1.0",
4-
"appName": "磁力搜",
4+
"appName": "magnetw",
55
"description": "磁力链接聚合搜索",
66
"license": "GNU General Public License v3.0",
77
"main": "./dist/electron/main.js",
@@ -21,7 +21,7 @@
2121
"postinstall": "npm run lint:fix"
2222
},
2323
"build": {
24-
"productName": "磁力搜 For magnetW",
24+
"productName": "magnetW",
2525
"appId": "app.magnetw.desktop",
2626
"artifactName": "${name}-${version}-${os}.${ext}",
2727
"directories": {
@@ -83,6 +83,8 @@
8383
"moment": "^2.24.0",
8484
"request": "^2.88.0",
8585
"request-promise-native": "^1.0.7",
86+
"socks5-http-client": "^1.0.4",
87+
"socks5-https-client": "^1.2.1",
8688
"urijs": "^1.19.2",
8789
"vue": "^2.6.10",
8890
"vue-clipboard2": "^0.3.1",

scripts/build-service.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,28 @@ const path = require('path')
55
const fs = require('fs-extra')
66
const Terser = require('terser')
77
// 需要忽略的文件/文件夹
8-
const ignore = ['.DS_Store', 'service.js', 'index.js', 'index.dev.js', 'ipc.js', 'node_modules', 'electron-cache.js']
8+
const ignore = ['.DS_Store', 'service.js', 'index.js', 'index.dev.js', 'ipc.js', 'node_modules', 'electron-cache.js', 'menu.js']
99
// 忽略压缩的文件
1010
const ignoreMinify = ['defaultConfig.js', 'process-config.js']
1111

12-
const releases = 'build/releases/service'
12+
const releases = 'build/releases'
13+
if (!fs.existsSync(releases)) {
14+
fs.mkdirsSync(releases)
15+
}
1316

1417
// 源代码路径
1518
const source = 'src/main'
1619
const finder = require('findit2')(source)
1720

1821
// 清空发布文件夹
19-
const releasesIgnore = ['package-lock.json', 'node_modules', 'package-lock.json']
22+
const releasesIgnore = ['package-lock.json', 'node_modules']
2023
const dir = fs.readdirSync(releases)
2124
dir.forEach((file) => {
2225
if (!isIgnore(file, releasesIgnore)) {
2326
fs.removeSync(`${releases}/${file}`)
2427
}
2528
})
2629

27-
fs.copySync('package.json', `${releases}/package.json`)
2830
fs.copySync(`${source}/service.js`, `${releases}/index.js`)
2931
finder.on('file', function (file, stat, linkPath) {
3032
if (isIgnore(file)) {
@@ -46,6 +48,18 @@ finder.on('file', function (file, stat, linkPath) {
4648
// console.info('复制文件', file, target)
4749
}
4850
})
51+
// 生成package.json
52+
console.log('生成package.json')
53+
const json = require(path.resolve('package.json'))
54+
json.main = './index.js'
55+
json.scripts = {
56+
'start': 'node index.js'
57+
}
58+
delete json.build
59+
delete json.appName
60+
delete json.description
61+
json.name = 'magnetw-service'
62+
fs.writeFileSync(path.resolve(releases, 'package.json'), JSON.stringify(json, '\t', 2))
4963

5064
/**
5165
* 是否忽略此文件

src/main/api.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ async function reload (config, preload) {
8181

8282
async function start (config, preload) {
8383
try {
84-
const port = process.env.PORT || 9000
84+
const port = config.port || 9000
8585
koaServer = app.listen(port)
8686

8787
serverInfo = {

src/main/defaultConfig.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ module.exports = function () {
1414
showSourceLink: false,
1515
// 使用代理
1616
proxy: false,
17+
proxyType: 'http',
1718
proxyHost: '127.0.0.1',
18-
proxyPort: '1087',
19+
proxyPort: 1087,
1920
// 是否启用预加载 启用后会预加载下一页和下一个源站
2021
preload: true,
2122
// 缓存过期时间

src/main/ipc.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const {ipcMain, app} = require('electron')
66
const request = require('request-promise-native')
77
const {reload, start, isStarting, getProxyNetworkInfo} = require('./api')
88
const {defaultConfig, extractConfigVariable, getConfig} = require('./process-config')
9+
const is = require('electron-is')
910
const Store = require('electron-store')
1011
const store = new Store()
1112

@@ -76,6 +77,9 @@ function registerIPC (mainWindow) {
7677
* 检查更新
7778
*/
7879
ipcMain.on('check-update', async (event) => {
80+
if (is.dev()) {
81+
return
82+
}
7983
try {
8084
const response = await request({
8185
url: defaultConfig().checkUpdateURL,
@@ -107,8 +111,8 @@ function registerIPC (mainWindow) {
107111
/**
108112
* 获取网络信息
109113
*/
110-
ipcMain.on('get-network-info', async (event, proxy) => {
111-
event.sender.send('on-get-network-info', await getProxyNetworkInfo(proxy))
114+
ipcMain.on('get-network-info', async (event, config) => {
115+
event.sender.send('on-get-network-info', await getProxyNetworkInfo(config))
112116
})
113117
}
114118

src/main/logger.js

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import logger from 'electron-log'
2-
import moment from 'moment'
3-
import util from 'util'
1+
const logger = require('electron-log')
2+
const moment = require('moment')
3+
const util = require('util')
4+
const path = require('path')
45

56
const level = process.env.NODE_ENV === 'development' ? 'debug' : 'silly'
67
logger.transports.console.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}'
78
logger.transports.console.level = level
8-
logger.transports.file.fileName = `${moment().format('YYYY-MM-DD')}.log`
9+
logger.transports.file.fileName = `${moment().format('YYYY-MM-DD_HH_mm')}.log`
910
logger.transports.file.level = level
1011

1112
const styles = {
@@ -57,13 +58,41 @@ logger.transports.console = (msg) => {
5758
if (messageLevel.id <= levels[level].id) {
5859
const time = moment(msg.date).format('YYYY-MM-DD HH:mm:ss.SSS')
5960
const color = messageLevel.color
60-
const header = colorize(util.format('[%s][%s]', time, msg.level.toUpperCase()), color)
61+
const stack = getStackInfo()
62+
const header = colorize(util.format('[%s][%s][%s]', time, msg.level.toUpperCase(), `${stack.file}:${stack.line}`), color)
6163
const text = colorize(util.format(...msg.data), color)
6264
const message = util.format('%s %s', header, text)
65+
6366
console.log(message)
6467
}
6568
}
6669

70+
function getStackInfo () {
71+
try {
72+
const stackReg = /at\s+(.*)\s+\((.*):(\d*):(\d*)\)/i
73+
const stackReg2 = /at\s+()(.*):(\d*):(\d*)/i
74+
const stackList = (new Error()).stack.split('\n').slice(3)
75+
const sp = stackReg.exec(stackList[1]) || stackReg2.exec(stackList[1])
76+
const data = {}
77+
if (sp && sp.length === 5) {
78+
data.method = sp[1]
79+
data.path = sp[2]
80+
data.line = sp[3]
81+
data.pos = sp[4]
82+
data.file = path.basename(data.path)
83+
}
84+
return data
85+
} catch (e) {
86+
return {
87+
method: '',
88+
path: '',
89+
line: '',
90+
pos: '',
91+
file: ''
92+
}
93+
}
94+
}
95+
6796
console.error = logger.error
6897
console.warn = logger.warn
6998
console.info = logger.info

src/main/middleware/response-template.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ module.exports = async (ctx, next) => {
1313
ctx.throw(ctx.status, ctx.message)
1414
}
1515
} catch (e) {
16-
console.error(e.message)
16+
const statusCode = e.statusCode || 500
17+
console.error(statusCode, e.message)
1718
const maxLength = 100
18-
const message = e.message
19-
ctx.status = e.statusCode || 500
19+
const message = `${statusCode} - 请求异常,请查看日志`
20+
ctx.status = statusCode
2021
ctx.body = {
2122
success: false,
2223
message: message.length > maxLength ? `${message.substring(0, maxLength)}...` : message

src/main/repository.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function getRuleById (id) {
5858

5959
async function requestDocument (url, clientHeaders) {
6060
const timeout = config.timeout || 10000
61-
const proxyURL = config.proxy ? `http://${config.proxyHost}:${config.proxyPort}` : null
61+
const proxyURL = getProxyURL(config)
6262

6363
// header
6464
const uri = new URI(url)
@@ -259,22 +259,24 @@ async function getRule () {
259259
return rule
260260
}
261261

262-
async function getProxyNetworkInfo (proxy) {
263-
const proxyURL = proxy ? `http://${config.proxyHost}:${config.proxyPort}` : null
262+
function getProxyURL (newConfig) {
263+
return newConfig.proxy ? `${newConfig.proxyType}://${newConfig.proxyHost}:${newConfig.proxyPort}` : null
264+
}
265+
266+
async function getProxyNetworkInfo (config) {
267+
let proxyURL = getProxyURL(config)
264268
const ipOptions = {url: 'https://gip.dog', proxy: proxyURL, timeout: 5000, headers: {'User-Agent': 'curl'}}
265269
const googleOptions = {url: 'https://www.google.com', proxy: proxyURL, timeout: 5000}
266-
// console.info(ipOptions, googleOptions)
267-
let info
268-
try {
269-
info = await request(ipOptions)
270-
} catch (e) {
271-
console.error(e)
272-
}
270+
console.info('测试代理', proxyURL)
273271
let googleTest = false
272+
let info
274273
const start = Date.now()
275274
try {
276275
const google = await request(googleOptions)
276+
console.log(google)
277277
googleTest = google.length > 0
278+
info = await request(ipOptions)
279+
console.log(info)
278280
} catch (e) {
279281
console.error(e.message)
280282
}

src/renderer/components/BrowserLink.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030
},
3131
methods: {
3232
handleClickLink () {
33-
shell.openExternal(this.href)
33+
if (this.href) {
34+
shell.openExternal(this.href)
35+
}
3436
}
3537
}
3638
}
@@ -47,7 +49,7 @@
4749
}
4850
4951
.browser-link-empty, .browser-link-empty:hover {
50-
color: $--color-text-primary;
52+
color: $--color-text-primary !important;
5153
cursor: inherit;
5254
}
5355
</style>

0 commit comments

Comments
 (0)