Only sync library on Clay save

This commit is contained in:
RandyTheSilly committed 2026-10-11 13:58:57 -04:00
1 parent c95c75b11d
commit 6fb0a6dae6
3 files changed
+39 -13

No files matched your search

+2 -4
View File
@@ -76,8 +76,8 @@ static void outbox_failed_handler(DictionaryIterator *iter, AppMessageResult rea
static void inbox_received_handler(DictionaryIterator *iter, void *context) { static void inbox_received_handler(DictionaryIterator *iter, void *context) {
Tuple *t_ready = dict_find(iter, MESSAGE_KEY_PKJS_READY); Tuple *t_ready = dict_find(iter, MESSAGE_KEY_PKJS_READY);
if (t_ready) { if (t_ready) {
s_pkjs_ready = true; s_pkjs_ready = (bool)t_ready->value->uint8;
APP_LOG(APP_LOG_LEVEL_DEBUG, "PKJS READY RECEIVED"); APP_LOG(APP_LOG_LEVEL_DEBUG, "PKJS READY STATE CHANGE: %d", s_pkjs_ready);
return; return;
} }
@@ -159,8 +159,6 @@ static void to_pkjs_move_back() {
return; return;
} }
APP_LOG(APP_LOG_LEVEL_DEBUG, "Current nav scope: %d", s_current_menu_scope);
APP_LOG(APP_LOG_LEVEL_DEBUG, "Using search: %d", s_nav_history.using_search);
if ((s_current_menu_scope == NAV_SCOPE_ARTISTS && !s_nav_history.using_search) || s_current_menu_scope == NAV_SCOPE_SEARCH) { if ((s_current_menu_scope == NAV_SCOPE_ARTISTS && !s_nav_history.using_search) || s_current_menu_scope == NAV_SCOPE_SEARCH) {
// return to main menu // return to main menu
s_current_menu_scope = NAV_SCOPE_MAIN; s_current_menu_scope = NAV_SCOPE_MAIN;
+1 -1
View File
@@ -28,6 +28,6 @@ module.exports = [
}, },
{ {
"type": "submit", "type": "submit",
"defaultValue": "Save/Sync Library" "defaultValue": "Sync Library"
} }
]; ];
+36 -8
View File
@@ -1,7 +1,7 @@
var Clay = require('@rebble/clay'); var Clay = require('@rebble/clay');
var clayConfig = require('./config'); var clayConfig = require('./config');
var clay = new Clay(clayConfig, null, { autoHandleEvents: false });
var keys = require('message_keys'); var keys = require('message_keys');
new Clay(clayConfig);
var NavScope = Object.freeze({ var NavScope = Object.freeze({
NAV_SCOPE_MAIN: 0, NAV_SCOPE_MAIN: 0,
@@ -17,7 +17,15 @@ var jfIdToSeqIdMap = new Map();
var allJfIds = []; var allJfIds = [];
var currentArtist = null; var currentArtist = null;
Pebble.addEventListener("ready", function () { function toggleReadyState(ready) {
const readyDict = {};
readyDict[keys.PKJS_READY] = ready;
Pebble.sendAppMessage(readyDict);
}
function syncLibrary() {
toggleReadyState(false);
// store cache of library info from Jellyfin // store cache of library info from Jellyfin
if (cfg.PRIV_BASE_URL && cfg.PRIV_API_KEY && cfg.PRIV_USERNAME) { if (cfg.PRIV_BASE_URL && cfg.PRIV_API_KEY && cfg.PRIV_USERNAME) {
// get userId from Jellyfin // get userId from Jellyfin
@@ -39,7 +47,8 @@ Pebble.addEventListener("ready", function () {
// format response for jellyPod // format response for jellyPod
//// build lookupMap //// build lookupMap
let lastAlbumInfo = { AlbumArtist: "", AlbumName: "", AlbumYear: 0 }; let lastAlbumInfo = { AlbumArtist: "", AlbumName: ""};
//let lastAlbumInfo = { AlbumArtist: "", AlbumName: "", AlbumYear: 0 }; // TODO FUTURE USE
let currentSeqId = 0; let currentSeqId = 0;
allJfIds = [] // ensure blank allJfIds = [] // ensure blank
for (const track of libObj.Items) { for (const track of libObj.Items) {
@@ -79,19 +88,38 @@ Pebble.addEventListener("ready", function () {
lastAlbumInfo = { lastAlbumInfo = {
AlbumArtist: albumArtist, AlbumArtist: albumArtist,
AlbumName: albumName, AlbumName: albumName,
AlbumYear: track.ProductionYear ? track.ProductionYear : 1970 //AlbumYear: track.ProductionYear ? track.ProductionYear : 1970 // TODO FUTURE USE
}; };
} }
} }
//console.log(JSON.stringify(lookupMap, (k, v) => v instanceof Map ? Object.fromEntries(v) : v)); //console.log(JSON.stringify(lookupMap, (k, v) => v instanceof Map ? Object.fromEntries(v) : v));
toggleReadyState(true);
const readyDict = {};
readyDict[keys.PKJS_READY] = 1;
Pebble.sendAppMessage(readyDict);
}); });
}); });
} }
}
Pebble.addEventListener('showConfiguration', function () {
Pebble.openURL(clay.generateUrl());
});
Pebble.addEventListener('webviewclosed', function(e) {
if (!e || !e.response) { return; }
// persist settings
try {
clay.getSettings(e.response);
} catch (err) {
return;
}
cfg = JSON.parse(localStorage.getItem('clay-settings'));
syncLibrary()
});
Pebble.addEventListener("ready", function () {
toggleReadyState(true);
}); });
// PKJS seems to change its mind on how to index message keys, so this is necessary... :/ // PKJS seems to change its mind on how to index message keys, so this is necessary... :/