add check update

master
rubin 2 years ago
parent 63ff511332
commit dd450133f8
  1. 89
      easy-cruise.lua

@ -2,14 +2,23 @@ script_name("easy-cruise")
script_author("rubin")
script_version("22.10.26.1")
encoding = require "encoding"
encoding.default = "CP1251"
u8 = encoding.UTF8
dlstatus = require("moonloader").download_status
vkeys = require("vkeys")
main_key_start = { "VK_LSHIFT" }
additional_key_start = { "VK_W", "VK_S", "VK_SPACE" }
cruise = false
function main()
repeat wait(0) until isSampAvailable()
cruise = false
lua_thread.create(update_check) -->> Удалить чтобы скрипт не проверял обновления
while true do
wait(0)
doCruise()
@ -55,4 +64,82 @@ function check_press_key(table)
end
end
return result, result_key_text
end
function download(url, fpath)
local final_download = false
downloadUrlToFile(url, fpath, function(id, status, p1, p2)
if status == dlstatus.STATUS_ENDDOWNLOADDATA then
final_download = true
end
end)
repeat
wait(1000)
until final_download
end
function read(fpath)
local text = ""
local f = io.open(fpath, "r")
if f then
text = f:read("*a")
io.close(f)
end
os.remove(fpath)
return text
end
function update_check()
local fpath = os.tmpname()
download("https://git.deadpoo.net/rubin/easy-cruise/raw/branch/master/version", fpath)
local text = read(fpath)
if text ~= "" and not string.find(text, thisScript().version) then
addChatMessage( string.format("Вышла новая версия '%s'. Текущая: '%s'", text, thisScript().version) )
local command = thisScript().name:gsub(" ", "").."_update"
addChatMessage( string.format("Чтобы обновиться введите /%s'", command) )
sampRegisterChatCommand(command, cmd)
end
end
function update()
local fpath = os.tmpname()
local final_download = false
downloadUrlToFile("https://git.deadpoo.net/rubin/easy-cruise/raw/branch/master/easy-cruise.lua", fpath,
function(id, status, p13, p23)
addChatMessage(status)
if status == dlstatus.STATUS_ENDDOWNLOADDATA then
final_download = true
end
end
)
repeat
wait(0)
until final_download
wait(1000)
local f = io.open(fpath, "r")
if f then
local data = f:read("*a")
local file, error = io.open(thisScript().path, "w")
if file ~= nil then
file:write(data)
file:flush()
io.close(file)
addChatMessage("Обновление завершено, скрипт перезагружен!")
lua_thread.create(function() wait(500) thisScript():reload() end)
end
io.close(f)
end
os.remove(fpath)
end
function cmd()
lua_thread.create(update)
end
function addChatMessage(text)
local tag = string.format("{667dff}[%s]{FFFFFF} ", thisScript().name)
sampAddChatMessage(tag..u8:decode(text), 0xFFFFFFFF)
end
Loading…
Cancel
Save