nurlresolver
Version:
url resolver for node
30 lines • 1.3 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
import { URL } from 'url';
export class YouruploadResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/yourupload\.com/, /https?:\/\/www\.yourupload\.com/],
speedRank: 80
});
}
async resolveInner(_urlToResolve) {
const links = [];
const mediaIdRegex = /yourupload\.com\/(watch|embed)\/([0-9A-Za-z]+)/g;
const videoId = mediaIdRegex.exec(_urlToResolve)?.[2];
const normalizedUrl = `http://www.yourupload.com/embed/${videoId}`;
const response = await this.gotInstance(normalizedUrl);
const fileSourceRegex = /file\s*:\s*(?:'|")(.+?)(?:'|")/g;
const fileLink = fileSourceRegex.exec(response.body)?.[1];
if (fileLink && !fileLink?.endsWith('novideo.mp4') && !fileLink.endsWith('watermark.png')) {
const { title } = this.scrapeHtml(response.body, {
title: 'title'
});
const link = new URL(fileLink, normalizedUrl).href;
const result = { title, link, isPlayable: true };
result.headers = { "referer": normalizedUrl };
links.push(result);
}
return links;
}
}
//# sourceMappingURL=yourupload.js.map