新增DNS缓存功能
parent
f7267806df
commit
f63f645696
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lx-music-desktop",
|
"name": "lx-music-desktop",
|
||||||
"version": "0.5.5",
|
"version": "0.6.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1491,8 +1491,7 @@
|
||||||
"asap": {
|
"asap": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.6",
|
||||||
"resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
|
"resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
|
||||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
|
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"asn1": {
|
"asn1": {
|
||||||
"version": "0.2.4",
|
"version": "0.2.4",
|
||||||
|
@ -4572,6 +4571,15 @@
|
||||||
"buffer-indexof": "^1.0.0"
|
"buffer-indexof": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dnscache": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/dnscache/download/dnscache-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-/Twk1mwUFiX1lMd756ja/uKmbIo=",
|
||||||
|
"requires": {
|
||||||
|
"asap": "^2.0.6",
|
||||||
|
"lodash.clone": "^4.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"doctrine": {
|
"doctrine": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz",
|
"resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz",
|
||||||
|
@ -8622,6 +8630,11 @@
|
||||||
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
|
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"lodash.clone": {
|
||||||
|
"version": "4.5.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/lodash.clone/download/lodash.clone-4.5.0.tgz",
|
||||||
|
"integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y="
|
||||||
|
},
|
||||||
"lodash.clonedeep": {
|
"lodash.clonedeep": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-3.0.2.tgz",
|
"resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-3.0.2.tgz",
|
||||||
|
|
|
@ -196,6 +196,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.19.0",
|
"axios": "^0.19.0",
|
||||||
"crypto-js": "^3.1.9-1",
|
"crypto-js": "^3.1.9-1",
|
||||||
|
"dnscache": "^1.0.2",
|
||||||
"electron-log": "^3.0.8",
|
"electron-log": "^3.0.8",
|
||||||
"electron-store": "^5.0.0",
|
"electron-store": "^5.0.0",
|
||||||
"electron-updater": "^4.1.2",
|
"electron-updater": "^4.1.2",
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
|
|
||||||
- 新增试听列表**滚动条位置恢复**设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
|
- 新增试听列表**滚动条位置恢复**设置(可自动恢复到上次离开时的列表滚动位置),本功能默认开启,若不需要可到设置-列表设置将其关闭
|
||||||
|
|
||||||
|
# 优化
|
||||||
|
|
||||||
|
- 新增DNS解析缓存,加快请求速度
|
||||||
|
|
|
@ -8,6 +8,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
|
|
@ -8,6 +8,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
@ -19,6 +20,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
@ -30,6 +32,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
|
|
@ -7,6 +7,7 @@ const api_temp = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers,
|
headers,
|
||||||
timeout,
|
timeout,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(body.msg))
|
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(body.msg))
|
||||||
|
|
|
@ -19,6 +19,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
|
|
@ -8,6 +8,7 @@ const api_messoer = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 200 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 200 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
|
|
@ -8,6 +8,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve({ type, url: body.data }) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
@ -19,6 +20,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
@ -30,6 +32,7 @@ const api_test = {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
family: 4,
|
||||||
})
|
})
|
||||||
requestObj.promise = requestObj.promise.then(({ body }) => {
|
requestObj.promise = requestObj.promise.then(({ body }) => {
|
||||||
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
return body.code === 0 ? Promise.resolve(body.data) : Promise.reject(new Error(requestMsg.fail))
|
||||||
|
|
|
@ -5,7 +5,14 @@ import { requestMsg } from './message'
|
||||||
import { bHh } from './music/options'
|
import { bHh } from './music/options'
|
||||||
// import fs from 'fs'
|
// import fs from 'fs'
|
||||||
|
|
||||||
const headers = {
|
import dnscache from 'dnscache'
|
||||||
|
dnscache({
|
||||||
|
enable: true,
|
||||||
|
ttl: 21600,
|
||||||
|
cachesize: 1000,
|
||||||
|
})
|
||||||
|
|
||||||
|
const defaultHeaders = {
|
||||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
|
||||||
}
|
}
|
||||||
// var proxyUrl = "http://" + user + ":" + password + "@" + host + ":" + port;
|
// var proxyUrl = "http://" + user + ":" + password + "@" + host + ":" + port;
|
||||||
|
@ -221,26 +228,28 @@ const getProxyInfo = () => window.globalObj.proxy.enable
|
||||||
? `http://${window.globalObj.proxy.username}:${window.globalObj.proxy.password}@${window.globalObj.proxy.host}:${window.globalObj.proxy.port};`
|
? `http://${window.globalObj.proxy.username}:${window.globalObj.proxy.password}@${window.globalObj.proxy.host}:${window.globalObj.proxy.port};`
|
||||||
: undefined
|
: undefined
|
||||||
|
|
||||||
const fetchData = (url, method, options, callback) => {
|
const fetchData = (url, method, {
|
||||||
|
headers = {},
|
||||||
|
format = 'json',
|
||||||
|
timeout = 1000,
|
||||||
|
...options
|
||||||
|
}, callback) => {
|
||||||
// console.log(url, options)
|
// console.log(url, options)
|
||||||
console.log('---start---', url)
|
console.log('---start---', url)
|
||||||
if (options.headers && options.headers[bHh]) {
|
if (headers[bHh]) {
|
||||||
let s = Buffer.from(bHh, 'hex').toString()
|
let s = Buffer.from(bHh, 'hex').toString()
|
||||||
s = s.replace(s.substr(-1), '')
|
s = s.replace(s.substr(-1), '')
|
||||||
s = Buffer.from(s, 'base64').toString()
|
s = Buffer.from(s, 'base64').toString()
|
||||||
options.headers[s] = !!s
|
headers[s] = !!s
|
||||||
delete options.headers[bHh]
|
delete headers[bHh]
|
||||||
}
|
}
|
||||||
return request(url, {
|
return request(url, {
|
||||||
|
...options,
|
||||||
method,
|
method,
|
||||||
headers: Object.assign({}, headers, options.headers || {}),
|
headers: Object.assign({}, defaultHeaders, headers),
|
||||||
Origin: options.origin,
|
timeout,
|
||||||
body: options.body,
|
|
||||||
form: options.form,
|
|
||||||
formData: options.formData,
|
|
||||||
timeout: options.timeout || 10000,
|
|
||||||
proxy: getProxyInfo(),
|
proxy: getProxyInfo(),
|
||||||
json: options.format === undefined || options.format === 'json',
|
json: format === 'json',
|
||||||
}, (err, resp, body) => {
|
}, (err, resp, body) => {
|
||||||
if (err) return callback(err, null)
|
if (err) return callback(err, null)
|
||||||
callback(null, resp, body)
|
callback(null, resp, body)
|
||||||
|
|
Loading…
Reference in New Issue