First commit

This commit is contained in:
Filip Znachor 2022-02-23 17:37:25 +01:00
commit fd4f51cba1
4 changed files with 627 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
node_modules
*.mkv
*.mp4

181
index.ts Normal file
View file

@ -0,0 +1,181 @@
import fs from "fs";
import express from "express";
import axios from "axios";
import { Blob } from "buffer";
// const app = express();
// app.get("/", async function (req, res) {
// });
// app.listen(8000, function () {
// console.log("Listening on port 8000!");
// });
class UrlPool {
urls: string[];
used: boolean[] = [];
constructor(urls: string[]) {
this.urls = urls;
for(let i=0; i<urls.length; i++) {
this.used[i] = false;
}
}
get(): [number, string] | undefined {
for(let i=0; i<this.urls.length; i++) {
if(this.used[i]) continue;
this.used[i] = true;
return [i, this.urls[i]];
}
}
return(i: number) {
this.used[i] = false;
}
available(count?: number) {
let available: number[] = [];
for(let i=0; i<this.used.length; i++) {
if(!this.used[i]) {
available.push(i);
}
}
return count ? available.slice(0, count) : available;
}
}
class Downloader {
pool: UrlPool;
chunks: Buffer[] = [];
downloaded_chunks = 0;
total_chunks = 0;
chunk_size = 1000000;
total_size = 0;
constructor(pool: UrlPool) {
this.pool = pool;
}
async init() {
let url = this.pool.get();
if(!url) return false;
let r = await axios.get(url[1], {
responseType: 'arraybuffer',
headers: {
Range: `bytes=0-0`
}
});
this.total_size = parseInt(r.headers["content-range"].split("/")[1]);
this.pool.return(url[0]);
}
async download_chunk(i: number) {
let from = i*this.chunk_size;
let to = (from+this.chunk_size-1);
if(to > this.total_size) to = this.total_size;
if(this.chunks[i] || from > this.total_size) return false;
this.total_chunks++;
let url = this.pool.get();
if(!url) return false;
let r = await axios.get(url[1], {
responseType: 'arraybuffer',
headers: {
Range: `bytes=${from}-${to}`
}
});
this.chunks[i] = r.data;
this.pool.return(url[0]);
this.downloaded_chunks++;
return true;
}
}
let pool = new UrlPool(`https://download.uloz.to/Ps;Hs;up=0;cid=1902599176;uip=94.140.115.76;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=182198590;tm=1645794132;ut=f;rs=0;He;ch=eb2339ff694fef5eb6c339dd143d0323;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1902599176&De
https://download.uloz.to/Ps;Hs;up=0;cid=217796726;uip=5.2.69.50;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1611819014;tm=1645794134;ut=f;rs=0;He;ch=ca357e24ac0a37f64736f1374a147de5;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=217796726&De
https://download.uloz.to/Ps;Hs;up=0;cid=1450029767;uip=95.214.54.97;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1561658429;tm=1645794137;ut=f;rs=0;He;ch=24be9dd917c49b04df7de7b71dabce04;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1450029767&De
https://download.uloz.to/Ps;Hs;up=0;cid=999887453;uip=185.220.100.247;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1107334260;tm=1645794138;ut=f;rs=0;He;ch=85965c058db44eb9dac39f9552aaf31c;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=999887453&De
https://download.uloz.to/Ps;Hs;up=0;cid=247903693;uip=217.79.178.53;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=2013848098;tm=1645794139;ut=f;rs=0;He;ch=f129cc7c49aef5f6901a301ffb09e78f;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=247903693&De
https://download.uloz.to/Ps;Hs;up=0;cid=2132096430;uip=185.220.101.11;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=673797847;tm=1645794140;ut=f;rs=0;He;ch=5091a5e579ace8a497d6f0adcf497b0c;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=2132096430&De
https://download.uloz.to/Ps;Hs;up=0;cid=169365638;uip=185.220.100.242;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1924737005;tm=1645794141;ut=f;rs=0;He;ch=ece065aed937f898d9adb862f9100a8f;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=169365638&De
https://download.uloz.to/Ps;Hs;up=0;cid=686552167;uip=45.153.160.140;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=655990281;tm=1645794142;ut=f;rs=0;He;ch=c770368d9c5536e7f2b53ee470486d41;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=686552167&De
https://download.uloz.to/Ps;Hs;up=0;cid=2001187746;uip=209.141.50.178;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=668227825;tm=1645794144;ut=f;rs=0;He;ch=140d095b032c6f35294f29b3d203f9f2;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=2001187746&De
https://download.uloz.to/Ps;Hs;up=0;cid=1595393867;uip=89.58.19.0;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1798363942;tm=1645794145;ut=f;rs=0;He;ch=592768bff1847a894fd4847d599fc071;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1595393867&De
https://download.uloz.to/Ps;Hs;up=0;cid=504210218;uip=109.70.100.30;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=802460485;tm=1645794147;ut=f;rs=0;He;ch=471cfbd448d9491e36971c33b69aac02;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=504210218&De
https://download.uloz.to/Ps;Hs;up=0;cid=459126116;uip=185.220.101.191;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=612989177;tm=1645794148;ut=f;rs=0;He;ch=8d85af0103145df2f39468beaf1dd107;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=459126116&De
https://download.uloz.to/Ps;Hs;up=0;cid=407791723;uip=185.107.70.56;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=980716832;tm=1645794149;ut=f;rs=0;He;ch=00bb0669902cfcfac53b2e2d5d86f10c;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=407791723&De
https://download.uloz.to/Ps;Hs;up=0;cid=354646677;uip=185.14.97.145;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=652261345;tm=1645794150;ut=f;rs=0;He;ch=bb570af93d599f7efd4001f254c99dd8;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=354646677&De
https://download.uloz.to/Ps;Hs;up=0;cid=1203492247;uip=185.220.100.242;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1443730432;tm=1645794150;ut=f;rs=0;He;ch=154be66e84eaed3b70c5e4a86a1483f4;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1203492247&De
https://download.uloz.to/Ps;Hs;up=0;cid=1834962753;uip=51.15.80.14;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1359278523;tm=1645794152;ut=f;rs=0;He;ch=d5e04fc39559e225a73e282b2773ce01;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1834962753&De
https://download.uloz.to/Ps;Hs;up=0;cid=1410071005;uip=51.195.107.236;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=98246841;tm=1645794153;ut=f;rs=0;He;ch=2c6975a4bf8f9748dbcd4cfdbab6f8f3;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1410071005&De
https://download.uloz.to/Ps;Hs;up=0;cid=618501362;uip=89.163.252.230;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=482942366;tm=1645794154;ut=f;rs=0;He;ch=d71fa4e86418ae0f367320c25ccf7fff;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=618501362&De
https://download.uloz.to/Ps;Hs;up=0;cid=16241564;uip=185.220.101.80;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1830519811;tm=1645794156;ut=f;rs=0;He;ch=9b7f8b01036203b40de882f086fc3c96;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=16241564&De
https://download.uloz.to/Ps;Hs;up=0;cid=199533540;uip=5.2.69.50;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=241392663;tm=1645794157;ut=f;rs=0;He;ch=08bc8c39cd140e8223ac3bf90efd0917;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=199533540&De
https://download.uloz.to/Ps;Hs;up=0;cid=338699318;uip=185.220.101.36;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=665274515;tm=1645794169;ut=f;rs=0;He;ch=0ac0a93a016af79bcf096ad670bd53ce;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=338699318&De
https://download.uloz.to/Ps;Hs;up=0;cid=2069360319;uip=185.220.101.70;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1458440381;tm=1645794170;ut=f;rs=0;He;ch=cfeb317b55823cc493255691d8e2d026;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=2069360319&De
https://download.uloz.to/Ps;Hs;up=0;cid=737036779;uip=185.220.100.241;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=602733030;tm=1645794171;ut=f;rs=0;He;ch=d5d16acaa5129b263a146b6ce43603ed;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=737036779&De
https://download.uloz.to/Ps;Hs;up=0;cid=1446127845;uip=185.100.86.74;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1673222080;tm=1645794173;ut=f;rs=0;He;ch=401f40fce22ad467793aa5f007759d2f;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1446127845&De
https://download.uloz.to/Ps;Hs;up=0;cid=1428749874;uip=109.70.100.35;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=370384322;tm=1645794184;ut=f;rs=0;He;ch=c9171f2bff8e58269bf236f444689d67;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1428749874&De
https://download.uloz.to/Ps;Hs;up=0;cid=40819559;uip=205.185.120.206;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=807352493;tm=1645794186;ut=f;rs=0;He;ch=1d256c63a43d49173e5209451c1a8562;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=40819559&De
https://download.uloz.to/Ps;Hs;up=0;cid=72025195;uip=188.68.58.0;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1585441715;tm=1645794187;ut=f;rs=0;He;ch=866e484ce49bf9582d8f5131f10e6a16;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=72025195&De
https://download.uloz.to/Ps;Hs;up=0;cid=1675098407;uip=45.153.160.131;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=2031743991;tm=1645794187;ut=f;rs=0;He;ch=1fe021d8f985ad7de4a0de56a26bb5c9;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1675098407&De
https://download.uloz.to/Ps;Hs;up=0;cid=142983770;uip=185.220.101.78;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=141502631;tm=1645794192;ut=f;rs=0;He;ch=9a2704d47659b6d48088c79cd6717185;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=142983770&De
https://download.uloz.to/Ps;Hs;up=0;cid=1121470512;uip=185.220.101.187;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=425853631;tm=1645794194;ut=f;rs=0;He;ch=61bbdf08a75e4d406cab1346dab9fa8d;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1121470512&De
https://download.uloz.to/Ps;Hs;up=0;cid=367272634;uip=185.129.61.3;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=898723366;tm=1645794196;ut=f;rs=0;He;ch=83183e119aa6a766ba91c5ccb86738f3;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=367272634&De
https://download.uloz.to/Ps;Hs;up=0;cid=460337998;uip=185.195.71.2;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=647853543;tm=1645794197;ut=f;rs=0;He;ch=51e3d03d39878f1fb001d9db5eda69b5;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=460337998&De
https://download.uloz.to/Ps;Hs;up=0;cid=1168395994;uip=199.249.230.116;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1588708485;tm=1645794200;ut=f;rs=0;He;ch=773e6f922f8d10f07b84140c0d6d5e2c;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1168395994&De
https://download.uloz.to/Ps;Hs;up=0;cid=381575571;uip=107.189.30.58;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1859251700;tm=1645794201;ut=f;rs=0;He;ch=c6eb1cabb8ce08bdf856d58157d1c2df;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=381575571&De
https://download.uloz.to/Ps;Hs;up=0;cid=662179198;uip=104.244.77.122;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1387674204;tm=1645794213;ut=f;rs=0;He;ch=28a11d021970d8aeb62a4c3cf79c47fe;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=662179198&De
https://download.uloz.to/Ps;Hs;up=0;cid=38785771;uip=185.220.100.245;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1531857518;tm=1645794214;ut=f;rs=0;He;ch=dcccba84d422d7e4f48965e4f190a956;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=38785771&De
https://download.uloz.to/Ps;Hs;up=0;cid=1467953227;uip=109.70.100.77;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=703474084;tm=1645794215;ut=f;rs=0;He;ch=8db82b3ed8e22e5f02a783899524025e;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1467953227&De
https://download.uloz.to/Ps;Hs;up=0;cid=1872929816;uip=89.58.30.164;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=2032740704;tm=1645794227;ut=f;rs=0;He;ch=45bd81085d80fee23cf3e04161ac2d91;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1872929816&De
https://download.uloz.to/Ps;Hs;up=0;cid=690400065;uip=185.220.100.246;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=86134805;tm=1645794228;ut=f;rs=0;He;ch=fdbf14ca226181f6f5ded2c2c9a07f5f;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=690400065&De
https://download.uloz.to/Ps;Hs;up=0;cid=784026385;uip=51.158.183.63;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=835601412;tm=1645794229;ut=f;rs=0;He;ch=3dcb6d2130ee2a0b3afa102f8addd628;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=784026385&De
https://download.uloz.to/Ps;Hs;up=0;cid=294526816;uip=185.220.100.240;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=694601773;tm=1645794240;ut=f;rs=0;He;ch=d3d1002adde23b7c2c09ae9740353bc9;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=294526816&De
https://download.uloz.to/Ps;Hs;up=0;cid=509923097;uip=81.17.18.60;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1103178990;tm=1645794242;ut=f;rs=0;He;ch=61e12562da753b11ac270dec1631e67b;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=509923097&De
https://download.uloz.to/Ps;Hs;up=0;cid=528529418;uip=107.189.1.160;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=1141316485;tm=1645794249;ut=f;rs=0;He;ch=fe6b3c31b4c1f76cc5422ee4a8947012;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=528529418&De
https://download.uloz.to/Ps;Hs;up=0;cid=1671744639;uip=109.70.100.75;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=138941775;tm=1645794250;ut=f;rs=0;He;ch=f90c71da63bb9399b4b560b556e1da92;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1671744639&De
https://download.uloz.to/Ps;Hs;up=0;cid=1721437237;uip=45.153.160.132;aff=uloz.to;did=uloz-to;fide=t4C8X2C;fs=eRGCx2K8vFiX;hid=zCM7r63;rid=303699948;tm=1645794253;ut=f;rs=0;He;ch=0711594c0eff1490b091c2b95a62bcd2;Pe/file/eRGCx2K8vFiX/frozen-2013-1080p-bluray-cz-titulky-mkv?bD&c=1721437237&De`.split("\n"));
(async () => {
let downloader = new Downloader(pool);
await downloader.init();
console.log(downloader.total_size);
let limit = Math.ceil(downloader.total_size/downloader.chunk_size);
let chunk = -1;
let interval = setInterval(() => {
let available = pool.available(limit-chunk);
if(available.length) {
console.log("downloading new chunks", available.length);
available.forEach(async (i: number) => {
chunk++;
if(!await downloader.download_chunk(chunk)) console.warn("Error!");
});
}
console.log(downloader.downloaded_chunks + " / " + downloader.total_chunks);
if(downloader.total_chunks == downloader.downloaded_chunks) {
clearInterval(interval);
console.log(downloader.chunks.length);
fs.writeFileSync("vid.mkv", Buffer.concat(downloader.chunks));
}
}, 1000);
})();

21
package.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "ulozto",
"version": "1.0.0",
"main": "index.ts",
"dependencies": {
"axios": "^0.26.0",
"express": "^4.17.3"
},
"devDependencies": {
"@types/express": "^4.17.13",
"@types/node": "^17.0.20"
},
"scripts": {},
"repository": {
"type": "git",
"url": "https://git.znachor.cz/CodeSpace/ulozto-stream.git"
},
"author": "",
"license": "ISC",
"description": ""
}

422
pnpm-lock.yaml Normal file
View file

@ -0,0 +1,422 @@
lockfileVersion: 5.3
specifiers:
'@types/express': ^4.17.13
'@types/node': ^17.0.20
axios: ^0.26.0
express: ^4.17.3
dependencies:
'@types/express': 4.17.13
'@types/node': 17.0.20
axios: 0.26.0
express: 4.17.3
packages:
/@types/body-parser/1.19.2:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
'@types/node': 17.0.20
dev: false
/@types/connect/3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
'@types/node': 17.0.20
dev: false
/@types/express-serve-static-core/4.17.28:
resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==}
dependencies:
'@types/node': 17.0.20
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
dev: false
/@types/express/4.17.13:
resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==}
dependencies:
'@types/body-parser': 1.19.2
'@types/express-serve-static-core': 4.17.28
'@types/qs': 6.9.7
'@types/serve-static': 1.13.10
dev: false
/@types/mime/1.3.2:
resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==}
dev: false
/@types/node/17.0.20:
resolution: {integrity: sha512-Q15Clj3lZSLnhVA6yKw1G7SQz46DeL9gO1TEgfK1OQGvMdQ6TUWmCeWf1QBUNkw2BDfV52i2YuYd9OF3ZwGhjw==}
dev: false
/@types/qs/6.9.7:
resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==}
dev: false
/@types/range-parser/1.2.4:
resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==}
dev: false
/@types/serve-static/1.13.10:
resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==}
dependencies:
'@types/mime': 1.3.2
'@types/node': 17.0.20
dev: false
/accepts/1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
dependencies:
mime-types: 2.1.34
negotiator: 0.6.3
dev: false
/array-flatten/1.1.1:
resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=}
dev: false
/axios/0.26.0:
resolution: {integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==}
dependencies:
follow-redirects: 1.14.9
transitivePeerDependencies:
- debug
dev: false
/body-parser/1.19.2:
resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==}
engines: {node: '>= 0.8'}
dependencies:
bytes: 3.1.2
content-type: 1.0.4
debug: 2.6.9
depd: 1.1.2
http-errors: 1.8.1
iconv-lite: 0.4.24
on-finished: 2.3.0
qs: 6.9.7
raw-body: 2.4.3
type-is: 1.6.18
dev: false
/bytes/3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
dev: false
/content-disposition/0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
dependencies:
safe-buffer: 5.2.1
dev: false
/content-type/1.0.4:
resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
engines: {node: '>= 0.6'}
dev: false
/cookie-signature/1.0.6:
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
dev: false
/cookie/0.4.2:
resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
engines: {node: '>= 0.6'}
dev: false
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
dependencies:
ms: 2.0.0
dev: false
/depd/1.1.2:
resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=}
engines: {node: '>= 0.6'}
dev: false
/destroy/1.0.4:
resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=}
dev: false
/ee-first/1.1.1:
resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
dev: false
/encodeurl/1.0.2:
resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=}
engines: {node: '>= 0.8'}
dev: false
/escape-html/1.0.3:
resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=}
dev: false
/etag/1.8.1:
resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=}
engines: {node: '>= 0.6'}
dev: false
/express/4.17.3:
resolution: {integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==}
engines: {node: '>= 0.10.0'}
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
body-parser: 1.19.2
content-disposition: 0.5.4
content-type: 1.0.4
cookie: 0.4.2
cookie-signature: 1.0.6
debug: 2.6.9
depd: 1.1.2
encodeurl: 1.0.2
escape-html: 1.0.3
etag: 1.8.1
finalhandler: 1.1.2
fresh: 0.5.2
merge-descriptors: 1.0.1
methods: 1.1.2
on-finished: 2.3.0
parseurl: 1.3.3
path-to-regexp: 0.1.7
proxy-addr: 2.0.7
qs: 6.9.7
range-parser: 1.2.1
safe-buffer: 5.2.1
send: 0.17.2
serve-static: 1.14.2
setprototypeof: 1.2.0
statuses: 1.5.0
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
dev: false
/finalhandler/1.1.2:
resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
engines: {node: '>= 0.8'}
dependencies:
debug: 2.6.9
encodeurl: 1.0.2
escape-html: 1.0.3
on-finished: 2.3.0
parseurl: 1.3.3
statuses: 1.5.0
unpipe: 1.0.0
dev: false
/follow-redirects/1.14.9:
resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: false
/forwarded/0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
dev: false
/fresh/0.5.2:
resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=}
engines: {node: '>= 0.6'}
dev: false
/http-errors/1.8.1:
resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==}
engines: {node: '>= 0.6'}
dependencies:
depd: 1.1.2
inherits: 2.0.4
setprototypeof: 1.2.0
statuses: 1.5.0
toidentifier: 1.0.1
dev: false
/iconv-lite/0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: false
/inherits/2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: false
/ipaddr.js/1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
dev: false
/media-typer/0.3.0:
resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=}
engines: {node: '>= 0.6'}
dev: false
/merge-descriptors/1.0.1:
resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=}
dev: false
/methods/1.1.2:
resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=}
engines: {node: '>= 0.6'}
dev: false
/mime-db/1.51.0:
resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==}
engines: {node: '>= 0.6'}
dev: false
/mime-types/2.1.34:
resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.51.0
dev: false
/mime/1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
hasBin: true
dev: false
/ms/2.0.0:
resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
dev: false
/ms/2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
dev: false
/negotiator/0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
dev: false
/on-finished/2.3.0:
resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=}
engines: {node: '>= 0.8'}
dependencies:
ee-first: 1.1.1
dev: false
/parseurl/1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
dev: false
/path-to-regexp/0.1.7:
resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=}
dev: false
/proxy-addr/2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
dev: false
/qs/6.9.7:
resolution: {integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==}
engines: {node: '>=0.6'}
dev: false
/range-parser/1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
dev: false
/raw-body/2.4.3:
resolution: {integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==}
engines: {node: '>= 0.8'}
dependencies:
bytes: 3.1.2
http-errors: 1.8.1
iconv-lite: 0.4.24
unpipe: 1.0.0
dev: false
/safe-buffer/5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: false
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: false
/send/0.17.2:
resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==}
engines: {node: '>= 0.8.0'}
dependencies:
debug: 2.6.9
depd: 1.1.2
destroy: 1.0.4
encodeurl: 1.0.2
escape-html: 1.0.3
etag: 1.8.1
fresh: 0.5.2
http-errors: 1.8.1
mime: 1.6.0
ms: 2.1.3
on-finished: 2.3.0
range-parser: 1.2.1
statuses: 1.5.0
dev: false
/serve-static/1.14.2:
resolution: {integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==}
engines: {node: '>= 0.8.0'}
dependencies:
encodeurl: 1.0.2
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.17.2
dev: false
/setprototypeof/1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
dev: false
/statuses/1.5.0:
resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=}
engines: {node: '>= 0.6'}
dev: false
/toidentifier/1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
dev: false
/type-is/1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
dependencies:
media-typer: 0.3.0
mime-types: 2.1.34
dev: false
/unpipe/1.0.0:
resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=}
engines: {node: '>= 0.8'}
dev: false
/utils-merge/1.0.1:
resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=}
engines: {node: '>= 0.4.0'}
dev: false
/vary/1.1.2:
resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=}
engines: {node: '>= 0.8'}
dev: false