|
import { scribdDownloader } from "./service/ScribdDownloader.js" |
|
import { slideshareDownloader } from "./service/SlideshareDownloader.js" |
|
import { everandDownloader } from "./service/EverandDownloader.js" |
|
import * as scribdRegex from "./const/ScribdRegex.js" |
|
import * as slideshareRegex from "./const/SlideshareRegex.js" |
|
import * as everandRegex from "./const/EverandRegex.js" |
|
|
|
class App { |
|
constructor() { |
|
if (!App.instance) { |
|
App.instance = this |
|
} |
|
return App.instance |
|
} |
|
|
|
async execute(url, flag) { |
|
if (url.match(scribdRegex.DOMAIN)) { |
|
await scribdDownloader.execute(url, flag) |
|
} else if (url.match(slideshareRegex.DOMAIN)) { |
|
await slideshareDownloader.execute(url) |
|
} else if (url.match(everandRegex.DOMAIN)) { |
|
await everandDownloader.execute(url) |
|
} else { |
|
throw new Error(`Unsupported URL: ${url}`) |
|
} |
|
} |
|
} |
|
|
|
export const app = new App() |