rbxjs-plus
Version:
A system allowing access to roblox functions.
48 lines (43 loc) • 1.22 kB
JavaScript
// Dependencies
var url = require('url');
// Includes
var http = require('./http.js').func;
var getHash = require('./getHash.js').func;
var getVerificationInputs = require('./getVerificationInputs.js').func;
var cache = require('../cache');
// Args
exports.required = ['url'];
exports.optional = ['ignoreCache', 'getBody', 'jar'];
// Define
function getVerification (jar, url, getBody) {
var httpOpt = {
url: url,
options: {
resolveWithFullResponse: true,
jar: jar
}
};
return http(httpOpt)
.then(function (res) {
var inputs = getVerificationInputs({html: res.body});
var match;
if (res.headers && res.headers['set-cookie']) {
match = res.headers['set-cookie'].toString().match(/__RequestVerificationToken=(.*?);/);
}
return {
body: (getBody ? res.body : null),
inputs: inputs,
header: match && match[1]
};
});
}
exports.func = function (args) {
var jar = args.jar;
if (args.ignoreCache) {
return getVerification(jar, args.url, args.getBody);
} else {
return cache.wrap('Verify', url.parse(args.url).pathname + getHash({jar: jar}), function () {
return getVerification(jar, args.url, args.getBody);
});
}
};