nurlresolver
Version:
url resolver for node
40 lines • 1.48 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
const rx = /http(s)?:\/\/(moviesdrive|t\.me)/;
export class MoviesdriveResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/([a-z0-9-]+\.)*moviesdrive/]
});
}
async resolveInner(_urlToResolve) {
const resp = await fetch(_urlToResolve);
const body = await resp.text();
const obj1 = this.scrapeHtml(body, {
links: {
listItem: '.page-body a',
data: {
link: { attr: 'href' },
title: ''
}
}
});
return obj1.links.filter(x => x.link.startsWith('http') && !rx.test(x.link));
}
}
export class mdrive extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/mdrive/],
speedRank: 80
});
}
async resolveInner(_urlToResolve) {
const urlInstance = new URL(_urlToResolve);
const docId = urlInstance.pathname.split('/').at(-1) || urlInstance.pathname.split('/').at(-2); // handle trailing slash
const result = await this.gotInstance(`${urlInstance.origin}/wp-json/wp/v2/posts/${docId}`).json();
//console.log(result);
const links = this.scrapeAllLinks(result.content.rendered, '');
return links.filter(x => x.link.startsWith('http') && !rx.test(x.link));
}
}
//# sourceMappingURL=moviesdrive.js.map