mirror of https://github.com/calzoneman/sync.git
ffmpeg: preserve cookies when following redirects in pre-flight req
This commit is contained in:
parent
b453aecee5
commit
b876c8907a
|
@ -2,7 +2,7 @@
|
||||||
"author": "Calvin Montgomery",
|
"author": "Calvin Montgomery",
|
||||||
"name": "CyTube",
|
"name": "CyTube",
|
||||||
"description": "Online media synchronizer and chat",
|
"description": "Online media synchronizer and chat",
|
||||||
"version": "3.51.1",
|
"version": "3.51.2",
|
||||||
"repository": {
|
"repository": {
|
||||||
"url": "http://github.com/calzoneman/sync"
|
"url": "http://github.com/calzoneman/sync"
|
||||||
},
|
},
|
||||||
|
|
|
@ -74,8 +74,16 @@ function translateStatusCode(statusCode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function testUrl(url, cb, redirCount) {
|
function getCookie(res) {
|
||||||
if (!redirCount) redirCount = 0;
|
if (!res.headers['set-cookie']) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.headers['set-cookie'].map(c => c.split(';')[0]).join(';') + ';';
|
||||||
|
}
|
||||||
|
|
||||||
|
function testUrl(url, cb, params = { redirCount: 0, cookie: '' }) {
|
||||||
|
const { redirCount, cookie } = params;
|
||||||
var data = urlparse.parse(url);
|
var data = urlparse.parse(url);
|
||||||
if (!/https:/.test(data.protocol)) {
|
if (!/https:/.test(data.protocol)) {
|
||||||
return cb("Only links starting with 'https://' are supported " +
|
return cb("Only links starting with 'https://' are supported " +
|
||||||
|
@ -89,6 +97,9 @@ function testUrl(url, cb, redirCount) {
|
||||||
|
|
||||||
var transport = (data.protocol === "https:") ? https : http;
|
var transport = (data.protocol === "https:") ? https : http;
|
||||||
data.method = "HEAD";
|
data.method = "HEAD";
|
||||||
|
if (cookie) {
|
||||||
|
data.headers = { 'Cookie': cookie };
|
||||||
|
}
|
||||||
var req = transport.request(data, function (res) {
|
var req = transport.request(data, function (res) {
|
||||||
req.abort();
|
req.abort();
|
||||||
|
|
||||||
|
@ -99,8 +110,12 @@ function testUrl(url, cb, redirCount) {
|
||||||
"on the website hosting the link. For best results, use " +
|
"on the website hosting the link. For best results, use " +
|
||||||
"a direct link. See https://git.io/vrE75 for details.");
|
"a direct link. See https://git.io/vrE75 for details.");
|
||||||
}
|
}
|
||||||
|
const nextParams = {
|
||||||
|
redirCount: redirCount + 1,
|
||||||
|
cookie: cookie + getCookie(res)
|
||||||
|
};
|
||||||
return testUrl(fixRedirectIfNeeded(data, res.headers["location"]), cb,
|
return testUrl(fixRedirectIfNeeded(data, res.headers["location"]), cb,
|
||||||
redirCount + 1);
|
nextParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res.statusCode !== 200) {
|
if (res.statusCode !== 200) {
|
||||||
|
|
Loading…
Reference in New Issue