50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
var http = use('http')
|
|
var os = use('os')
|
|
|
|
var downloader
|
|
var download_complete = false
|
|
|
|
function checkin()
|
|
{
|
|
if (download_complete) return
|
|
|
|
send(downloader, {type:'status'}, e => {
|
|
console.log("Status:", json.encode(e))
|
|
|
|
// Check if download is complete or error
|
|
if (e.type === 'error' || (e.type === 'status_response' && e.status === 'idle')) {
|
|
// Stop checking if no download in progress
|
|
return
|
|
}
|
|
|
|
// Continue checking
|
|
$_.delay(checkin, 0.5)
|
|
})
|
|
}
|
|
|
|
$_.start(e => {
|
|
console.log(json.encode(e))
|
|
if (e.type === 'greet') {
|
|
downloader = e.actor
|
|
|
|
// Start download
|
|
send(downloader, {
|
|
type:'download',
|
|
url: 'https://dictionary.ink/find?word=palm'
|
|
}, e => {
|
|
console.log("Download response:", json.encode(e))
|
|
download_complete = true
|
|
|
|
if (e.type === 'complete') {
|
|
console.log("Download complete! Size:", e.size, "bytes")
|
|
} else if (e.type === 'error') {
|
|
console.log("Download failed:", e.error)
|
|
}
|
|
})
|
|
|
|
// Start status checking after a small delay
|
|
$_.delay(checkin, 0.01)
|
|
}
|
|
}, "examples/http_download_actor.js")
|
|
|