lua:downloadurltofile

downloadUrlToFile

int index = downloadUrlToFile(string url, string file, [function statusCallback])

Загружает файл из интернета по URL по протоколу HTTP. Процесс загрузки полностью контролируем с помощью обработчика загрузки и может быть отменён.

string url uRL ресурса
string file путь к файлу
function statusCallback функция-обработчик статуса загрузки, является необязательным параметром

int index идентификатор загрузки

local dlstatus = require('moonloader').download_status
local vk = require 'vkeys'
 
function download_handler(id, status, p1, p2)
  if stop_downloading then
    stop_downloading = false
    download_id = nil
    print('Загрузка отменена.')
    return false -- прервать загрузку
  end
  if status == dlstatus.STATUS_DOWNLOADINGDATA then
    print(string.format('Загружено %d из %d.', p1, p2))
  elseif status == dlstatus.STATUS_ENDDOWNLOADDATA then
    print('Загрузка завершена.')
  end
end
 
function main()
  print('Нажмите F1, чтобы начать загрузку файла.')
  while true do
    wait(0)
    if wasKeyPressed(vk.VK_F1) and not download_id then
      local url = 'http://nonexistentfilehosting.com/nonexistentfile.dat'
      local file_path = getWorkingDirectory() .. '/downloads/file.dat'
      download_id = downloadUrlToFile(url, file_path, download_handler)
      print('Загрузка начата. Нажмите F2, чтобы отменить её.')
    elseif wasKeyPressed(vk.VK_F2) and download_id then
      stop_downloading = true
    end
  end
end