Fix up app metadata - spaces/uppercase in tags meant these apps wouldn't have appeared in some searches

master
Gordon Williams 2025-02-04 12:38:56 +00:00
parent 0208268bf2
commit 9b224171e1
36 changed files with 47 additions and 47 deletions

View File

@ -271,7 +271,7 @@ and which gives information about the app for the Launcher.
// 'locale' - provides 'locale' library for language-specific date/distance/etc // 'locale' - provides 'locale' library for language-specific date/distance/etc
// (a version of 'locale' is included in the firmware) // (a version of 'locale' is included in the firmware)
// 'defaultconfig' - a set of apps that will can be installed and will wipe out all previously installed apps // 'defaultconfig' - a set of apps that will can be installed and will wipe out all previously installed apps
"tags": "", // comma separated tag list for searching "tags": "", // comma separated tag list for searching (don't include uppercase or spaces)
// common types are: // common types are:
// 'clock' - it's a clock // 'clock' - it's a clock
// 'widget' - it is (or provides) a widget // 'widget' - it is (or provides) a widget

View File

@ -5,7 +5,7 @@
"version": "0.02", "version": "0.02",
"description": "A UI/UX for espruino smartwatches, displays dinamically calc. x,y coordinates.", "description": "A UI/UX for espruino smartwatches, displays dinamically calc. x,y coordinates.",
"icon": "app.png", "icon": "app.png",
"tags": "Color,input,buttons,touch,UI", "tags": "color,input,buttons,touch,ui",
"supports": ["BANGLEJS"], "supports": ["BANGLEJS"],
"readme": "README.md", "readme": "README.md",
"screenshots": [{"url":"UI4swatch_icon.png"},{"url":"UI4swatch_s1.png"}], "screenshots": [{"url":"UI4swatch_icon.png"},{"url":"UI4swatch_s1.png"}],

View File

@ -5,7 +5,7 @@
"version": "0.01", "version": "0.01",
"description": "Aerobic fitness test created by Léger & Lambert", "description": "Aerobic fitness test created by Léger & Lambert",
"icon": "beeptest.png", "icon": "beeptest.png",
"tags": "Health", "tags": "health",
"supports": ["BANGLEJS2"], "supports": ["BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [

View File

@ -6,7 +6,7 @@
"description": "Show the current and upcoming events synchronized from Gadgetbridge", "description": "Show the current and upcoming events synchronized from Gadgetbridge",
"icon": "calclock.png", "icon": "calclock.png",
"type": "clock", "type": "clock",
"tags": "clock agenda", "tags": "clock,agenda",
"supports": ["BANGLEJS2"], "supports": ["BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [

View File

@ -5,7 +5,7 @@
"version": "0.03", "version": "0.03",
"description": "Displays RGB565 and RGB888 colors, its name and code in screen.", "description": "Displays RGB565 and RGB888 colors, its name and code in screen.",
"icon": "app.png", "icon": "app.png",
"tags": "Color,input,buttons,touch,UI", "tags": "color,input,buttons,touch,ui",
"supports": ["BANGLEJS"], "supports": ["BANGLEJS"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [

View File

@ -5,7 +5,7 @@
"description": "A basic implementation of the famous consice workout", "description": "A basic implementation of the famous consice workout",
"icon": "icon.png", "icon": "icon.png",
"type":"app", "type":"app",
"tags": "Training, Workout", "tags": "training,workout",
"supports": ["BANGLEJS2"], "supports": ["BANGLEJS2"],
"readme": "README.md", "readme": "README.md",
"allow_emulator":true, "allow_emulator":true,

View File

@ -5,7 +5,7 @@
"version": "0.08", "version": "0.08",
"description": "App to test the bangle.js input interface. It displays the user action in text, circle buttons or on/off switch UI elements.", "description": "App to test the bangle.js input interface. It displays the user action in text, circle buttons or on/off switch UI elements.",
"icon": "app.png", "icon": "app.png",
"tags": "input,interface,buttons,touch,UI", "tags": "input,interface,buttons,touch,ui",
"supports": ["BANGLEJS"], "supports": ["BANGLEJS"],
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [

View File

@ -207,10 +207,10 @@ apps.forEach((app,appIdx) => {
if (!app.name) ERROR(`App ${app.id} has no name`, {file:metadataFile}); if (!app.name) ERROR(`App ${app.id} has no name`, {file:metadataFile});
var isApp = !app.type || app.type=="app"; var isApp = !app.type || app.type=="app";
var appTags = app.tags ? app.tags.split(",") : []; var appTags = app.tags ? app.tags.split(",") : [];
/*if (appTags.some(tag => tag!=tag.trim())) if (appTags.some(tag => tag!=tag.trim()))
WARN(`App ${app.id} 'tag' list contains whitespace ("${app.tags}")`, {file:metadataFile}); WARN(`App ${app.id} 'tag' list contains whitespace ("${app.tags}")`, {file:metadataFile});
if (appTags.some(tag => tag!=tag.toLowerCase())) if (appTags.some(tag => tag!=tag.toLowerCase()))
WARN(`App ${app.id} 'tag' list contains uppercase ("${app.tags}")`, {file:metadataFile});*/ WARN(`App ${app.id} 'tag' list contains uppercase ("${app.tags}")`, {file:metadataFile});
if (app.name.length>20 && !app.shortName && isApp) ERROR(`App ${app.id} has a long name, but no shortName`, {file:metadataFile}); if (app.name.length>20 && !app.shortName && isApp) ERROR(`App ${app.id} has a long name, but no shortName`, {file:metadataFile});
if (app.type && !METADATA_TYPES.includes(app.type)) if (app.type && !METADATA_TYPES.includes(app.type))
ERROR(`App ${app.id} 'type' is one one of `+METADATA_TYPES, {file:metadataFile}); ERROR(`App ${app.id} 'type' is one one of `+METADATA_TYPES, {file:metadataFile});