nurlresolver
Version:
url resolver for node
33 lines • 1.22 kB
JavaScript
import { BaseUrlResolver } from "../BaseResolver.js";
import { parse } from 'content-disposition';
export class WorkersDevResolver extends BaseUrlResolver {
constructor() {
super({
domains: [/https?:\/\/(dl.hdhub\d{0,}.workers.dev)/],
speedRank: 95
});
}
async resolveInner(_urlToResolve) {
let title = this.extractFileNameFromUrl(_urlToResolve);
try {
const response = await this.gotInstance.head(_urlToResolve);
const attachmentFileName = parse(response.headers['content-disposition'] || '');
title = attachmentFileName.parameters.filename || title;
}
catch (err) {
//ignore
}
const result = {
isPlayable: true,
link: _urlToResolve,
title
};
return [result];
}
async canResolve(urlToResolve) {
const u = new URL(urlToResolve);
return u.hostname.endsWith('workers.dev') || u.hostname.endsWith('r2.dev') || u.hostname.endsWith('fastdl.lol')
|| u.hostname.endsWith('obsession.buzz') || u.hostname.endsWith('storage.googleapis.com');
}
}
//# sourceMappingURL=workers.dev.js.map