nurlresolver
Version:
url resolver for node
35 lines • 1.46 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
export class filePostResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/filepost/],
speedRank: 90,
useCookies: true
});
}
async resolveInner(_urlToResolve) {
const parsedUrl = new URL(_urlToResolve);
const fileId = parsedUrl.pathname.split('/').pop();
const response = await this.gotInstance(_urlToResolve);
const csrfToken = this.parseElementAttributes(response.body, 'meta[name=csrf-token]', 'content')[0];
const data = { download: { index: 0 } };
const resp2 = await this.gotInstance.post(`https://filepost.io/d/${fileId}/generate_link`, {
json: data,
headers: {
"x-csrf-token": csrfToken
}
}).json();
const title = this.parseElementAttributes(response.body, 'meta[name=description]', 'content')[0];
return { link: resp2.url, title, isPlayable: true };
}
async fillMetaInfo(resolveMediaItem) {
const contentResponse = await this.gotInstance(resolveMediaItem.link, {
headers: {
'Range': 'bytes=0-1'
}
});
resolveMediaItem.size = contentResponse.headers['content-range']?.split('/').pop();
resolveMediaItem.contentType = contentResponse.headers['content-type'];
}
}
//# sourceMappingURL=filePost.js.map