From 93fc758c5eb1af27e884e96a22fbf6cbc97da90f Mon Sep 17 00:00:00 2001 From: Martin Zwigl Date: Fri, 28 Feb 2025 22:47:51 +0100 Subject: [PATCH] :construction: last try for AI --- apps/coin_info/clkinfo.js | 36 ++++++++++++++++++++++-------------- apps/coin_info/metadata.json | 2 +- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/apps/coin_info/clkinfo.js b/apps/coin_info/clkinfo.js index 27bb946c3..39e6302c7 100644 --- a/apps/coin_info/clkinfo.js +++ b/apps/coin_info/clkinfo.js @@ -2,23 +2,26 @@ (function() { // Reads and validates settings from storage. function readSettings() { - var storage = require("Storage"); - var settings = storage.readJSON("coin_info.settings.json", 1) || {}; + const storage = require("Storage"); + let settings = storage.readJSON("coin_info.settings.json", 1) || {}; if (!(settings.tokenSelected instanceof Array)) { settings.tokenSelected = []; } return settings; } - // Returns the display info (text and image) for a given token. + // Returns the display content for a given token. function getCoinInfo(token) { return { text: token, + // Decodes the base-64 image that will be shown. img: atob("MDCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAA//8AAAAB///AAAAB8A/gAAAAgAH4AAAwAAB8AAB4AAA+AADwA4APAADgA4APAAHgA4AHgADAf/ADwAAAf/gBwAAAf/wB4AAAcB4A4AAAcA4A4AAAcA4A4AYAcA4AcA8AcB4AcB+Af/wDdj/Af/4D/n/Af/8D/n/AcAcB/A4AcAOA+A4AcAOAcAcAcAOAAAcAcAAAAAcAcAAAAAeAf/AAAAOAf/AAAAPAf/ADAAHgA4AHgADwA4AHAADwA4APAAB8AAA+AAA+AAB8AAAfgAH4AAAH8A/gAAAD///AAAAA//8AAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") }; } - // Starts the redraw timer so the info gets updated at the start of each minute. + // Starts the redraw timer for a clock info item. + // The timer is set so that the first redraw happens at the beginning of the next minute, + // and then continues with an interval of 60,000ms (1 minute). function showCoinInfo() { var self = this; self.interval = setTimeout(function timerTimeout() { @@ -37,7 +40,7 @@ } } - // Creates a single clock_info item for a given token. + // Creates a single clock info item for a given token. function createCoinInfoItem(token) { return { name: token, @@ -46,17 +49,22 @@ }, show: showCoinInfo, hide: hideCoinInfo, - hasRange: false + hasRange: false, }; } - // Read settings and create items. - var settings = readSettings(); - var items = settings.tokenSelected.map(createCoinInfoItem); + // Reads the stored tokens and creates clock info items for them. + function createCoinInfoModule() { + const settings = readSettings(); + const items = settings.tokenSelected.map(createCoinInfoItem); + return { + name: "CoinInfo", + items: items, + }; + } - // Return the module object, exactly as the clock_info app expects. - return { - name: "CoinInfo", - items: items - }; + // Return the exported object (the module) from the IIFE. + // Using this pattern ensures compatibility with the Espruino environment + // on Bangle.js instead of Node.js-style module.exports. + return createCoinInfoModule(); })(); diff --git a/apps/coin_info/metadata.json b/apps/coin_info/metadata.json index def5f610d..0499f3aa3 100644 --- a/apps/coin_info/metadata.json +++ b/apps/coin_info/metadata.json @@ -1,7 +1,7 @@ { "id": "coin_info", "name": "Crypto-Coins Info", "shortName":"Coins Info", - "version": "0.03.23", + "version": "0.03.24", "description": "Crypto-Coins Infos with the help of the Coinmarketcap API", "icon": "app.png", "tags": "clkinfo",