From 1b969dd110c43f6396310d7bbeb90ca645483d68 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 17 Sep 2024 09:10:25 +0200 Subject: [PATCH] Lua: Add base64 encoding bindings Change-Id: I4f4576ef5615be80c935b97242e232292bc24793 Reviewed-by: hjk --- src/plugins/lua/bindings/utils.cpp | 15 +++++++++++++++ src/plugins/lua/meta/utils.lua | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/plugins/lua/bindings/utils.cpp b/src/plugins/lua/bindings/utils.cpp index a2ac3323ebb..80655580dad 100644 --- a/src/plugins/lua/bindings/utils.cpp +++ b/src/plugins/lua/bindings/utils.cpp @@ -189,6 +189,21 @@ void setupUtilsModule() QDesktopServices::openUrl(QUrl::fromEncoded(url.toUtf8())); }; + utils["stringToBase64Url"] = [](const QString &data) { + return QString::fromLatin1(data.toUtf8().toBase64(QByteArray::Base64UrlEncoding)); + }; + utils["base64UrlToString"] = [](const char *data) { + return QString::fromUtf8( + QByteArray::fromBase64(data, QByteArray::Base64UrlEncoding)); + }; + + utils["stringToBase64"] = [](const QString &data) { + return QString::fromLatin1(data.toUtf8().toBase64()); + }; + utils["base64ToString"] = [](const char *data) { + return QString::fromUtf8(QByteArray::fromBase64(data)); + }; + return utils; }); } diff --git a/src/plugins/lua/meta/utils.lua b/src/plugins/lua/meta/utils.lua index 2352bf943db..c003ad9e167 100644 --- a/src/plugins/lua/meta/utils.lua +++ b/src/plugins/lua/meta/utils.lua @@ -126,4 +126,23 @@ function utils.Timer:stop() end ---@param url string The URL to open. function utils.openExternalUrl(url) end +---Converts a string to a base64 URL encoding. Instead of using "+" and "/" characters, it uses "-" and "_". +---@param text string The text to convert. +---@return string The base64 URL encoded string. +function utils.stringToBase64Url(text) end + +---Converts a base64 URL encoded string back to a normal string. +---@param text string The base64 URL encoded string. +---@return string The decoded string. +function utils.base64UrlToString(text) end + +---Converts a string to a base64 encoding. +---@param text string The text to convert. +---@return string The base64 encoded string. +function utils.stringToBase64(text) end + +---Converts a base64 encoded string back to a normal string. +---@param text string The base64 encoded string. +---@return string The decoded string. +function utils.base64ToString(text) end return utils