nurlresolver
Version:
url resolver for node
41 lines • 1.53 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
export class AppDriveResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/appdrive/],
useCookies: true
});
}
async resolveInner(_urlToResolve) {
const initialResponse = await this.gotInstance(_urlToResolve);
const canonicalUrl = initialResponse.url;
const keyRegex = /"key", "([^"]*)"/;
const rxvalue = keyRegex.exec(initialResponse.body);
const key = rxvalue?.[1];
const resp2 = await this.gotInstance.post(canonicalUrl, {
form: {
action: 'direct',
key: key,
action_token: ''
},
headers: {
'x-token': new URL(canonicalUrl).hostname,
'Referer': canonicalUrl
}
}).json();
const resp3 = await this.gotInstance(resp2.url);
const gdlink = this.scrapeLinkHref(resp3.body, '#gdlink');
const urlRegex = /worker_url\s*=\s*'(https:\/\/[^']+)'/;
const rx3respo = urlRegex.exec(resp3.body);
const workersDev = rx3respo?.[1];
const linksToReturn = [];
if (gdlink) {
linksToReturn.push({ link: gdlink, title: 'workers', parent: _urlToResolve });
}
if (workersDev) {
linksToReturn.push({ link: workersDev, title: 'drive', parent: _urlToResolve });
}
return linksToReturn;
}
}
//# sourceMappingURL=appDrive.js.map