iobroker.telegram-menu 2.3.0 → 2.3.1

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 (47) hide show
  1. package/README.md +6 -0
  2. package/build/app/backMenu.js +1 -1
  3. package/build/app/backMenu.js.map +2 -2
  4. package/build/app/dynamicSwitchMenu.js +1 -1
  5. package/build/app/dynamicSwitchMenu.js.map +2 -2
  6. package/build/app/getstate.js +4 -3
  7. package/build/app/getstate.js.map +2 -2
  8. package/build/app/httpRequest.js +2 -2
  9. package/build/app/httpRequest.js.map +2 -2
  10. package/build/app/jsonTable.js +3 -3
  11. package/build/app/jsonTable.js.map +2 -2
  12. package/build/app/messageIds.js +7 -1
  13. package/build/app/messageIds.js.map +2 -2
  14. package/build/app/processData.js +7 -7
  15. package/build/app/processData.js.map +2 -2
  16. package/build/app/sendNav.js +1 -1
  17. package/build/app/sendNav.js.map +2 -2
  18. package/build/app/sendpic.js +4 -5
  19. package/build/app/sendpic.js.map +2 -2
  20. package/build/app/setstate.js +4 -4
  21. package/build/app/setstate.js.map +2 -2
  22. package/build/app/shoppingList.js +3 -3
  23. package/build/app/shoppingList.js.map +2 -2
  24. package/build/app/subMenu.js +15 -13
  25. package/build/app/subMenu.js.map +2 -2
  26. package/build/app/telegram.js +14 -9
  27. package/build/app/telegram.js.map +2 -2
  28. package/build/lib/appUtils.js +4 -5
  29. package/build/lib/appUtils.js.map +2 -2
  30. package/build/lib/utilities.js +9 -9
  31. package/build/lib/utilities.js.map +2 -2
  32. package/build/main.js +1 -3
  33. package/build/main.js.map +2 -2
  34. package/build/src/lib/appUtils.js +3 -3
  35. package/build/src/lib/appUtils.js.map +1 -1
  36. package/build/src/lib/utilities.js +1 -1
  37. package/build/src/lib/utilities.js.map +1 -1
  38. package/build/test/test/appUtils.test.js +12 -0
  39. package/build/test/test/appUtils.test.js.map +1 -1
  40. package/build/test/test/object.test.js +12 -0
  41. package/build/test/test/object.test.js.map +1 -1
  42. package/build/test/test/string.test.js +30 -6
  43. package/build/test/test/string.test.js.map +1 -1
  44. package/build/test/test/time.test.js +183 -198
  45. package/build/test/test/time.test.js.map +1 -1
  46. package/io-package.json +14 -14
  47. package/package.json +1 -1
package/README.md CHANGED
@@ -35,6 +35,12 @@ You can create different groups with separate menus, and then assign users to th
35
35
  Placeholder for the next version (at the beginning of the line):
36
36
  ### **WORK IN PROGRESS**
37
37
  -->
38
+ ### 2.3.1 (2025-05-20)
39
+
40
+
41
+ - FIX: #309 SetState only sets false
42
+ - FIX: #311 Delete does not navigate
43
+
38
44
  ### 2.3.0 (2025-05-12)
39
45
 
40
46
  - FIX: #303 GetState output in incorrect order
@@ -83,7 +83,7 @@ async function switchBack(userToSend, allMenusWithData, menus, lastMenu = false)
83
83
  const { text, parse_mode: parse_mode2 } = allMenusWithData[foundedMenu][lastListElement2];
84
84
  let textToSend2 = text;
85
85
  if (textToSend2) {
86
- textToSend2 = await (0, import_utilities.checkStatusInfo)(textToSend2);
86
+ textToSend2 = await (0, import_utilities.returnTextModifier)(textToSend2);
87
87
  }
88
88
  if ((_h = backMenu[userToSend]) == null ? void 0 : _h.last) {
89
89
  backMenu[userToSend].last = (_i = list2.pop()) != null ? _i : "";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/backMenu.ts"],
4
- "sourcesContent": ["import { errorLogger } from './logging';\nimport type { BackMenu, Keyboard, MenuData, Navigation } from '../types/types';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { adapter } from '../main';\nimport { jsonString } from '../lib/string';\nimport { backMenuLength } from '../config/config';\n\nconst backMenu: BackMenu = {};\n\nexport function backMenuFunc({\n activePage,\n navigation,\n userToSend,\n}: {\n activePage: string;\n navigation?: Navigation;\n userToSend: string;\n}): void {\n if (!navigation || !jsonString(navigation).split(`\"`)[1].includes('menu:')) {\n const list = backMenu[userToSend]?.list;\n const lastMenu = backMenu[userToSend]?.last;\n\n if (list?.length === backMenuLength) {\n list.shift();\n }\n if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n\n if (lastMenu && lastMenu !== '' && list) {\n list.push(lastMenu);\n }\n backMenu[userToSend].last = activePage;\n }\n}\n\nexport async function switchBack(\n userToSend: string,\n allMenusWithData: MenuData,\n menus: string[],\n lastMenu = false,\n): Promise<{ textToSend: string | undefined; keyboard: Keyboard; parse_mode: boolean | undefined } | undefined> {\n try {\n const list = backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n const lastListElement = list[list.length - 1];\n const lastElement = backMenu[userToSend]?.last;\n let keyboard: Keyboard;\n let foundedMenu = '';\n\n if (list.length) {\n for (const menu of menus) {\n const nav = lastElement ? allMenusWithData[menu]?.[lastElement]?.nav : undefined;\n const navBefore = allMenusWithData[menu]?.[lastListElement]?.nav;\n\n if (lastMenu && nav) {\n keyboard = nav;\n foundedMenu = menu;\n break;\n } else if (navBefore && !lastMenu) {\n keyboard = navBefore;\n foundedMenu = menu;\n break;\n }\n\n adapter.log.debug(`Menu call not found in this Menu: ${menu}`);\n }\n\n if (keyboard && foundedMenu != '') {\n if (!lastMenu) {\n const list = backMenu[userToSend]?.list;\n const listLength = list ? list.length - 1 : 0;\n const lastListElement = list?.[listLength];\n if (!lastListElement) {\n return;\n }\n const { text, parse_mode } = allMenusWithData[foundedMenu][lastListElement];\n let textToSend = text;\n if (textToSend) {\n textToSend = await checkStatusInfo(textToSend);\n }\n if (backMenu[userToSend]?.last) {\n backMenu[userToSend].last = list.pop() ?? '';\n }\n\n return { textToSend, keyboard, parse_mode };\n }\n\n const lastElement = backMenu[userToSend]?.last;\n if (!lastElement) {\n return;\n }\n const { parse_mode, text: textToSend } = allMenusWithData[foundedMenu][lastElement];\n\n return { textToSend, keyboard, parse_mode };\n }\n }\n } catch (e: any) {\n errorLogger('Error in switchBack:', e, adapter);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAgC;AAChC,kBAAwB;AACxB,oBAA2B;AAC3B,oBAA+B;AAE/B,MAAM,WAAqB,CAAC;AAErB,SAAS,aAAa;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AAjBT;AAkBI,MAAI,CAAC,cAAc,KAAC,0BAAW,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AACxE,UAAM,QAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,UAAM,YAAW,cAAS,UAAU,MAAnB,mBAAsB;AAEvC,SAAI,6BAAM,YAAW,8BAAgB;AACjC,WAAK,MAAM;AAAA,IACf;AACA,QAAI,CAAC,SAAS,UAAU,GAAG;AACvB,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AAEA,QAAI,YAAY,aAAa,MAAM,MAAM;AACrC,WAAK,KAAK,QAAQ;AAAA,IACtB;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACJ;AAEA,eAAsB,WAClB,YACA,kBACA,OACA,WAAW,OACiG;AAzChH;AA0CI,MAAI;AACA,UAAM,SAAO,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AACvE,UAAM,kBAAkB,KAAK,KAAK,SAAS,CAAC;AAC5C,UAAM,eAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,QAAI;AACJ,QAAI,cAAc;AAElB,QAAI,KAAK,QAAQ;AACb,iBAAW,QAAQ,OAAO;AACtB,cAAM,MAAM,eAAc,4BAAiB,IAAI,MAArB,mBAAyB,iBAAzB,mBAAuC,MAAM;AACvE,cAAM,aAAY,4BAAiB,IAAI,MAArB,mBAAyB,qBAAzB,mBAA2C;AAE7D,YAAI,YAAY,KAAK;AACjB,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ,WAAW,aAAa,CAAC,UAAU;AAC/B,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,qCAAqC,IAAI,EAAE;AAAA,MACjE;AAEA,UAAI,YAAY,eAAe,IAAI;AAC/B,YAAI,CAAC,UAAU;AACX,gBAAMA,SAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,gBAAM,aAAaA,QAAOA,MAAK,SAAS,IAAI;AAC5C,gBAAMC,mBAAkBD,SAAA,gBAAAA,MAAO;AAC/B,cAAI,CAACC,kBAAiB;AAClB;AAAA,UACJ;AACA,gBAAM,EAAE,MAAM,YAAAC,YAAW,IAAI,iBAAiB,WAAW,EAAED,gBAAe;AAC1E,cAAIE,cAAa;AACjB,cAAIA,aAAY;AACZ,YAAAA,cAAa,UAAM,kCAAgBA,WAAU;AAAA,UACjD;AACA,eAAI,cAAS,UAAU,MAAnB,mBAAsB,MAAM;AAC5B,qBAAS,UAAU,EAAE,QAAO,KAAAH,MAAK,IAAI,MAAT,YAAc;AAAA,UAC9C;AAEA,iBAAO,EAAE,YAAAG,aAAY,UAAU,YAAAD,YAAW;AAAA,QAC9C;AAEA,cAAME,gBAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,YAAI,CAACA,cAAa;AACd;AAAA,QACJ;AACA,cAAM,EAAE,YAAY,MAAM,WAAW,IAAI,iBAAiB,WAAW,EAAEA,YAAW;AAElF,eAAO,EAAE,YAAY,UAAU,WAAW;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,wBAAwB,GAAG,mBAAO;AAAA,EAClD;AACJ;",
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport type { BackMenu, Keyboard, MenuData, Navigation } from '../types/types';\nimport { returnTextModifier } from '../lib/utilities';\nimport { adapter } from '../main';\nimport { jsonString } from '../lib/string';\nimport { backMenuLength } from '../config/config';\n\nconst backMenu: BackMenu = {};\n\nexport function backMenuFunc({\n activePage,\n navigation,\n userToSend,\n}: {\n activePage: string;\n navigation?: Navigation;\n userToSend: string;\n}): void {\n if (!navigation || !jsonString(navigation).split(`\"`)[1].includes('menu:')) {\n const list = backMenu[userToSend]?.list;\n const lastMenu = backMenu[userToSend]?.last;\n\n if (list?.length === backMenuLength) {\n list.shift();\n }\n if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n\n if (lastMenu && lastMenu !== '' && list) {\n list.push(lastMenu);\n }\n backMenu[userToSend].last = activePage;\n }\n}\n\nexport async function switchBack(\n userToSend: string,\n allMenusWithData: MenuData,\n menus: string[],\n lastMenu = false,\n): Promise<{ textToSend: string | undefined; keyboard: Keyboard; parse_mode: boolean | undefined } | undefined> {\n try {\n const list = backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n const lastListElement = list[list.length - 1];\n const lastElement = backMenu[userToSend]?.last;\n let keyboard: Keyboard;\n let foundedMenu = '';\n\n if (list.length) {\n for (const menu of menus) {\n const nav = lastElement ? allMenusWithData[menu]?.[lastElement]?.nav : undefined;\n const navBefore = allMenusWithData[menu]?.[lastListElement]?.nav;\n\n if (lastMenu && nav) {\n keyboard = nav;\n foundedMenu = menu;\n break;\n } else if (navBefore && !lastMenu) {\n keyboard = navBefore;\n foundedMenu = menu;\n break;\n }\n\n adapter.log.debug(`Menu call not found in this Menu: ${menu}`);\n }\n\n if (keyboard && foundedMenu != '') {\n if (!lastMenu) {\n const list = backMenu[userToSend]?.list;\n const listLength = list ? list.length - 1 : 0;\n const lastListElement = list?.[listLength];\n if (!lastListElement) {\n return;\n }\n const { text, parse_mode } = allMenusWithData[foundedMenu][lastListElement];\n let textToSend = text;\n if (textToSend) {\n textToSend = await returnTextModifier(textToSend);\n }\n if (backMenu[userToSend]?.last) {\n backMenu[userToSend].last = list.pop() ?? '';\n }\n\n return { textToSend, keyboard, parse_mode };\n }\n\n const lastElement = backMenu[userToSend]?.last;\n if (!lastElement) {\n return;\n }\n const { parse_mode, text: textToSend } = allMenusWithData[foundedMenu][lastElement];\n\n return { textToSend, keyboard, parse_mode };\n }\n }\n } catch (e: any) {\n errorLogger('Error in switchBack:', e, adapter);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAmC;AACnC,kBAAwB;AACxB,oBAA2B;AAC3B,oBAA+B;AAE/B,MAAM,WAAqB,CAAC;AAErB,SAAS,aAAa;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AAjBT;AAkBI,MAAI,CAAC,cAAc,KAAC,0BAAW,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AACxE,UAAM,QAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,UAAM,YAAW,cAAS,UAAU,MAAnB,mBAAsB;AAEvC,SAAI,6BAAM,YAAW,8BAAgB;AACjC,WAAK,MAAM;AAAA,IACf;AACA,QAAI,CAAC,SAAS,UAAU,GAAG;AACvB,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AAEA,QAAI,YAAY,aAAa,MAAM,MAAM;AACrC,WAAK,KAAK,QAAQ;AAAA,IACtB;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACJ;AAEA,eAAsB,WAClB,YACA,kBACA,OACA,WAAW,OACiG;AAzChH;AA0CI,MAAI;AACA,UAAM,SAAO,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AACvE,UAAM,kBAAkB,KAAK,KAAK,SAAS,CAAC;AAC5C,UAAM,eAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,QAAI;AACJ,QAAI,cAAc;AAElB,QAAI,KAAK,QAAQ;AACb,iBAAW,QAAQ,OAAO;AACtB,cAAM,MAAM,eAAc,4BAAiB,IAAI,MAArB,mBAAyB,iBAAzB,mBAAuC,MAAM;AACvE,cAAM,aAAY,4BAAiB,IAAI,MAArB,mBAAyB,qBAAzB,mBAA2C;AAE7D,YAAI,YAAY,KAAK;AACjB,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ,WAAW,aAAa,CAAC,UAAU;AAC/B,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,qCAAqC,IAAI,EAAE;AAAA,MACjE;AAEA,UAAI,YAAY,eAAe,IAAI;AAC/B,YAAI,CAAC,UAAU;AACX,gBAAMA,SAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,gBAAM,aAAaA,QAAOA,MAAK,SAAS,IAAI;AAC5C,gBAAMC,mBAAkBD,SAAA,gBAAAA,MAAO;AAC/B,cAAI,CAACC,kBAAiB;AAClB;AAAA,UACJ;AACA,gBAAM,EAAE,MAAM,YAAAC,YAAW,IAAI,iBAAiB,WAAW,EAAED,gBAAe;AAC1E,cAAIE,cAAa;AACjB,cAAIA,aAAY;AACZ,YAAAA,cAAa,UAAM,qCAAmBA,WAAU;AAAA,UACpD;AACA,eAAI,cAAS,UAAU,MAAnB,mBAAsB,MAAM;AAC5B,qBAAS,UAAU,EAAE,QAAO,KAAAH,MAAK,IAAI,MAAT,YAAc;AAAA,UAC9C;AAEA,iBAAO,EAAE,YAAAG,aAAY,UAAU,YAAAD,YAAW;AAAA,QAC9C;AAEA,cAAME,gBAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,YAAI,CAACA,cAAa;AACd;AAAA,QACJ;AACA,cAAM,EAAE,YAAY,MAAM,WAAW,IAAI,iBAAiB,WAAW,EAAEA,YAAW;AAElF,eAAO,EAAE,YAAY,UAAU,WAAW;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,wBAAwB,GAAG,mBAAO;AAAA,EAClD;AACJ;",
6
6
  "names": ["list", "lastListElement", "parse_mode", "textToSend", "lastElement"]
7
7
  }
@@ -26,7 +26,7 @@ var import_utilities = require("../lib/utilities");
26
26
  var import_main = require("../main");
27
27
  async function createDynamicSwitchMenu(calledValue, device, text) {
28
28
  try {
29
- const changedCalledValue = await (0, import_utilities.checkStatusInfo)(calledValue);
29
+ const changedCalledValue = await (0, import_utilities.returnTextModifier)(calledValue);
30
30
  const splittedArray = changedCalledValue == null ? void 0 : changedCalledValue.replace(/"/g, "").split(":");
31
31
  if (!splittedArray) {
32
32
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/dynamicSwitchMenu.ts"],
4
- "sourcesContent": ["import { errorLogger } from './logging';\nimport type { KeyboardItems, Keyboard } from '../types/types';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { adapter } from '../main';\n\nasync function createDynamicSwitchMenu(\n calledValue: string,\n device: string,\n text: string,\n): Promise<{ text?: string; keyboard: Keyboard; device: string } | undefined> {\n try {\n const changedCalledValue = await checkStatusInfo(calledValue);\n const splittedArray: string[] | undefined = changedCalledValue?.replace(/\"/g, '').split(':');\n\n if (!splittedArray) {\n return;\n }\n device = splittedArray[2];\n const arrayOfValues = splittedArray[1]\n .replace('dynSwitch', '')\n .replace(/\\]/g, '')\n .replace(/\\[/g, '')\n .split(',');\n\n const lengthOfRow = parseInt(splittedArray[3]) || 6;\n\n const array: KeyboardItems[][] = [];\n const keyboard: Keyboard = { inline_keyboard: array };\n if (arrayOfValues) {\n let keyboardItemsArray: KeyboardItems[] = [];\n arrayOfValues.forEach((value, index: number) => {\n if (value.includes('|')) {\n const splittedValue = value.split('|');\n keyboardItemsArray.push({\n text: splittedValue[0],\n callback_data: `menu:dynS:${device}:${splittedValue[1]}`,\n });\n } else {\n keyboardItemsArray.push({\n text: value,\n callback_data: `menu:dynS:${device}:${value}`,\n });\n }\n if (\n ((index + 1) % lengthOfRow == 0 && index != 0 && arrayOfValues.length > 0) ||\n index + 1 == arrayOfValues.length\n ) {\n keyboard.inline_keyboard.push(keyboardItemsArray);\n keyboardItemsArray = [];\n }\n });\n return { text, keyboard, device };\n }\n } catch (e: any) {\n errorLogger('Error parsing dynSwitch:', e, adapter);\n }\n}\nexport { createDynamicSwitchMenu };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAgC;AAChC,kBAAwB;AAExB,eAAe,wBACX,aACA,QACA,MAC0E;AAC1E,MAAI;AACA,UAAM,qBAAqB,UAAM,kCAAgB,WAAW;AAC5D,UAAM,gBAAsC,yDAAoB,QAAQ,MAAM,IAAI,MAAM;AAExF,QAAI,CAAC,eAAe;AAChB;AAAA,IACJ;AACA,aAAS,cAAc,CAAC;AACxB,UAAM,gBAAgB,cAAc,CAAC,EAChC,QAAQ,aAAa,EAAE,EACvB,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,MAAM,GAAG;AAEd,UAAM,cAAc,SAAS,cAAc,CAAC,CAAC,KAAK;AAElD,UAAM,QAA2B,CAAC;AAClC,UAAM,WAAqB,EAAE,iBAAiB,MAAM;AACpD,QAAI,eAAe;AACf,UAAI,qBAAsC,CAAC;AAC3C,oBAAc,QAAQ,CAAC,OAAO,UAAkB;AAC5C,YAAI,MAAM,SAAS,GAAG,GAAG;AACrB,gBAAM,gBAAgB,MAAM,MAAM,GAAG;AACrC,6BAAmB,KAAK;AAAA,YACpB,MAAM,cAAc,CAAC;AAAA,YACrB,eAAe,aAAa,MAAM,IAAI,cAAc,CAAC,CAAC;AAAA,UAC1D,CAAC;AAAA,QACL,OAAO;AACH,6BAAmB,KAAK;AAAA,YACpB,MAAM;AAAA,YACN,eAAe,aAAa,MAAM,IAAI,KAAK;AAAA,UAC/C,CAAC;AAAA,QACL;AACA,aACM,QAAQ,KAAK,eAAe,KAAK,SAAS,KAAK,cAAc,SAAS,KACxE,QAAQ,KAAK,cAAc,QAC7B;AACE,mBAAS,gBAAgB,KAAK,kBAAkB;AAChD,+BAAqB,CAAC;AAAA,QAC1B;AAAA,MACJ,CAAC;AACD,aAAO,EAAE,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,4BAA4B,GAAG,mBAAO;AAAA,EACtD;AACJ;",
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport type { KeyboardItems, Keyboard } from '../types/types';\nimport { returnTextModifier } from '../lib/utilities';\nimport { adapter } from '../main';\n\nasync function createDynamicSwitchMenu(\n calledValue: string,\n device: string,\n text: string,\n): Promise<{ text?: string; keyboard: Keyboard; device: string } | undefined> {\n try {\n const changedCalledValue = await returnTextModifier(calledValue);\n const splittedArray: string[] | undefined = changedCalledValue?.replace(/\"/g, '').split(':');\n\n if (!splittedArray) {\n return;\n }\n device = splittedArray[2];\n const arrayOfValues = splittedArray[1]\n .replace('dynSwitch', '')\n .replace(/\\]/g, '')\n .replace(/\\[/g, '')\n .split(',');\n\n const lengthOfRow = parseInt(splittedArray[3]) || 6;\n\n const array: KeyboardItems[][] = [];\n const keyboard: Keyboard = { inline_keyboard: array };\n if (arrayOfValues) {\n let keyboardItemsArray: KeyboardItems[] = [];\n arrayOfValues.forEach((value, index: number) => {\n if (value.includes('|')) {\n const splittedValue = value.split('|');\n keyboardItemsArray.push({\n text: splittedValue[0],\n callback_data: `menu:dynS:${device}:${splittedValue[1]}`,\n });\n } else {\n keyboardItemsArray.push({\n text: value,\n callback_data: `menu:dynS:${device}:${value}`,\n });\n }\n if (\n ((index + 1) % lengthOfRow == 0 && index != 0 && arrayOfValues.length > 0) ||\n index + 1 == arrayOfValues.length\n ) {\n keyboard.inline_keyboard.push(keyboardItemsArray);\n keyboardItemsArray = [];\n }\n });\n return { text, keyboard, device };\n }\n } catch (e: any) {\n errorLogger('Error parsing dynSwitch:', e, adapter);\n }\n}\nexport { createDynamicSwitchMenu };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAmC;AACnC,kBAAwB;AAExB,eAAe,wBACX,aACA,QACA,MAC0E;AAC1E,MAAI;AACA,UAAM,qBAAqB,UAAM,qCAAmB,WAAW;AAC/D,UAAM,gBAAsC,yDAAoB,QAAQ,MAAM,IAAI,MAAM;AAExF,QAAI,CAAC,eAAe;AAChB;AAAA,IACJ;AACA,aAAS,cAAc,CAAC;AACxB,UAAM,gBAAgB,cAAc,CAAC,EAChC,QAAQ,aAAa,EAAE,EACvB,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,MAAM,GAAG;AAEd,UAAM,cAAc,SAAS,cAAc,CAAC,CAAC,KAAK;AAElD,UAAM,QAA2B,CAAC;AAClC,UAAM,WAAqB,EAAE,iBAAiB,MAAM;AACpD,QAAI,eAAe;AACf,UAAI,qBAAsC,CAAC;AAC3C,oBAAc,QAAQ,CAAC,OAAO,UAAkB;AAC5C,YAAI,MAAM,SAAS,GAAG,GAAG;AACrB,gBAAM,gBAAgB,MAAM,MAAM,GAAG;AACrC,6BAAmB,KAAK;AAAA,YACpB,MAAM,cAAc,CAAC;AAAA,YACrB,eAAe,aAAa,MAAM,IAAI,cAAc,CAAC,CAAC;AAAA,UAC1D,CAAC;AAAA,QACL,OAAO;AACH,6BAAmB,KAAK;AAAA,YACpB,MAAM;AAAA,YACN,eAAe,aAAa,MAAM,IAAI,KAAK;AAAA,UAC/C,CAAC;AAAA,QACL;AACA,aACM,QAAQ,KAAK,eAAe,KAAK,SAAS,KAAK,cAAc,SAAS,KACxE,QAAQ,KAAK,cAAc,QAC7B;AACE,mBAAS,gBAAgB,KAAK,kBAAkB;AAChD,+BAAqB,CAAC;AAAA,QAC1B;AAAA,MACJ,CAAC;AACD,aAAO,EAAE,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,4BAA4B,GAAG,mBAAO;AAAA,EACtD;AACJ;",
6
6
  "names": []
7
7
  }
@@ -76,7 +76,7 @@ async function getState(part, userToSend, telegramParams) {
76
76
  if (!error2) {
77
77
  modifiedTextToSend = textToSend;
78
78
  modifiedStateVal = calculated;
79
- import_main.adapter.log.debug(`TextToSend: ${modifiedTextToSend} val: ${modifiedStateVal}`);
79
+ import_main.adapter.log.debug(`textToSend : ${modifiedTextToSend} val : ${modifiedStateVal}`);
80
80
  }
81
81
  }
82
82
  if (modifiedTextToSend.includes(import_config.config.round.start)) {
@@ -126,9 +126,10 @@ async function getState(part, userToSend, telegramParams) {
126
126
  } = (0, import_string.getValueToExchange)(import_main.adapter, modifiedTextToSend, modifiedStateVal);
127
127
  modifiedStateVal = String(_val);
128
128
  modifiedTextToSend = _text;
129
- import_main.adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);
130
129
  const isNewline = (0, import_string.getNewline)(newline);
131
- valueArrayForCorrectOrder[index] = modifiedTextToSend.includes(import_config.config.rowSplitter) ? `${modifiedTextToSend.replace(import_config.config.rowSplitter, modifiedStateVal.toString())}${isNewline}` : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;
130
+ modifiedTextToSend = modifiedTextToSend.includes(import_config.config.rowSplitter) ? `${modifiedTextToSend.replace(import_config.config.rowSplitter, modifiedStateVal.toString())}${isNewline}` : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;
131
+ import_main.adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);
132
+ valueArrayForCorrectOrder[index] = modifiedTextToSend;
132
133
  });
133
134
  await Promise.all(promises);
134
135
  await (0, import_telegram.sendToTelegram)({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/getstate.ts"],
4
- "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, getValueToExchange, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`TextToSend: ${modifiedTextToSend} val: ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const {\n newValue: _val,\n textToSend: _text,\n error,\n } = getValueToExchange(adapter, modifiedTextToSend, modifiedStateVal);\n\n modifiedStateVal = String(_val);\n modifiedTextToSend = _text;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n const isNewline = getNewline(newline);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend.includes(config.rowSplitter)\n ? `${modifiedTextToSend.replace(config.rowSplitter, modifiedStateVal.toString())}${isNewline}`\n : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;\n });\n await Promise.all(promises);\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, getValueToExchange, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`textToSend : ${modifiedTextToSend} val : ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const {\n newValue: _val,\n textToSend: _text,\n error,\n } = getValueToExchange(adapter, modifiedTextToSend, modifiedStateVal);\n\n modifiedStateVal = String(_val);\n modifiedTextToSend = _text;\n\n const isNewline = getNewline(newline);\n modifiedTextToSend = modifiedTextToSend.includes(config.rowSplitter)\n ? `${modifiedTextToSend.replace(config.rowSplitter, modifiedStateVal.toString())}${isNewline}`\n : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend;\n });\n await Promise.all(promises);\n\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["_a", "error", "text"]
7
7
  }
@@ -43,7 +43,7 @@ async function httpRequest(parts, userToSend, telegramParams, directoryPicture)
43
43
  return;
44
44
  }
45
45
  for (const { url, password, user: username, filename } of parts.httpRequest) {
46
- import_main.adapter.log.debug(`URL: ${url}`);
46
+ import_main.adapter.log.debug(`URL : ${url}`);
47
47
  try {
48
48
  const response = await (0, import_axios.default)(
49
49
  username && password ? {
@@ -65,7 +65,7 @@ async function httpRequest(parts, userToSend, telegramParams, directoryPicture)
65
65
  }
66
66
  const imagePath = import_path.default.join(directoryPicture, filename);
67
67
  import_fs.default.writeFileSync(imagePath, Buffer.from(response.data), "binary");
68
- import_main.adapter.log.debug(`Pic saved: ${imagePath}`);
68
+ import_main.adapter.log.debug(`Pic saved : ${imagePath}`);
69
69
  await (0, import_telegram.sendToTelegram)({
70
70
  userToSend,
71
71
  textToSend: imagePath,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/httpRequest.ts"],
4
- "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { validateDirectory } from '../lib/utils';\nimport { adapter } from '../main';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const { url, password, user: username, filename } of parts.httpRequest) {\n adapter.log.debug(`URL: ${url}`);\n\n try {\n //prettier-ignore\n\n const response = await axios(\n username && password\n ? {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n auth: {\n username,\n password,\n },\n }\n : {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n },\n );\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n adapter.log.debug(`Pic saved: ${imagePath}`);\n\n await sendToTelegram({\n userToSend,\n textToSend: imagePath,\n telegramParams,\n });\n } catch (e: any) {\n errorLogger('Error http request:', e, adapter);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA4B;AAE5B,mBAAkC;AAClC,kBAAwB;AAExB,eAAe,YACX,OACA,YACA,gBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,EAAE,KAAK,UAAU,MAAM,UAAU,SAAS,KAAK,MAAM,aAAa;AACzE,wBAAQ,IAAI,MAAM,QAAQ,GAAG,EAAE;AAE/B,QAAI;AAGA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,IACA;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACV;AAEA,UAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,QAAQ;AAEtD,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,0BAAQ,IAAI,MAAM,cAAc,SAAS,EAAE;AAE3C,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,sCAAY,uBAAuB,GAAG,mBAAO;AAAA,IACjD;AAAA,EACJ;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { validateDirectory } from '../lib/utils';\nimport { adapter } from '../main';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const { url, password, user: username, filename } of parts.httpRequest) {\n adapter.log.debug(`URL : ${url}`);\n\n try {\n //prettier-ignore\n\n const response = await axios(\n username && password\n ? {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n auth: {\n username,\n password,\n },\n }\n : {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n },\n );\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n adapter.log.debug(`Pic saved : ${imagePath}`);\n\n await sendToTelegram({\n userToSend,\n textToSend: imagePath,\n telegramParams,\n });\n } catch (e: any) {\n errorLogger('Error http request:', e, adapter);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA4B;AAE5B,mBAAkC;AAClC,kBAAwB;AAExB,eAAe,YACX,OACA,YACA,gBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,EAAE,KAAK,UAAU,MAAM,UAAU,SAAS,KAAK,MAAM,aAAa;AACzE,wBAAQ,IAAI,MAAM,SAAS,GAAG,EAAE;AAEhC,QAAI;AAGA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,IACA;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACV;AAEA,UAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,QAAQ;AAEtD,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,0BAAQ,IAAI,MAAM,eAAe,SAAS,EAAE;AAE5C,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,sCAAY,uBAAuB,GAAG,mBAAO;AAAA,IACjD;AAAA,EACJ;AACA,SAAO;AACX;",
6
6
  "names": ["axios", "path", "fs"]
7
7
  }
@@ -43,7 +43,7 @@ const createKeyboardFromJson = (val, text, id, user) => {
43
43
  idShoppingList = true;
44
44
  }
45
45
  const { validJson, error } = (0, import_json.makeValidJson)(val, import_main.adapter);
46
- import_main.adapter.log.debug(`Val: ${validJson} with type: ${typeof val}`);
46
+ import_main.adapter.log.debug(`Val ${validJson} with type ${typeof val}`);
47
47
  if (error) {
48
48
  return;
49
49
  }
@@ -81,7 +81,7 @@ const createKeyboardFromJson = (val, text, id, user) => {
81
81
  }
82
82
  keyboard.inline_keyboard.push(rowArray);
83
83
  });
84
- import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
84
+ import_main.adapter.log.debug(`Keyboard : ${(0, import_string.jsonString)(keyboard)}`);
85
85
  return { text: headline, keyboard };
86
86
  } catch (err) {
87
87
  (0, import_logging.errorLogger)("Error createKeyboardFromJson:", err, import_main.adapter);
@@ -104,7 +104,7 @@ function createTextTableFromJson(val, textToSend) {
104
104
  }
105
105
  });
106
106
  });
107
- import_main.adapter.log.debug(`Length of rows: ${(0, import_string.jsonString)(lengthArray)}`);
107
+ import_main.adapter.log.debug(`Length of rows : ${(0, import_string.jsonString)(lengthArray)}`);
108
108
  const headline = array[2];
109
109
  let textTable = textToSend.replace(substring, "").trim();
110
110
  if (textTable != "") {
@@ -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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AACxB,uBAAmC;AACnC,qBAA4B;AAE5B,mBAAoC;AACpC,oBAA0B;AAE1B,IAAI,aAAa;AACjB,eAAe,eAAe,OAAuB,kBAAyC;AAR9F;AASI,MAAI;AACA,QAAI,mBAA6B,CAAC;AAElC,UAAM,sBAAsB,CAAC,aAAa,MAAM,oBAAQ,cAAc,0BAA0B,IAAI;AAEpG,iBAAa;AACb,UAAM,mBAAmB,MAAM,oBAAQ,qBAAqB,GAAG,gBAAgB,4BAA4B;AAE3G,UAAM,UAAU,MAAM,oBAAQ,qBAAqB,GAAG,gBAAgB,sBAAsB;AAE5F,QAAI,EAAC,qDAAkB,MAAK;AACxB;AAAA,IACJ;AACA,QAAI,cAAc;AAClB,QAAI,OAAO,CAAC;AAEZ,QAAI,2DAAqB,KAAK;AAC1B,YAAM,aAAS,yBAAoB,OAAO,2DAAqB,GAAG,GAAG,mBAAO;AAC5E,aAAO,OAAO;AACd,oBAAc,OAAO;AAAA,IACzB;AACA,uBAAmB,cAAc,OAAO,CAAC;AAEzC,UAAM,cAAc,iBAAiB,IAAI,SAAS;AAClD,QAAI,CAAC,iBAAiB,WAAW,GAAG;AAChC,uBAAiB,WAAW,IAAI,CAAC;AAAA,IACrC;AAEA,QAAI,GAAC,sBAAiB,WAAW,MAA5B,mBAA+B,KAAK,aAAW,QAAQ,OAAO,MAAM,OAAM;AAC3E,uBAAiB,WAAW,EAAE,KAAK;AAAA,QAC/B,IAAI,MAAM;AAAA,QACV,MAAM,KAAK,IAAI;AAAA,QACf,SAAS,mCAAS;AAAA,MACtB,CAAC;AAAA,IACL;AAEA,uBAAmB,oBAAoB,kBAAkB,WAAW;AACpE,UAAM,oBAAQ,SAAS,4BAA4B,KAAK,UAAU,gBAAgB,GAAG,IAAI;AAAA,EAC7F,SAAS,GAAQ;AACb,oCAAY,yBAAyB,GAAG,mBAAO;AAAA,EACnD;AACJ;AACA,SAAS,oBAAoB,UAAoB,QAA0B;AACvE,WAAS,MAAM,IAAI,SAAS,MAAM,EAAE,OAAO,aAAW;AAClD,WAAO,QAAQ,QAAQ,QAAQ,OAAO,KAAK,IAAI,IAAI,MAAO,KAAK,KAAK,KAAK;AAAA,EAC7E,CAAC;AACD,SAAO;AACX;AAEA,MAAM,wBAAwB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACJ,MAIsB;AAClB,SAAO,eAAe,OAAO,EAAE,OAAO,aAAW,QAAQ,OAAO,QAAQ,EAAE;AAC9E;AAEA,eAAe,iBACX,MACA,gBACA,kBACa;AACb,QAAM,EAAE,kBAAkB,mBAAmB,IAAI;AACjD,MAAI;AACA,UAAM,sBAAsB,MAAM,oBAAQ,cAAc,0BAA0B;AAClF,UAAM,gBAAgB,MAAM,oBAAQ,qBAAqB,GAAG,gBAAgB,+BAA+B;AAE3G,QACI,CAAC,uBACD,OAAO,oBAAoB,QAAQ,YACnC,CAAC,KAAK,MAAM,oBAAoB,GAAG,GACrC;AACE;AAAA,IACJ;AAEA,UAAM,cAAU,wBAAU,oBAAoB,IAAI;AAClD,UAAM,EAAE,MAAM,YAAY,QAAI,yBAAoB,oBAAoB,GAAG;AAEzE,QAAI,CAAC,eAAe,CAAC,SAAS;AAC1B;AAAA,IACJ;AACA,QAAI,iBAAiB,cAAc,KAAK;AACpC,WAAK,OAAO,EAAE,KAAK,EAAE,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;AAAA,IAC3D;AAEA,iBAAa;AACb,UAAM,qBAAiB,uBAAS,MAAM,mBAAO;AAC7C,SAAK,OAAO,EAAE,QAAQ,CAAC,SAAS,UAAU;AApGlD;AAqGY,YAAM,MAAK,aAAQ,OAAR,mBAAY;AACvB,UAAI,qBAAqB,SAAS,IAAI;AAClC,iDAAmB,kBAAkB,MAAM,SAAS,EAAE,GAAG,OAAO;AAAA,MACpE;AACA,UAAI,qBAAqB,UAAU,UAAU,KAAK,OAAO,EAAE,SAAS,KAAK,IAAI;AACzE,iDAAmB,kBAAkB,MAAM,SAAS,EAAE,GAAG,OAAO;AAAA,MACpE;AACA,UAAI,CAAC,gBAAgB;AACjB;AAAA,MACJ;AACA,qBAAe,OAAO,IAAI,sBAAsB,EAAE,SAAS,SAAS,eAAe,CAAC;AAAA,IACxF,CAAC;AAED,UAAM,oBAAQ,SAAS,4BAA4B,KAAK,UAAU,cAAc,GAAG,IAAI;AAAA,EAC3F,SAAS,GAAQ;AACb,oCAAY,2BAA2B,GAAG,mBAAO;AAAA,EACrD;AACJ;",
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": "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",
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
  }
@@ -61,15 +61,15 @@ const setstateIobroker = async ({
61
61
  (0, import_logging.errorLogger)("Error Setstate", error, import_main.adapter);
62
62
  }
63
63
  };
64
- const setValue = async (id, value, SubmenuValuePriority, valueFromSubmenu, ack) => {
64
+ const setValue = async (id, value, valueFromSubmenu, ack) => {
65
65
  try {
66
- const valueToSet = SubmenuValuePriority ? modifiedValue(String(valueFromSubmenu), value) : await isDynamicValueToSet(value);
66
+ const valueToSet = (0, import_utils.isDefined)(value) && (0, import_string.isNonEmptyString)(value) ? await isDynamicValueToSet(value) : modifiedValue(String(valueFromSubmenu), value);
67
67
  await setstateIobroker({ id, value: valueToSet, ack });
68
68
  } catch (error) {
69
69
  (0, import_logging.errorLogger)("Error setValue", error, import_main.adapter);
70
70
  }
71
71
  };
72
- const handleSetState = async (part, userToSend, valueFromSubmenu, SubmenuValuePriority, telegramParams) => {
72
+ const handleSetState = async (part, userToSend, valueFromSubmenu, telegramParams) => {
73
73
  try {
74
74
  if (!part.switch) {
75
75
  return;
@@ -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) {