import { Downloader } from "./downloader"; import { Links } from "./links"; let links = new Links; function sleep(ms: number) { return new Promise(resolve => setTimeout(resolve, ms)); } export class UrlPool { urls: string[]; used: boolean[] = []; generating = false; downloader?: Downloader; constructor(urls?: string[]) { this.urls = urls ? urls : []; for(let i=0; i { let url = this.get_raw(); if(url) return url; return new Promise((complete) => { let check = setInterval(() => { let url = this.get_raw(); if(url) { clearInterval(check); complete(url); } }, 100); }); } return(i: number) { this.used[i] = false; } add(url: string) { this.urls.push(url); this.used.push(false); } available(count?: number) { let available: number[] = []; for(let i=0; i