Fix network leak when using certain modules with the proxy enabled
This commit is contained in:
parent
261291a640
commit
aeeb911f0f
|
@ -2041,6 +2041,11 @@
|
||||||
"defer-to-connect": "^1.0.1"
|
"defer-to-connect": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@tootallnate/once": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
|
||||||
|
},
|
||||||
"@types/anymatch": {
|
"@types/anymatch": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
||||||
|
@ -2848,6 +2853,29 @@
|
||||||
"pkcs7": "^1.0.4"
|
"pkcs7": "^1.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"agent-base": {
|
||||||
|
"version": "6.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||||
|
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"aggregate-error": {
|
"aggregate-error": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
|
||||||
|
@ -9236,6 +9264,31 @@
|
||||||
"requires-port": "^1.0.0"
|
"requires-port": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"http-proxy-agent": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
|
||||||
|
"requires": {
|
||||||
|
"@tootallnate/once": "1",
|
||||||
|
"agent-base": "6",
|
||||||
|
"debug": "4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"http-proxy-middleware": {
|
"http-proxy-middleware": {
|
||||||
"version": "0.19.1",
|
"version": "0.19.1",
|
||||||
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
|
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
|
||||||
|
@ -9379,6 +9432,30 @@
|
||||||
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
|
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"https-proxy-agent": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
|
||||||
|
"requires": {
|
||||||
|
"agent-base": "6",
|
||||||
|
"debug": "4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"human-signals": {
|
"human-signals": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
|
||||||
|
@ -9572,8 +9649,7 @@
|
||||||
"ip": {
|
"ip": {
|
||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
|
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"ip-regex": {
|
"ip-regex": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
|
@ -15267,6 +15343,11 @@
|
||||||
"is-fullwidth-code-point": "^3.0.0"
|
"is-fullwidth-code-point": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"smart-buffer": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw=="
|
||||||
|
},
|
||||||
"snapdragon": {
|
"snapdragon": {
|
||||||
"version": "0.8.2",
|
"version": "0.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
||||||
|
@ -15425,6 +15506,40 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"socks": {
|
||||||
|
"version": "2.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz",
|
||||||
|
"integrity": "sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==",
|
||||||
|
"requires": {
|
||||||
|
"ip": "^1.1.5",
|
||||||
|
"smart-buffer": "^4.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"socks-proxy-agent": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==",
|
||||||
|
"requires": {
|
||||||
|
"agent-base": "6",
|
||||||
|
"debug": "4",
|
||||||
|
"socks": "^2.3.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"sort-keys": {
|
"sort-keys": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
"bulma-pro": "^0.2.0",
|
"bulma-pro": "^0.2.0",
|
||||||
"dateformat": "^4.4.1",
|
"dateformat": "^4.4.1",
|
||||||
"electron-context-menu": "^2.4.0",
|
"electron-context-menu": "^2.4.0",
|
||||||
|
"http-proxy-agent": "^4.0.1",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
"jquery": "^3.5.1",
|
"jquery": "^3.5.1",
|
||||||
"js-yaml": "^4.0.0",
|
"js-yaml": "^4.0.0",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
|
@ -27,6 +29,7 @@
|
||||||
"nedb": "^1.8.0",
|
"nedb": "^1.8.0",
|
||||||
"opml-to-json": "1.0.1",
|
"opml-to-json": "1.0.1",
|
||||||
"rss-parser": "^3.10.0",
|
"rss-parser": "^3.10.0",
|
||||||
|
"socks-proxy-agent": "^5.0.0",
|
||||||
"video.js": "7.10.2",
|
"video.js": "7.10.2",
|
||||||
"videojs-abloop": "^1.2.0",
|
"videojs-abloop": "^1.2.0",
|
||||||
"videojs-contrib-quality-levels": "^2.0.9",
|
"videojs-contrib-quality-levels": "^2.0.9",
|
||||||
|
|
|
@ -3,6 +3,9 @@ import ytsr from 'ytsr'
|
||||||
import ytpl from 'ytpl'
|
import ytpl from 'ytpl'
|
||||||
|
|
||||||
import IsEqual from 'lodash.isequal'
|
import IsEqual from 'lodash.isequal'
|
||||||
|
import { SocksProxyAgent } from 'socks-proxy-agent'
|
||||||
|
import { HttpsProxyAgent } from 'https-proxy-agent'
|
||||||
|
import { HttpProxyAgent } from 'http-proxy-agent'
|
||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
main: 0,
|
main: 0,
|
||||||
|
@ -38,6 +41,47 @@ const actions = {
|
||||||
duration: ''
|
duration: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let agent = null
|
||||||
|
const settings = rootState.settings
|
||||||
|
const useProxy = settings.useProxy
|
||||||
|
|
||||||
|
if (useProxy) {
|
||||||
|
const proxyProtocol = settings.proxyProtocol
|
||||||
|
const proxyHostname = settings.proxyHostname
|
||||||
|
const proxyPort = settings.proxyPort
|
||||||
|
|
||||||
|
switch (proxyProtocol) {
|
||||||
|
case 'http':
|
||||||
|
agent = new HttpProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'https':
|
||||||
|
agent = new HttpsProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks4':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 4
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks5':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 5
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
payload.options.requestOptions = { agent }
|
||||||
|
}
|
||||||
|
|
||||||
commit('toggleIsYtSearchRunning')
|
commit('toggleIsYtSearchRunning')
|
||||||
|
|
||||||
if (!IsEqual(defaultFilters, rootState.utils.searchSettings)) {
|
if (!IsEqual(defaultFilters, rootState.utils.searchSettings)) {
|
||||||
|
@ -79,7 +123,51 @@ const actions = {
|
||||||
},
|
},
|
||||||
|
|
||||||
async ytSearchGetFilters ({ rootState }, payload) {
|
async ytSearchGetFilters ({ rootState }, payload) {
|
||||||
let filter = await ytsr.getFilters(payload.query)
|
let options = null
|
||||||
|
let agent = null
|
||||||
|
const settings = rootState.settings
|
||||||
|
const useProxy = settings.useProxy
|
||||||
|
|
||||||
|
if (useProxy) {
|
||||||
|
const proxyProtocol = settings.proxyProtocol
|
||||||
|
const proxyHostname = settings.proxyHostname
|
||||||
|
const proxyPort = settings.proxyPort
|
||||||
|
|
||||||
|
switch (proxyProtocol) {
|
||||||
|
case 'http':
|
||||||
|
agent = new HttpProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'https':
|
||||||
|
agent = new HttpsProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks4':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 4
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks5':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 5
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
options = {
|
||||||
|
requestOptions: { agent }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let filter = await ytsr.getFilters(payload.query, options)
|
||||||
let filterUrl = null
|
let filterUrl = null
|
||||||
let searchSettings = payload.searchSettings
|
let searchSettings = payload.searchSettings
|
||||||
|
|
||||||
|
@ -104,7 +192,7 @@ const actions = {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
filterUrl = filter.get('Sort by').get(filterValue).url
|
filterUrl = filter.get('Sort by').get(filterValue).url
|
||||||
filter = await ytsr.getFilters(filterUrl)
|
filter = await ytsr.getFilters(filterUrl, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Current ref: ${filterUrl}`)
|
console.log(`Current ref: ${filterUrl}`)
|
||||||
|
@ -118,7 +206,7 @@ const actions = {
|
||||||
}
|
}
|
||||||
|
|
||||||
filterUrl = filter.get('Duration').get(filterValue).url
|
filterUrl = filter.get('Duration').get(filterValue).url
|
||||||
filter = await ytsr.getFilters(filterUrl)
|
filter = await ytsr.getFilters(filterUrl, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Current ref: ${filterUrl}`)
|
console.log(`Current ref: ${filterUrl}`)
|
||||||
|
@ -145,7 +233,7 @@ const actions = {
|
||||||
}
|
}
|
||||||
|
|
||||||
filterUrl = filter.get('Upload date').get(filterValue).url
|
filterUrl = filter.get('Upload date').get(filterValue).url
|
||||||
filter = await ytsr.getFilters(filterUrl)
|
filter = await ytsr.getFilters(filterUrl, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Current ref: ${filterUrl}`)
|
console.log(`Current ref: ${filterUrl}`)
|
||||||
|
@ -153,7 +241,7 @@ const actions = {
|
||||||
if (searchSettings.type !== 'all') {
|
if (searchSettings.type !== 'all') {
|
||||||
const filterValue = searchSettings.type.charAt(0).toUpperCase() + searchSettings.type.slice(1)
|
const filterValue = searchSettings.type.charAt(0).toUpperCase() + searchSettings.type.slice(1)
|
||||||
filterUrl = filter.get('Type').get(filterValue).url
|
filterUrl = filter.get('Type').get(filterValue).url
|
||||||
filter = await ytsr.getFilters(filterUrl)
|
filter = await ytsr.getFilters(filterUrl, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Current ref: ${filterUrl}`)
|
console.log(`Current ref: ${filterUrl}`)
|
||||||
|
@ -163,11 +251,52 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
ytGetPlaylistInfo (_, playlistId) {
|
ytGetPlaylistInfo ({ rootState }, playlistId) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
console.log(playlistId)
|
console.log(playlistId)
|
||||||
console.log('Getting playlist info please wait...')
|
console.log('Getting playlist info please wait...')
|
||||||
ytpl(playlistId, { limit: 'Infinity' }).then((result) => {
|
let agent = null
|
||||||
|
const settings = rootState.settings
|
||||||
|
const useProxy = settings.useProxy
|
||||||
|
|
||||||
|
if (useProxy) {
|
||||||
|
const proxyProtocol = settings.proxyProtocol
|
||||||
|
const proxyHostname = settings.proxyHostname
|
||||||
|
const proxyPort = settings.proxyPort
|
||||||
|
|
||||||
|
switch (proxyProtocol) {
|
||||||
|
case 'http':
|
||||||
|
agent = new HttpProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'https':
|
||||||
|
agent = new HttpsProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks4':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 4
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks5':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 5
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ytpl(playlistId, {
|
||||||
|
limit: 'Infinity',
|
||||||
|
requestOptions: { agent }
|
||||||
|
}).then((result) => {
|
||||||
resolve(result)
|
resolve(result)
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
reject(err)
|
reject(err)
|
||||||
|
@ -175,11 +304,51 @@ const actions = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
ytGetVideoInformation (_, videoId) {
|
ytGetVideoInformation ({ rootState }, videoId) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
console.log('Getting video info please wait...')
|
console.log('Getting video info please wait...')
|
||||||
|
let agent = null
|
||||||
|
const settings = rootState.settings
|
||||||
|
const useProxy = settings.useProxy
|
||||||
|
|
||||||
|
if (useProxy) {
|
||||||
|
const proxyProtocol = settings.proxyProtocol
|
||||||
|
const proxyHostname = settings.proxyHostname
|
||||||
|
const proxyPort = settings.proxyPort
|
||||||
|
|
||||||
|
switch (proxyProtocol) {
|
||||||
|
case 'http':
|
||||||
|
agent = new HttpProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'https':
|
||||||
|
agent = new HttpsProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks4':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 4
|
||||||
|
})
|
||||||
|
break
|
||||||
|
case 'socks5':
|
||||||
|
agent = new SocksProxyAgent({
|
||||||
|
host: proxyHostname,
|
||||||
|
port: proxyPort,
|
||||||
|
type: 5
|
||||||
|
})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ytdl.getInfo(videoId, {
|
ytdl.getInfo(videoId, {
|
||||||
lang: localStorage.getItem('locale')
|
lang: localStorage.getItem('locale'),
|
||||||
|
requestOptions: { agent }
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
resolve(result)
|
resolve(result)
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
|
|
Loading…
Reference in New Issue