iobroker.telegram-menu 2.2.4 → 2.3.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 (274) hide show
  1. package/README.md +12 -0
  2. package/admin/build/index.js +49 -49
  3. package/admin/build/index.js.map +3 -3
  4. package/admin/css/button.css +3 -0
  5. package/admin/css/row-editor.css +1 -1
  6. package/admin/css/style.css +46 -25
  7. package/admin/css/textarea.css +7 -11
  8. package/admin/i18n/de/translations.json +124 -123
  9. package/admin/i18n/en/translations.json +3 -2
  10. package/admin/i18n/es/translations.json +3 -2
  11. package/admin/i18n/fr/translations.json +3 -2
  12. package/admin/i18n/it/translations.json +3 -2
  13. package/admin/i18n/nl/translations.json +3 -2
  14. package/admin/i18n/pl/translations.json +3 -2
  15. package/admin/i18n/pt/translations.json +3 -2
  16. package/admin/i18n/ru/translations.json +3 -2
  17. package/admin/i18n/uk/translations.json +3 -2
  18. package/admin/i18n/zh-cn/translations.json +3 -2
  19. package/admin/words.js +3 -1
  20. package/build/admin/src/config/helper.js +178 -0
  21. package/build/admin/src/config/helper.js.map +1 -0
  22. package/build/admin/src/lib/Utils.js +64 -0
  23. package/build/admin/src/lib/Utils.js.map +1 -0
  24. package/build/admin/src/types/event.js +3 -0
  25. package/build/admin/src/types/event.js.map +1 -0
  26. package/build/app/action.js +270 -0
  27. package/build/app/action.js.map +7 -0
  28. package/build/app/adapterManager.js +36 -0
  29. package/build/app/adapterManager.js.map +7 -0
  30. package/build/app/adapterStartMenuSend.js +59 -0
  31. package/build/app/adapterStartMenuSend.js.map +7 -0
  32. package/build/app/backMenu.js +110 -0
  33. package/build/app/backMenu.js.map +7 -0
  34. package/build/app/botAction.js +47 -0
  35. package/build/app/botAction.js.map +7 -0
  36. package/build/app/configVariables.js +56 -0
  37. package/build/app/configVariables.js.map +7 -0
  38. package/build/app/connection.js +42 -0
  39. package/build/app/connection.js.map +7 -0
  40. package/build/app/createState.js +42 -0
  41. package/build/app/createState.js.map +7 -0
  42. package/build/app/dynamicSwitch.js +69 -0
  43. package/build/app/dynamicSwitch.js.map +7 -0
  44. package/build/app/dynamicSwitchMenu.js +69 -0
  45. package/build/app/dynamicSwitchMenu.js.map +7 -0
  46. package/build/app/dynamicValue.js +80 -0
  47. package/build/app/dynamicValue.js.map +7 -0
  48. package/build/app/echarts.js +60 -0
  49. package/build/app/echarts.js.map +7 -0
  50. package/build/app/getstate.js +148 -0
  51. package/build/app/getstate.js.map +7 -0
  52. package/build/app/global.js +2 -0
  53. package/build/app/global.js.map +7 -0
  54. package/build/app/httpRequest.js +84 -0
  55. package/build/app/httpRequest.js.map +7 -0
  56. package/build/app/jsonTable.js +158 -0
  57. package/build/app/jsonTable.js.map +7 -0
  58. package/build/app/logging.js +46 -0
  59. package/build/app/logging.js.map +7 -0
  60. package/build/app/messageIds.js +116 -0
  61. package/build/app/messageIds.js.map +7 -0
  62. package/build/app/processData.js +198 -0
  63. package/build/app/processData.js.map +7 -0
  64. package/build/app/sendNav.js +49 -0
  65. package/build/app/sendNav.js.map +7 -0
  66. package/build/app/sendpic.js +95 -0
  67. package/build/app/sendpic.js.map +7 -0
  68. package/build/app/sentry.js +43 -0
  69. package/build/app/sentry.js.map +7 -0
  70. package/build/app/setStateIdsToListenTo.js +42 -0
  71. package/build/app/setStateIdsToListenTo.js.map +7 -0
  72. package/build/app/setstate.js +145 -0
  73. package/build/app/setstate.js.map +7 -0
  74. package/build/app/shoppingList.js +97 -0
  75. package/build/app/shoppingList.js.map +7 -0
  76. package/build/app/subMenu.js +281 -0
  77. package/build/app/subMenu.js.map +7 -0
  78. package/build/app/subscribeStates.js +41 -0
  79. package/build/app/subscribeStates.js.map +7 -0
  80. package/build/app/telegram.js +131 -0
  81. package/build/app/telegram.js.map +7 -0
  82. package/build/app/validateMenus.js +64 -0
  83. package/build/app/validateMenus.js.map +7 -0
  84. package/build/build/src/app/action.js +447 -0
  85. package/build/build/src/app/adapterStartMenuSend.js +37 -0
  86. package/build/build/src/app/backMenu.js +70 -0
  87. package/build/build/src/app/botAction.js +25 -0
  88. package/build/build/src/app/connection.js +19 -0
  89. package/build/build/src/app/createState.js +19 -0
  90. package/build/build/src/app/dynamicSwitch.js +51 -0
  91. package/build/build/src/app/dynamicValue.js +64 -0
  92. package/build/build/src/app/echarts.js +45 -0
  93. package/build/build/src/app/getstate.js +157 -0
  94. package/build/build/src/app/global.js +59 -0
  95. package/build/build/src/app/httpRequest.js +64 -0
  96. package/build/build/src/app/jsonTable.js +147 -0
  97. package/build/build/src/app/logging.js +13 -0
  98. package/build/build/src/app/messageIds.js +88 -0
  99. package/build/build/src/app/processData.js +208 -0
  100. package/build/build/src/app/sendNav.js +30 -0
  101. package/build/build/src/app/sendpic.js +69 -0
  102. package/build/build/src/app/setstate.js +126 -0
  103. package/build/build/src/app/shoppingList.js +72 -0
  104. package/build/build/src/app/subMenu.js +361 -0
  105. package/build/build/src/app/subscribeStates.js +25 -0
  106. package/build/build/src/app/telegram.js +101 -0
  107. package/build/build/src/lib/string.js +28 -0
  108. package/build/build/src/lib/time.js +23 -0
  109. package/build/build/src/lib/utilities.js +263 -0
  110. package/build/build/src/lib/utils.js +13 -0
  111. package/build/build/src/main.js +402 -0
  112. package/build/config/config.js +134 -0
  113. package/build/config/config.js.map +7 -0
  114. package/build/io-package.json +87 -87
  115. package/build/lib/action.js +1 -3
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js.map +1 -1
  118. package/build/lib/appUtils.js +158 -0
  119. package/build/lib/appUtils.js.map +7 -0
  120. package/build/lib/appUtilsString.js +37 -0
  121. package/build/lib/appUtilsString.js.map +7 -0
  122. package/build/lib/backMenu.js.map +2 -2
  123. package/build/lib/botAction.js.map +1 -1
  124. package/build/lib/dynamicSwitch.js.map +1 -1
  125. package/build/lib/dynamicValue.js.map +1 -1
  126. package/build/lib/echarts.js.map +1 -1
  127. package/build/lib/getstate.js.map +1 -1
  128. package/build/lib/global.js.map +1 -1
  129. package/build/lib/httpRequest.js.map +1 -1
  130. package/build/lib/json.js +54 -0
  131. package/build/lib/json.js.map +7 -0
  132. package/build/lib/jsonTable.js.map +1 -1
  133. package/build/lib/math.js +41 -0
  134. package/build/lib/math.js.map +7 -0
  135. package/build/lib/messageIds.js.map +1 -1
  136. package/build/lib/object.js +35 -0
  137. package/build/lib/object.js.map +7 -0
  138. package/build/lib/processData.js +4 -18
  139. package/build/lib/processData.js.map +3 -3
  140. package/build/lib/sendNav.js.map +1 -1
  141. package/build/lib/sendpic.js +23 -22
  142. package/build/lib/sendpic.js.map +2 -2
  143. package/build/lib/setstate.js.map +1 -1
  144. package/build/lib/shoppingList.js.map +1 -1
  145. package/build/lib/splitValues.js +63 -0
  146. package/build/lib/splitValues.js.map +7 -0
  147. package/build/lib/string.js +125 -3
  148. package/build/lib/string.js.map +2 -2
  149. package/build/lib/subMenu.js +1 -2
  150. package/build/lib/subMenu.js.map +2 -2
  151. package/build/lib/subscribeStates.js.map +1 -1
  152. package/build/lib/telegram.js.map +1 -1
  153. package/build/lib/time.js +93 -0
  154. package/build/lib/time.js.map +7 -0
  155. package/build/lib/utilities.js +84 -281
  156. package/build/lib/utilities.js.map +3 -3
  157. package/build/lib/utils.js +66 -0
  158. package/build/lib/utils.js.map +7 -0
  159. package/build/main.js +151 -233
  160. package/build/main.js.map +3 -3
  161. package/build/src/app/action.js +239 -0
  162. package/build/src/app/action.js.map +1 -0
  163. package/build/src/app/adapterManager.js +12 -0
  164. package/build/src/app/adapterManager.js.map +1 -0
  165. package/build/src/app/adapterStartMenuSend.js +36 -0
  166. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  167. package/build/src/app/backMenu.js +81 -0
  168. package/build/src/app/backMenu.js.map +1 -0
  169. package/build/src/app/botAction.js +25 -0
  170. package/build/src/app/botAction.js.map +1 -0
  171. package/build/src/app/configVariables.js +32 -0
  172. package/build/src/app/configVariables.js.map +1 -0
  173. package/build/src/app/connection.js +20 -0
  174. package/build/src/app/connection.js.map +1 -0
  175. package/build/src/app/createState.js +19 -0
  176. package/build/src/app/createState.js.map +1 -0
  177. package/build/src/app/dynamicSwitch.js +52 -0
  178. package/build/src/app/dynamicSwitch.js.map +1 -0
  179. package/build/src/app/dynamicSwitchMenu.js +52 -0
  180. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  181. package/build/src/app/dynamicValue.js +52 -0
  182. package/build/src/app/dynamicValue.js.map +1 -0
  183. package/build/src/app/echarts.js +33 -0
  184. package/build/src/app/echarts.js.map +1 -0
  185. package/build/src/app/getstate.js +122 -0
  186. package/build/src/app/getstate.js.map +1 -0
  187. package/build/src/app/global.js +8 -0
  188. package/build/src/app/global.js.map +1 -0
  189. package/build/src/app/httpRequest.js +55 -0
  190. package/build/src/app/httpRequest.js.map +1 -0
  191. package/build/src/app/jsonTable.js +147 -0
  192. package/build/src/app/jsonTable.js.map +1 -0
  193. package/build/src/app/logging.js +22 -0
  194. package/build/src/app/logging.js.map +1 -0
  195. package/build/src/app/messageIds.js +89 -0
  196. package/build/src/app/messageIds.js.map +1 -0
  197. package/build/src/app/processData.js +153 -0
  198. package/build/src/app/processData.js.map +1 -0
  199. package/build/src/app/sendNav.js +26 -0
  200. package/build/src/app/sendNav.js.map +1 -0
  201. package/build/src/app/sendpic.js +66 -0
  202. package/build/src/app/sendpic.js.map +1 -0
  203. package/build/src/app/sentry.js +18 -0
  204. package/build/src/app/sentry.js.map +1 -0
  205. package/build/src/app/setStateIdsToListenTo.js +17 -0
  206. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  207. package/build/src/app/setstate.js +114 -0
  208. package/build/src/app/setstate.js.map +1 -0
  209. package/build/src/app/shoppingList.js +74 -0
  210. package/build/src/app/shoppingList.js.map +1 -0
  211. package/build/src/app/subMenu.js +237 -0
  212. package/build/src/app/subMenu.js.map +1 -0
  213. package/build/src/app/subscribeStates.js +17 -0
  214. package/build/src/app/subscribeStates.js.map +1 -0
  215. package/build/src/app/telegram.js +83 -0
  216. package/build/src/app/telegram.js.map +1 -0
  217. package/build/src/app/validateMenus.js +30 -0
  218. package/build/src/app/validateMenus.js.map +1 -0
  219. package/build/src/config/config.js +100 -0
  220. package/build/src/config/config.js.map +1 -0
  221. package/build/src/lib/appUtils.js +126 -0
  222. package/build/src/lib/appUtils.js.map +1 -0
  223. package/build/src/lib/appUtilsString.js +13 -0
  224. package/build/src/lib/appUtilsString.js.map +1 -0
  225. package/build/src/lib/json.js +37 -0
  226. package/build/src/lib/json.js.map +1 -0
  227. package/build/src/lib/math.js +17 -0
  228. package/build/src/lib/math.js.map +1 -0
  229. package/build/src/lib/object.js +10 -0
  230. package/build/src/lib/object.js.map +1 -0
  231. package/build/src/lib/splitValues.js +35 -0
  232. package/build/src/lib/splitValues.js.map +1 -0
  233. package/build/src/lib/string.js +121 -0
  234. package/build/src/lib/string.js.map +1 -0
  235. package/build/src/lib/time.js +57 -0
  236. package/build/src/lib/time.js.map +1 -0
  237. package/build/src/lib/utilities.js +111 -0
  238. package/build/src/lib/utilities.js.map +1 -0
  239. package/build/src/lib/utils.js +37 -0
  240. package/build/src/lib/utils.js.map +1 -0
  241. package/build/src/main.js +332 -0
  242. package/build/src/main.js.map +1 -0
  243. package/build/src/test/setup.js +12 -0
  244. package/build/src/test/setup.js.map +1 -0
  245. package/build/src/types/types.js +3 -0
  246. package/build/src/types/types.js.map +1 -0
  247. package/build/test/integration.js +0 -1
  248. package/build/test/integration.js.map +1 -1
  249. package/build/test/mocha.setup.js +0 -1
  250. package/build/test/mocha.setup.js.map +1 -1
  251. package/build/test/package.js +0 -1
  252. package/build/test/package.js.map +1 -1
  253. package/build/test/setup.js +12 -0
  254. package/build/test/setup.js.map +1 -0
  255. package/build/test/test/appUtils.test.js +507 -0
  256. package/build/test/test/appUtils.test.js.map +1 -0
  257. package/build/test/test/appUtilsString.test.js +16 -0
  258. package/build/test/test/appUtilsString.test.js.map +1 -0
  259. package/build/test/test/math.test.js +33 -0
  260. package/build/test/test/math.test.js.map +1 -0
  261. package/build/test/test/object.test.js +54 -0
  262. package/build/test/test/object.test.js.map +1 -0
  263. package/build/test/test/string.test.js +361 -0
  264. package/build/test/test/string.test.js.map +1 -0
  265. package/build/test/test/time.test.js +201 -0
  266. package/build/test/test/time.test.js.map +1 -0
  267. package/build/test/test/utils.test.js +115 -0
  268. package/build/test/test/utils.test.js.map +1 -0
  269. package/build/types/types.js +15 -0
  270. package/build/types/types.js.map +3 -3
  271. package/io-package.json +19 -14
  272. package/package.json +14 -10
  273. package/build/main.test.js +0 -24
  274. package/build/main.test.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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": []
7
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var shoppingList_exports = {};
20
+ __export(shoppingList_exports, {
21
+ deleteMessageAndSendNewShoppingList: () => deleteMessageAndSendNewShoppingList,
22
+ shoppingListSubscribeStateAndDeleteItem: () => shoppingListSubscribeStateAndDeleteItem
23
+ });
24
+ module.exports = __toCommonJS(shoppingList_exports);
25
+ var import_messageIds = require("./messageIds.js");
26
+ var import_jsonTable = require("./jsonTable.js");
27
+ var import_telegram = require("./telegram.js");
28
+ var import_subscribeStates = require("./subscribeStates.js");
29
+ var import_logging = require("./logging.js");
30
+ var import_main = require("../main.js");
31
+ var import_string = require("../lib/string");
32
+ var import_setstate = require("./setstate");
33
+ var import_json = require("../lib/json");
34
+ var import_utils = require("../lib/utils");
35
+ const objData = {};
36
+ let isSubscribed = false;
37
+ async function shoppingListSubscribeStateAndDeleteItem(val, telegramParams) {
38
+ try {
39
+ let array, user, idList, instance, idItem, res;
40
+ if ((0, import_utils.isDefined)(val)) {
41
+ array = val.split(":");
42
+ user = array[0].replace("[", "").replace("]sList", "");
43
+ idList = array[1];
44
+ instance = array[2];
45
+ idItem = array[3];
46
+ res = await import_main.adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);
47
+ if (res) {
48
+ objData[user] = { idList };
49
+ import_main.adapter.log.debug(`Alexa-shoppinglist: ${idList}`);
50
+ if (!isSubscribed) {
51
+ await (0, import_subscribeStates._subscribeForeignStates)(`alexa-shoppinglist.${idList}`);
52
+ isSubscribed = true;
53
+ }
54
+ await (0, import_setstate.setstateIobroker)({
55
+ id: `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,
56
+ value: true,
57
+ ack: false
58
+ });
59
+ return;
60
+ }
61
+ await (0, import_telegram.sendToTelegram)({
62
+ userToSend: user,
63
+ textToSend: "Cannot delete the Item",
64
+ telegramParams,
65
+ parse_mode: true
66
+ });
67
+ import_main.adapter.log.debug("Cannot delete the Item");
68
+ }
69
+ } catch (e) {
70
+ (0, import_logging.errorLogger)("Error shoppingList:", e, import_main.adapter);
71
+ }
72
+ }
73
+ async function deleteMessageAndSendNewShoppingList(telegramParams, userToSend) {
74
+ try {
75
+ const user = userToSend;
76
+ const idList = objData[user].idList;
77
+ await (0, import_subscribeStates._subscribeForeignStates)(`alexa-shoppinglist.${idList}`);
78
+ await (0, import_messageIds.deleteMessageIds)(user, telegramParams, "last");
79
+ const result = await import_main.adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);
80
+ if (result == null ? void 0 : result.val) {
81
+ import_main.adapter.log.debug(`Result from Shoppinglist: ${(0, import_string.jsonString)(result)}`);
82
+ const newId = `alexa-shoppinglist.${idList}`;
83
+ const resultJson = (0, import_jsonTable.createKeyboardFromJson)((0, import_json.toJson)(result.val), null, newId, user);
84
+ if ((resultJson == null ? void 0 : resultJson.text) && (resultJson == null ? void 0 : resultJson.keyboard)) {
85
+ (0, import_telegram.sendToTelegramSubmenu)(user, resultJson.text, resultJson.keyboard, telegramParams, true);
86
+ }
87
+ }
88
+ } catch (e) {
89
+ (0, import_logging.errorLogger)("Error deleteMessageAndSendNewShoppingList:", e, import_main.adapter);
90
+ }
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ deleteMessageAndSendNewShoppingList,
95
+ shoppingListSubscribeStateAndDeleteItem
96
+ });
97
+ //# sourceMappingURL=shoppingList.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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;",
6
+ "names": []
7
+ }
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var subMenu_exports = {};
20
+ __export(subMenu_exports, {
21
+ callSubMenu: () => callSubMenu,
22
+ subMenu: () => subMenu
23
+ });
24
+ module.exports = __toCommonJS(subMenu_exports);
25
+ var import_backMenu = require("./backMenu");
26
+ var import_setstate = require("./setstate");
27
+ var import_telegram = require("./telegram");
28
+ var import_utilities = require("../lib/utilities");
29
+ var import_messageIds = require("./messageIds");
30
+ var import_dynamicSwitchMenu = require("./dynamicSwitchMenu");
31
+ var import_string = require("../lib/string");
32
+ var import_main = require("../main");
33
+ var import_logging = require("./logging");
34
+ var import_splitValues = require("../lib/splitValues");
35
+ var import_validateMenus = require("./validateMenus");
36
+ let step = 0;
37
+ let splittedData = [];
38
+ const createSubmenuPercent = (obj) => {
39
+ const { cbData, menuToHandle } = obj;
40
+ step = parseFloat(cbData.replace("percent", ""));
41
+ let rowEntries = 0;
42
+ let menu = [];
43
+ const keyboard = {
44
+ inline_keyboard: []
45
+ };
46
+ for (let i = 100; i >= 0; i -= step) {
47
+ menu.push({
48
+ text: `${i}%`,
49
+ callback_data: `submenu:percent${step},${i}:${menuToHandle}`
50
+ });
51
+ if (i != 0 && i - step < 0) {
52
+ menu.push({
53
+ text: `0%`,
54
+ callback_data: `submenu:percent${step},${0}:${menuToHandle}`
55
+ });
56
+ }
57
+ rowEntries++;
58
+ if (rowEntries == 8) {
59
+ keyboard.inline_keyboard.push(menu);
60
+ menu = [];
61
+ rowEntries = 0;
62
+ }
63
+ }
64
+ if (rowEntries != 0) {
65
+ keyboard.inline_keyboard.push(menu);
66
+ }
67
+ return { text: obj.text, keyboard, device: menuToHandle };
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") {
73
+ val = false;
74
+ } else if (splittedData[1].split(".")[1] == "true") {
75
+ val = true;
76
+ } else {
77
+ val = splittedData[1].split(".")[1];
78
+ }
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);
91
+ };
92
+ const createSubmenuNumber = ({
93
+ cbData,
94
+ menuToHandle,
95
+ text
96
+ }) => {
97
+ if (cbData.includes("(-)")) {
98
+ cbData = cbData.replace("(-)", "negativ");
99
+ }
100
+ const splittedData2 = cbData.replace("number", "").split("-");
101
+ let rowEntries = 0;
102
+ let menu = [];
103
+ const keyboard = {
104
+ inline_keyboard: []
105
+ };
106
+ let unit = "";
107
+ if (splittedData2[3] != "") {
108
+ unit = splittedData2[3];
109
+ }
110
+ let start, end;
111
+ const firstValueInText = parseFloat(
112
+ splittedData2[0].includes("negativ") ? splittedData2[0].replace("negativ", "-") : splittedData2[0]
113
+ );
114
+ const secondValueInText = parseFloat(
115
+ splittedData2[1].includes("negativ") ? splittedData2[1].replace("negativ", "-") : splittedData2[1]
116
+ );
117
+ if (firstValueInText < secondValueInText) {
118
+ start = secondValueInText;
119
+ end = firstValueInText;
120
+ } else {
121
+ start = firstValueInText;
122
+ end = secondValueInText;
123
+ }
124
+ let index = -1;
125
+ let maxEntriesPerRow = 8;
126
+ const step2 = parseFloat(
127
+ splittedData2[2].includes("negativ") ? splittedData2[2].replace("negativ", "-") : splittedData2[2]
128
+ );
129
+ if (step2 < 1) {
130
+ maxEntriesPerRow = 6;
131
+ }
132
+ for (let i = start; i >= end; i -= step2) {
133
+ if (parseFloat(splittedData2[0]) < parseFloat(splittedData2[1])) {
134
+ if (i === start) {
135
+ index = end - step2;
136
+ }
137
+ index = index + step2;
138
+ } else {
139
+ index = i;
140
+ }
141
+ menu.push({
142
+ text: `${index}${unit}`,
143
+ callback_data: `submenu:${cbData}:${menuToHandle}:${index}`
144
+ });
145
+ rowEntries++;
146
+ if (rowEntries == maxEntriesPerRow) {
147
+ keyboard.inline_keyboard.push(menu);
148
+ menu = [];
149
+ rowEntries = 0;
150
+ }
151
+ }
152
+ if (rowEntries != 0) {
153
+ keyboard.inline_keyboard.push(menu);
154
+ }
155
+ import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
156
+ return { text, keyboard, menuToHandle };
157
+ };
158
+ const createSwitchMenu = ({
159
+ menuToHandle,
160
+ cbData,
161
+ text
162
+ }) => {
163
+ splittedData = cbData.split("-");
164
+ const keyboard = {
165
+ inline_keyboard: [
166
+ [
167
+ {
168
+ text: splittedData[1].split(".")[0],
169
+ callback_data: `menu:first:${menuToHandle}`
170
+ },
171
+ {
172
+ text: splittedData[2].split(".")[0],
173
+ callback_data: `menu:second:${menuToHandle}`
174
+ }
175
+ ]
176
+ ]
177
+ };
178
+ return { text, keyboard, device: menuToHandle };
179
+ };
180
+ const back = async ({ telegramParams, userToSend, allMenusWithData, menus }) => {
181
+ const result = await (0, import_backMenu.switchBack)(userToSend, allMenusWithData, menus);
182
+ if (result) {
183
+ const { keyboard, parse_mode, textToSend = "" } = result;
184
+ await (0, import_telegram.sendToTelegram)({ userToSend, textToSend, keyboard, parse_mode, telegramParams });
185
+ }
186
+ };
187
+ async function callSubMenu({
188
+ jsonStringNav,
189
+ userToSend,
190
+ telegramParams,
191
+ part,
192
+ allMenusWithData,
193
+ menus
194
+ }) {
195
+ try {
196
+ const obj = await subMenu({
197
+ menuString: jsonStringNav,
198
+ userToSend,
199
+ telegramParams,
200
+ part,
201
+ allMenusWithData,
202
+ menus
203
+ });
204
+ import_main.adapter.log.debug(`Submenu: ${(0, import_string.jsonString)(obj)}`);
205
+ if ((obj == null ? void 0 : obj.text) && (obj == null ? void 0 : obj.keyboard)) {
206
+ (0, import_telegram.sendToTelegramSubmenu)(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);
207
+ }
208
+ return { newNav: obj == null ? void 0 : obj.navToGoBack };
209
+ } catch (e) {
210
+ (0, import_logging.errorLogger)("Error callSubMenu:", e, import_main.adapter);
211
+ }
212
+ }
213
+ async function subMenu({
214
+ menuString,
215
+ userToSend,
216
+ telegramParams,
217
+ part,
218
+ allMenusWithData,
219
+ menus
220
+ }) {
221
+ try {
222
+ 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) {
226
+ await (0, import_messageIds.deleteMessageIds)(userToSend, telegramParams, "all");
227
+ if ((0, import_string.isNonEmptyString)(menuToHandle)) {
228
+ return { navToGoBack: menuToHandle };
229
+ }
230
+ }
231
+ if ((0, import_validateMenus.isCreateSwitch)(cbData) && menuToHandle) {
232
+ return createSwitchMenu({ cbData, text, menuToHandle });
233
+ }
234
+ if ((0, import_validateMenus.isFirstMenuValue)(cbData)) {
235
+ await setFirstMenuValue({
236
+ part,
237
+ userToSend,
238
+ telegramParams
239
+ });
240
+ }
241
+ if ((0, import_validateMenus.isSecondMenuValue)(cbData)) {
242
+ await setSecondMenuValue({ part, userToSend, telegramParams });
243
+ }
244
+ if ((0, import_validateMenus.isCreateDynamicSwitch)(cbData) && menuToHandle) {
245
+ return (0, import_dynamicSwitchMenu.createDynamicSwitchMenu)(menuString, menuToHandle, text);
246
+ }
247
+ if ((0, import_validateMenus.isSetDynamicSwitchVal)(cbData) && val) {
248
+ await (0, import_setstate.handleSetState)(part, userToSend, val, true, telegramParams);
249
+ }
250
+ if ((0, import_validateMenus.isCreateSubmenuPercent)(menuString, cbData) && menuToHandle) {
251
+ return createSubmenuPercent({ cbData, text, menuToHandle });
252
+ }
253
+ if ((0, import_validateMenus.isSetSubmenuPercent)(menuString, step)) {
254
+ const value = parseInt(menuString.split(":")[1].split(",")[1]);
255
+ await (0, import_setstate.handleSetState)(part, userToSend, value, true, telegramParams);
256
+ }
257
+ if ((0, import_validateMenus.isCreateSubmenuNumber)(menuString, cbData) && menuToHandle) {
258
+ return createSubmenuNumber({ cbData, text, menuToHandle });
259
+ }
260
+ if ((0, import_validateMenus.isSetSubmenuNumber)(menuString, cbData)) {
261
+ const { value } = (0, import_splitValues.getSubmenuNumberValues)(menuString);
262
+ await (0, import_setstate.handleSetState)(part, userToSend, value, true, telegramParams);
263
+ }
264
+ if ((0, import_validateMenus.isMenuBack)(menuString)) {
265
+ await back({
266
+ userToSend,
267
+ allMenusWithData,
268
+ menus,
269
+ telegramParams
270
+ });
271
+ }
272
+ } catch (error) {
273
+ (0, import_logging.errorLogger)("Error subMenu:", error, import_main.adapter);
274
+ }
275
+ }
276
+ // Annotate the CommonJS export names for ESM import in node:
277
+ 0 && (module.exports = {
278
+ callSubMenu,
279
+ subMenu
280
+ });
281
+ //# sourceMappingURL=subMenu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/app/subMenu.ts"],
4
+ "sourcesContent": ["import { switchBack } from './backMenu';\nimport { handleSetState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { deleteMessageIds } from './messageIds';\nimport { createDynamicSwitchMenu } from './dynamicSwitchMenu';\nimport type {\n AllMenusWithData,\n BackMenuType,\n CallSubMenu,\n CreateMenu,\n Keyboard,\n KeyboardItems,\n Part,\n SetFirstMenuValue,\n SetSecondMenuValue,\n SplittedData,\n TelegramParams,\n} from '../types/types';\nimport { isNonEmptyString, jsonString } from '../lib/string';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport { getMenuValues, getSubmenuNumberValues } from '../lib/splitValues';\nimport {\n isCreateSubmenuNumber,\n isCreateSwitch,\n isDeleteMenu,\n isCreateDynamicSwitch,\n isFirstMenuValue,\n isMenuBack,\n isSecondMenuValue,\n isSetDynamicSwitchVal,\n isCreateSubmenuPercent,\n isSetSubmenuPercent,\n isSetSubmenuNumber,\n} from './validateMenus';\n\nlet step = 0;\nlet splittedData: SplittedData = [];\n\nconst createSubmenuPercent = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n const { cbData, menuToHandle } = obj;\n\n step = parseFloat(cbData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${menuToHandle}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${menuToHandle}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: menuToHandle };\n};\n\nconst setFirstMenuValue = async ({ telegramParams, userToSend, part }: SetFirstMenuValue): Promise<void> => {\n let val;\n adapter.log.debug(`SplitData: ${jsonString(splittedData)}`);\n\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, true, telegramParams);\n};\n\nconst setSecondMenuValue = async ({ telegramParams, part, userToSend }: SetSecondMenuValue): Promise<void> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, true, telegramParams);\n};\n\nconst createSubmenuNumber = ({\n cbData,\n menuToHandle,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; menuToHandle: string } => {\n if (cbData.includes('(-)')) {\n cbData = cbData.replace('(-)', 'negativ');\n }\n const splittedData = cbData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${cbData}:${menuToHandle}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n adapter.log.debug(`Keyboard: ${jsonString(keyboard)}`);\n\n return { text, keyboard, menuToHandle };\n};\n\nconst createSwitchMenu = ({\n menuToHandle,\n cbData,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = cbData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${menuToHandle}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${menuToHandle}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: menuToHandle };\n};\n\nconst back = async ({ telegramParams, userToSend, allMenusWithData, menus }: BackMenuType): Promise<void> => {\n const result = await switchBack(userToSend, allMenusWithData, menus);\n if (result) {\n const { keyboard, parse_mode, textToSend = '' } = result;\n await sendToTelegram({ userToSend, textToSend, keyboard, parse_mode: parse_mode, telegramParams });\n }\n};\n\nexport async function callSubMenu({\n jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: CallSubMenu): Promise<{ newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n menuString: jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n });\n adapter.log.debug(`Submenu: ${jsonString(obj)}`);\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);\n }\n return { newNav: obj?.navToGoBack };\n } catch (e: any) {\n errorLogger('Error callSubMenu:', e, adapter);\n }\n}\n\nexport async function subMenu({\n menuString,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: {\n menuString: string;\n userToSend: string;\n telegramParams: TelegramParams;\n part: Part;\n allMenusWithData: AllMenusWithData;\n menus: string[];\n}): Promise<{ text?: string; keyboard?: Keyboard; device?: string; navToGoBack?: string } | undefined> {\n try {\n adapter.log.debug(`Menu : ${menuString}`);\n\n const text = await checkStatusInfo(part.text);\n const { cbData, menuToHandle, val } = getMenuValues(menuString);\n\n if (isDeleteMenu(cbData) && menuToHandle) {\n await deleteMessageIds(userToSend, telegramParams, 'all');\n if (isNonEmptyString(menuToHandle)) {\n return { navToGoBack: menuToHandle };\n }\n }\n\n if (isCreateSwitch(cbData) && menuToHandle) {\n return createSwitchMenu({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isFirstMenuValue(cbData)) {\n await setFirstMenuValue({\n part,\n userToSend,\n telegramParams,\n });\n }\n\n if (isSecondMenuValue(cbData)) {\n await setSecondMenuValue({ part, userToSend, telegramParams });\n }\n\n if (isCreateDynamicSwitch(cbData) && menuToHandle) {\n return createDynamicSwitchMenu(menuString, menuToHandle, text);\n }\n\n if (isSetDynamicSwitchVal(cbData) && val) {\n await handleSetState(part, userToSend, val, true, telegramParams); //SetDynamicValue\n }\n\n if (isCreateSubmenuPercent(menuString, cbData) && menuToHandle) {\n return createSubmenuPercent({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuPercent(menuString, step)) {\n const value = parseInt(menuString.split(':')[1].split(',')[1]);\n await handleSetState(part, userToSend, value, true, telegramParams);\n }\n\n if (isCreateSubmenuNumber(menuString, cbData) && menuToHandle) {\n return createSubmenuNumber({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuNumber(menuString, cbData)) {\n const { value } = getSubmenuNumberValues(menuString);\n await handleSetState(part, userToSend, value, true, telegramParams);\n }\n\n if (isMenuBack(menuString)) {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n telegramParams,\n });\n }\n } catch (error: any) {\n errorLogger('Error subMenu:', error, adapter);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["splittedData", "step"]
7
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var subscribeStates_exports = {};
20
+ __export(subscribeStates_exports, {
21
+ _subscribeForeignStates: () => _subscribeForeignStates
22
+ });
23
+ module.exports = __toCommonJS(subscribeStates_exports);
24
+ var import_main = require("../main");
25
+ var import_object = require("../lib/object");
26
+ async function _subscribeForeignStates(val) {
27
+ if (typeof val === "string") {
28
+ import_main.adapter.log.debug(`Subscribe to ${val}`);
29
+ await import_main.adapter.subscribeForeignStatesAsync(val);
30
+ return;
31
+ }
32
+ const array = (0, import_object.removeDuplicates)(val);
33
+ for (const id of array) {
34
+ await import_main.adapter.subscribeForeignStatesAsync(id);
35
+ }
36
+ }
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ _subscribeForeignStates
40
+ });
41
+ //# sourceMappingURL=subscribeStates.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/app/subscribeStates.ts"],
4
+ "sourcesContent": ["import { adapter } from '../main';\nimport { removeDuplicates } from '../lib/object';\n\nexport async function _subscribeForeignStates(val: string | string[]): Promise<void> {\n if (typeof val === 'string') {\n adapter.log.debug(`Subscribe to ${val}`);\n await adapter.subscribeForeignStatesAsync(val);\n return;\n }\n\n const array = removeDuplicates(val);\n for (const id of array) {\n await adapter.subscribeForeignStatesAsync(id);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AACxB,oBAAiC;AAEjC,eAAsB,wBAAwB,KAAuC;AACjF,MAAI,OAAO,QAAQ,UAAU;AACzB,wBAAQ,IAAI,MAAM,gBAAgB,GAAG,EAAE;AACvC,UAAM,oBAAQ,4BAA4B,GAAG;AAC7C;AAAA,EACJ;AAEA,QAAM,YAAQ,gCAAiB,GAAG;AAClC,aAAW,MAAM,OAAO;AACpB,UAAM,oBAAQ,4BAA4B,EAAE;AAAA,EAChD;AACJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var telegram_exports = {};
20
+ __export(telegram_exports, {
21
+ sendLocationToTelegram: () => sendLocationToTelegram,
22
+ sendToTelegram: () => sendToTelegram,
23
+ sendToTelegramSubmenu: () => sendToTelegramSubmenu
24
+ });
25
+ module.exports = __toCommonJS(telegram_exports);
26
+ var import_logging = require("./logging");
27
+ var import_utilities = require("../lib/utilities");
28
+ var import_main = require("../main");
29
+ var import_utils = require("../lib/utils");
30
+ var import_string = require("../lib/string");
31
+ var import_appUtils = require("../lib/appUtils");
32
+ async function sendToTelegram({
33
+ userToSend,
34
+ textToSend,
35
+ keyboard,
36
+ telegramParams,
37
+ parse_mode
38
+ }) {
39
+ try {
40
+ const { telegramInstance, resize_keyboard, one_time_keyboard, userListWithChatID } = telegramParams;
41
+ const chatId = (0, import_utils.getChatID)(userListWithChatID, userToSend);
42
+ import_main.adapter.log.debug(`Send to: ${userToSend} => ${textToSend}`);
43
+ import_main.adapter.log.debug(`Instance: ${telegramInstance}`);
44
+ import_main.adapter.log.debug(`UserListWithChatID : ${(0, import_string.jsonString)(userListWithChatID)}`);
45
+ import_main.adapter.log.debug(`Parse mode : ${parse_mode}`);
46
+ import_main.adapter.log.debug(`ChatId : ${chatId}`);
47
+ const validatedTextToSend = (0, import_string.cleanUpString)(textToSend != null ? textToSend : "");
48
+ if (!keyboard) {
49
+ import_main.adapter.sendTo(
50
+ telegramInstance,
51
+ "send",
52
+ {
53
+ text: validatedTextToSend,
54
+ chatId,
55
+ parse_mode: (0, import_appUtils.getParseMode)(parse_mode)
56
+ },
57
+ (res) => telegramLogger(res)
58
+ );
59
+ return;
60
+ }
61
+ import_main.adapter.sendTo(
62
+ telegramInstance,
63
+ "send",
64
+ {
65
+ chatId,
66
+ parse_mode: (0, import_appUtils.getParseMode)(parse_mode),
67
+ text: await (0, import_utilities.checkStatusInfo)(validatedTextToSend),
68
+ reply_markup: {
69
+ keyboard,
70
+ resize_keyboard,
71
+ one_time_keyboard
72
+ }
73
+ },
74
+ (res) => telegramLogger(res)
75
+ );
76
+ } catch (e) {
77
+ (0, import_logging.errorLogger)("Error sendToTelegram:", e, import_main.adapter);
78
+ }
79
+ }
80
+ function sendToTelegramSubmenu(user, textToSend, keyboard, telegramParams, parse_mode) {
81
+ const { telegramInstance: instance, userListWithChatID } = telegramParams;
82
+ import_main.adapter.sendTo(
83
+ instance,
84
+ "send",
85
+ {
86
+ chatId: (0, import_utils.getChatID)(userListWithChatID, user),
87
+ parse_mode: (0, import_appUtils.getParseMode)(parse_mode),
88
+ text: (0, import_string.cleanUpString)(textToSend),
89
+ reply_markup: keyboard
90
+ },
91
+ (res) => telegramLogger(res)
92
+ );
93
+ }
94
+ const sendLocationToTelegram = async (user, data, telegramParams) => {
95
+ const { userListWithChatID, telegramInstance: instance } = telegramParams;
96
+ try {
97
+ const chatId = (0, import_utils.getChatID)(userListWithChatID, user);
98
+ for (const { longitude: longitudeID, latitude: latitudeID } of data) {
99
+ if (!(latitudeID || longitudeID)) {
100
+ continue;
101
+ }
102
+ const latitude = await import_main.adapter.getForeignStateAsync(latitudeID);
103
+ const longitude = await import_main.adapter.getForeignStateAsync(longitudeID);
104
+ if (!latitude || !longitude) {
105
+ continue;
106
+ }
107
+ import_main.adapter.sendTo(
108
+ instance,
109
+ {
110
+ chatId,
111
+ latitude: latitude.val,
112
+ longitude: longitude.val,
113
+ disable_notification: true
114
+ },
115
+ (res) => telegramLogger(res)
116
+ );
117
+ }
118
+ } catch (e) {
119
+ (0, import_logging.errorLogger)("Error sendLocationToTelegram:", e, import_main.adapter);
120
+ }
121
+ };
122
+ function telegramLogger(res) {
123
+ import_main.adapter.log.debug(`Sent Value to ${(0, import_string.jsonString)(res)} users!`);
124
+ }
125
+ // Annotate the CommonJS export names for ESM import in node:
126
+ 0 && (module.exports = {
127
+ sendLocationToTelegram,
128
+ sendToTelegram,
129
+ sendToTelegramSubmenu
130
+ });
131
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/app/telegram.ts"],
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { adapter } from '../main';\nimport type { Keyboard, Location, Telegram, TelegramParams } from '../types/types';\nimport { getChatID } from '../lib/utils';\nimport { cleanUpString, jsonString } from '../lib/string';\nimport { getParseMode } from '../lib/appUtils';\n\nasync function sendToTelegram({\n userToSend,\n textToSend,\n keyboard,\n telegramParams,\n parse_mode,\n}: Telegram): Promise<void> {\n try {\n const { telegramInstance, resize_keyboard, one_time_keyboard, userListWithChatID } = telegramParams;\n const chatId = getChatID(userListWithChatID, userToSend);\n\n adapter.log.debug(`Send to: ${userToSend} => ${textToSend}`);\n adapter.log.debug(`Instance: ${telegramInstance}`);\n adapter.log.debug(`UserListWithChatID\t: ${jsonString(userListWithChatID)}`);\n adapter.log.debug(`Parse mode\t: ${parse_mode}`);\n adapter.log.debug(`ChatId\t: ${chatId}`);\n\n const validatedTextToSend = cleanUpString(textToSend ?? '');\n if (!keyboard) {\n adapter.sendTo(\n telegramInstance,\n 'send',\n {\n text: validatedTextToSend,\n chatId,\n parse_mode: getParseMode(parse_mode),\n },\n res => telegramLogger(res),\n );\n return;\n }\n\n adapter.sendTo(\n telegramInstance,\n 'send',\n {\n chatId,\n parse_mode: getParseMode(parse_mode),\n text: await checkStatusInfo(validatedTextToSend),\n reply_markup: {\n keyboard,\n resize_keyboard,\n one_time_keyboard,\n },\n },\n res => telegramLogger(res),\n );\n } catch (e) {\n errorLogger('Error sendToTelegram:', e, adapter);\n }\n}\n\nfunction sendToTelegramSubmenu(\n user: string,\n textToSend: string,\n keyboard: Keyboard,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): void {\n const { telegramInstance: instance, userListWithChatID } = telegramParams;\n adapter.sendTo(\n instance,\n 'send',\n {\n chatId: getChatID(userListWithChatID, user),\n parse_mode: getParseMode(parse_mode),\n text: cleanUpString(textToSend),\n reply_markup: keyboard,\n },\n (res: any) => telegramLogger(res),\n );\n}\n\nconst sendLocationToTelegram = async (\n user: string,\n data: Location[],\n telegramParams: TelegramParams,\n): Promise<void> => {\n const { userListWithChatID, telegramInstance: instance } = telegramParams;\n try {\n const chatId = getChatID(userListWithChatID, user);\n\n for (const { longitude: longitudeID, latitude: latitudeID } of data) {\n if (!(latitudeID || longitudeID)) {\n continue;\n }\n\n const latitude = await adapter.getForeignStateAsync(latitudeID);\n const longitude = await adapter.getForeignStateAsync(longitudeID);\n if (!latitude || !longitude) {\n continue;\n }\n adapter.sendTo(\n instance,\n {\n chatId: chatId,\n latitude: latitude.val,\n longitude: longitude.val,\n disable_notification: true,\n },\n (res: any) => telegramLogger(res),\n );\n }\n } catch (e: any) {\n errorLogger('Error sendLocationToTelegram:', e, adapter);\n }\n};\n\nfunction telegramLogger(res: any): void {\n adapter.log.debug(`Sent Value to ${jsonString(res)} users!`);\n}\n\nexport { sendToTelegram, sendToTelegramSubmenu, sendLocationToTelegram };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAC5B,uBAAgC;AAChC,kBAAwB;AAExB,mBAA0B;AAC1B,oBAA0C;AAC1C,sBAA6B;AAE7B,eAAe,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA4B;AACxB,MAAI;AACA,UAAM,EAAE,kBAAkB,iBAAiB,mBAAmB,mBAAmB,IAAI;AACrF,UAAM,aAAS,wBAAU,oBAAoB,UAAU;AAEvD,wBAAQ,IAAI,MAAM,YAAY,UAAU,OAAO,UAAU,EAAE;AAC3D,wBAAQ,IAAI,MAAM,aAAa,gBAAgB,EAAE;AACjD,wBAAQ,IAAI,MAAM,4BAAwB,0BAAW,kBAAkB,CAAC,EAAE;AAC1E,wBAAQ,IAAI,MAAM,gBAAgB,UAAU,EAAE;AAC9C,wBAAQ,IAAI,MAAM,YAAY,MAAM,EAAE;AAEtC,UAAM,0BAAsB,6BAAc,kCAAc,EAAE;AAC1D,QAAI,CAAC,UAAU;AACX,0BAAQ;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN;AAAA,UACA,gBAAY,8BAAa,UAAU;AAAA,QACvC;AAAA,QACA,SAAO,eAAe,GAAG;AAAA,MAC7B;AACA;AAAA,IACJ;AAEA,wBAAQ;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,QACI;AAAA,QACA,gBAAY,8BAAa,UAAU;AAAA,QACnC,MAAM,UAAM,kCAAgB,mBAAmB;AAAA,QAC/C,cAAc;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,SAAO,eAAe,GAAG;AAAA,IAC7B;AAAA,EACJ,SAAS,GAAG;AACR,oCAAY,yBAAyB,GAAG,mBAAO;AAAA,EACnD;AACJ;AAEA,SAAS,sBACL,MACA,YACA,UACA,gBACA,YACI;AACJ,QAAM,EAAE,kBAAkB,UAAU,mBAAmB,IAAI;AAC3D,sBAAQ;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,MACI,YAAQ,wBAAU,oBAAoB,IAAI;AAAA,MAC1C,gBAAY,8BAAa,UAAU;AAAA,MACnC,UAAM,6BAAc,UAAU;AAAA,MAC9B,cAAc;AAAA,IAClB;AAAA,IACA,CAAC,QAAa,eAAe,GAAG;AAAA,EACpC;AACJ;AAEA,MAAM,yBAAyB,OAC3B,MACA,MACA,mBACgB;AAChB,QAAM,EAAE,oBAAoB,kBAAkB,SAAS,IAAI;AAC3D,MAAI;AACA,UAAM,aAAS,wBAAU,oBAAoB,IAAI;AAEjD,eAAW,EAAE,WAAW,aAAa,UAAU,WAAW,KAAK,MAAM;AACjE,UAAI,EAAE,cAAc,cAAc;AAC9B;AAAA,MACJ;AAEA,YAAM,WAAW,MAAM,oBAAQ,qBAAqB,UAAU;AAC9D,YAAM,YAAY,MAAM,oBAAQ,qBAAqB,WAAW;AAChE,UAAI,CAAC,YAAY,CAAC,WAAW;AACzB;AAAA,MACJ;AACA,0BAAQ;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA,UAAU,SAAS;AAAA,UACnB,WAAW,UAAU;AAAA,UACrB,sBAAsB;AAAA,QAC1B;AAAA,QACA,CAAC,QAAa,eAAe,GAAG;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,iCAAiC,GAAG,mBAAO;AAAA,EAC3D;AACJ;AAEA,SAAS,eAAe,KAAgB;AACpC,sBAAQ,IAAI,MAAM,qBAAiB,0BAAW,GAAG,CAAC,SAAS;AAC/D;",
6
+ "names": []
7
+ }