From cf579ef5a3fd8ce946bb789cd430466941a8ffb9 Mon Sep 17 00:00:00 2001
From: BlackImpostor <106878493+SkyBuilder1717@users.noreply.github.com>
Date: Fri, 30 May 2025 13:26:51 +0300
Subject: [PATCH 01/13] New "Releases" tab
---
builtin/mainmenu/content/dlg_package.lua | 49 ++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/builtin/mainmenu/content/dlg_package.lua b/builtin/mainmenu/content/dlg_package.lua
index 500fb3f6c..9bab73029 100644
--- a/builtin/mainmenu/content/dlg_package.lua
+++ b/builtin/mainmenu/content/dlg_package.lua
@@ -131,6 +131,7 @@ local function get_formspec(data)
fgettext("Description"),
fgettext("Information"),
fgettext("Reviews") .. core.formspec_escape(" [" .. review_count .. "]"),
+ fgettext("Releases"),
}
local tab_body_height = bottom_buttons_y - 2.8
@@ -232,6 +233,54 @@ local function get_formspec(data)
else
table.insert_all(formspec, {"label[2,2;", fgettext("Loading..."), "]"} )
end
+ elseif current_tab == 4 then
+ if not package.releases and not data.releases_error and not data.releases_loading then
+ data.releases_loading = true
+
+ contentdb.get_package_releases(package, function(releases)
+ if not releases then
+ data.releases_error = true
+ end
+ ui.update()
+ end)
+ end
+
+ local function markup(text)
+ text = text:gsub("(%*%*)([^%s][^*]-[^%s])%*%*", "%2")
+ text = text:gsub("(%*)([^%s][^*]-[^%s])%*", "%2")
+ text = text:gsub("* ", "• ")
+ text = text:gsub("- ", "• ")
+ return text
+ end
+
+ local hypertext = ""
+ if package.releases then
+ for _, def in pairs(package.releases) do
+ hypertext = hypertext..
+ ""..def.title.." ("..def.release_date:gsub("T.*", "")..")\n"..
+ fgettext("$1 downloads",
+ def.downloads)..".\n"
+
+ if def["release_notes"] then
+ hypertext = hypertext..
+ markup((def["release_notes"]
+ :gsub("