/** * @author Usman Naeem */ const items = new Array(); const preferred_items = new Array(); const analyzed_items = new Array(); // var items_cashe_expiry_time = 0; var preferred_items_cashe_expiry_time = 0; var analyzed_items_cashe_expiry_time = 0; async function load_items(messageboxElement) { try { if(items.length > 0) { return; } const current_time = Date.now(); if (items_cashe_expiry_time > current_time) { return; } items_cashe_expiry_time = current_time + cache_expiry_delay; // const url = "GetItems"; const json = await callWebserviceGET(url, messageboxElement, null); if (!json) { return; } if (json.code !== 200) { if (messageboxElement) { messageboxElement.innerHTML = json.message; } } else { await set_items(json.items); } } catch (error) { console.log(error); throw new Error("Failed to load items"); } } async function set_items(items_json) { items.length = 0; items_json.forEach(item => { if (item.active) { if (!items.includes(item.id)) { items.push(item.id); } } }); items.sort(); } async function load_preferred_items(messageboxElement) { try { const current_time = Date.now(); if (preferred_items_cashe_expiry_time > current_time) { return; } preferred_items_cashe_expiry_time = current_time + cache_expiry_delay; // const url = "GetUserItemPreferences"; const json = await callWebserviceGET(url, messageboxElement, null); if (!json) { return; } if (json.code !== 200) { if (messageboxElement) { messageboxElement.innerHTML = json.message; } } else { await set_preferred_items(json.user_item_preferences); } } catch (error) { console.log(error); throw new Error("Failed to load preferred items"); } } async function set_preferred_items(user_item_preferences_json) { preferred_items.length = 0; user_item_preferences_json.forEach(preferredItem => { if (!preferred_items.includes(preferredItem.item_id)) { preferred_items.push(preferredItem.item_id); } }); preferred_items.sort(); } async function load_analyzed_items(messageboxElement) { try { const current_time = Date.now(); if (analyzed_items_cashe_expiry_time > current_time) { return; } analyzed_items_cashe_expiry_time = current_time + cache_expiry_delay; // const url = "GetAnalyzedItems"; const json = await callWebserviceGET(url, messageboxElement, null); if (!json) { return; } if (json.code !== 200) { if (messageboxElement) { messageboxElement.innerHTML = json.message; } } else { await set_analyzed_items(json.analyzed_items); analyzed_items.sort(); } } catch (error) { console.log(error); throw new Error("Failed to load analyzed items"); } } async function set_analyzed_items(analyzed_items_json) { analyzed_items.length = 0; analyzed_items_json.forEach(analyzedItem => { if (!analyzed_items.includes(analyzedItem.item_id)) { analyzed_items.push(analyzedItem.item_id); } }); analyzed_items.sort(); }