tdf#146703 Rework previous fix to query extension metadata

to limit its error potential by encoding only the category string

Change-Id: Ia3d3bfa6981ec46b71b500980abda9ad7f606cd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128361
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
(cherry picked from commit b1ec326619f7b91e56252b992159fd00bbff2ba7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128428
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx
index aa36bf4..c4247c2 100644
--- a/cui/source/dialogs/AdditionsDialog.cxx
+++ b/cui/source/dialogs/AdditionsDialog.cxx
@@ -80,9 +80,7 @@ std::string ucbGet(const OUString& rURL)
{
    try
    {
        OUString sEncodedUrl = INetURLObject::encode(rURL, INetURLObject::PART_FPATH,
                                                     INetURLObject::EncodeMechanism::All);
        auto const s = utl::UcbStreamHelper::CreateStream(sEncodedUrl, StreamMode::STD_READ);
        auto const s = utl::UcbStreamHelper::CreateStream(rURL, StreamMode::STD_READ);
        if (!s)
        {
            SAL_WARN("cui.dialogs", "CreateStream <" << rURL << "> failed");
@@ -460,8 +458,12 @@ AdditionsDialog::AdditionsDialog(weld::Window* pParent, const OUString& sAdditio
        this->set_title(titlePrefix);
        m_sTag = "allextensions"; // Means empty parameter
    }

    OUString sEncodedURLPart = INetURLObject::encode(m_sTag, INetURLObject::PART_PCHAR,
                                                     INetURLObject::EncodeMechanism::All);

    //FIXME: Temporary URL - v0 is not using actual api
    OUString rURL = "https://extensions.libreoffice.org/api/v0/" + m_sTag + ".json";
    OUString rURL = "https://extensions.libreoffice.org/api/v0/" + sEncodedURLPart + ".json";
    m_sURL = rURL;

    m_xExtensionManager