iobroker.telegram-menu 2.2.3 → 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 (287) hide show
  1. package/README.md +13 -1
  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 +22 -27
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js +6 -6
  118. package/build/lib/adapterStartMenuSend.js.map +2 -2
  119. package/build/lib/appUtils.js +158 -0
  120. package/build/lib/appUtils.js.map +7 -0
  121. package/build/lib/appUtilsString.js +37 -0
  122. package/build/lib/appUtilsString.js.map +7 -0
  123. package/build/lib/backMenu.js +6 -6
  124. package/build/lib/backMenu.js.map +2 -2
  125. package/build/lib/botAction.js.map +1 -1
  126. package/build/lib/dynamicSwitch.js +10 -10
  127. package/build/lib/dynamicSwitch.js.map +2 -2
  128. package/build/lib/dynamicValue.js +6 -6
  129. package/build/lib/dynamicValue.js.map +2 -2
  130. package/build/lib/echarts.js +5 -6
  131. package/build/lib/echarts.js.map +2 -2
  132. package/build/lib/getstate.js +29 -30
  133. package/build/lib/getstate.js.map +2 -2
  134. package/build/lib/global.js +13 -0
  135. package/build/lib/global.js.map +2 -2
  136. package/build/lib/httpRequest.js +6 -7
  137. package/build/lib/httpRequest.js.map +2 -2
  138. package/build/lib/json.js +54 -0
  139. package/build/lib/json.js.map +7 -0
  140. package/build/lib/jsonTable.js +12 -15
  141. package/build/lib/jsonTable.js.map +2 -2
  142. package/build/lib/math.js +41 -0
  143. package/build/lib/math.js.map +7 -0
  144. package/build/lib/messageIds.js.map +1 -1
  145. package/build/lib/object.js +35 -0
  146. package/build/lib/object.js.map +7 -0
  147. package/build/lib/processData.js +22 -33
  148. package/build/lib/processData.js.map +3 -3
  149. package/build/lib/sendNav.js +7 -7
  150. package/build/lib/sendNav.js.map +2 -2
  151. package/build/lib/sendpic.js +23 -22
  152. package/build/lib/sendpic.js.map +2 -2
  153. package/build/lib/setstate.js +8 -8
  154. package/build/lib/setstate.js.map +2 -2
  155. package/build/lib/shoppingList.js +6 -6
  156. package/build/lib/shoppingList.js.map +2 -2
  157. package/build/lib/splitValues.js +63 -0
  158. package/build/lib/splitValues.js.map +7 -0
  159. package/build/lib/string.js +125 -3
  160. package/build/lib/string.js.map +2 -2
  161. package/build/lib/subMenu.js +66 -50
  162. package/build/lib/subMenu.js.map +2 -2
  163. package/build/lib/subscribeStates.js.map +1 -1
  164. package/build/lib/telegram.js +11 -2
  165. package/build/lib/telegram.js.map +2 -2
  166. package/build/lib/time.js +93 -0
  167. package/build/lib/time.js.map +7 -0
  168. package/build/lib/utilities.js +85 -281
  169. package/build/lib/utilities.js.map +3 -3
  170. package/build/lib/utils.js +66 -0
  171. package/build/lib/utils.js.map +7 -0
  172. package/build/main.js +154 -234
  173. package/build/main.js.map +3 -3
  174. package/build/src/app/action.js +239 -0
  175. package/build/src/app/action.js.map +1 -0
  176. package/build/src/app/adapterManager.js +12 -0
  177. package/build/src/app/adapterManager.js.map +1 -0
  178. package/build/src/app/adapterStartMenuSend.js +36 -0
  179. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  180. package/build/src/app/backMenu.js +81 -0
  181. package/build/src/app/backMenu.js.map +1 -0
  182. package/build/src/app/botAction.js +25 -0
  183. package/build/src/app/botAction.js.map +1 -0
  184. package/build/src/app/configVariables.js +32 -0
  185. package/build/src/app/configVariables.js.map +1 -0
  186. package/build/src/app/connection.js +20 -0
  187. package/build/src/app/connection.js.map +1 -0
  188. package/build/src/app/createState.js +19 -0
  189. package/build/src/app/createState.js.map +1 -0
  190. package/build/src/app/dynamicSwitch.js +52 -0
  191. package/build/src/app/dynamicSwitch.js.map +1 -0
  192. package/build/src/app/dynamicSwitchMenu.js +52 -0
  193. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  194. package/build/src/app/dynamicValue.js +52 -0
  195. package/build/src/app/dynamicValue.js.map +1 -0
  196. package/build/src/app/echarts.js +33 -0
  197. package/build/src/app/echarts.js.map +1 -0
  198. package/build/src/app/getstate.js +122 -0
  199. package/build/src/app/getstate.js.map +1 -0
  200. package/build/src/app/global.js +8 -0
  201. package/build/src/app/global.js.map +1 -0
  202. package/build/src/app/httpRequest.js +55 -0
  203. package/build/src/app/httpRequest.js.map +1 -0
  204. package/build/src/app/jsonTable.js +147 -0
  205. package/build/src/app/jsonTable.js.map +1 -0
  206. package/build/src/app/logging.js +22 -0
  207. package/build/src/app/logging.js.map +1 -0
  208. package/build/src/app/messageIds.js +89 -0
  209. package/build/src/app/messageIds.js.map +1 -0
  210. package/build/src/app/processData.js +153 -0
  211. package/build/src/app/processData.js.map +1 -0
  212. package/build/src/app/sendNav.js +26 -0
  213. package/build/src/app/sendNav.js.map +1 -0
  214. package/build/src/app/sendpic.js +66 -0
  215. package/build/src/app/sendpic.js.map +1 -0
  216. package/build/src/app/sentry.js +18 -0
  217. package/build/src/app/sentry.js.map +1 -0
  218. package/build/src/app/setStateIdsToListenTo.js +17 -0
  219. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  220. package/build/src/app/setstate.js +114 -0
  221. package/build/src/app/setstate.js.map +1 -0
  222. package/build/src/app/shoppingList.js +74 -0
  223. package/build/src/app/shoppingList.js.map +1 -0
  224. package/build/src/app/subMenu.js +237 -0
  225. package/build/src/app/subMenu.js.map +1 -0
  226. package/build/src/app/subscribeStates.js +17 -0
  227. package/build/src/app/subscribeStates.js.map +1 -0
  228. package/build/src/app/telegram.js +83 -0
  229. package/build/src/app/telegram.js.map +1 -0
  230. package/build/src/app/validateMenus.js +30 -0
  231. package/build/src/app/validateMenus.js.map +1 -0
  232. package/build/src/config/config.js +100 -0
  233. package/build/src/config/config.js.map +1 -0
  234. package/build/src/lib/appUtils.js +126 -0
  235. package/build/src/lib/appUtils.js.map +1 -0
  236. package/build/src/lib/appUtilsString.js +13 -0
  237. package/build/src/lib/appUtilsString.js.map +1 -0
  238. package/build/src/lib/json.js +37 -0
  239. package/build/src/lib/json.js.map +1 -0
  240. package/build/src/lib/math.js +17 -0
  241. package/build/src/lib/math.js.map +1 -0
  242. package/build/src/lib/object.js +10 -0
  243. package/build/src/lib/object.js.map +1 -0
  244. package/build/src/lib/splitValues.js +35 -0
  245. package/build/src/lib/splitValues.js.map +1 -0
  246. package/build/src/lib/string.js +121 -0
  247. package/build/src/lib/string.js.map +1 -0
  248. package/build/src/lib/time.js +57 -0
  249. package/build/src/lib/time.js.map +1 -0
  250. package/build/src/lib/utilities.js +111 -0
  251. package/build/src/lib/utilities.js.map +1 -0
  252. package/build/src/lib/utils.js +37 -0
  253. package/build/src/lib/utils.js.map +1 -0
  254. package/build/src/main.js +332 -0
  255. package/build/src/main.js.map +1 -0
  256. package/build/src/test/setup.js +12 -0
  257. package/build/src/test/setup.js.map +1 -0
  258. package/build/src/types/types.js +3 -0
  259. package/build/src/types/types.js.map +1 -0
  260. package/build/test/integration.js +0 -1
  261. package/build/test/integration.js.map +1 -1
  262. package/build/test/mocha.setup.js +0 -1
  263. package/build/test/mocha.setup.js.map +1 -1
  264. package/build/test/package.js +0 -1
  265. package/build/test/package.js.map +1 -1
  266. package/build/test/setup.js +12 -0
  267. package/build/test/setup.js.map +1 -0
  268. package/build/test/test/appUtils.test.js +507 -0
  269. package/build/test/test/appUtils.test.js.map +1 -0
  270. package/build/test/test/appUtilsString.test.js +16 -0
  271. package/build/test/test/appUtilsString.test.js.map +1 -0
  272. package/build/test/test/math.test.js +33 -0
  273. package/build/test/test/math.test.js.map +1 -0
  274. package/build/test/test/object.test.js +54 -0
  275. package/build/test/test/object.test.js.map +1 -0
  276. package/build/test/test/string.test.js +361 -0
  277. package/build/test/test/string.test.js.map +1 -0
  278. package/build/test/test/time.test.js +201 -0
  279. package/build/test/test/time.test.js.map +1 -0
  280. package/build/test/test/utils.test.js +115 -0
  281. package/build/test/test/utils.test.js.map +1 -0
  282. package/build/types/types.js +17 -0
  283. package/build/types/types.js.map +7 -0
  284. package/io-package.json +32 -27
  285. package/package.json +14 -10
  286. package/build/main.test.js +0 -24
  287. package/build/main.test.js.map +0 -1
package/build/main.js CHANGED
@@ -33,20 +33,23 @@ __export(main_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(main_exports);
35
35
  var utils = __toESM(require("@iobroker/adapter-core"));
36
- var import_action = require("./lib/action.js");
37
- var import_subscribeStates = require("./lib/subscribeStates.js");
38
- var import_telegram = require("./lib/telegram.js");
39
- var import_utilities = require("./lib/utilities.js");
40
- var import_createState = require("./lib/createState.js");
41
- var import_messageIds = require("./lib/messageIds.js");
42
- var import_adapterStartMenuSend = require("./lib/adapterStartMenuSend.js");
43
- var import_processData = require("./lib/processData.js");
44
- var import_shoppingList = require("./lib/shoppingList.js");
45
- var import_logging = require("./lib/logging.js");
46
- var import_connection = require("./lib/connection.js");
47
- var import_global = require("./lib/global");
36
+ var import_action = require("./app/action.js");
37
+ var import_subscribeStates = require("./app/subscribeStates.js");
38
+ var import_telegram = require("./app/telegram.js");
39
+ var import_createState = require("./app/createState.js");
40
+ var import_messageIds = require("./app/messageIds.js");
41
+ var import_adapterStartMenuSend = require("./app/adapterStartMenuSend.js");
42
+ var import_processData = require("./app/processData.js");
43
+ var import_shoppingList = require("./app/shoppingList.js");
44
+ var import_logging = require("./app/logging.js");
45
+ var import_connection = require("./app/connection.js");
46
+ var import_string = require("./lib/string");
47
+ var import_utils = require("./lib/utils");
48
+ var import_appUtils = require("./lib/appUtils");
49
+ var import_configVariables = require("./app/configVariables");
50
+ var import_setStateIdsToListenTo = require("./app/setStateIdsToListenTo");
48
51
  const timeoutKey = "0";
49
- let subscribeForeignStateIds;
52
+ let adapter;
50
53
  class TelegramMenu extends utils.Adapter {
51
54
  static instance;
52
55
  /**
@@ -61,91 +64,67 @@ class TelegramMenu extends utils.Adapter {
61
64
  this.on("unload", this.onUnload.bind(this));
62
65
  TelegramMenu.instance = this;
63
66
  }
64
- static getInstance() {
65
- return TelegramMenu.instance;
66
- }
67
67
  async onReady() {
68
+ adapter = this;
68
69
  await this.setState("info.connection", false, true);
69
70
  await (0, import_createState.createState)(this);
70
- let instanceTelegram = this.config.instance;
71
- if (!instanceTelegram || instanceTelegram.length == 0) {
72
- instanceTelegram = "telegram.0";
73
- }
74
- const telegramID = `${instanceTelegram}.communicate.request`;
75
- const botSendMessageID = `${instanceTelegram}.communicate.botSendMessageId`;
76
- const requestMessageID = `${instanceTelegram}.communicate.requestMessageId`;
77
- const infoConnectionOfTelegram = `${instanceTelegram}.info.connection`;
78
- const checkboxes = this.config.checkbox;
79
- const one_time_keyboard = checkboxes.oneTiKey;
80
- const resize_keyboard = checkboxes.resKey;
81
- const checkboxNoEntryFound = checkboxes.checkboxNoValueFound;
82
- const sendMenuAfterRestart = checkboxes.sendMenuAfterRestart;
83
- let listOfMenus = [];
84
- if (this.config.usersInGroup) {
85
- listOfMenus = Object.keys(this.config.usersInGroup);
86
- }
87
- const token = this.config.tokenGrafana;
88
- const directoryPicture = this.config.directory;
89
- const isUserActiveCheckbox = this.config.userActiveCheckbox;
90
- const menusWithUsers = this.config.usersInGroup;
91
- const textNoEntryFound = this.config.textNoEntry;
92
- const userListWithChatID = this.config.userListWithChatID;
93
- const dataObject = this.config.data;
94
- const startSides = {};
95
- const menuData = {
96
- data: {}
97
- };
98
- Object.keys(menusWithUsers).forEach((element) => {
99
- startSides[element] = dataObject.nav[element][0].call;
100
- });
101
- await this.getForeignObject(infoConnectionOfTelegram, async (err, obj) => {
102
- try {
103
- if (err || obj == null) {
71
+ const {
72
+ requestMessageID,
73
+ directoryPicture,
74
+ telegramParams,
75
+ telegramID,
76
+ menusWithUsers,
77
+ infoConnectionOfTelegram,
78
+ listOfMenus,
79
+ isUserActiveCheckbox,
80
+ checkboxNoEntryFound,
81
+ textNoEntryFound,
82
+ botSendMessageID,
83
+ sendMenuAfterRestart,
84
+ token,
85
+ dataObject,
86
+ checkboxes
87
+ } = (0, import_configVariables.getConfigVariables)(this.config);
88
+ const { telegramInstance } = telegramParams;
89
+ const menuData = {};
90
+ const startSides = (0, import_appUtils.getStartSides)(menusWithUsers, dataObject);
91
+ try {
92
+ await this.getForeignObject(infoConnectionOfTelegram, async (err, obj) => {
93
+ var _a;
94
+ if (err || !obj) {
104
95
  this.log.error(`The State ${infoConnectionOfTelegram} was not found! ${err}`);
105
96
  return;
106
97
  }
107
- const isTelegramActive = await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram);
108
- if (!isTelegramActive) {
98
+ if (!await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram)) {
109
99
  return;
110
100
  }
111
101
  const { nav, action } = dataObject;
112
102
  this.log.info("Telegram was found");
113
103
  for (const name in nav) {
114
- const value = (0, import_action.editArrayButtons)(nav[name], this);
115
- const newObjectStructure = (0, import_action.generateNewObjectStructure)(value);
116
- if (newObjectStructure) {
117
- menuData.data[name] = newObjectStructure;
118
- }
119
- const generatedActions = (0, import_action.generateActions)(
120
- action[name],
121
- menuData.data[name]
122
- );
104
+ const splittedNavigation = (0, import_appUtils.splitNavigation)(nav[name]);
105
+ const newStructure = (0, import_appUtils.getNewStructure)(splittedNavigation);
106
+ const generatedActions = (0, import_action.generateActions)({ action: action[name], userObject: newStructure });
107
+ menuData[name] = newStructure;
123
108
  if (generatedActions) {
124
- menuData.data[name] = generatedActions == null ? void 0 : generatedActions.obj;
125
- subscribeForeignStateIds = generatedActions == null ? void 0 : generatedActions.ids;
126
- } else {
127
- (0, import_logging.debug)([{ text: "No Actions generated!" }]);
128
- }
129
- if (subscribeForeignStateIds && (subscribeForeignStateIds == null ? void 0 : subscribeForeignStateIds.length) > 0) {
130
- await (0, import_subscribeStates._subscribeForeignStatesAsync)(subscribeForeignStateIds);
109
+ menuData[name] = generatedActions == null ? void 0 : generatedActions.obj;
110
+ const subscribeForeignStateIds = generatedActions == null ? void 0 : generatedActions.ids;
111
+ if (subscribeForeignStateIds == null ? void 0 : subscribeForeignStateIds.length) {
112
+ await (0, import_subscribeStates._subscribeForeignStates)(subscribeForeignStateIds);
113
+ }
131
114
  } else {
132
- (0, import_logging.debug)([{ text: "Nothing to Subscribe!" }]);
115
+ adapter.log.debug("No Actions generated!");
133
116
  }
134
- if (dataObject.action[name] && dataObject.action[name].events) {
117
+ if ((_a = dataObject.action[name]) == null ? void 0 : _a.events) {
135
118
  for (const event of dataObject.action[name].events) {
136
- await (0, import_subscribeStates._subscribeForeignStatesAsync)([event.ID]);
119
+ await (0, import_subscribeStates._subscribeForeignStates)(event.ID);
137
120
  }
138
121
  }
139
- (0, import_logging.debug)([
140
- { text: "Menu: ", val: name },
141
- { text: "Array Buttons: ", val: value },
142
- { text: "Gen. Actions: ", val: menuData.data[name] }
143
- ]);
122
+ adapter.log.debug(`Menu: ${name}`);
123
+ adapter.log.debug(`Array Buttons: ${(0, import_string.jsonString)(splittedNavigation)}`);
124
+ adapter.log.debug(`Gen. Actions: ${(0, import_string.jsonString)(menuData[name])}`);
144
125
  }
145
- (0, import_logging.debug)([
146
- { text: "Checkbox", val: checkboxes },
147
- { text: "MenuList", val: listOfMenus }
148
- ]);
126
+ adapter.log.debug(`Checkbox: ${(0, import_string.jsonString)(checkboxes)}`);
127
+ adapter.log.debug(`MenuList: ${(0, import_string.jsonString)(listOfMenus)}`);
149
128
  if (sendMenuAfterRestart) {
150
129
  await (0, import_adapterStartMenuSend.adapterStartMenuSend)(
151
130
  listOfMenus,
@@ -153,199 +132,141 @@ class TelegramMenu extends utils.Adapter {
153
132
  isUserActiveCheckbox,
154
133
  menusWithUsers,
155
134
  menuData,
156
- userListWithChatID,
157
- instanceTelegram,
158
- resize_keyboard,
159
- one_time_keyboard
135
+ telegramParams
160
136
  );
161
137
  }
162
138
  this.on("stateChange", async (id, state) => {
163
- const setStateIdsToListenTo = (0, import_processData.getStateIdsToListenTo)();
164
- const isActive = await this.checkInfoConnection(id, infoConnectionOfTelegram);
165
- if (!isActive) {
139
+ var _a2, _b, _c;
140
+ const setStateIdsToListenTo = (0, import_setStateIdsToListenTo.getStateIdsToListenTo)();
141
+ const isTelegramInstanceActive = await this.checkInfoConnection(id, infoConnectionOfTelegram);
142
+ if (!isTelegramInstanceActive) {
166
143
  return;
167
144
  }
168
- const obj2 = await this.getChatIDAndUserToSend(instanceTelegram, userListWithChatID);
169
- if (!obj2) {
145
+ const { userToSend, error } = await this.getChatIDAndUserToSend(telegramParams);
146
+ if (error) {
170
147
  return;
171
148
  }
172
- const { userToSend } = obj2;
173
- if ((0, import_global.isString)(state == null ? void 0 : state.val) && state.val.includes("sList:")) {
174
- await (0, import_shoppingList.shoppingListSubscribeStateAndDeleteItem)(
175
- state.val,
176
- instanceTelegram,
177
- userListWithChatID,
178
- resize_keyboard,
179
- one_time_keyboard
180
- );
149
+ if (this.isAddToShoppingList(id, userToSend)) {
150
+ await (0, import_shoppingList.deleteMessageAndSendNewShoppingList)(telegramParams, userToSend);
181
151
  return;
182
152
  }
183
- if (this.isAddToShoppingList(id, userToSend)) {
184
- await (0, import_shoppingList.deleteMessageAndSendNewShoppingList)(instanceTelegram, userListWithChatID, userToSend);
153
+ if (!state || !(0, import_utils.isDefined)(state.val)) {
185
154
  return;
186
155
  }
187
- if (state && await (0, import_action.checkEvent)(
188
- dataObject,
189
- id,
190
- state,
191
- menuData,
192
- userListWithChatID,
193
- instanceTelegram,
194
- resize_keyboard,
195
- one_time_keyboard,
196
- menusWithUsers
197
- )) {
156
+ if ((0, import_string.isString)(state.val) && state.val.includes("sList:")) {
157
+ await (0, import_shoppingList.shoppingListSubscribeStateAndDeleteItem)(state.val, telegramParams);
158
+ return;
159
+ }
160
+ if (await (0, import_action.checkEvent)(dataObject, id, state, menuData, telegramParams, menusWithUsers)) {
198
161
  return;
199
162
  }
200
- if (this.isMessageID(id, botSendMessageID, requestMessageID) && state) {
201
- await (0, import_messageIds.saveMessageIds)(state, instanceTelegram);
163
+ if (this.isMessageID(id, botSendMessageID, requestMessageID)) {
164
+ await (0, import_messageIds.saveMessageIds)(state, telegramInstance);
202
165
  } else if (this.isMenuToSend(state, id, telegramID, userToSend)) {
203
- let value = state == null ? void 0 : state.val;
204
- if (!value || !userToSend) {
205
- return;
206
- }
207
- value = value.toString();
166
+ const value = state.val.toString();
208
167
  const calledValue = value.slice(value.indexOf("]") + 1, value.length);
209
- const menus = (0, import_action.getMenusWithUserToSend)(menusWithUsers, userToSend);
168
+ const menus = (0, import_appUtils.getListOfMenusIncludingUser)(menusWithUsers, userToSend);
210
169
  const dataFound = await (0, import_processData.checkEveryMenuForData)({
211
170
  menuData,
212
171
  calledValue,
213
172
  userToSend,
214
- instanceTelegram,
215
- resize_keyboard,
216
- one_time_keyboard,
217
- userListWithChatID,
173
+ telegramParams,
218
174
  menus,
219
175
  isUserActiveCheckbox,
220
176
  token,
221
177
  directoryPicture,
222
178
  timeoutKey
223
179
  });
224
- (0, import_logging.debug)([
225
- { text: "Groups with searched User:", val: menus },
226
- { text: "Data found:", val: dataFound }
227
- ]);
228
- if (!dataFound && checkboxNoEntryFound && userToSend) {
229
- (0, import_logging.debug)([{ text: "No Entry found" }]);
230
- await (0, import_telegram.sendToTelegram)(
180
+ this.log.debug(`Groups with searched User: ${(0, import_string.jsonString)(menus)}`);
181
+ if (!dataFound && checkboxNoEntryFound) {
182
+ adapter.log.debug("No Entry found");
183
+ await (0, import_telegram.sendToTelegram)({
231
184
  userToSend,
232
- textNoEntryFound,
233
- void 0,
234
- instanceTelegram,
235
- resize_keyboard,
236
- one_time_keyboard,
237
- userListWithChatID,
238
- "false"
239
- );
185
+ textToSend: textNoEntryFound,
186
+ telegramParams
187
+ });
240
188
  }
241
189
  return;
242
190
  }
243
- if (state && setStateIdsToListenTo && setStateIdsToListenTo.find((element) => element.id == id)) {
244
- (0, import_logging.debug)([
245
- { text: "State, which is listen to was changed:", val: id },
246
- { text: "State:", val: state }
247
- ]);
248
- setStateIdsToListenTo.forEach((element, key) => {
249
- var _a, _b;
250
- if (element.id == id) {
251
- (0, import_logging.debug)([
252
- { text: "Send Value:", val: element },
253
- { text: "Ack:", val: state.ack }
254
- ]);
255
- if (!(0, import_global.isFalsy)(element.confirm) && !(state == null ? void 0 : state.ack) && element.returnText.includes("{confirmSet:")) {
256
- const substring = (0, import_utilities.decomposeText)(
257
- element.returnText,
258
- "{confirmSet:",
259
- "}"
260
- ).substring.split(":");
261
- (0, import_logging.debug)([{ text: "Substring:", val: substring }]);
191
+ if (state && (setStateIdsToListenTo == null ? void 0 : setStateIdsToListenTo.find((element) => element.id == id))) {
192
+ adapter.log.debug(`State, which is listen to was changed: ${id}`);
193
+ adapter.log.debug(`State: ${(0, import_string.jsonString)(state)}`);
194
+ for (const el of setStateIdsToListenTo) {
195
+ const { id: elId, userToSend: userToSend2, confirm, returnText, parse_mode } = el;
196
+ const key = setStateIdsToListenTo.indexOf(el);
197
+ if (elId == id) {
198
+ adapter.log.debug(`Send Value: ${(0, import_string.jsonString)(el)}`);
199
+ adapter.log.debug(`State: ${(0, import_string.jsonString)(state)}`);
200
+ if ((0, import_utils.isTruthy)(confirm) && !(state == null ? void 0 : state.ack) && returnText.includes("{confirmSet:")) {
201
+ const { substring } = (0, import_string.decomposeText)(returnText, "{confirmSet:", "}");
202
+ const splitSubstring = substring.split(":");
203
+ adapter.log.debug(`Substring: ${(0, import_string.jsonString)(splitSubstring)}`);
262
204
  let text = "";
263
- if ((0, import_global.isDefined)(state.val)) {
264
- text = substring[2] && substring[2].includes("noValue") ? substring[1] : (0, import_action.exchangePlaceholderWithValue)(substring[1], state.val.toString());
205
+ if ((0, import_utils.isDefined)(state.val)) {
206
+ text = ((_a2 = splitSubstring[2]) == null ? void 0 : _a2.includes("noValue")) ? splitSubstring[1] : (0, import_appUtils.exchangePlaceholderWithValue)(splitSubstring[1], state.val.toString());
265
207
  }
266
- (0, import_logging.debug)([{ text: "Return-text:", val: text }]);
208
+ adapter.log.debug(`Return-text: ${text}`);
267
209
  if (text === "") {
268
- (0, import_logging.error)([{ text: "The return text cannot be empty, please check." }]);
210
+ adapter.log.error("The return text cannot be empty, please check.");
269
211
  }
270
- (0, import_telegram.sendToTelegram)(
271
- element.userToSend,
272
- text,
273
- void 0,
274
- instanceTelegram,
275
- resize_keyboard,
276
- one_time_keyboard,
277
- userListWithChatID,
278
- element.parse_mode
279
- ).catch((e) => {
280
- (0, import_logging.error)([
281
- { text: "Error SendToTelegram" },
282
- { val: e.message },
283
- { text: "Error", val: e.stack }
284
- ]);
212
+ await (0, import_telegram.sendToTelegram)({
213
+ textToSend: text,
214
+ parse_mode,
215
+ userToSend: userToSend2,
216
+ telegramParams
285
217
  });
286
- return;
218
+ continue;
287
219
  }
288
- (0, import_logging.debug)([
289
- {
290
- text: "Data: ",
291
- val: { confirm: element.confirm, ack: state == null ? void 0 : state.ack, val: state == null ? void 0 : state.val }
292
- }
293
- ]);
294
- if (!(0, import_global.isFalsy)(element.confirm) && (state == null ? void 0 : state.ack)) {
295
- let textToSend = element.returnText;
220
+ adapter.log.debug(`Data: ${(0, import_string.jsonString)({ confirm, ack: state == null ? void 0 : state.ack, val: state == null ? void 0 : state.val })}`);
221
+ if (!(0, import_utils.isFalsy)(confirm) && (state == null ? void 0 : state.ack)) {
222
+ let textToSend = returnText;
296
223
  if (textToSend.includes("{confirmSet:")) {
297
- const substring = (0, import_utilities.decomposeText)(textToSend, "{confirmSet:", "}").substring;
298
- textToSend = textToSend.replace(substring, "");
224
+ const { textExcludeSubstring } = (0, import_string.decomposeText)(textToSend, "{confirmSet:", "}");
225
+ textToSend = textExcludeSubstring;
299
226
  }
300
227
  let value = "";
301
228
  let valueChange = null;
302
- const resultChange = (0, import_utilities.changeValue)(textToSend, ((_a = state.val) == null ? void 0 : _a.toString()) || "");
303
- if (resultChange) {
304
- valueChange = resultChange.val;
305
- textToSend = resultChange.textToSend;
229
+ const {
230
+ newValue,
231
+ textToSend: changedText,
232
+ error: error2
233
+ } = (0, import_string.getValueToExchange)(adapter, textToSend, (_b = state.val) == null ? void 0 : _b.toString());
234
+ if (!error2) {
235
+ valueChange = newValue;
236
+ textToSend = changedText;
306
237
  }
307
238
  if (textToSend == null ? void 0 : textToSend.toString().includes("{novalue}")) {
308
239
  value = "";
309
240
  textToSend = textToSend.replace("{novalue}", "");
310
- } else if ((0, import_global.isDefined)(state == null ? void 0 : state.val)) {
311
- value = ((_b = state.val) == null ? void 0 : _b.toString()) || "";
241
+ } else if ((0, import_utils.isDefined)(state == null ? void 0 : state.val)) {
242
+ value = (_c = state.val) == null ? void 0 : _c.toString();
312
243
  }
313
- if (valueChange) {
244
+ if ((0, import_utils.isDefined)(valueChange)) {
314
245
  value = valueChange;
315
246
  }
316
- (0, import_logging.debug)([{ text: "Value to send:", val: value }]);
317
- textToSend = (0, import_action.exchangePlaceholderWithValue)(textToSend, value);
318
- (0, import_telegram.sendToTelegram)(
319
- element.userToSend,
247
+ adapter.log.debug(`Value to send: ${value}`);
248
+ textToSend = (0, import_appUtils.exchangePlaceholderWithValue)(textToSend, value);
249
+ await (0, import_telegram.sendToTelegram)({
250
+ userToSend: userToSend2,
320
251
  textToSend,
321
- void 0,
322
- instanceTelegram,
323
- resize_keyboard,
324
- one_time_keyboard,
325
- userListWithChatID,
326
- element.parse_mode
327
- ).catch((e) => {
328
- (0, import_logging.error)([
329
- { text: "Error sendToTelegram" },
330
- { val: e.message },
331
- { text: "Error", val: e.stack }
332
- ]);
252
+ parse_mode,
253
+ telegramParams
333
254
  });
334
255
  setStateIdsToListenTo.splice(key, 1);
335
256
  }
336
257
  }
337
- });
258
+ }
338
259
  }
339
260
  });
340
- } catch (e) {
341
- (0, import_logging.error)([{ text: "Error onReady" }, { val: e.message }, { text: "Error", val: e.stack }]);
342
- }
343
- });
261
+ });
262
+ } catch (e) {
263
+ (0, import_logging.errorLogger)("Error onReady", e, adapter);
264
+ }
344
265
  await this.subscribeForeignStatesAsync(botSendMessageID);
345
266
  await this.subscribeForeignStatesAsync(requestMessageID);
346
- await this.subscribeForeignStatesAsync(`${instanceTelegram}.communicate.requestChatId`);
267
+ await this.subscribeForeignStatesAsync(`${telegramInstance}.communicate.requestChatId`);
347
268
  await this.subscribeForeignStatesAsync(telegramID);
348
- await this.subscribeForeignStatesAsync(`${instanceTelegram}.info.connection`);
269
+ await this.subscribeForeignStatesAsync(`${telegramInstance}.info.connection`);
349
270
  }
350
271
  isMessageID(id, botSendMessageID, requestMessageID) {
351
272
  return id == botSendMessageID || id == requestMessageID;
@@ -354,12 +275,11 @@ class TelegramMenu extends utils.Adapter {
354
275
  return !!(id.includes("alexa-shoppinglist") && !id.includes("add_position") && userToSend);
355
276
  }
356
277
  isMenuToSend(state, id, telegramID, userToSend) {
357
- return !!(state && typeof state.val === "string" && state.val != "" && id == telegramID && (state == null ? void 0 : state.ack) && userToSend);
278
+ return !!(typeof (state == null ? void 0 : state.val) === "string" && state.val != "" && id == telegramID && (state == null ? void 0 : state.ack) && userToSend);
358
279
  }
359
280
  async checkInfoConnection(id, infoConnectionOfTelegram) {
360
281
  if (id === infoConnectionOfTelegram) {
361
- const isActive = await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram);
362
- if (!isActive) {
282
+ if (!await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram)) {
363
283
  this.log.debug("Telegram is not active");
364
284
  return false;
365
285
  }
@@ -367,18 +287,19 @@ class TelegramMenu extends utils.Adapter {
367
287
  }
368
288
  return true;
369
289
  }
370
- async getChatIDAndUserToSend(instanceTelegram, userListWithChatID) {
371
- const chatID = await this.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);
372
- if (!(chatID == null ? void 0 : chatID.val)) {
373
- (0, import_logging.debug)([{ text: "ChatID not found" }]);
374
- return;
290
+ async getChatIDAndUserToSend(telegramParams) {
291
+ const { telegramInstance, userListWithChatID } = telegramParams;
292
+ const chatIDState = await this.getForeignStateAsync(`${telegramInstance}.communicate.requestChatId`);
293
+ if (!(chatIDState == null ? void 0 : chatIDState.val)) {
294
+ adapter.log.debug("ChatID not found");
295
+ return { chatID: "", userToSend: "", error: true, errorMessage: "ChatId not found" };
375
296
  }
376
- const userToSend = (0, import_action.getUserToSendFromUserListWithChatID)(userListWithChatID, chatID.val.toString());
297
+ const userToSend = (0, import_action.getUserToSendFromUserListWithChatID)(userListWithChatID, chatIDState.val.toString());
377
298
  if (!userToSend) {
378
299
  this.log.debug("User to send not found");
379
- return;
300
+ return { chatID: chatIDState.val.toString(), userToSend: "", error: true, errorMessage: "User not found" };
380
301
  }
381
- return { chatID: chatID.val.toString(), userToSend };
302
+ return { chatID: chatIDState.val.toString(), userToSend, error: false };
382
303
  }
383
304
  /**
384
305
  * Is called when adapter shuts down - callback has to be called under any circumstances!
@@ -388,12 +309,12 @@ class TelegramMenu extends utils.Adapter {
388
309
  onUnload(callback) {
389
310
  const timeouts = (0, import_processData.getTimeouts)();
390
311
  try {
391
- timeouts.forEach((element) => {
392
- clearTimeout(element.timeout);
312
+ timeouts.forEach(({ timeout }) => {
313
+ adapter.clearTimeout(timeout);
393
314
  });
394
315
  callback();
395
316
  } catch (e) {
396
- this.log.error(`Error onUnload ${e}`);
317
+ (0, import_logging.errorLogger)(e, "Error onUnload", adapter);
397
318
  callback();
398
319
  }
399
320
  }
@@ -408,11 +329,10 @@ class TelegramMenu extends utils.Adapter {
408
329
  }
409
330
  }
410
331
  }
411
- let adapter;
412
332
  if (require.main !== module) {
413
- adapter = (options) => new TelegramMenu(options);
333
+ module.exports = (options) => new TelegramMenu(options);
414
334
  } else {
415
- new TelegramMenu();
335
+ (() => new TelegramMenu())();
416
336
  }
417
337
  // Annotate the CommonJS export names for ESM import in node:
418
338
  0 && (module.exports = {