iobroker.telegram-menu 2.2.4 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +18 -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 +149 -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 +122 -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 +94 -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 +283 -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 +136 -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 +157 -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 +86 -283
  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 +149 -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 +519 -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 +66 -0
  262. package/build/test/test/object.test.js.map +1 -0
  263. package/build/test/test/string.test.js +385 -0
  264. package/build/test/test/string.test.js.map +1 -0
  265. package/build/test/test/time.test.js +186 -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 +32 -27
  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,139 @@ 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(`Subscribed state changed: { id : ${id} , state : ${(0, import_string.jsonString)(state)} }`);
193
+ for (const el of setStateIdsToListenTo) {
194
+ const { id: elId, userToSend: userToSend2, confirm, returnText, parse_mode } = el;
195
+ const key = setStateIdsToListenTo.indexOf(el);
196
+ if (elId == id) {
197
+ adapter.log.debug(`Send Value: ${(0, import_string.jsonString)(el)}`);
198
+ adapter.log.debug(`State: ${(0, import_string.jsonString)(state)}`);
199
+ if ((0, import_utils.isTruthy)(confirm) && !(state == null ? void 0 : state.ack) && returnText.includes("{confirmSet:")) {
200
+ const { substring } = (0, import_string.decomposeText)(returnText, "{confirmSet:", "}");
201
+ const splitSubstring = substring.split(":");
264
202
  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());
203
+ if ((0, import_utils.isDefined)(state.val)) {
204
+ text = ((_a2 = splitSubstring[2]) == null ? void 0 : _a2.includes("noValue")) ? splitSubstring[1] : (0, import_appUtils.exchangePlaceholderWithValue)(splitSubstring[1], state.val.toString());
267
205
  }
268
- (0, import_logging.debug)([{ text: "Return-text:", val: text }]);
206
+ adapter.log.debug(`Return-text: ${text}`);
269
207
  if (text === "") {
270
- (0, import_logging.error)([{ text: "The return text cannot be empty, please check." }]);
208
+ adapter.log.error("The return text cannot be empty, please check.");
271
209
  }
272
- (0, import_telegram.sendToTelegram)({
273
- user: element.userToSend,
210
+ await (0, import_telegram.sendToTelegram)({
274
211
  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
- ]);
212
+ parse_mode,
213
+ userToSend: userToSend2,
214
+ telegramParams
286
215
  });
287
- return;
216
+ continue;
288
217
  }
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;
218
+ adapter.log.debug(`Data: ${(0, import_string.jsonString)({ confirm, ack: state == null ? void 0 : state.ack, val: state == null ? void 0 : state.val })}`);
219
+ if (!(0, import_utils.isFalsy)(confirm) && (state == null ? void 0 : state.ack)) {
220
+ let textToSend = returnText;
297
221
  if (textToSend.includes("{confirmSet:")) {
298
- const substring = (0, import_utilities.decomposeText)(textToSend, "{confirmSet:", "}").substring;
299
- textToSend = textToSend.replace(substring, "");
222
+ const { textExcludeSubstring } = (0, import_string.decomposeText)(textToSend, "{confirmSet:", "}");
223
+ textToSend = textExcludeSubstring;
300
224
  }
301
225
  let value = "";
302
226
  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;
227
+ const {
228
+ newValue,
229
+ textToSend: changedText,
230
+ error: error2
231
+ } = (0, import_string.getValueToExchange)(adapter, textToSend, (_b = state.val) == null ? void 0 : _b.toString());
232
+ if (!error2) {
233
+ valueChange = newValue;
234
+ textToSend = changedText;
307
235
  }
308
236
  if (textToSend == null ? void 0 : textToSend.toString().includes("{novalue}")) {
309
237
  value = "";
310
238
  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()) || "";
239
+ } else if ((0, import_utils.isDefined)(state == null ? void 0 : state.val)) {
240
+ value = (_c = state.val) == null ? void 0 : _c.toString();
313
241
  }
314
- if (valueChange) {
242
+ if ((0, import_utils.isDefined)(valueChange)) {
315
243
  value = valueChange;
316
244
  }
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,
245
+ adapter.log.debug(`Value to send: ${value}`);
246
+ textToSend = (0, import_appUtils.exchangePlaceholderWithValue)(textToSend, value);
247
+ await (0, import_telegram.sendToTelegram)({
248
+ userToSend: userToSend2,
321
249
  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
- ]);
250
+ parse_mode,
251
+ telegramParams
334
252
  });
335
253
  setStateIdsToListenTo.splice(key, 1);
336
254
  }
337
255
  }
338
- });
256
+ }
339
257
  }
340
258
  });
341
- } catch (e) {
342
- (0, import_logging.error)([{ text: "Error onReady" }, { val: e.message }, { text: "Error", val: e.stack }]);
343
- }
344
- });
259
+ });
260
+ } catch (e) {
261
+ (0, import_logging.errorLogger)("Error onReady", e, adapter);
262
+ }
345
263
  await this.subscribeForeignStatesAsync(botSendMessageID);
346
264
  await this.subscribeForeignStatesAsync(requestMessageID);
347
- await this.subscribeForeignStatesAsync(`${instanceTelegram}.communicate.requestChatId`);
265
+ await this.subscribeForeignStatesAsync(`${telegramInstance}.communicate.requestChatId`);
348
266
  await this.subscribeForeignStatesAsync(telegramID);
349
- await this.subscribeForeignStatesAsync(`${instanceTelegram}.info.connection`);
267
+ await this.subscribeForeignStatesAsync(`${telegramInstance}.info.connection`);
350
268
  }
351
269
  isMessageID(id, botSendMessageID, requestMessageID) {
352
270
  return id == botSendMessageID || id == requestMessageID;
@@ -355,12 +273,11 @@ class TelegramMenu extends utils.Adapter {
355
273
  return !!(id.includes("alexa-shoppinglist") && !id.includes("add_position") && userToSend);
356
274
  }
357
275
  isMenuToSend(state, id, telegramID, userToSend) {
358
- return !!(state && typeof state.val === "string" && state.val != "" && id == telegramID && (state == null ? void 0 : state.ack) && userToSend);
276
+ return !!(typeof (state == null ? void 0 : state.val) === "string" && state.val != "" && id == telegramID && (state == null ? void 0 : state.ack) && userToSend);
359
277
  }
360
278
  async checkInfoConnection(id, infoConnectionOfTelegram) {
361
279
  if (id === infoConnectionOfTelegram) {
362
- const isActive = await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram);
363
- if (!isActive) {
280
+ if (!await (0, import_connection.checkIsTelegramActive)(infoConnectionOfTelegram)) {
364
281
  this.log.debug("Telegram is not active");
365
282
  return false;
366
283
  }
@@ -368,18 +285,19 @@ class TelegramMenu extends utils.Adapter {
368
285
  }
369
286
  return true;
370
287
  }
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;
288
+ async getChatIDAndUserToSend(telegramParams) {
289
+ const { telegramInstance, userListWithChatID } = telegramParams;
290
+ const chatIDState = await this.getForeignStateAsync(`${telegramInstance}.communicate.requestChatId`);
291
+ if (!(chatIDState == null ? void 0 : chatIDState.val)) {
292
+ adapter.log.debug("ChatID not found");
293
+ return { chatID: "", userToSend: "", error: true, errorMessage: "ChatId not found" };
376
294
  }
377
- const userToSend = (0, import_action.getUserToSendFromUserListWithChatID)(userListWithChatID, chatID.val.toString());
295
+ const userToSend = (0, import_action.getUserToSendFromUserListWithChatID)(userListWithChatID, chatIDState.val.toString());
378
296
  if (!userToSend) {
379
297
  this.log.debug("User to send not found");
380
- return;
298
+ return { chatID: chatIDState.val.toString(), userToSend: "", error: true, errorMessage: "User not found" };
381
299
  }
382
- return { chatID: chatID.val.toString(), userToSend };
300
+ return { chatID: chatIDState.val.toString(), userToSend, error: false };
383
301
  }
384
302
  /**
385
303
  * Is called when adapter shuts down - callback has to be called under any circumstances!
@@ -389,12 +307,12 @@ class TelegramMenu extends utils.Adapter {
389
307
  onUnload(callback) {
390
308
  const timeouts = (0, import_processData.getTimeouts)();
391
309
  try {
392
- timeouts.forEach((element) => {
393
- clearTimeout(element.timeout);
310
+ timeouts.forEach(({ timeout }) => {
311
+ adapter.clearTimeout(timeout);
394
312
  });
395
313
  callback();
396
314
  } catch (e) {
397
- this.log.error(`Error onUnload ${e}`);
315
+ (0, import_logging.errorLogger)(e, "Error onUnload", adapter);
398
316
  callback();
399
317
  }
400
318
  }
@@ -409,15 +327,13 @@ class TelegramMenu extends utils.Adapter {
409
327
  }
410
328
  }
411
329
  }
412
- let adapter;
413
330
  if (require.main !== module) {
414
- adapter = (options) => new TelegramMenu(options);
331
+ module.exports = (options) => new TelegramMenu(options);
415
332
  } else {
416
- new TelegramMenu();
333
+ (() => new TelegramMenu())();
417
334
  }
418
335
  // Annotate the CommonJS export names for ESM import in node:
419
336
  0 && (module.exports = {
420
- _this,
421
337
  adapter
422
338
  });
423
339
  //# sourceMappingURL=main.js.map