tcdown
Version:
Downloader and scraper for teachable.com for members
98 lines (89 loc) • 3.99 kB
JavaScript
const { Worker } = require('worker_threads')
const Promise = require('bluebird')
const { formatBytes } = require('./writeWaitingInfo')
const logger = require('./logger')
function download (n) {
return new Promise((resolve, reject) => {
const start = Date.now()
const worker = new Worker('/Users/muhameddidovic/projects/tcdown/lib/helpers/worker.js')
worker.on('message', message => {
console.log('message', message)
console.log(`worker [${worker.threadId}]: done in ${Date.now() - start} ms`)
if (message.startsWith('-done-')) {
console.log('------->end:', message)
resolve(message)
worker.terminate()
}
})
worker.on('error', error => {
reject(error)
})
const {
url,
dest,
localSizeInBytes,
remoteSizeInBytes,
downFolder,
index,
logger,
ms,
resourceUrl
} = n
worker.postMessage({
url,
dest,
localSizeInBytes,
remoteSizeInBytes,
downFolder,
index,
logger,
ms,
resourceUrl
})
})
}
async function calculateFibonacciNumbers (n) {
try {
// await fibonacci(n)
// const values = Promise.all([
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n),
// fibonacci(n)
// ]) ;
Promise.all([
download({
// url : 'https://177vod-adaptive.akamaized.net/exp=1694992599~acl=%2Fe7f2ead1-c95b-40b6-806c-94cc8e86d0a0%2F%2A~hmac=b71db9266b63e48b724e91abe517845d1585ab345355836b0bfa5320d9afa0d5/e7f2ead1-c95b-40b6-806c-94cc8e86d0a0/parcel/video/ef8e8600.mp4?range=0-111111111111',
url : 'https://vod-akm.play.hotmart.com/video/5Z13n2wvqX/hls/master-t-1654554383001.m3u8?hdnts=st%3D1694990022%7Eexp%3D1694990522%7Ehmac%3D3e87087e10708bc9bb973295f28c2774e129c66dab29bbe1aff039b62283fb0e&app=aa2d356b-e2f0-45e8-9725-e0efc7b5d29c',
dest : 'videos/aaaa/1111.mp4',
localSizeInBytes : '11.16 MB',
remoteSizeInBytes: '1.73 KB',
downFolder : 'videos/aa',
index : 1,
resourceUrl : 'https://members.codewithmosh.com/courses/1779784/lectures/40255354'
}),
download({
url : 'https://177vod-adaptive.akamaized.net/exp=1694992599~acl=%2Fe7f2ead1-c95b-40b6-806c-94cc8e86d0a0%2F%2A~hmac=b71db9266b63e48b724e91abe517845d1585ab345355836b0bfa5320d9afa0d5/e7f2ead1-c95b-40b6-806c-94cc8e86d0a0/parcel/video/ef8e8600.mp4?range=0-111111111111',
// url : 'https://vod-akm.play.hotmart.com/video/5Z13n2wvqX/hls/master-t-1654554383001.m3u8?hdnts=st%3D1694990022%7Eexp%3D1694990522%7Ehmac%3D3e87087e10708bc9bb973295f28c2774e129c66dab29bbe1aff039b62283fb0e&app=aa2d356b-e2f0-45e8-9725-e0efc7b5d29c',
dest : 'videos/aaaa/2222.mp4',
localSizeInBytes : '11.16 MB',
remoteSizeInBytes: '1.73 KB',
downFolder : 'videos/aa',
index : 2,
resourceUrl : 'https://members.codewithmosh.com/courses/1779784/lectures/40255355'
})]).then(values => {
console.log('values', values)
})
console.log(`Fibonacci(${n})`)
} catch (error) {
console.error('Error occurred while calculating Fibonacci:', error)
}
}
const number = 10
calculateFibonacciNumbers(number)