iobroker.telegram-menu 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +12 -0
  2. package/build/app/action.js +10 -65
  3. package/build/app/action.js.map +2 -2
  4. package/build/app/backMenu.js +1 -1
  5. package/build/app/backMenu.js.map +2 -2
  6. package/build/app/dynamicSwitchMenu.js +1 -1
  7. package/build/app/dynamicSwitchMenu.js.map +2 -2
  8. package/build/app/getstate.js +9 -11
  9. package/build/app/getstate.js.map +2 -2
  10. package/build/app/httpRequest.js +2 -2
  11. package/build/app/httpRequest.js.map +2 -2
  12. package/build/app/idBySelector.js +103 -0
  13. package/build/app/idBySelector.js.map +7 -0
  14. package/build/app/jsonTable.js +3 -3
  15. package/build/app/jsonTable.js.map +2 -2
  16. package/build/app/messageIds.js +7 -1
  17. package/build/app/messageIds.js.map +2 -2
  18. package/build/app/processData.js +7 -7
  19. package/build/app/processData.js.map +2 -2
  20. package/build/app/sendNav.js +1 -1
  21. package/build/app/sendNav.js.map +2 -2
  22. package/build/app/sendpic.js +4 -5
  23. package/build/app/sendpic.js.map +2 -2
  24. package/build/app/setstate.js +9 -9
  25. package/build/app/setstate.js.map +3 -3
  26. package/build/app/shoppingList.js +3 -3
  27. package/build/app/shoppingList.js.map +2 -2
  28. package/build/app/subMenu.js +21 -32
  29. package/build/app/subMenu.js.map +2 -2
  30. package/build/app/telegram.js +14 -10
  31. package/build/app/telegram.js.map +2 -2
  32. package/build/lib/appUtils.js +6 -17
  33. package/build/lib/appUtils.js.map +2 -2
  34. package/build/lib/exchangeValue.js +81 -0
  35. package/build/lib/exchangeValue.js.map +7 -0
  36. package/build/lib/string.js +1 -23
  37. package/build/lib/string.js.map +2 -2
  38. package/build/lib/utilities.js +14 -13
  39. package/build/lib/utilities.js.map +2 -2
  40. package/build/main.js +11 -25
  41. package/build/main.js.map +3 -3
  42. package/build/src/lib/appUtils.js +3 -3
  43. package/build/src/lib/appUtils.js.map +1 -1
  44. package/build/src/lib/utilities.js +1 -1
  45. package/build/src/lib/utilities.js.map +1 -1
  46. package/build/test/test/appUtils.test.js +12 -0
  47. package/build/test/test/appUtils.test.js.map +1 -1
  48. package/build/test/test/object.test.js +12 -0
  49. package/build/test/test/object.test.js.map +1 -1
  50. package/build/test/test/string.test.js +30 -6
  51. package/build/test/test/string.test.js.map +1 -1
  52. package/build/test/test/time.test.js +183 -198
  53. package/build/test/test/time.test.js.map +1 -1
  54. package/build/types/types.js.map +1 -1
  55. package/io-package.json +27 -27
  56. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/jsonTable.ts"],
4
- "sourcesContent": ["import { errorLogger } from './logging';\nimport type { Keyboard, KeyboardItem, LastText, ValArray } from '../types/types';\nimport { adapter } from '../main';\nimport { decomposeText, jsonString, parseJSON } from '../lib/string';\nimport { makeValidJson } from '../lib/json';\n\nconst lastText: LastText = {};\nconst createKeyboardFromJson = (\n val: string,\n text: string | null,\n id: string,\n user: string,\n): { text: string; keyboard: Keyboard } | undefined => {\n try {\n if (text) {\n lastText[user] = text;\n } else {\n text = lastText[user];\n }\n const { substring } = decomposeText(text, '{json:', '}');\n\n const array = substring.split(';');\n const headline = array[2];\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n let idShoppingList = false;\n if (array.length > 3 && array[3] == 'shoppinglist') {\n idShoppingList = true;\n }\n const { validJson, error } = makeValidJson(val, adapter);\n\n adapter.log.debug(`Val: ${validJson} with type: ${typeof val}`);\n if (error) {\n return;\n }\n\n const { json, isValidJson } = parseJSON<ValArray[]>(validJson, adapter);\n if (!isValidJson) {\n return;\n }\n\n const keyboard: Keyboard = { inline_keyboard: [] };\n\n json.forEach((element, index) => {\n const firstRow: KeyboardItem[] = [];\n const rowArray: KeyboardItem[] = [];\n itemArray.forEach(item => {\n if (index == 0) {\n const btnText: string = item.split(':')[1];\n if (btnText.length > 0) {\n firstRow.push({ text: btnText, callback_data: '1' });\n }\n }\n if (idShoppingList) {\n const value = element.buttondelete;\n const valueDeleteLinkArray = decomposeText(value, \"('\", \"')\")\n .substring.replace(\"('\", '')\n .replace(\",true')\", '')\n .split('.');\n const instanceAlexa = valueDeleteLinkArray[1];\n const valueDeleteId = valueDeleteLinkArray[5];\n\n const instanceShoppingListID = `${id.split('.')[1]}.${id.split('.')[2]}`;\n rowArray.push({\n text: element[item.split(':')[0]],\n callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`,\n });\n } else {\n rowArray.push({ text: element[item.split(':')[0]], callback_data: '1' });\n }\n });\n if (index == 0) {\n keyboard.inline_keyboard.push(firstRow);\n }\n keyboard.inline_keyboard.push(rowArray);\n });\n\n adapter.log.debug(`Keyboard: ${jsonString(keyboard)}`);\n\n return { text: headline, keyboard };\n } catch (err: any) {\n errorLogger('Error createKeyboardFromJson:', err, adapter);\n }\n};\n\nfunction createTextTableFromJson(val: string, textToSend: string): string | undefined {\n try {\n const substring = decomposeText(textToSend, '{json:', '}').substring;\n const array = substring.split(';');\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n const valArray: ValArray[] = JSON.parse(val);\n\n const lengthArray: number[] = []; // Array f\u00FCr die L\u00E4nge der Items\n\n itemArray.forEach(element => {\n lengthArray.push(element.split(':')[1].length);\n });\n valArray.forEach(element => {\n itemArray.forEach((item, index) => {\n if (lengthArray[index] < element[item.split(':')[0]].toString().length) {\n lengthArray[index] = element[item.split(':')[0]].toString().length;\n }\n });\n });\n adapter.log.debug(`Length of rows: ${jsonString(lengthArray)}`);\n const headline = array[2];\n let textTable = textToSend.replace(substring, '').trim();\n if (textTable != '') {\n textTable += ' \\n\\n';\n }\n textTable += ` ${headline} \\n\\``;\n const enlargeColumn = 1;\n const reduce = lengthArray.length == 1 ? 2 : 0;\n const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n valArray.forEach((element, elementIndex) => {\n itemArray.forEach((item, index) => {\n // TableHead\n if (elementIndex == 0 && index == 0) {\n textTable += '|';\n itemArray.forEach((item2, i) => {\n if (item2.split(':')[1].length > 0) {\n textTable += ` ${item2\n .split(':')[1]\n .toString()\n .padEnd(lengthArray[i] + enlargeColumn, ' ')}|`;\n if (i == itemArray.length - 1) {\n textTable += '\\n';\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n }\n } else {\n textTable = textTable.slice(0, -1);\n }\n });\n }\n // TableBody\n if (index == 0) {\n textTable += '|';\n }\n textTable += ` ${element[item.split(':')[0]].toString().padEnd(lengthArray[index] + enlargeColumn, ' ')}|`;\n if (index == itemArray.length - 1) {\n textTable += '\\n';\n }\n });\n });\n // Breakline\n textTable += '-'.repeat(lineLength);\n textTable += '`';\n return textTable;\n } catch (e: any) {\n errorLogger('Error createTextTableFromJson:', e, adapter);\n }\n}\nexport { createKeyboardFromJson, createTextTableFromJson };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport type { Keyboard, KeyboardItem, LastText, ValArray } from '../types/types';\nimport { adapter } from '../main';\nimport { decomposeText, jsonString, parseJSON } from '../lib/string';\nimport { makeValidJson } from '../lib/json';\n\nconst lastText: LastText = {};\nconst createKeyboardFromJson = (\n val: string,\n text: string | null,\n id: string,\n user: string,\n): { text: string; keyboard: Keyboard } | undefined => {\n try {\n if (text) {\n lastText[user] = text;\n } else {\n text = lastText[user];\n }\n const { substring } = decomposeText(text, '{json:', '}');\n\n const array = substring.split(';');\n const headline = array[2];\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n let idShoppingList = false;\n if (array.length > 3 && array[3] == 'shoppinglist') {\n idShoppingList = true;\n }\n const { validJson, error } = makeValidJson(val, adapter);\n\n adapter.log.debug(`Val ${validJson} with type ${typeof val}`);\n if (error) {\n return;\n }\n\n const { json, isValidJson } = parseJSON<ValArray[]>(validJson, adapter);\n if (!isValidJson) {\n return;\n }\n\n const keyboard: Keyboard = { inline_keyboard: [] };\n\n json.forEach((element, index) => {\n const firstRow: KeyboardItem[] = [];\n const rowArray: KeyboardItem[] = [];\n itemArray.forEach(item => {\n if (index == 0) {\n const btnText: string = item.split(':')[1];\n if (btnText.length > 0) {\n firstRow.push({ text: btnText, callback_data: '1' });\n }\n }\n if (idShoppingList) {\n const value = element.buttondelete;\n const valueDeleteLinkArray = decomposeText(value, \"('\", \"')\")\n .substring.replace(\"('\", '')\n .replace(\",true')\", '')\n .split('.');\n const instanceAlexa = valueDeleteLinkArray[1];\n const valueDeleteId = valueDeleteLinkArray[5];\n\n const instanceShoppingListID = `${id.split('.')[1]}.${id.split('.')[2]}`;\n rowArray.push({\n text: element[item.split(':')[0]],\n callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`,\n });\n } else {\n rowArray.push({ text: element[item.split(':')[0]], callback_data: '1' });\n }\n });\n if (index == 0) {\n keyboard.inline_keyboard.push(firstRow);\n }\n keyboard.inline_keyboard.push(rowArray);\n });\n\n adapter.log.debug(`Keyboard : ${jsonString(keyboard)}`);\n\n return { text: headline, keyboard };\n } catch (err: any) {\n errorLogger('Error createKeyboardFromJson:', err, adapter);\n }\n};\n\nfunction createTextTableFromJson(val: string, textToSend: string): string | undefined {\n try {\n const substring = decomposeText(textToSend, '{json:', '}').substring;\n const array = substring.split(';');\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n const valArray: ValArray[] = JSON.parse(val);\n\n const lengthArray: number[] = []; // Array f\u00FCr die L\u00E4nge der Items\n\n itemArray.forEach(element => {\n lengthArray.push(element.split(':')[1].length);\n });\n valArray.forEach(element => {\n itemArray.forEach((item, index) => {\n if (lengthArray[index] < element[item.split(':')[0]].toString().length) {\n lengthArray[index] = element[item.split(':')[0]].toString().length;\n }\n });\n });\n adapter.log.debug(`Length of rows : ${jsonString(lengthArray)}`);\n const headline = array[2];\n let textTable = textToSend.replace(substring, '').trim();\n if (textTable != '') {\n textTable += ' \\n\\n';\n }\n textTable += ` ${headline} \\n\\``;\n const enlargeColumn = 1;\n const reduce = lengthArray.length == 1 ? 2 : 0;\n const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n valArray.forEach((element, elementIndex) => {\n itemArray.forEach((item, index) => {\n // TableHead\n if (elementIndex == 0 && index == 0) {\n textTable += '|';\n itemArray.forEach((item2, i) => {\n if (item2.split(':')[1].length > 0) {\n textTable += ` ${item2\n .split(':')[1]\n .toString()\n .padEnd(lengthArray[i] + enlargeColumn, ' ')}|`;\n if (i == itemArray.length - 1) {\n textTable += '\\n';\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n }\n } else {\n textTable = textTable.slice(0, -1);\n }\n });\n }\n // TableBody\n if (index == 0) {\n textTable += '|';\n }\n textTable += ` ${element[item.split(':')[0]].toString().padEnd(lengthArray[index] + enlargeColumn, ' ')}|`;\n if (index == itemArray.length - 1) {\n textTable += '\\n';\n }\n });\n });\n // Breakline\n textTable += '-'.repeat(lineLength);\n textTable += '`';\n return textTable;\n } catch (e: any) {\n errorLogger('Error createTextTableFromJson:', e, adapter);\n }\n}\nexport { createKeyboardFromJson, createTextTableFromJson };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -39,7 +39,13 @@ async function saveMessageIds(state, instanceTelegram) {
39
39
  if (!(requestUserIdObj == null ? void 0 : requestUserIdObj.val)) {
40
40
  return;
41
41
  }
42
- const { json, isValidJson } = (0, import_string.parseJSON)(String(requestMessageIdObj == null ? void 0 : requestMessageIdObj.val), import_main.adapter);
42
+ let isValidJson = false;
43
+ let json = {};
44
+ if (requestMessageIdObj == null ? void 0 : requestMessageIdObj.val) {
45
+ const result = (0, import_string.parseJSON)(String(requestMessageIdObj == null ? void 0 : requestMessageIdObj.val), import_main.adapter);
46
+ json = result.json;
47
+ isValidJson = result.isValidJson;
48
+ }
43
49
  requestMessageId = isValidJson ? json : {};
44
50
  const userIDValue = requestUserIdObj.val.toString();
45
51
  if (!requestMessageId[userIDValue]) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/messageIds.ts"],
4
- "sourcesContent": ["import { adapter } from '../main';\nimport { deleteMessageByBot } from './botAction';\nimport { errorLogger } from './logging';\nimport type { MessageInfos, Messages, TelegramParams, WhatShouldDelete } from '../types/types';\nimport { deepCopy, getChatID } from '../lib/utils';\nimport { parseJSON } from '../lib/string';\n\nlet isDeleting = false;\nasync function saveMessageIds(state: ioBroker.State, instanceTelegram: string): Promise<void> {\n try {\n let requestMessageId: Messages = {};\n\n const requestMessageIdObj = !isDeleting ? await adapter.getStateAsync('communication.requestIds') : null;\n\n isDeleting = false;\n const requestUserIdObj = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);\n\n const request = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.request`);\n\n if (!requestUserIdObj?.val) {\n return;\n }\n const { json, isValidJson } = parseJSON<Messages>(String(requestMessageIdObj?.val), adapter);\n requestMessageId = isValidJson ? json : {};\n\n const userIDValue = requestUserIdObj.val.toString();\n if (!requestMessageId[userIDValue]) {\n requestMessageId[userIDValue] = [];\n }\n\n if (!requestMessageId[userIDValue]?.find(message => message.id === state.val)) {\n requestMessageId[userIDValue].push({\n id: state.val,\n time: Date.now(),\n request: request?.val,\n });\n }\n\n requestMessageId = removeOldMessageIds(requestMessageId, userIDValue);\n await adapter.setState('communication.requestIds', JSON.stringify(requestMessageId), true);\n } catch (e: any) {\n errorLogger('Error saveMessageIds:', e, adapter);\n }\n}\nfunction removeOldMessageIds(messages: Messages, chatID: string): Messages {\n messages[chatID] = messages[chatID].filter(message => {\n return message.time && message.time > Date.now() - 1000 * 60 * 60 * 24 * 2;\n });\n return messages;\n}\n\nconst removeMessageFromList = ({\n element,\n chat_id,\n copyMessageIds,\n}: {\n element: MessageInfos;\n chat_id: string;\n copyMessageIds: Messages;\n}): MessageInfos[] => {\n return copyMessageIds[chat_id].filter(message => message.id !== element.id);\n};\n\nasync function deleteMessageIds(\n user: string,\n telegramParams: TelegramParams,\n whatShouldDelete: WhatShouldDelete,\n): Promise<void> {\n const { telegramInstance, userListWithChatID } = telegramParams;\n try {\n const requestMessageIdObj = await adapter.getStateAsync('communication.requestIds');\n const lastMessageId = await adapter.getForeignStateAsync(`${telegramInstance}.communicate.requestMessageId`);\n\n if (\n !requestMessageIdObj ||\n typeof requestMessageIdObj.val !== 'string' ||\n !JSON.parse(requestMessageIdObj.val)\n ) {\n return;\n }\n\n const chat_id = getChatID(userListWithChatID, user);\n const { json, isValidJson } = parseJSON<Messages>(requestMessageIdObj.val);\n\n if (!isValidJson || !chat_id) {\n return;\n }\n if (lastMessageId && lastMessageId.val) {\n json[chat_id].push({ id: lastMessageId.val.toString() });\n }\n\n isDeleting = true;\n const copyMessageIds = deepCopy(json, adapter);\n json[chat_id].forEach((element, index) => {\n const id = element.id?.toString();\n if (whatShouldDelete === 'all' && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (whatShouldDelete === 'last' && index === json[chat_id].length - 1 && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (!copyMessageIds) {\n return;\n }\n copyMessageIds[chat_id] = removeMessageFromList({ element, chat_id, copyMessageIds });\n });\n\n await adapter.setState('communication.requestIds', JSON.stringify(copyMessageIds), true);\n } catch (e: any) {\n errorLogger('Error deleteMessageIds:', e, adapter);\n }\n}\n\nexport { deleteMessageIds, saveMessageIds };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { adapter } from '../main';\nimport { deleteMessageByBot } from './botAction';\nimport { errorLogger } from './logging';\nimport type { MessageInfos, Messages, TelegramParams, WhatShouldDelete } from '../types/types';\nimport { deepCopy, getChatID } from '../lib/utils';\nimport { parseJSON } from '../lib/string';\n\nlet isDeleting = false;\nasync function saveMessageIds(state: ioBroker.State, instanceTelegram: string): Promise<void> {\n try {\n let requestMessageId: Messages = {};\n\n const requestMessageIdObj = !isDeleting ? await adapter.getStateAsync('communication.requestIds') : null;\n\n isDeleting = false;\n const requestUserIdObj = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);\n\n const request = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.request`);\n\n if (!requestUserIdObj?.val) {\n return;\n }\n let isValidJson = false;\n let json = {};\n\n if (requestMessageIdObj?.val) {\n const result = parseJSON<Messages>(String(requestMessageIdObj?.val), adapter);\n json = result.json;\n isValidJson = result.isValidJson;\n }\n requestMessageId = isValidJson ? json : {};\n\n const userIDValue = requestUserIdObj.val.toString();\n if (!requestMessageId[userIDValue]) {\n requestMessageId[userIDValue] = [];\n }\n\n if (!requestMessageId[userIDValue]?.find(message => message.id === state.val)) {\n requestMessageId[userIDValue].push({\n id: state.val,\n time: Date.now(),\n request: request?.val,\n });\n }\n\n requestMessageId = removeOldMessageIds(requestMessageId, userIDValue);\n await adapter.setState('communication.requestIds', JSON.stringify(requestMessageId), true);\n } catch (e: any) {\n errorLogger('Error saveMessageIds:', e, adapter);\n }\n}\nfunction removeOldMessageIds(messages: Messages, chatID: string): Messages {\n messages[chatID] = messages[chatID].filter(message => {\n return message.time && message.time > Date.now() - 1000 * 60 * 60 * 24 * 2;\n });\n return messages;\n}\n\nconst removeMessageFromList = ({\n element,\n chat_id,\n copyMessageIds,\n}: {\n element: MessageInfos;\n chat_id: string;\n copyMessageIds: Messages;\n}): MessageInfos[] => {\n return copyMessageIds[chat_id].filter(message => message.id !== element.id);\n};\n\nasync function deleteMessageIds(\n user: string,\n telegramParams: TelegramParams,\n whatShouldDelete: WhatShouldDelete,\n): Promise<void> {\n const { telegramInstance, userListWithChatID } = telegramParams;\n try {\n const requestMessageIdObj = await adapter.getStateAsync('communication.requestIds');\n const lastMessageId = await adapter.getForeignStateAsync(`${telegramInstance}.communicate.requestMessageId`);\n\n if (\n !requestMessageIdObj ||\n typeof requestMessageIdObj.val !== 'string' ||\n !JSON.parse(requestMessageIdObj.val)\n ) {\n return;\n }\n\n const chat_id = getChatID(userListWithChatID, user);\n const { json, isValidJson } = parseJSON<Messages>(requestMessageIdObj.val);\n\n if (!isValidJson || !chat_id) {\n return;\n }\n if (lastMessageId && lastMessageId.val) {\n json[chat_id].push({ id: lastMessageId.val.toString() });\n }\n\n isDeleting = true;\n const copyMessageIds = deepCopy(json, adapter);\n json[chat_id].forEach((element, index) => {\n const id = element.id?.toString();\n if (whatShouldDelete === 'all' && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (whatShouldDelete === 'last' && index === json[chat_id].length - 1 && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (!copyMessageIds) {\n return;\n }\n copyMessageIds[chat_id] = removeMessageFromList({ element, chat_id, copyMessageIds });\n });\n\n await adapter.setState('communication.requestIds', JSON.stringify(copyMessageIds), true);\n } catch (e: any) {\n errorLogger('Error deleteMessageIds:', e, adapter);\n }\n}\n\nexport { deleteMessageIds, saveMessageIds };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -51,8 +51,8 @@ async function checkEveryMenuForData({
51
51
  }) {
52
52
  for (const menu of menus) {
53
53
  const groupData = menuData[menu];
54
- import_main.adapter.log.debug(`Menu: ${menu}`);
55
- import_main.adapter.log.debug(`Nav: ${(0, import_string.jsonString)(menuData[menu])}`);
54
+ import_main.adapter.log.debug(`Menu : ${menu}`);
55
+ import_main.adapter.log.debug(`Nav : ${(0, import_string.jsonString)(menuData[menu])}`);
56
56
  if (await processData({
57
57
  menuData,
58
58
  calledValue,
@@ -67,7 +67,7 @@ async function checkEveryMenuForData({
67
67
  timeoutKey,
68
68
  groupData
69
69
  })) {
70
- import_main.adapter.log.debug("CalledText found");
70
+ import_main.adapter.log.debug("Menu found");
71
71
  return true;
72
72
  }
73
73
  }
@@ -89,12 +89,12 @@ async function processData({
89
89
  }) {
90
90
  try {
91
91
  let part = {};
92
- if ((0, import_dynamicValue.getDynamicValue)(userToSend)) {
93
- const res = (0, import_dynamicValue.getDynamicValue)(userToSend);
92
+ const res = (0, import_dynamicValue.getDynamicValue)(userToSend);
93
+ if (res) {
94
94
  const valueToSet = (res == null ? void 0 : res.valueType) ? (0, import_action.adjustValueType)(calledValue, res.valueType) : calledValue;
95
95
  valueToSet && (res == null ? void 0 : res.id) ? await (0, import_setstate.setstateIobroker)({ id: res.id, value: valueToSet, ack: res == null ? void 0 : res.ack }) : await (0, import_telegram.sendToTelegram)({
96
96
  userToSend,
97
- textToSend: `You insert a wrong Type of value, please insert type: ${res == null ? void 0 : res.valueType}`,
97
+ textToSend: `You insert a wrong Type of value, please insert type : ${res == null ? void 0 : res.valueType}`,
98
98
  telegramParams
99
99
  });
100
100
  (0, import_dynamicValue.removeUserFromDynamicValue)(userToSend);
@@ -143,7 +143,7 @@ async function processData({
143
143
  return true;
144
144
  }
145
145
  if (part == null ? void 0 : part.switch) {
146
- await (0, import_setstate.handleSetState)(part, userToSend, 0, false, telegramParams);
146
+ await (0, import_setstate.handleSetState)(part, userToSend, 0, telegramParams);
147
147
  return true;
148
148
  }
149
149
  if (part == null ? void 0 : part.getData) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/processData.ts"],
4
- "sourcesContent": ["import { adapter } from '../main';\nimport { sendLocationToTelegram, sendToTelegram } from './telegram';\nimport { sendNav } from './sendNav';\nimport { callSubMenu } from './subMenu';\nimport { backMenuFunc, switchBack } from './backMenu';\nimport { handleSetState, setstateIobroker } from './setstate';\nimport { getState } from './getstate';\nimport { sendPic } from './sendpic';\nimport { getDynamicValue, removeUserFromDynamicValue } from './dynamicValue';\nimport { adjustValueType } from './action';\nimport { getChart } from './echarts';\nimport { httpRequest } from './httpRequest';\nimport { errorLogger } from './logging';\nimport type { CheckEveryMenuForDataType, Part, ProcessDataType, Timeouts } from '../types/types';\nimport { jsonString } from '../lib/string';\nimport { isSubmenuOrMenu } from './validateMenus';\n\nlet timeouts: Timeouts[] = [];\n\nexport async function checkEveryMenuForData({\n menuData,\n calledValue,\n userToSend,\n telegramParams,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n}: CheckEveryMenuForDataType): Promise<boolean> {\n for (const menu of menus) {\n const groupData = menuData[menu];\n\n adapter.log.debug(`Menu: ${menu}`);\n adapter.log.debug(`Nav: ${jsonString(menuData[menu])}`);\n\n if (\n await processData({\n menuData,\n calledValue,\n userToSend,\n groupWithUser: menu,\n telegramParams,\n allMenusWithData: menuData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n })\n ) {\n adapter.log.debug('CalledText found');\n return true;\n }\n }\n return false;\n}\n\nasync function processData({\n menuData,\n calledValue,\n userToSend,\n groupWithUser,\n telegramParams,\n allMenusWithData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n}: ProcessDataType): Promise<boolean | undefined> {\n try {\n let part: Part | undefined = {} as Part;\n\n if (getDynamicValue(userToSend)) {\n const res = getDynamicValue(userToSend);\n const valueToSet = res?.valueType ? adjustValueType(calledValue, res.valueType) : calledValue;\n\n valueToSet && res?.id\n ? await setstateIobroker({ id: res.id, value: valueToSet, ack: res?.ack })\n : await sendToTelegram({\n userToSend,\n textToSend: `You insert a wrong Type of value, please insert type: ${res?.valueType}`,\n telegramParams,\n });\n\n removeUserFromDynamicValue(userToSend);\n const result = await switchBack(userToSend, allMenusWithData, menus, true);\n\n if (result) {\n const { textToSend, keyboard, parse_mode } = result;\n await sendToTelegram({ userToSend, textToSend, keyboard, telegramParams, parse_mode });\n return true;\n }\n\n await sendNav(part, userToSend, telegramParams);\n return true;\n }\n\n const call = calledValue.includes('menu:') ? calledValue.split(':')[2] : calledValue;\n part = groupData[call];\n\n if (!calledValue.toString().includes('menu:') && isUserActiveCheckbox[groupWithUser]) {\n const nav = part?.nav;\n if (nav) {\n adapter.log.debug(`Menu to Send: ${jsonString(nav)}`);\n\n backMenuFunc({ activePage: call, navigation: nav, userToSend });\n\n if (jsonString(nav).includes('menu:')) {\n adapter.log.debug(`Submenu: ${jsonString(nav)}`);\n\n const result = await callSubMenu({\n jsonStringNav: jsonString(nav),\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n });\n if (result?.newNav) {\n await checkEveryMenuForData({\n menuData,\n calledValue: result.newNav,\n userToSend,\n telegramParams,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n }\n return true;\n }\n await sendNav(part, userToSend, telegramParams);\n return true;\n }\n\n if (part?.switch) {\n await handleSetState(part, userToSend, 0, false, telegramParams);\n return true;\n }\n\n if (part?.getData) {\n await getState(part, userToSend, telegramParams);\n return true;\n }\n\n if (part?.sendPic) {\n timeouts = sendPic(part, userToSend, telegramParams, token, directoryPicture, timeouts, timeoutKey);\n return true;\n }\n\n if (part?.location) {\n adapter.log.debug('Send location');\n await sendLocationToTelegram(userToSend, part.location, telegramParams);\n return true;\n }\n\n if (part?.echarts) {\n adapter.log.debug('Send echarts');\n getChart(part.echarts, directoryPicture, userToSend, telegramParams);\n return true;\n }\n\n if (part?.httpRequest) {\n adapter.log.debug('Send http request');\n const result = await httpRequest(part, userToSend, telegramParams, directoryPicture);\n return !!result;\n }\n }\n if (isSubmenuOrMenu(calledValue) && menuData[groupWithUser][call]) {\n adapter.log.debug('Call Submenu');\n await callSubMenu({\n jsonStringNav: calledValue,\n userToSend: userToSend,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: allMenusWithData,\n menus: menus,\n });\n return true;\n }\n return false;\n } catch (e: any) {\n errorLogger('Error processData:', e, adapter);\n }\n}\n\nexport function getTimeouts(): Timeouts[] {\n return timeouts;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { adapter } from '../main';\nimport { sendLocationToTelegram, sendToTelegram } from './telegram';\nimport { sendNav } from './sendNav';\nimport { callSubMenu } from './subMenu';\nimport { backMenuFunc, switchBack } from './backMenu';\nimport { handleSetState, setstateIobroker } from './setstate';\nimport { getState } from './getstate';\nimport { sendPic } from './sendpic';\nimport { getDynamicValue, removeUserFromDynamicValue } from './dynamicValue';\nimport { adjustValueType } from './action';\nimport { getChart } from './echarts';\nimport { httpRequest } from './httpRequest';\nimport { errorLogger } from './logging';\nimport type { CheckEveryMenuForDataType, Part, ProcessDataType, Timeouts } from '../types/types';\nimport { jsonString } from '../lib/string';\nimport { isSubmenuOrMenu } from './validateMenus';\n\nlet timeouts: Timeouts[] = [];\n\nexport async function checkEveryMenuForData({\n menuData,\n calledValue,\n userToSend,\n telegramParams,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n}: CheckEveryMenuForDataType): Promise<boolean> {\n for (const menu of menus) {\n const groupData = menuData[menu];\n\n adapter.log.debug(`Menu : ${menu}`);\n adapter.log.debug(`Nav : ${jsonString(menuData[menu])}`);\n\n if (\n await processData({\n menuData,\n calledValue,\n userToSend,\n groupWithUser: menu,\n telegramParams,\n allMenusWithData: menuData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n })\n ) {\n adapter.log.debug('Menu found');\n return true;\n }\n }\n return false;\n}\n\nasync function processData({\n menuData,\n calledValue,\n userToSend,\n groupWithUser,\n telegramParams,\n allMenusWithData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n}: ProcessDataType): Promise<boolean | undefined> {\n try {\n let part: Part | undefined = {} as Part;\n\n const res = getDynamicValue(userToSend);\n if (res) {\n const valueToSet = res?.valueType ? adjustValueType(calledValue, res.valueType) : calledValue;\n\n valueToSet && res?.id\n ? await setstateIobroker({ id: res.id, value: valueToSet, ack: res?.ack })\n : await sendToTelegram({\n userToSend,\n textToSend: `You insert a wrong Type of value, please insert type : ${res?.valueType}`,\n telegramParams,\n });\n\n removeUserFromDynamicValue(userToSend);\n const result = await switchBack(userToSend, allMenusWithData, menus, true);\n\n if (result) {\n const { textToSend, keyboard, parse_mode } = result;\n await sendToTelegram({ userToSend, textToSend, keyboard, telegramParams, parse_mode });\n return true;\n }\n\n await sendNav(part, userToSend, telegramParams);\n return true;\n }\n\n const call = calledValue.includes('menu:') ? calledValue.split(':')[2] : calledValue;\n part = groupData[call];\n\n if (!calledValue.toString().includes('menu:') && isUserActiveCheckbox[groupWithUser]) {\n const nav = part?.nav;\n if (nav) {\n adapter.log.debug(`Menu to Send: ${jsonString(nav)}`);\n\n backMenuFunc({ activePage: call, navigation: nav, userToSend });\n\n if (jsonString(nav).includes('menu:')) {\n adapter.log.debug(`Submenu: ${jsonString(nav)}`);\n\n const result = await callSubMenu({\n jsonStringNav: jsonString(nav),\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n });\n if (result?.newNav) {\n await checkEveryMenuForData({\n menuData,\n calledValue: result.newNav,\n userToSend,\n telegramParams,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n }\n return true;\n }\n await sendNav(part, userToSend, telegramParams);\n return true;\n }\n\n if (part?.switch) {\n await handleSetState(part, userToSend, 0, telegramParams);\n return true;\n }\n\n if (part?.getData) {\n await getState(part, userToSend, telegramParams);\n return true;\n }\n\n if (part?.sendPic) {\n timeouts = sendPic(part, userToSend, telegramParams, token, directoryPicture, timeouts, timeoutKey);\n return true;\n }\n\n if (part?.location) {\n adapter.log.debug('Send location');\n await sendLocationToTelegram(userToSend, part.location, telegramParams);\n return true;\n }\n\n if (part?.echarts) {\n adapter.log.debug('Send echarts');\n getChart(part.echarts, directoryPicture, userToSend, telegramParams);\n return true;\n }\n\n if (part?.httpRequest) {\n adapter.log.debug('Send http request');\n const result = await httpRequest(part, userToSend, telegramParams, directoryPicture);\n return !!result;\n }\n }\n if (isSubmenuOrMenu(calledValue) && menuData[groupWithUser][call]) {\n adapter.log.debug('Call Submenu');\n await callSubMenu({\n jsonStringNav: calledValue,\n userToSend: userToSend,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: allMenusWithData,\n menus: menus,\n });\n return true;\n }\n return false;\n } catch (e: any) {\n errorLogger('Error processData:', e, adapter);\n }\n}\n\nexport function getTimeouts(): Timeouts[] {\n return timeouts;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AACxB,sBAAuD;AACvD,qBAAwB;AACxB,qBAA4B;AAC5B,sBAAyC;AACzC,sBAAiD;AACjD,sBAAyB;AACzB,qBAAwB;AACxB,0BAA4D;AAC5D,oBAAgC;AAChC,qBAAyB;AACzB,yBAA4B;AAC5B,qBAA4B;AAE5B,oBAA2B;AAC3B,2BAAgC;AAEhC,IAAI,WAAuB,CAAC;AAE5B,eAAsB,sBAAsB;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAAgD;AAC5C,aAAW,QAAQ,OAAO;AACtB,UAAM,YAAY,SAAS,IAAI;AAE/B,wBAAQ,IAAI,MAAM,UAAU,IAAI,EAAE;AAClC,wBAAQ,IAAI,MAAM,aAAS,0BAAW,SAAS,IAAI,CAAC,CAAC,EAAE;AAEvD,QACI,MAAM,YAAY;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC,GACH;AACE,0BAAQ,IAAI,MAAM,YAAY;AAC9B,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAEA,eAAe,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAAkD;AAC9C,MAAI;AACA,QAAI,OAAyB,CAAC;AAE9B,UAAM,UAAM,qCAAgB,UAAU;AACtC,QAAI,KAAK;AACL,YAAM,cAAa,2BAAK,iBAAY,+BAAgB,aAAa,IAAI,SAAS,IAAI;AAElF,qBAAc,2BAAK,MACb,UAAM,kCAAiB,EAAE,IAAI,IAAI,IAAI,OAAO,YAAY,KAAK,2BAAK,IAAI,CAAC,IACvE,UAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY,0DAA0D,2BAAK,SAAS;AAAA,QACpF;AAAA,MACJ,CAAC;AAEP,0DAA2B,UAAU;AACrC,YAAM,SAAS,UAAM,4BAAW,YAAY,kBAAkB,OAAO,IAAI;AAEzE,UAAI,QAAQ;AACR,cAAM,EAAE,YAAY,UAAU,WAAW,IAAI;AAC7C,kBAAM,gCAAe,EAAE,YAAY,YAAY,UAAU,gBAAgB,WAAW,CAAC;AACrF,eAAO;AAAA,MACX;AAEA,gBAAM,wBAAQ,MAAM,YAAY,cAAc;AAC9C,aAAO;AAAA,IACX;AAEA,UAAM,OAAO,YAAY,SAAS,OAAO,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC,IAAI;AACzE,WAAO,UAAU,IAAI;AAErB,QAAI,CAAC,YAAY,SAAS,EAAE,SAAS,OAAO,KAAK,qBAAqB,aAAa,GAAG;AAClF,YAAM,MAAM,6BAAM;AAClB,UAAI,KAAK;AACL,4BAAQ,IAAI,MAAM,qBAAiB,0BAAW,GAAG,CAAC,EAAE;AAEpD,0CAAa,EAAE,YAAY,MAAM,YAAY,KAAK,WAAW,CAAC;AAE9D,gBAAI,0BAAW,GAAG,EAAE,SAAS,OAAO,GAAG;AACnC,8BAAQ,IAAI,MAAM,gBAAY,0BAAW,GAAG,CAAC,EAAE;AAE/C,gBAAM,SAAS,UAAM,4BAAY;AAAA,YAC7B,mBAAe,0BAAW,GAAG;AAAA,YAC7B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ,CAAC;AACD,cAAI,iCAAQ,QAAQ;AAChB,kBAAM,sBAAsB;AAAA,cACxB;AAAA,cACA,aAAa,OAAO;AAAA,cACpB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACJ,CAAC;AAAA,UACL;AACA,iBAAO;AAAA,QACX;AACA,kBAAM,wBAAQ,MAAM,YAAY,cAAc;AAC9C,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,QAAQ;AACd,kBAAM,gCAAe,MAAM,YAAY,GAAG,cAAc;AACxD,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,SAAS;AACf,kBAAM,0BAAS,MAAM,YAAY,cAAc;AAC/C,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,SAAS;AACf,uBAAW,wBAAQ,MAAM,YAAY,gBAAgB,OAAO,kBAAkB,UAAU,UAAU;AAClG,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,UAAU;AAChB,4BAAQ,IAAI,MAAM,eAAe;AACjC,kBAAM,wCAAuB,YAAY,KAAK,UAAU,cAAc;AACtE,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,SAAS;AACf,4BAAQ,IAAI,MAAM,cAAc;AAChC,qCAAS,KAAK,SAAS,kBAAkB,YAAY,cAAc;AACnE,eAAO;AAAA,MACX;AAEA,UAAI,6BAAM,aAAa;AACnB,4BAAQ,IAAI,MAAM,mBAAmB;AACrC,cAAM,SAAS,UAAM,gCAAY,MAAM,YAAY,gBAAgB,gBAAgB;AACnF,eAAO,CAAC,CAAC;AAAA,MACb;AAAA,IACJ;AACA,YAAI,sCAAgB,WAAW,KAAK,SAAS,aAAa,EAAE,IAAI,GAAG;AAC/D,0BAAQ,IAAI,MAAM,cAAc;AAChC,gBAAM,4BAAY;AAAA,QACd,eAAe;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AACD,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX,SAAS,GAAQ;AACb,oCAAY,sBAAsB,GAAG,mBAAO;AAAA,EAChD;AACJ;AAEO,SAAS,cAA0B;AACtC,SAAO;AACX;",
6
6
  "names": []
7
7
  }
@@ -29,7 +29,7 @@ async function sendNav(part, userToSend, telegramParams) {
29
29
  try {
30
30
  if (userToSend) {
31
31
  const { nav: keyboard, text, parse_mode } = part;
32
- const textToSend = await (0, import_utilities.checkStatusInfo)(text != null ? text : "");
32
+ const textToSend = await (0, import_utilities.returnTextModifier)(text != null ? text : "");
33
33
  await (0, import_telegram.sendToTelegram)({
34
34
  userToSend,
35
35
  textToSend,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/sendNav.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { checkStatusInfo } from '../lib/utilities';\nimport type { Part, TelegramParams } from '../types/types';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\n\nexport async function sendNav(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n if (userToSend) {\n const { nav: keyboard, text, parse_mode } = part;\n const textToSend = await checkStatusInfo(text ?? '');\n\n await sendToTelegram({\n userToSend,\n textToSend,\n keyboard,\n telegramParams,\n parse_mode,\n });\n }\n } catch (e: any) {\n errorLogger('Error sendNav:', e, adapter);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAAgC;AAEhC,kBAAwB;AACxB,qBAA4B;AAE5B,eAAsB,QAAQ,MAAY,YAAoB,gBAA+C;AACzG,MAAI;AACA,QAAI,YAAY;AACZ,YAAM,EAAE,KAAK,UAAU,MAAM,WAAW,IAAI;AAC5C,YAAM,aAAa,UAAM,kCAAgB,sBAAQ,EAAE;AAEnD,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,kBAAkB,GAAG,mBAAO;AAAA,EAC5C;AACJ;",
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { returnTextModifier } from '../lib/utilities';\nimport type { Part, TelegramParams } from '../types/types';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\n\nexport async function sendNav(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n if (userToSend) {\n const { nav: keyboard, text, parse_mode } = part;\n const textToSend = await returnTextModifier(text ?? '');\n\n await sendToTelegram({\n userToSend,\n textToSend,\n keyboard,\n telegramParams,\n parse_mode,\n });\n }\n } catch (e: any) {\n errorLogger('Error sendNav:', e, adapter);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAAmC;AAEnC,kBAAwB;AACxB,qBAA4B;AAE5B,eAAsB,QAAQ,MAAY,YAAoB,gBAA+C;AACzG,MAAI;AACA,QAAI,YAAY;AACZ,YAAM,EAAE,KAAK,UAAU,MAAM,WAAW,IAAI;AAC5C,YAAM,aAAa,UAAM,qCAAmB,sBAAQ,EAAE;AAEtD,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,kBAAkB,GAAG,mBAAO;AAAA,EAC5C;AACJ;",
6
6
  "names": []
7
7
  }
@@ -41,10 +41,10 @@ function sendPic(part, userToSend, telegramParams, token, directoryPicture, time
41
41
  `curl -H "Autorisation: Bearer ${token.trim()}" "${newUrl}" > ${path}`,
42
42
  (error, stdout, stderr) => {
43
43
  if (stdout) {
44
- import_main.adapter.log.debug(`Stdout: ${stdout}`);
44
+ import_main.adapter.log.debug(`Stdout : "${stdout}"`);
45
45
  }
46
46
  if (stderr) {
47
- import_main.adapter.log.debug(`Stderr: ${stderr}`);
47
+ import_main.adapter.log.debug(`Stderr : "${stderr}"`);
48
48
  }
49
49
  if (error) {
50
50
  (0, import_logging.errorLogger)("Error in exec:", error, import_main.adapter);
@@ -52,12 +52,11 @@ function sendPic(part, userToSend, telegramParams, token, directoryPicture, time
52
52
  }
53
53
  }
54
54
  );
55
- import_main.adapter.log.debug(`Delay Time: ${delay}`);
55
+ import_main.adapter.log.debug(`Send Picture : { delay : ${delay} , path : ${path} }`);
56
56
  timeoutKey += 1;
57
57
  if (!(0, import_utils.validateDirectory)(import_main.adapter, directoryPicture)) {
58
58
  return;
59
59
  }
60
- import_main.adapter.log.debug(`Path: ${path}`);
61
60
  } else {
62
61
  return;
63
62
  }
@@ -74,7 +73,7 @@ function sendPic(part, userToSend, telegramParams, token, directoryPicture, time
74
73
  import_main.adapter.clearTimeout(item.timeout);
75
74
  });
76
75
  timeouts = timeouts.filter((item) => item.key !== timeoutKey);
77
- import_main.adapter.log.debug("Picture sent");
76
+ import_main.adapter.log.debug("Picture has been sent");
78
77
  },
79
78
  parseInt(String(element.delay))
80
79
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/sendpic.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { validateDirectory } from '../lib/utils';\nimport { exec } from 'child_process';\nimport { errorLogger } from './logging';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams, Timeouts } from '../types/types';\nimport { replaceAll } from '../lib/string';\nimport { isStartside } from '../lib/appUtils';\n\nexport function sendPic(\n part: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n token: string,\n directoryPicture: string,\n timeouts: Timeouts[],\n timeoutKey: string,\n): Timeouts[] {\n try {\n part.sendPic?.forEach(element => {\n const { id, delay, fileName } = element;\n let path = '';\n if (isStartside(id)) {\n const newUrl = replaceAll(id, '&amp;', '&');\n path = `${directoryPicture}${fileName}`;\n\n exec(\n `curl -H \"Autorisation: Bearer ${token.trim()}\" \"${newUrl}\" > ${path}`,\n (error: any, stdout: any, stderr: any) => {\n if (stdout) {\n adapter.log.debug(`Stdout: ${stdout}`);\n }\n if (stderr) {\n adapter.log.debug(`Stderr: ${stderr}`);\n }\n if (error) {\n errorLogger('Error in exec:', error, adapter);\n return;\n }\n },\n );\n\n adapter.log.debug(`Delay Time: ${delay}`);\n timeoutKey += 1;\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n\n adapter.log.debug(`Path: ${path}`);\n } else {\n return;\n }\n\n const timeout = adapter.setTimeout(\n async () => {\n await sendToTelegram({\n userToSend,\n textToSend: path,\n telegramParams,\n });\n let timeoutToClear: Timeouts[] = [];\n timeoutToClear = timeouts.filter(item => item.key == timeoutKey);\n timeoutToClear.forEach(item => {\n adapter.clearTimeout(item.timeout);\n });\n\n timeouts = timeouts.filter(item => item.key !== timeoutKey);\n\n adapter.log.debug('Picture sent');\n },\n parseInt(String(element.delay)),\n );\n\n if (timeout) {\n timeouts.push({ key: timeoutKey, timeout: timeout });\n }\n });\n return timeouts;\n } catch (e: any) {\n errorLogger('Error send pic:', e, adapter);\n }\n return timeouts;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,mBAAkC;AAClC,2BAAqB;AACrB,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAA4B;AAErB,SAAS,QACZ,MACA,YACA,gBACA,OACA,kBACA,UACA,YACU;AAjBd;AAkBI,MAAI;AACA,eAAK,YAAL,mBAAc,QAAQ,aAAW;AAC7B,YAAM,EAAE,IAAI,OAAO,SAAS,IAAI;AAChC,UAAI,OAAO;AACX,cAAI,6BAAY,EAAE,GAAG;AACjB,cAAM,aAAS,0BAAW,IAAI,SAAS,GAAG;AAC1C,eAAO,GAAG,gBAAgB,GAAG,QAAQ;AAErC;AAAA,UACI,iCAAiC,MAAM,KAAK,CAAC,MAAM,MAAM,OAAO,IAAI;AAAA,UACpE,CAAC,OAAY,QAAa,WAAgB;AACtC,gBAAI,QAAQ;AACR,kCAAQ,IAAI,MAAM,WAAW,MAAM,EAAE;AAAA,YACzC;AACA,gBAAI,QAAQ;AACR,kCAAQ,IAAI,MAAM,WAAW,MAAM,EAAE;AAAA,YACzC;AACA,gBAAI,OAAO;AACP,8CAAY,kBAAkB,OAAO,mBAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,eAAe,KAAK,EAAE;AACxC,sBAAc;AAEd,YAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,SAAS,IAAI,EAAE;AAAA,MACrC,OAAO;AACH;AAAA,MACJ;AAEA,YAAM,UAAU,oBAAQ;AAAA,QACpB,YAAY;AACR,oBAAM,gCAAe;AAAA,YACjB;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,UACJ,CAAC;AACD,cAAI,iBAA6B,CAAC;AAClC,2BAAiB,SAAS,OAAO,UAAQ,KAAK,OAAO,UAAU;AAC/D,yBAAe,QAAQ,UAAQ;AAC3B,gCAAQ,aAAa,KAAK,OAAO;AAAA,UACrC,CAAC;AAED,qBAAW,SAAS,OAAO,UAAQ,KAAK,QAAQ,UAAU;AAE1D,8BAAQ,IAAI,MAAM,cAAc;AAAA,QACpC;AAAA,QACA,SAAS,OAAO,QAAQ,KAAK,CAAC;AAAA,MAClC;AAEA,UAAI,SAAS;AACT,iBAAS,KAAK,EAAE,KAAK,YAAY,QAAiB,CAAC;AAAA,MACvD;AAAA,IACJ;AACA,WAAO;AAAA,EACX,SAAS,GAAQ;AACb,oCAAY,mBAAmB,GAAG,mBAAO;AAAA,EAC7C;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { validateDirectory } from '../lib/utils';\nimport { exec } from 'child_process';\nimport { errorLogger } from './logging';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams, Timeouts } from '../types/types';\nimport { replaceAll } from '../lib/string';\nimport { isStartside } from '../lib/appUtils';\n\nexport function sendPic(\n part: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n token: string,\n directoryPicture: string,\n timeouts: Timeouts[],\n timeoutKey: string,\n): Timeouts[] {\n try {\n part.sendPic?.forEach(element => {\n const { id, delay, fileName } = element;\n let path = '';\n if (isStartside(id)) {\n const newUrl = replaceAll(id, '&amp;', '&');\n path = `${directoryPicture}${fileName}`;\n\n exec(\n `curl -H \"Autorisation: Bearer ${token.trim()}\" \"${newUrl}\" > ${path}`,\n (error: any, stdout: any, stderr: any) => {\n if (stdout) {\n adapter.log.debug(`Stdout : \"${stdout}\"`);\n }\n if (stderr) {\n adapter.log.debug(`Stderr : \"${stderr}\"`);\n }\n if (error) {\n errorLogger('Error in exec:', error, adapter);\n return;\n }\n },\n );\n\n adapter.log.debug(`Send Picture : { delay : ${delay} , path : ${path} }`);\n timeoutKey += 1;\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n } else {\n return;\n }\n\n const timeout = adapter.setTimeout(\n async () => {\n await sendToTelegram({\n userToSend,\n textToSend: path,\n telegramParams,\n });\n let timeoutToClear: Timeouts[] = [];\n timeoutToClear = timeouts.filter(item => item.key == timeoutKey);\n timeoutToClear.forEach(item => {\n adapter.clearTimeout(item.timeout);\n });\n\n timeouts = timeouts.filter(item => item.key !== timeoutKey);\n\n adapter.log.debug('Picture has been sent');\n },\n parseInt(String(element.delay)),\n );\n\n if (timeout) {\n timeouts.push({ key: timeoutKey, timeout });\n }\n });\n return timeouts;\n } catch (e: any) {\n errorLogger('Error send pic:', e, adapter);\n }\n return timeouts;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,mBAAkC;AAClC,2BAAqB;AACrB,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAA4B;AAErB,SAAS,QACZ,MACA,YACA,gBACA,OACA,kBACA,UACA,YACU;AAjBd;AAkBI,MAAI;AACA,eAAK,YAAL,mBAAc,QAAQ,aAAW;AAC7B,YAAM,EAAE,IAAI,OAAO,SAAS,IAAI;AAChC,UAAI,OAAO;AACX,cAAI,6BAAY,EAAE,GAAG;AACjB,cAAM,aAAS,0BAAW,IAAI,SAAS,GAAG;AAC1C,eAAO,GAAG,gBAAgB,GAAG,QAAQ;AAErC;AAAA,UACI,iCAAiC,MAAM,KAAK,CAAC,MAAM,MAAM,OAAO,IAAI;AAAA,UACpE,CAAC,OAAY,QAAa,WAAgB;AACtC,gBAAI,QAAQ;AACR,kCAAQ,IAAI,MAAM,aAAa,MAAM,GAAG;AAAA,YAC5C;AACA,gBAAI,QAAQ;AACR,kCAAQ,IAAI,MAAM,aAAa,MAAM,GAAG;AAAA,YAC5C;AACA,gBAAI,OAAO;AACP,8CAAY,kBAAkB,OAAO,mBAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,4BAA4B,KAAK,aAAa,IAAI,IAAI;AACxE,sBAAc;AAEd,YAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,QACJ;AAAA,MACJ,OAAO;AACH;AAAA,MACJ;AAEA,YAAM,UAAU,oBAAQ;AAAA,QACpB,YAAY;AACR,oBAAM,gCAAe;AAAA,YACjB;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,UACJ,CAAC;AACD,cAAI,iBAA6B,CAAC;AAClC,2BAAiB,SAAS,OAAO,UAAQ,KAAK,OAAO,UAAU;AAC/D,yBAAe,QAAQ,UAAQ;AAC3B,gCAAQ,aAAa,KAAK,OAAO;AAAA,UACrC,CAAC;AAED,qBAAW,SAAS,OAAO,UAAQ,KAAK,QAAQ,UAAU;AAE1D,8BAAQ,IAAI,MAAM,uBAAuB;AAAA,QAC7C;AAAA,QACA,SAAS,OAAO,QAAQ,KAAK,CAAC;AAAA,MAClC;AAEA,UAAI,SAAS;AACT,iBAAS,KAAK,EAAE,KAAK,YAAY,QAAQ,CAAC;AAAA,MAC9C;AAAA,IACJ;AACA,WAAO;AAAA,EACX,SAAS,GAAQ;AACb,oCAAY,mBAAmB,GAAG,mBAAO;AAAA,EAC7C;AACA,SAAO;AACX;",
6
6
  "names": []
7
7
  }
@@ -31,6 +31,7 @@ var import_string = require("../lib/string");
31
31
  var import_utils = require("../lib/utils");
32
32
  var import_config = require("../config/config");
33
33
  var import_setStateIdsToListenTo = require("./setStateIdsToListenTo");
34
+ var import_exchangeValue = require("../lib/exchangeValue");
34
35
  const modifiedValue = (valueFromSubmenu, value) => {
35
36
  return value.includes(import_config.config.modifiedValue) ? value.replace(import_config.config.modifiedValue, valueFromSubmenu) : valueFromSubmenu;
36
37
  };
@@ -61,15 +62,15 @@ const setstateIobroker = async ({
61
62
  (0, import_logging.errorLogger)("Error Setstate", error, import_main.adapter);
62
63
  }
63
64
  };
64
- const setValue = async (id, value, SubmenuValuePriority, valueFromSubmenu, ack) => {
65
+ const setValue = async (id, value, valueFromSubmenu, ack) => {
65
66
  try {
66
- const valueToSet = SubmenuValuePriority ? modifiedValue(String(valueFromSubmenu), value) : await isDynamicValueToSet(value);
67
+ const valueToSet = (0, import_utils.isDefined)(value) && (0, import_string.isNonEmptyString)(value) ? await isDynamicValueToSet(value) : modifiedValue(String(valueFromSubmenu), value);
67
68
  await setstateIobroker({ id, value: valueToSet, ack });
68
69
  } catch (error) {
69
70
  (0, import_logging.errorLogger)("Error setValue", error, import_main.adapter);
70
71
  }
71
72
  };
72
- const handleSetState = async (part, userToSend, valueFromSubmenu, SubmenuValuePriority, telegramParams) => {
73
+ const handleSetState = async (part, userToSend, valueFromSubmenu, telegramParams) => {
73
74
  try {
74
75
  if (!part.switch) {
75
76
  return;
@@ -105,14 +106,13 @@ const handleSetState = async (part, userToSend, valueFromSubmenu, SubmenuValuePr
105
106
  });
106
107
  } else {
107
108
  returnText = returnText.replace(/'/g, '"');
108
- const textToSend = returnText.slice(0, returnText.indexOf("{")).trim();
109
- const { json, isValidJson } = (0, import_string.parseJSON)(
110
- returnText.slice(returnText.indexOf("{"), returnText.indexOf("}") + 1)
111
- );
109
+ const { substring } = (0, import_string.decomposeText)(returnText, '{"id":', "}");
110
+ const { json, isValidJson } = (0, import_string.parseJSON)(substring);
112
111
  if (!isValidJson) {
113
112
  return;
114
113
  }
115
- json.text = json.text + returnText.slice(returnText.indexOf("}") + 1);
114
+ const text2 = returnText.replace(substring, json.text);
115
+ const { textToSend } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, text2, valueFromSubmenu);
116
116
  await (0, import_telegram.sendToTelegram)({
117
117
  userToSend,
118
118
  textToSend,
@@ -130,7 +130,7 @@ const handleSetState = async (part, userToSend, valueFromSubmenu, SubmenuValuePr
130
130
  const state = await import_main.adapter.getForeignStateAsync(ID);
131
131
  state ? await setstateIobroker({ id: ID, value: !state.val, ack }) : await setstateIobroker({ id: ID, value: false, ack });
132
132
  } else {
133
- await setValue(ID, value, SubmenuValuePriority, valueFromSubmenu, ack);
133
+ await setValue(ID, value, valueFromSubmenu, ack);
134
134
  }
135
135
  }
136
136
  } catch (error) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/setstate.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { transformValueToTypeOfId } from '../lib/utilities';\nimport { setDynamicValue } from './dynamicValue';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { decomposeText, jsonString, parseJSON } from '../lib/string';\nimport { isDefined } from '../lib/utils';\nimport { config } from '../config/config';\nimport { addSetStateIds } from './setStateIdsToListenTo';\n\nconst modifiedValue = (valueFromSubmenu: string, value: string): string => {\n return value.includes(config.modifiedValue)\n ? value.replace(config.modifiedValue, valueFromSubmenu)\n : valueFromSubmenu;\n};\n\nconst isDynamicValueToSet = async (value: string | number | boolean): Promise<string | number | boolean> => {\n if (typeof value === 'string' && value.includes(config.dynamicValue.start)) {\n const { substring, substringExcludeSearch: id } = decomposeText(\n value,\n config.dynamicValue.start,\n config.dynamicValue.end,\n );\n\n const newValue = await adapter.getForeignStateAsync(id);\n\n return value.replace(substring, String(newValue?.val));\n }\n return value;\n};\n\nexport const setstateIobroker = async ({\n id,\n value,\n ack,\n}: {\n id: string;\n value: string | number | boolean;\n ack: boolean;\n}): Promise<void> => {\n try {\n const val = await transformValueToTypeOfId(id, value);\n\n adapter.log.debug(`Value to Set: ${jsonString(val)}`);\n if (isDefined(val)) {\n await adapter.setForeignStateAsync(id, val, ack);\n }\n } catch (error: any) {\n errorLogger('Error Setstate', error, adapter);\n }\n};\n\nconst setValue = async (\n id: string,\n value: string,\n SubmenuValuePriority: boolean,\n valueFromSubmenu: string | number,\n ack: boolean,\n): Promise<void> => {\n try {\n const valueToSet = SubmenuValuePriority\n ? modifiedValue(String(valueFromSubmenu), value)\n : await isDynamicValueToSet(value);\n\n await setstateIobroker({ id, value: valueToSet, ack });\n } catch (error: any) {\n errorLogger('Error setValue', error, adapter);\n }\n};\n\nexport const handleSetState = async (\n part: Part,\n userToSend: string,\n valueFromSubmenu: string | number,\n SubmenuValuePriority: boolean,\n telegramParams: TelegramParams,\n): Promise<void> => {\n try {\n if (!part.switch) {\n return;\n }\n for (const { returnText: text, id: ID, parse_mode, confirm, ack, toggle, value } of part.switch) {\n let returnText = text;\n if (returnText.includes(config.setDynamicValue)) {\n const { confirmText, id } = await setDynamicValue(\n returnText,\n ack,\n ID,\n userToSend,\n telegramParams,\n parse_mode,\n confirm,\n );\n\n if (confirm) {\n await addSetStateIds({\n id: id ?? ID,\n confirm,\n returnText: confirmText,\n userToSend,\n });\n }\n }\n\n if (!returnText.includes(\"{'id':'\")) {\n await addSetStateIds({\n id: ID,\n confirm,\n returnText,\n userToSend,\n parse_mode,\n });\n } else {\n returnText = returnText.replace(/'/g, '\"');\n const textToSend = returnText.slice(0, returnText.indexOf('{')).trim();\n const { json, isValidJson } = parseJSON<{ text: string; id: string }>(\n returnText.slice(returnText.indexOf('{'), returnText.indexOf('}') + 1),\n );\n if (!isValidJson) {\n return;\n }\n\n json.text = json.text + returnText.slice(returnText.indexOf('}') + 1);\n\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n\n await addSetStateIds({\n id: json.id,\n confirm: true,\n returnText: json.text,\n userToSend: userToSend,\n });\n }\n if (toggle) {\n const state = await adapter.getForeignStateAsync(ID);\n\n state\n ? await setstateIobroker({ id: ID, value: !state.val, ack })\n : await setstateIobroker({ id: ID, value: false, ack });\n } else {\n await setValue(ID, value, SubmenuValuePriority, valueFromSubmenu, ack);\n }\n }\n } catch (error: any) {\n errorLogger('Error Switch', error, adapter);\n }\n};\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { transformValueToTypeOfId } from '../lib/utilities';\nimport { setDynamicValue } from './dynamicValue';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { decomposeText, isNonEmptyString, jsonString, parseJSON } from '../lib/string';\nimport { isDefined } from '../lib/utils';\nimport { config } from '../config/config';\nimport { addSetStateIds } from './setStateIdsToListenTo';\nimport { exchangeValue } from '../lib/exchangeValue';\n\nconst modifiedValue = (valueFromSubmenu: string, value: string): string => {\n return value.includes(config.modifiedValue)\n ? value.replace(config.modifiedValue, valueFromSubmenu)\n : valueFromSubmenu;\n};\n\nconst isDynamicValueToSet = async (value: string | number | boolean): Promise<string | number | boolean> => {\n if (typeof value === 'string' && value.includes(config.dynamicValue.start)) {\n const { substring, substringExcludeSearch: id } = decomposeText(\n value,\n config.dynamicValue.start,\n config.dynamicValue.end,\n );\n\n const newValue = await adapter.getForeignStateAsync(id);\n\n return value.replace(substring, String(newValue?.val));\n }\n return value;\n};\n\nexport const setstateIobroker = async ({\n id,\n value,\n ack,\n}: {\n id: string;\n value: string | number | boolean;\n ack: boolean;\n}): Promise<void> => {\n try {\n const val = await transformValueToTypeOfId(id, value);\n\n adapter.log.debug(`Value to Set: ${jsonString(val)}`);\n if (isDefined(val)) {\n await adapter.setForeignStateAsync(id, val, ack);\n }\n } catch (error: any) {\n errorLogger('Error Setstate', error, adapter);\n }\n};\n\nconst setValue = async (\n id: string,\n value: string,\n valueFromSubmenu: string | number | boolean,\n ack: boolean,\n): Promise<void> => {\n try {\n // If Value is set in Config the value will set to datapoint otherwise the value from submenu, so submenuValuePriority is obsolete\n const valueToSet =\n isDefined(value) && isNonEmptyString(value)\n ? await isDynamicValueToSet(value)\n : modifiedValue(String(valueFromSubmenu), value);\n\n await setstateIobroker({ id, value: valueToSet, ack });\n } catch (error: any) {\n errorLogger('Error setValue', error, adapter);\n }\n};\n\nexport const handleSetState = async (\n part: Part,\n userToSend: string,\n valueFromSubmenu: string | number | boolean,\n telegramParams: TelegramParams,\n): Promise<void> => {\n try {\n if (!part.switch) {\n return;\n }\n for (const { returnText: text, id: ID, parse_mode, confirm, ack, toggle, value } of part.switch) {\n let returnText = text;\n if (returnText.includes(config.setDynamicValue)) {\n const { confirmText, id } = await setDynamicValue(\n returnText,\n ack,\n ID,\n userToSend,\n telegramParams,\n parse_mode,\n confirm,\n );\n\n if (confirm) {\n await addSetStateIds({\n id: id ?? ID,\n confirm,\n returnText: confirmText,\n userToSend,\n });\n }\n }\n\n if (!returnText.includes(\"{'id':'\")) {\n await addSetStateIds({\n id: ID,\n confirm,\n returnText,\n userToSend,\n parse_mode,\n });\n } else {\n returnText = returnText.replace(/'/g, '\"');\n const { substring } = decomposeText(returnText, '{\"id\":', '}');\n const { json, isValidJson } = parseJSON<{ text: string; id: string }>(substring);\n if (!isValidJson) {\n return;\n }\n const text = returnText.replace(substring, json.text);\n const { textToSend } = exchangeValue(adapter, text, valueFromSubmenu);\n\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n\n await addSetStateIds({\n id: json.id,\n confirm: true,\n returnText: json.text,\n userToSend: userToSend,\n });\n }\n if (toggle) {\n const state = await adapter.getForeignStateAsync(ID);\n\n state\n ? await setstateIobroker({ id: ID, value: !state.val, ack })\n : await setstateIobroker({ id: ID, value: false, ack });\n } else {\n await setValue(ID, value, valueFromSubmenu, ack);\n }\n }\n } catch (error: any) {\n errorLogger('Error Switch', error, adapter);\n }\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["text"]
7
7
  }
@@ -46,7 +46,7 @@ async function shoppingListSubscribeStateAndDeleteItem(val, telegramParams) {
46
46
  res = await import_main.adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);
47
47
  if (res) {
48
48
  objData[user] = { idList };
49
- import_main.adapter.log.debug(`Alexa-shoppinglist: ${idList}`);
49
+ import_main.adapter.log.debug(`Alexa-shoppinglist : ${idList}`);
50
50
  if (!isSubscribed) {
51
51
  await (0, import_subscribeStates._subscribeForeignStates)(`alexa-shoppinglist.${idList}`);
52
52
  isSubscribed = true;
@@ -78,7 +78,7 @@ async function deleteMessageAndSendNewShoppingList(telegramParams, userToSend) {
78
78
  await (0, import_messageIds.deleteMessageIds)(user, telegramParams, "last");
79
79
  const result = await import_main.adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);
80
80
  if (result == null ? void 0 : result.val) {
81
- import_main.adapter.log.debug(`Result from Shoppinglist: ${(0, import_string.jsonString)(result)}`);
81
+ import_main.adapter.log.debug(`Result from Shoppinglist : ${(0, import_string.jsonString)(result)}`);
82
82
  const newId = `alexa-shoppinglist.${idList}`;
83
83
  const resultJson = (0, import_jsonTable.createKeyboardFromJson)((0, import_json.toJson)(result.val), null, newId, user);
84
84
  if ((resultJson == null ? void 0 : resultJson.text) && (resultJson == null ? void 0 : resultJson.keyboard)) {
@@ -86,7 +86,7 @@ async function deleteMessageAndSendNewShoppingList(telegramParams, userToSend) {
86
86
  }
87
87
  }
88
88
  } catch (e) {
89
- (0, import_logging.errorLogger)("Error deleteMessageAndSendNewShoppingList:", e, import_main.adapter);
89
+ (0, import_logging.errorLogger)("Error deleteMessageAndSendNewShoppingList", e, import_main.adapter);
90
90
  }
91
91
  }
92
92
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/shoppingList.ts"],
4
- "sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram.js';\nimport { _subscribeForeignStates } from './subscribeStates.js';\nimport { errorLogger } from './logging.js';\nimport { adapter } from '../main.js';\nimport type { TelegramParams } from '../types/types.js';\nimport { jsonString } from '../lib/string';\nimport { setstateIobroker } from './setstate';\nimport { toJson } from '../lib/json';\nimport { isDefined } from '../lib/utils';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nexport async function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n telegramParams: TelegramParams,\n): Promise<void> {\n try {\n let array, user, idList, instance, idItem, res;\n if (isDefined(val)) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n adapter.log.debug(`Alexa-shoppinglist: ${idList}`);\n if (!isSubscribed) {\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n isSubscribed = true;\n }\n await setstateIobroker({\n id: `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n value: true,\n ack: false,\n });\n return;\n }\n await sendToTelegram({\n userToSend: user,\n textToSend: 'Cannot delete the Item',\n telegramParams,\n parse_mode: true,\n });\n adapter.log.debug('Cannot delete the Item');\n }\n } catch (e: any) {\n errorLogger('Error shoppingList:', e, adapter);\n }\n}\n\nexport async function deleteMessageAndSendNewShoppingList(\n telegramParams: TelegramParams,\n userToSend: string,\n): Promise<void> {\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n await deleteMessageIds(user, telegramParams, 'last');\n\n const result = await adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result?.val) {\n adapter.log.debug(`Result from Shoppinglist: ${jsonString(result)}`);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(toJson(result.val), null, newId, user);\n if (resultJson?.text && resultJson?.keyboard) {\n sendToTelegramSubmenu(user, resultJson.text, resultJson.keyboard, telegramParams, true);\n }\n }\n } catch (e: any) {\n errorLogger('Error deleteMessageAndSendNewShoppingList:', e, adapter);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAAwC;AACxC,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAAiC;AACjC,kBAAuB;AACvB,mBAA0B;AAO1B,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAsB,wCAClB,KACA,gBACa;AACb,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,YAAI,wBAAU,GAAG,GAAG;AAChB,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,oBAAQ,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAElG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,4BAAQ,IAAI,MAAM,uBAAuB,MAAM,EAAE;AACjD,YAAI,CAAC,cAAc;AACf,oBAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,yBAAe;AAAA,QACnB;AACA,kBAAM,kCAAiB;AAAA,UACnB,IAAI,UAAU,QAAQ,8BAA8B,MAAM;AAAA,UAC1D,OAAO;AAAA,UACP,KAAK;AAAA,QACT,CAAC;AACD;AAAA,MACJ;AACA,gBAAM,gCAAe;AAAA,QACjB,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AACD,0BAAQ,IAAI,MAAM,wBAAwB;AAAA,IAC9C;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,uBAAuB,GAAG,mBAAO;AAAA,EACjD;AACJ;AAEA,eAAsB,oCAClB,gBACA,YACa;AACb,MAAI;AACA,UAAM,OAAO;AACb,UAAM,SAAS,QAAQ,IAAI,EAAE;AAC7B,cAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,cAAM,oCAAiB,MAAM,gBAAgB,MAAM;AAEnD,UAAM,SAAS,MAAM,oBAAQ,qBAAqB,sBAAsB,MAAM,EAAE;AAChF,QAAI,iCAAQ,KAAK;AACb,0BAAQ,IAAI,MAAM,iCAA6B,0BAAW,MAAM,CAAC,EAAE;AACnE,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,YAAM,iBAAa,6CAAuB,oBAAO,OAAO,GAAG,GAAG,MAAM,OAAO,IAAI;AAC/E,WAAI,yCAAY,UAAQ,yCAAY,WAAU;AAC1C,mDAAsB,MAAM,WAAW,MAAM,WAAW,UAAU,gBAAgB,IAAI;AAAA,MAC1F;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,8CAA8C,GAAG,mBAAO;AAAA,EACxE;AACJ;",
4
+ "sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram.js';\nimport { _subscribeForeignStates } from './subscribeStates.js';\nimport { errorLogger } from './logging.js';\nimport { adapter } from '../main.js';\nimport type { TelegramParams } from '../types/types.js';\nimport { jsonString } from '../lib/string';\nimport { setstateIobroker } from './setstate';\nimport { toJson } from '../lib/json';\nimport { isDefined } from '../lib/utils';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nexport async function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n telegramParams: TelegramParams,\n): Promise<void> {\n try {\n let array, user, idList, instance, idItem, res;\n if (isDefined(val)) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n adapter.log.debug(`Alexa-shoppinglist : ${idList}`);\n if (!isSubscribed) {\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n isSubscribed = true;\n }\n await setstateIobroker({\n id: `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n value: true,\n ack: false,\n });\n return;\n }\n await sendToTelegram({\n userToSend: user,\n textToSend: 'Cannot delete the Item',\n telegramParams,\n parse_mode: true,\n });\n adapter.log.debug('Cannot delete the Item');\n }\n } catch (e: any) {\n errorLogger('Error shoppingList:', e, adapter);\n }\n}\n\nexport async function deleteMessageAndSendNewShoppingList(\n telegramParams: TelegramParams,\n userToSend: string,\n): Promise<void> {\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n await deleteMessageIds(user, telegramParams, 'last');\n\n const result = await adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result?.val) {\n adapter.log.debug(`Result from Shoppinglist : ${jsonString(result)}`);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(toJson(result.val), null, newId, user);\n if (resultJson?.text && resultJson?.keyboard) {\n sendToTelegramSubmenu(user, resultJson.text, resultJson.keyboard, telegramParams, true);\n }\n }\n } catch (e: any) {\n errorLogger('Error deleteMessageAndSendNewShoppingList', e, adapter);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAAwC;AACxC,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAAiC;AACjC,kBAAuB;AACvB,mBAA0B;AAO1B,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAsB,wCAClB,KACA,gBACa;AACb,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,YAAI,wBAAU,GAAG,GAAG;AAChB,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,oBAAQ,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAElG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,4BAAQ,IAAI,MAAM,wBAAwB,MAAM,EAAE;AAClD,YAAI,CAAC,cAAc;AACf,oBAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,yBAAe;AAAA,QACnB;AACA,kBAAM,kCAAiB;AAAA,UACnB,IAAI,UAAU,QAAQ,8BAA8B,MAAM;AAAA,UAC1D,OAAO;AAAA,UACP,KAAK;AAAA,QACT,CAAC;AACD;AAAA,MACJ;AACA,gBAAM,gCAAe;AAAA,QACjB,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AACD,0BAAQ,IAAI,MAAM,wBAAwB;AAAA,IAC9C;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,uBAAuB,GAAG,mBAAO;AAAA,EACjD;AACJ;AAEA,eAAsB,oCAClB,gBACA,YACa;AACb,MAAI;AACA,UAAM,OAAO;AACb,UAAM,SAAS,QAAQ,IAAI,EAAE;AAC7B,cAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,cAAM,oCAAiB,MAAM,gBAAgB,MAAM;AAEnD,UAAM,SAAS,MAAM,oBAAQ,qBAAqB,sBAAsB,MAAM,EAAE;AAChF,QAAI,iCAAQ,KAAK;AACb,0BAAQ,IAAI,MAAM,kCAA8B,0BAAW,MAAM,CAAC,EAAE;AACpE,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,YAAM,iBAAa,6CAAuB,oBAAO,OAAO,GAAG,GAAG,MAAM,OAAO,IAAI;AAC/E,WAAI,yCAAY,UAAQ,yCAAY,WAAU;AAC1C,mDAAsB,MAAM,WAAW,MAAM,WAAW,UAAU,gBAAgB,IAAI;AAAA,MAC1F;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,6CAA6C,GAAG,mBAAO;AAAA,EACvE;AACJ;",
6
6
  "names": []
7
7
  }
@@ -66,28 +66,14 @@ const createSubmenuPercent = (obj) => {
66
66
  }
67
67
  return { text: obj.text, keyboard, device: menuToHandle };
68
68
  };
69
- const setFirstMenuValue = async ({ telegramParams, userToSend, part }) => {
70
- let val;
71
- import_main.adapter.log.debug(`SplitData: ${(0, import_string.jsonString)(splittedData)}`);
72
- if (splittedData[1].split(".")[1] == "false") {
69
+ const setMenuValue = async ({ telegramParams, userToSend, part, menuNumber }) => {
70
+ let val = splittedData[menuNumber].split(".")[1];
71
+ if (val === "false") {
73
72
  val = false;
74
- } else if (splittedData[1].split(".")[1] == "true") {
73
+ } else if (val === "true") {
75
74
  val = true;
76
- } else {
77
- val = splittedData[1].split(".")[1];
78
75
  }
79
- await (0, import_setstate.handleSetState)(part, userToSend, val, true, telegramParams);
80
- };
81
- const setSecondMenuValue = async ({ telegramParams, part, userToSend }) => {
82
- let val;
83
- if (splittedData[2].split(".")[1] == "false") {
84
- val = false;
85
- } else if (splittedData[2].split(".")[1] == "true") {
86
- val = true;
87
- } else {
88
- val = splittedData[2].split(".")[1];
89
- }
90
- await (0, import_setstate.handleSetState)(part, userToSend, val, true, telegramParams);
76
+ await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
91
77
  };
92
78
  const createSubmenuNumber = ({
93
79
  cbData,
@@ -152,7 +138,7 @@ const createSubmenuNumber = ({
152
138
  if (rowEntries != 0) {
153
139
  keyboard.inline_keyboard.push(menu);
154
140
  }
155
- import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
141
+ import_main.adapter.log.debug(`Keyboard : ${(0, import_string.jsonString)(keyboard)}`);
156
142
  return { text, keyboard, menuToHandle };
157
143
  };
158
144
  const createSwitchMenu = ({
@@ -201,7 +187,7 @@ async function callSubMenu({
201
187
  allMenusWithData,
202
188
  menus
203
189
  });
204
- import_main.adapter.log.debug(`Submenu: ${(0, import_string.jsonString)(obj)}`);
190
+ import_main.adapter.log.debug(`Submenu : ${(0, import_string.jsonString)(obj)}`);
205
191
  if ((obj == null ? void 0 : obj.text) && (obj == null ? void 0 : obj.keyboard)) {
206
192
  (0, import_telegram.sendToTelegramSubmenu)(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);
207
193
  }
@@ -218,48 +204,51 @@ async function subMenu({
218
204
  allMenusWithData,
219
205
  menus
220
206
  }) {
207
+ var _a, _b, _c;
221
208
  try {
222
209
  import_main.adapter.log.debug(`Menu : ${menuString}`);
223
- const text = await (0, import_utilities.checkStatusInfo)(part.text);
224
- const { cbData, menuToHandle, val } = (0, import_splitValues.getMenuValues)(menuString);
225
- if ((0, import_validateMenus.isDeleteMenu)(cbData) && menuToHandle) {
210
+ const text = await (0, import_utilities.returnTextModifier)(part.text);
211
+ if ((0, import_validateMenus.isDeleteMenu)(menuString)) {
226
212
  await (0, import_messageIds.deleteMessageIds)(userToSend, telegramParams, "all");
227
- if ((0, import_string.isNonEmptyString)(menuToHandle)) {
228
- return { navToGoBack: menuToHandle };
213
+ const menu = (_c = (_b = (_a = menuString.split(":")) == null ? void 0 : _a[2]) == null ? void 0 : _b.split('"')) == null ? void 0 : _c[0];
214
+ if (menu && (0, import_string.isNonEmptyString)(menu)) {
215
+ return { navToGoBack: menu };
229
216
  }
230
217
  }
218
+ const { cbData, menuToHandle, val } = (0, import_splitValues.getMenuValues)(menuString);
231
219
  if ((0, import_validateMenus.isCreateSwitch)(cbData) && menuToHandle) {
232
220
  return createSwitchMenu({ cbData, text, menuToHandle });
233
221
  }
234
222
  if ((0, import_validateMenus.isFirstMenuValue)(cbData)) {
235
- await setFirstMenuValue({
223
+ await setMenuValue({
236
224
  part,
237
225
  userToSend,
238
- telegramParams
226
+ telegramParams,
227
+ menuNumber: 1
239
228
  });
240
229
  }
241
230
  if ((0, import_validateMenus.isSecondMenuValue)(cbData)) {
242
- await setSecondMenuValue({ part, userToSend, telegramParams });
231
+ await setMenuValue({ part, userToSend, telegramParams, menuNumber: 2 });
243
232
  }
244
233
  if ((0, import_validateMenus.isCreateDynamicSwitch)(cbData) && menuToHandle) {
245
234
  return (0, import_dynamicSwitchMenu.createDynamicSwitchMenu)(menuString, menuToHandle, text);
246
235
  }
247
236
  if ((0, import_validateMenus.isSetDynamicSwitchVal)(cbData) && val) {
248
- await (0, import_setstate.handleSetState)(part, userToSend, val, true, telegramParams);
237
+ await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
249
238
  }
250
239
  if ((0, import_validateMenus.isCreateSubmenuPercent)(menuString, cbData) && menuToHandle) {
251
240
  return createSubmenuPercent({ cbData, text, menuToHandle });
252
241
  }
253
242
  if ((0, import_validateMenus.isSetSubmenuPercent)(menuString, step)) {
254
243
  const value = parseInt(menuString.split(":")[1].split(",")[1]);
255
- await (0, import_setstate.handleSetState)(part, userToSend, value, true, telegramParams);
244
+ await (0, import_setstate.handleSetState)(part, userToSend, value, telegramParams);
256
245
  }
257
246
  if ((0, import_validateMenus.isCreateSubmenuNumber)(menuString, cbData) && menuToHandle) {
258
247
  return createSubmenuNumber({ cbData, text, menuToHandle });
259
248
  }
260
249
  if ((0, import_validateMenus.isSetSubmenuNumber)(menuString, cbData)) {
261
250
  const { value } = (0, import_splitValues.getSubmenuNumberValues)(menuString);
262
- await (0, import_setstate.handleSetState)(part, userToSend, value, true, telegramParams);
251
+ await (0, import_setstate.handleSetState)(part, userToSend, value, telegramParams);
263
252
  }
264
253
  if ((0, import_validateMenus.isMenuBack)(menuString)) {
265
254
  await back({