- Версия MoonLoader
- .026-beta
Lua:
function checkUpdates() -- проверка обновлений
local fpath = os.tmpname()
if doesFileExist(fpath) then os.remove(fpath) end
downloadUrlToFile("some url", fpath, function(_, status, _, _)
if status == dlstatus.STATUSEX_ENDDOWNLOAD then
if doesFileExist(fpath) then
local file = io.open(fpath, 'r')
if file then
local info = decodeJson(file:read('*a'))
file:close()
os.remove(fpath)
script.v.num = info.version_num
script.v.date = info.version_date
script.url = info.version_url
script.quest = info.version_quest
script.label = info.version_label
script.upd.changes = info.version_upd
if script.quest then
for k, v in pairs(script.quest) do
srp_ini['Описание заданий'][k] = v
end
inicfg.save(srp_ini, settings)
end
if script.upd.changes then
for k in pairs(script.upd.changes) do
table.insert(script.upd.sort, k)
end
table.sort(script.upd.sort, function(a, b) return a > b end)
end
script.checked = true
if info['version_num'] > thisScript()['version_num'] then
script.available = true
if script.update then updateScript() return end
chatmsg(updatingprefix .. u8:decode"Обнаружена новая версия скрипта от " .. info['version_date'] .. u8:decode", пропишите /srpup для обновления")
chatmsg(updatingprefix .. u8:decode"Изменения в новой версии:")
if script.upd.sort ~= {} then
for k in ipairs(script.upd.sort) do
if script.upd.changes[tostring(k)] ~= nil then
chatmsg(updatingprefix .. k .. ') ' .. u8:decode(script.upd.changes[tostring(k)]))
end
end
end
return true
else
if script.update then chatmsg(u8:decode"Обновлений не обнаружено, вы используете самую актуальную версию: v" .. script.v.num .. u8:decode" за " .. script.v.date) script.update = false return end
end
else
chatmsg(u8:decode"Не удалось получить информацию про обновления(")
thisScript():unload()
end
else
chatmsg(u8:decode"Не удалось получить информацию про обновления(")
thisScript():unload()
end
end
end)
end