From f2c1ab77d3ca113acd3b4815ac538ba49001150b Mon Sep 17 00:00:00 2001 From: rubin <rubinserhiy@gmail.com> Date: Sat, 28 Jan 2023 15:32:37 +0300 Subject: [PATCH] update module autoupdate & bump version 28.01.2023 --- TruckHUD.lua | 119 +++++++++++++++++++++++++++------------------------ changelog | 6 ++- version | 2 +- 3 files changed, 70 insertions(+), 57 deletions(-) diff --git a/TruckHUD.lua b/TruckHUD.lua index 825c8af..20cc4c6 100644 --- a/TruckHUD.lua +++ b/TruckHUD.lua @@ -1,6 +1,6 @@ script_name("TruckHUD") script_author("Serhiy_Rubin") -script_version("27.01.2023.1") +script_version("28.01.2023") local inicfg = require "inicfg" local dlstatus = require("moonloader").download_status @@ -4274,31 +4274,33 @@ script_update = { version_url = "http://git.deadpoo.net/rubin/TruckHUD/raw/branch/master/version", script_url = "http://git.deadpoo.net/rubin/TruckHUD/raw/branch/master/TruckHUD.lua", changelog_url = "http://git.deadpoo.net/rubin/TruckHUD/raw/branch/master/changelog", - address_ini = "rubin-mods-updates.ini", + address_ini = string.format("rubin-mods-updates\\%s.ini", thisScript().name), main = function() - local name = thisScript().name + if not doesDirectoryExist("moonloader\\config\\rubin-mods-updates") then + createDirectory("moonloader\\config\\rubin-mods-updates") + end local ini = inicfg.load({ - [name] = { + settings = { check_update = true, auto_update = true, server_version = "" } }, script_update.address_ini) - ini[name].version_url = script_update.version_url - ini[name].script_url = script_update.script_url - ini[name].changelog_url = script_update.changelog_url - ini[name].version = thisScript().version - ini[name].script_name = thisScript().name + ini.settings.version_url = script_update.version_url + ini.settings.script_url = script_update.script_url + ini.settings.changelog_url = script_update.changelog_url + ini.settings.version = thisScript().version + ini.settings.script_name = thisScript().name local command = (thisScript().name:gsub(" ", "").."-update"):lower() sampRegisterChatCommand(command, script_update.command) - if ini[name].check_update or ini[name].auto_update then + if ini.settings.check_update or ini.settings.auto_update then local fpath = os.tmpname() local result, text = pcall(openURL, script_update.version_url, fpath) if result then - ini[name].server_version = text + ini.settings.server_version = text if text ~= "" and not string.find(text, thisScript().version) then addChatMessage( string.format("Вышла новая версия '%s'. Текущая: '%s'", text, thisScript().version) ) - if ini[name].auto_update then + if ini.settings.auto_update then addChatMessage( string.format("Автообновление скрипта включено. Процесс запущен!") ) script_update.command() else @@ -4337,8 +4339,8 @@ script_update = { end) end, menu = { - text = {}, dialog = {}, + ini = {}, init = function() if not sampIsChatCommandDefined("rubin-mods") then sampAddChatMessage("{667dff}[RUBIN MODS]{FFFFFF} Управление обновлениями скриптов: /rubin-mods", 0xFFFFFFFF) @@ -4347,7 +4349,7 @@ script_update = { wait(0) local result, button, list, input = sampHasDialogRespond(2160) if result and button == 1 then - if script_update.menu.text[list+1] ~= nil and script_update.menu.dialog[list+1] ~= nil then + if script_update.menu.ini[list+1] ~= nil and script_update.menu.dialog[list+1] ~= nil then script_update.menu.dialog[list+1](script_update.menu.ini[list+1]) end end @@ -4369,20 +4371,28 @@ script_update = { end end, show = function() - script_update.menu.text = {} script_update.menu.dialog = {} script_update.menu.ini = {} - local ini = inicfg.load({}, script_update.address_ini) - for k,v in pairs(ini) do - script_update.menu.ini[#script_update.menu.ini+1] = v - script_update.menu.text[#script_update.menu.text+1] = string.format("%s\t%s%s", k, (v.version == v.server_version and "{59fc30}" or "{ff0000}"),v.version) - script_update.menu.dialog[#script_update.menu.dialog+1] = function(data) - script_update.menu2.show(data) - end - end local text = "" - for i = 1, #script_update.menu.text do - text = text..script_update.menu.text[i].."\n" + if doesDirectoryExist("moonloader\\config\\rubin-mods-updates") then + local FileHandle, FileName = findFirstFile("moonloader\\config\\rubin-mods-updates\\*") + while FileName ~= nil do + if FileName ~= nil and FileName ~= ".." and FileName ~= "." and FileName:find("%.ini") then + local address = string.format("moonloader\\config\\rubin-mods-updates\\%s", FileName) + if doesFileExist(address) then + local ini = inicfg.load({}, address) + script_update.menu.ini[#script_update.menu.ini+1] = address + text = string.format("%s%s\n", text, string.format("%s\t%s%s", ini.settings.script_name, (ini.settings.version == ini.settings.server_version and "{59fc30}" or "{ff0000}"),ini.settings.version)) + script_update.menu.dialog[#script_update.menu.dialog+1] = function(data) + script_update.menu2.show(data) + end + end + end + FileName = findNextFile(FileHandle) + end + findClose(FileHandle) + else + text = "Не найдена директория:\t\n moonloader\\config\\rubin-mods-updates\t" end sampShowDialog(2160,"Обновление скриптов: Rubin Mods","Скрипт\tВерсия\n"..text,"Выбрать","Закрыть",5) end @@ -4395,45 +4405,44 @@ script_update = { script_update.menu2.data = data script_update.menu2.text = {} script_update.menu2.dialog = {} - local ini = inicfg.load({}, script_update.address_ini) - local k = data.script_name - script_update.menu2.text[#script_update.menu2.text+1] = string.format("Автообновление %s", (ini[k].auto_update and "{59fc30}ON" or "{ff0000}OFF")) - script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() - ini[k].auto_update = not ini[k].auto_update - inicfg.save(ini, script_update.address_ini) - script_update.menu2.show(data) - end - if not ini[k].auto_update then - script_update.menu2.text[#script_update.menu2.text+1] = string.format("Проверять обновления %s", (ini[k].check_update and "{59fc30}ON" or "{ff0000}OFF")) + if doesFileExist(data) then + local ini = inicfg.load({}, data) + script_update.menu2.text[#script_update.menu2.text+1] = string.format("Автообновление %s", (ini.settings.auto_update and "{59fc30}ON" or "{ff0000}OFF")) script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() - ini[k].check_update = not ini[k].check_update - inicfg.save(ini, script_update.address_ini) + ini.settings.auto_update = not ini.settings.auto_update + inicfg.save(ini, data) script_update.menu2.show(data) end + if not ini.settings.auto_update then + script_update.menu2.text[#script_update.menu2.text+1] = string.format("Проверять обновления %s", (ini.settings.check_update and "{59fc30}ON" or "{ff0000}OFF")) + script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() + ini.settings.check_update = not ini.settings.check_update + inicfg.save(ini, data) + script_update.menu2.show(data) + end + end + script_update.menu2.text[#script_update.menu2.text+1] = string.format("Последние изменения") + script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() + script_update.changelog(ini.settings.changelog_url, ini.settings.script_name) + end + script_update.menu2.text[#script_update.menu2.text+1] = string.format("Удалить из списка") + script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() + os.remove(data) + script_update.menu.show() + end + local text = "" + for i = 1, #script_update.menu2.text do + text = text..script_update.menu2.text[i].."\n" + end + sampShowDialog(2162,"Настройки обновления для "..ini.settings.script_name,text,"Выбрать","Назад",2) end - script_update.menu2.text[#script_update.menu2.text+1] = string.format("Последние изменения") - script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() - script_update.changelog(ini[k].changelog_url) - end - script_update.menu2.text[#script_update.menu2.text+1] = string.format("Удалить из списка") - script_update.menu2.dialog[#script_update.menu2.dialog+1] = function() - ini[k] = nil - inicfg.save(ini, script_update.address_ini) - script_update.menu.show() - end - - local text = "" - for i = 1, #script_update.menu2.text do - text = text..script_update.menu2.text[i].."\n" - end - sampShowDialog(2162,"Настройки обновления для "..data.script_name,text,"Выбрать","Назад",2) end }, - changelog = function(url, data) + changelog = function(url, name) local fpath = os.tmpname() local result, text = pcall(openURL, url, fpath) if result then - sampShowDialog(2161,"Changelog - "..thisScript().name,text,"Выбрать","Назад",4) + sampShowDialog(2161,"Changelog - "..name,text,"Выбрать","Назад",4) end end } diff --git a/changelog b/changelog index 5482748..05fb81c 100644 --- a/changelog +++ b/changelog @@ -12,4 +12,8 @@ Версия от 27.01.2023 Скрипт переведён на UTF-8 -Добавлена проверка версии скрипта /truck users \ No newline at end of file +Добавлена проверка версии скрипта /truck users + +Версия от 28.01.2023 + +Обновлен модуль /rubin-mods \ No newline at end of file diff --git a/version b/version index 5972838..3ada7f6 100644 --- a/version +++ b/version @@ -1 +1 @@ -27.01.2023.1 \ No newline at end of file +28.01.2023 \ No newline at end of file