From 89f07bc6f20e796eb196ae8a29a3943c3da6f7d4 Mon Sep 17 00:00:00 2001 From: uncor3 Date: Mon, 8 Jun 2026 21:00:00 +0000 Subject: [PATCH] feat(Helpers): impl Helpers in qml --- src/ui/Helpers.qml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/ui/Helpers.qml diff --git a/src/ui/Helpers.qml b/src/ui/Helpers.qml new file mode 100644 index 0000000..b0fbfb9 --- /dev/null +++ b/src/ui/Helpers.qml @@ -0,0 +1,41 @@ +pragma Singleton + +import QtQuick + +QtObject { + id: root + property var size_units : ["B","KB","MB","GB","TB"] + + function fetchAppIconFromApple(bundleId, cb) { + if (!bundleId) { cb(""); return; } + var xhr = new XMLHttpRequest(); + xhr.open("GET", "https://itunes.apple.com/lookup?bundleId=" + encodeURIComponent(bundleId)); + xhr.onreadystatechange = function() { + if (xhr.readyState !== XMLHttpRequest.DONE) return; + if (xhr.status !== 200) { cb(""); return; } + try { + var obj = JSON.parse(xhr.responseText); + var results = obj && obj.results ? obj.results : []; + var iconUrl = results.length ? (results[0].artworkUrl100 || "") : ""; + cb(iconUrl); + } catch (e) { + cb(""); + } + }; + xhr.send(); + } + + + function formatSize(_size) { + let unit_index = 0; + + let size = _size; + + while(size >= 1024 && unit_index < 4) { + size /= 1024; + unit_index++; + } + + return `${size.toFixed(2)} ${root.size_units[unit_index]}`; + } +} \ No newline at end of file