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("