change from node-fetch to axios. Seems to be less strict. Confirmed working for remote servers whereas node-fetch would throw error 'Only absolute URLs are supported' if server was remote."

This commit is contained in:
Jordan Koehn 2020-06-03 23:09:19 -04:00
parent 5b989cf5be
commit d5f4bea481
4 changed files with 55 additions and 24 deletions

26
package-lock.json generated
View File

@ -1362,6 +1362,14 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
"integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
},
"axios": {
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
"requires": {
"follow-redirects": "1.5.10"
}
},
"babel-plugin-dynamic-import-node": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
@ -3189,6 +3197,24 @@
"unpipe": "~1.0.0"
}
},
"follow-redirects": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",

View File

@ -18,13 +18,13 @@
"dependencies": {
"angular": "^1.7.9",
"angular-router-browserify": "0.0.2",
"axios": "^0.19.2",
"body-parser": "^1.19.0",
"diskdb": "^0.1.17",
"express": "^4.17.1",
"uuid": "^8.0.0",
"node-fetch": "^2.6.0",
"node-ssdp": "^4.0.0",
"request": "^2.88.2",
"uuid": "^8.0.0",
"xml-writer": "^1.7.0"
},
"bin": "dist/index.js",

View File

@ -1,5 +1,5 @@
const { v4: uuidv4 } = require('uuid');
const fetch = require('node-fetch');
const axios = require('axios');
class PlexTranscoder {
constructor(settings, lineupItem) {
@ -146,12 +146,15 @@ lang=en`
}
async getDecision() {
const response = await fetch(`${this.server.uri}/video/:/transcode/universal/decision?${this.transcodingArgs}`, {
method: 'GET', headers: {
Accept: 'application/json'
}
await axios.get(`${this.server.uri}/video/:/transcode/universal/decision?${this.transcodingArgs}`, {
headers: { Accept: 'application/json' }
})
.then((res) => {
this.decisionJson = res.data;
})
.catch((err) => {
console.log(err);
});
this.decisionJson = await response.json();
}
getStatusUrl() {
@ -196,10 +199,7 @@ X-Plex-Token=${this.server.accessToken}`;
}
updatePlex() {
let postUrl = this.getStatusUrl();
fetch(postUrl, {
method: 'POST'
});
axios.post(this.getStatusUrl());
this.currTimeMs += this.updateInterval;
if (this.currTimeMs > this.duration) {
this.currTimeMs = this.duration;

View File

@ -1,5 +1,4 @@
const Plex = require('../../src/plex');
const fetch = require('node-fetch');
module.exports = function ($http, $window, $interval) {
return {
@ -34,14 +33,19 @@ module.exports = function ($http, $window, $interval) {
}
if (r2.data.authToken !== null) {
$interval.cancel(interval)
try {
headers['X-Plex-Token'] = r2.data.authToken
let res_servers = []
const getServers = await fetch(`https://plex.tv/api/v2/resources?includeHttps=1`, {
method: 'GET', headers: headers
});
const servers = await getServers.json();
headers['X-Plex-Token'] = r2.data.authToken
$http({
method: 'GET',
url: 'https://plex.tv/api/v2/resources?includeHttps=1',
headers: headers
})
.then((r3) => {
let res_servers = []
const servers = r3.data;
servers.forEach((server) => {
// not pms, skip
if (server.provides != `server`)
@ -53,15 +57,16 @@ module.exports = function ($http, $window, $interval) {
server.protocol = server.connections[i].protocol
server.address = server.connections[i].address
server.port = server.connections[i].port
res_servers.push(server);
});
res.servers = res_servers
resolve(res)
} catch (err) {
reject(err)
}
})
.catch((err) => {
reject(err);
});
}
}, (err) => {
$interval.cancel(interval)