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