iobroker.telegram-menu 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +12 -0
  2. package/admin/build/index.js +49 -49
  3. package/admin/build/index.js.map +3 -3
  4. package/admin/css/button.css +3 -0
  5. package/admin/css/row-editor.css +1 -1
  6. package/admin/css/style.css +46 -25
  7. package/admin/css/textarea.css +7 -11
  8. package/admin/i18n/de/translations.json +124 -123
  9. package/admin/i18n/en/translations.json +3 -2
  10. package/admin/i18n/es/translations.json +3 -2
  11. package/admin/i18n/fr/translations.json +3 -2
  12. package/admin/i18n/it/translations.json +3 -2
  13. package/admin/i18n/nl/translations.json +3 -2
  14. package/admin/i18n/pl/translations.json +3 -2
  15. package/admin/i18n/pt/translations.json +3 -2
  16. package/admin/i18n/ru/translations.json +3 -2
  17. package/admin/i18n/uk/translations.json +3 -2
  18. package/admin/i18n/zh-cn/translations.json +3 -2
  19. package/admin/words.js +3 -1
  20. package/build/admin/src/config/helper.js +178 -0
  21. package/build/admin/src/config/helper.js.map +1 -0
  22. package/build/admin/src/lib/Utils.js +64 -0
  23. package/build/admin/src/lib/Utils.js.map +1 -0
  24. package/build/admin/src/types/event.js +3 -0
  25. package/build/admin/src/types/event.js.map +1 -0
  26. package/build/app/action.js +270 -0
  27. package/build/app/action.js.map +7 -0
  28. package/build/app/adapterManager.js +36 -0
  29. package/build/app/adapterManager.js.map +7 -0
  30. package/build/app/adapterStartMenuSend.js +59 -0
  31. package/build/app/adapterStartMenuSend.js.map +7 -0
  32. package/build/app/backMenu.js +110 -0
  33. package/build/app/backMenu.js.map +7 -0
  34. package/build/app/botAction.js +47 -0
  35. package/build/app/botAction.js.map +7 -0
  36. package/build/app/configVariables.js +56 -0
  37. package/build/app/configVariables.js.map +7 -0
  38. package/build/app/connection.js +42 -0
  39. package/build/app/connection.js.map +7 -0
  40. package/build/app/createState.js +42 -0
  41. package/build/app/createState.js.map +7 -0
  42. package/build/app/dynamicSwitch.js +69 -0
  43. package/build/app/dynamicSwitch.js.map +7 -0
  44. package/build/app/dynamicSwitchMenu.js +69 -0
  45. package/build/app/dynamicSwitchMenu.js.map +7 -0
  46. package/build/app/dynamicValue.js +80 -0
  47. package/build/app/dynamicValue.js.map +7 -0
  48. package/build/app/echarts.js +60 -0
  49. package/build/app/echarts.js.map +7 -0
  50. package/build/app/getstate.js +148 -0
  51. package/build/app/getstate.js.map +7 -0
  52. package/build/app/global.js +2 -0
  53. package/build/app/global.js.map +7 -0
  54. package/build/app/httpRequest.js +84 -0
  55. package/build/app/httpRequest.js.map +7 -0
  56. package/build/app/jsonTable.js +158 -0
  57. package/build/app/jsonTable.js.map +7 -0
  58. package/build/app/logging.js +46 -0
  59. package/build/app/logging.js.map +7 -0
  60. package/build/app/messageIds.js +116 -0
  61. package/build/app/messageIds.js.map +7 -0
  62. package/build/app/processData.js +198 -0
  63. package/build/app/processData.js.map +7 -0
  64. package/build/app/sendNav.js +49 -0
  65. package/build/app/sendNav.js.map +7 -0
  66. package/build/app/sendpic.js +95 -0
  67. package/build/app/sendpic.js.map +7 -0
  68. package/build/app/sentry.js +43 -0
  69. package/build/app/sentry.js.map +7 -0
  70. package/build/app/setStateIdsToListenTo.js +42 -0
  71. package/build/app/setStateIdsToListenTo.js.map +7 -0
  72. package/build/app/setstate.js +145 -0
  73. package/build/app/setstate.js.map +7 -0
  74. package/build/app/shoppingList.js +97 -0
  75. package/build/app/shoppingList.js.map +7 -0
  76. package/build/app/subMenu.js +281 -0
  77. package/build/app/subMenu.js.map +7 -0
  78. package/build/app/subscribeStates.js +41 -0
  79. package/build/app/subscribeStates.js.map +7 -0
  80. package/build/app/telegram.js +131 -0
  81. package/build/app/telegram.js.map +7 -0
  82. package/build/app/validateMenus.js +64 -0
  83. package/build/app/validateMenus.js.map +7 -0
  84. package/build/build/src/app/action.js +447 -0
  85. package/build/build/src/app/adapterStartMenuSend.js +37 -0
  86. package/build/build/src/app/backMenu.js +70 -0
  87. package/build/build/src/app/botAction.js +25 -0
  88. package/build/build/src/app/connection.js +19 -0
  89. package/build/build/src/app/createState.js +19 -0
  90. package/build/build/src/app/dynamicSwitch.js +51 -0
  91. package/build/build/src/app/dynamicValue.js +64 -0
  92. package/build/build/src/app/echarts.js +45 -0
  93. package/build/build/src/app/getstate.js +157 -0
  94. package/build/build/src/app/global.js +59 -0
  95. package/build/build/src/app/httpRequest.js +64 -0
  96. package/build/build/src/app/jsonTable.js +147 -0
  97. package/build/build/src/app/logging.js +13 -0
  98. package/build/build/src/app/messageIds.js +88 -0
  99. package/build/build/src/app/processData.js +208 -0
  100. package/build/build/src/app/sendNav.js +30 -0
  101. package/build/build/src/app/sendpic.js +69 -0
  102. package/build/build/src/app/setstate.js +126 -0
  103. package/build/build/src/app/shoppingList.js +72 -0
  104. package/build/build/src/app/subMenu.js +361 -0
  105. package/build/build/src/app/subscribeStates.js +25 -0
  106. package/build/build/src/app/telegram.js +101 -0
  107. package/build/build/src/lib/string.js +28 -0
  108. package/build/build/src/lib/time.js +23 -0
  109. package/build/build/src/lib/utilities.js +263 -0
  110. package/build/build/src/lib/utils.js +13 -0
  111. package/build/build/src/main.js +402 -0
  112. package/build/config/config.js +134 -0
  113. package/build/config/config.js.map +7 -0
  114. package/build/io-package.json +87 -87
  115. package/build/lib/action.js +1 -3
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js.map +1 -1
  118. package/build/lib/appUtils.js +158 -0
  119. package/build/lib/appUtils.js.map +7 -0
  120. package/build/lib/appUtilsString.js +37 -0
  121. package/build/lib/appUtilsString.js.map +7 -0
  122. package/build/lib/backMenu.js.map +2 -2
  123. package/build/lib/botAction.js.map +1 -1
  124. package/build/lib/dynamicSwitch.js.map +1 -1
  125. package/build/lib/dynamicValue.js.map +1 -1
  126. package/build/lib/echarts.js.map +1 -1
  127. package/build/lib/getstate.js.map +1 -1
  128. package/build/lib/global.js.map +1 -1
  129. package/build/lib/httpRequest.js.map +1 -1
  130. package/build/lib/json.js +54 -0
  131. package/build/lib/json.js.map +7 -0
  132. package/build/lib/jsonTable.js.map +1 -1
  133. package/build/lib/math.js +41 -0
  134. package/build/lib/math.js.map +7 -0
  135. package/build/lib/messageIds.js.map +1 -1
  136. package/build/lib/object.js +35 -0
  137. package/build/lib/object.js.map +7 -0
  138. package/build/lib/processData.js +4 -18
  139. package/build/lib/processData.js.map +3 -3
  140. package/build/lib/sendNav.js.map +1 -1
  141. package/build/lib/sendpic.js +23 -22
  142. package/build/lib/sendpic.js.map +2 -2
  143. package/build/lib/setstate.js.map +1 -1
  144. package/build/lib/shoppingList.js.map +1 -1
  145. package/build/lib/splitValues.js +63 -0
  146. package/build/lib/splitValues.js.map +7 -0
  147. package/build/lib/string.js +125 -3
  148. package/build/lib/string.js.map +2 -2
  149. package/build/lib/subMenu.js +1 -2
  150. package/build/lib/subMenu.js.map +2 -2
  151. package/build/lib/subscribeStates.js.map +1 -1
  152. package/build/lib/telegram.js.map +1 -1
  153. package/build/lib/time.js +93 -0
  154. package/build/lib/time.js.map +7 -0
  155. package/build/lib/utilities.js +84 -281
  156. package/build/lib/utilities.js.map +3 -3
  157. package/build/lib/utils.js +66 -0
  158. package/build/lib/utils.js.map +7 -0
  159. package/build/main.js +151 -233
  160. package/build/main.js.map +3 -3
  161. package/build/src/app/action.js +239 -0
  162. package/build/src/app/action.js.map +1 -0
  163. package/build/src/app/adapterManager.js +12 -0
  164. package/build/src/app/adapterManager.js.map +1 -0
  165. package/build/src/app/adapterStartMenuSend.js +36 -0
  166. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  167. package/build/src/app/backMenu.js +81 -0
  168. package/build/src/app/backMenu.js.map +1 -0
  169. package/build/src/app/botAction.js +25 -0
  170. package/build/src/app/botAction.js.map +1 -0
  171. package/build/src/app/configVariables.js +32 -0
  172. package/build/src/app/configVariables.js.map +1 -0
  173. package/build/src/app/connection.js +20 -0
  174. package/build/src/app/connection.js.map +1 -0
  175. package/build/src/app/createState.js +19 -0
  176. package/build/src/app/createState.js.map +1 -0
  177. package/build/src/app/dynamicSwitch.js +52 -0
  178. package/build/src/app/dynamicSwitch.js.map +1 -0
  179. package/build/src/app/dynamicSwitchMenu.js +52 -0
  180. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  181. package/build/src/app/dynamicValue.js +52 -0
  182. package/build/src/app/dynamicValue.js.map +1 -0
  183. package/build/src/app/echarts.js +33 -0
  184. package/build/src/app/echarts.js.map +1 -0
  185. package/build/src/app/getstate.js +122 -0
  186. package/build/src/app/getstate.js.map +1 -0
  187. package/build/src/app/global.js +8 -0
  188. package/build/src/app/global.js.map +1 -0
  189. package/build/src/app/httpRequest.js +55 -0
  190. package/build/src/app/httpRequest.js.map +1 -0
  191. package/build/src/app/jsonTable.js +147 -0
  192. package/build/src/app/jsonTable.js.map +1 -0
  193. package/build/src/app/logging.js +22 -0
  194. package/build/src/app/logging.js.map +1 -0
  195. package/build/src/app/messageIds.js +89 -0
  196. package/build/src/app/messageIds.js.map +1 -0
  197. package/build/src/app/processData.js +153 -0
  198. package/build/src/app/processData.js.map +1 -0
  199. package/build/src/app/sendNav.js +26 -0
  200. package/build/src/app/sendNav.js.map +1 -0
  201. package/build/src/app/sendpic.js +66 -0
  202. package/build/src/app/sendpic.js.map +1 -0
  203. package/build/src/app/sentry.js +18 -0
  204. package/build/src/app/sentry.js.map +1 -0
  205. package/build/src/app/setStateIdsToListenTo.js +17 -0
  206. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  207. package/build/src/app/setstate.js +114 -0
  208. package/build/src/app/setstate.js.map +1 -0
  209. package/build/src/app/shoppingList.js +74 -0
  210. package/build/src/app/shoppingList.js.map +1 -0
  211. package/build/src/app/subMenu.js +237 -0
  212. package/build/src/app/subMenu.js.map +1 -0
  213. package/build/src/app/subscribeStates.js +17 -0
  214. package/build/src/app/subscribeStates.js.map +1 -0
  215. package/build/src/app/telegram.js +83 -0
  216. package/build/src/app/telegram.js.map +1 -0
  217. package/build/src/app/validateMenus.js +30 -0
  218. package/build/src/app/validateMenus.js.map +1 -0
  219. package/build/src/config/config.js +100 -0
  220. package/build/src/config/config.js.map +1 -0
  221. package/build/src/lib/appUtils.js +126 -0
  222. package/build/src/lib/appUtils.js.map +1 -0
  223. package/build/src/lib/appUtilsString.js +13 -0
  224. package/build/src/lib/appUtilsString.js.map +1 -0
  225. package/build/src/lib/json.js +37 -0
  226. package/build/src/lib/json.js.map +1 -0
  227. package/build/src/lib/math.js +17 -0
  228. package/build/src/lib/math.js.map +1 -0
  229. package/build/src/lib/object.js +10 -0
  230. package/build/src/lib/object.js.map +1 -0
  231. package/build/src/lib/splitValues.js +35 -0
  232. package/build/src/lib/splitValues.js.map +1 -0
  233. package/build/src/lib/string.js +121 -0
  234. package/build/src/lib/string.js.map +1 -0
  235. package/build/src/lib/time.js +57 -0
  236. package/build/src/lib/time.js.map +1 -0
  237. package/build/src/lib/utilities.js +111 -0
  238. package/build/src/lib/utilities.js.map +1 -0
  239. package/build/src/lib/utils.js +37 -0
  240. package/build/src/lib/utils.js.map +1 -0
  241. package/build/src/main.js +332 -0
  242. package/build/src/main.js.map +1 -0
  243. package/build/src/test/setup.js +12 -0
  244. package/build/src/test/setup.js.map +1 -0
  245. package/build/src/types/types.js +3 -0
  246. package/build/src/types/types.js.map +1 -0
  247. package/build/test/integration.js +0 -1
  248. package/build/test/integration.js.map +1 -1
  249. package/build/test/mocha.setup.js +0 -1
  250. package/build/test/mocha.setup.js.map +1 -1
  251. package/build/test/package.js +0 -1
  252. package/build/test/package.js.map +1 -1
  253. package/build/test/setup.js +12 -0
  254. package/build/test/setup.js.map +1 -0
  255. package/build/test/test/appUtils.test.js +507 -0
  256. package/build/test/test/appUtils.test.js.map +1 -0
  257. package/build/test/test/appUtilsString.test.js +16 -0
  258. package/build/test/test/appUtilsString.test.js.map +1 -0
  259. package/build/test/test/math.test.js +33 -0
  260. package/build/test/test/math.test.js.map +1 -0
  261. package/build/test/test/object.test.js +54 -0
  262. package/build/test/test/object.test.js.map +1 -0
  263. package/build/test/test/string.test.js +361 -0
  264. package/build/test/test/string.test.js.map +1 -0
  265. package/build/test/test/time.test.js +201 -0
  266. package/build/test/test/time.test.js.map +1 -0
  267. package/build/test/test/utils.test.js +115 -0
  268. package/build/test/test/utils.test.js.map +1 -0
  269. package/build/types/types.js +15 -0
  270. package/build/types/types.js.map +3 -3
  271. package/io-package.json +19 -14
  272. package/package.json +14 -10
  273. package/build/main.test.js +0 -24
  274. package/build/main.test.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.deleteMessageIds = deleteMessageIds;
5
+ exports.saveMessageIds = saveMessageIds;
6
+ const main_1 = require("../main");
7
+ const botAction_1 = require("./botAction");
8
+ const logging_1 = require("./logging");
9
+ const global_1 = require("./global");
10
+ const utils_1 = require("../lib/utils");
11
+ let isDeleting = false;
12
+ async function saveMessageIds(state, instanceTelegram) {
13
+ try {
14
+ let requestMessageId = {};
15
+ let requestMessageIdObj = null;
16
+ if (!isDeleting) {
17
+ requestMessageIdObj = await main_1._this.getStateAsync('communication.requestIds');
18
+ }
19
+ isDeleting = false;
20
+ const requestUserIdObj = await main_1._this.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);
21
+ const request = await main_1._this.getForeignStateAsync(`${instanceTelegram}.communicate.request`);
22
+ if (!(requestUserIdObj && requestUserIdObj.val)) {
23
+ return;
24
+ }
25
+ requestMessageId = requestMessageIdObj?.val ? JSON.parse(requestMessageIdObj?.val.toString()) : {};
26
+ if (!requestMessageId[requestUserIdObj.val.toString()]) {
27
+ requestMessageId[requestUserIdObj.val.toString()] = [];
28
+ }
29
+ if (!requestMessageId[requestUserIdObj.val.toString()]?.find(message => message.id === state.val)) {
30
+ requestMessageId[requestUserIdObj.val.toString()].push({
31
+ id: state.val,
32
+ time: Date.now(),
33
+ request: request?.val,
34
+ });
35
+ }
36
+ requestMessageId = removeOldMessageIds(requestMessageId, requestUserIdObj.val.toString());
37
+ await main_1._this.setState('communication.requestIds', JSON.stringify(requestMessageId), true);
38
+ }
39
+ catch (e) {
40
+ (0, logging_1.errorLogger)('Error saveMessageIds:', e);
41
+ }
42
+ }
43
+ function removeOldMessageIds(messages, chatID) {
44
+ messages[chatID] = messages[chatID].filter(message => {
45
+ return message.time && message.time > Date.now() - 1000 * 60 * 60 * 24 * 2;
46
+ });
47
+ return messages;
48
+ }
49
+ const removeMessageFromList = ({ element, chat_id, copyMessageIds, }) => {
50
+ return copyMessageIds[chat_id].filter(message => message.id !== element.id);
51
+ };
52
+ async function deleteMessageIds(user, userListWithChatID, instanceTelegram, whatShouldDelete) {
53
+ try {
54
+ const requestMessageIdObj = await main_1._this.getStateAsync('communication.requestIds');
55
+ const lastMessageId = await main_1._this.getForeignStateAsync(`${instanceTelegram}.communicate.requestMessageId`);
56
+ if (!requestMessageIdObj ||
57
+ typeof requestMessageIdObj.val !== 'string' ||
58
+ !JSON.parse(requestMessageIdObj.val)) {
59
+ return;
60
+ }
61
+ const chat_id = (0, utils_1.getChatID)(userListWithChatID, user);
62
+ if (!chat_id) {
63
+ return;
64
+ }
65
+ const messageIds = JSON.parse(requestMessageIdObj.val);
66
+ if (lastMessageId && lastMessageId.val) {
67
+ messageIds[chat_id].push({ id: lastMessageId.val.toString() });
68
+ }
69
+ isDeleting = true;
70
+ const copyMessageIds = (0, global_1.deepCopy)(messageIds);
71
+ messageIds[chat_id].forEach((element, index) => {
72
+ if (whatShouldDelete === 'all' && element.id) {
73
+ (0, botAction_1.deleteMessageByBot)(instanceTelegram, user, userListWithChatID, parseInt(element.id?.toString()), chat_id);
74
+ }
75
+ if (whatShouldDelete === 'last' && index === messageIds[chat_id].length - 1 && element.id) {
76
+ (0, botAction_1.deleteMessageByBot)(instanceTelegram, user, userListWithChatID, parseInt(element.id?.toString()), chat_id);
77
+ }
78
+ if (!copyMessageIds) {
79
+ return;
80
+ }
81
+ copyMessageIds[chat_id] = removeMessageFromList({ element, chat_id, copyMessageIds });
82
+ });
83
+ await main_1._this.setState('communication.requestIds', JSON.stringify(copyMessageIds), true);
84
+ }
85
+ catch (e) {
86
+ (0, logging_1.errorLogger)('Error deleteMessageIds:', e);
87
+ }
88
+ }
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getStateIdsToListenTo = getStateIdsToListenTo;
5
+ exports.getTimeouts = getTimeouts;
6
+ exports.checkEveryMenuForData = checkEveryMenuForData;
7
+ const main_1 = require("../main");
8
+ const telegram_1 = require("./telegram");
9
+ const sendNav_1 = require("./sendNav");
10
+ const subMenu_1 = require("./subMenu");
11
+ const backMenu_1 = require("./backMenu");
12
+ const setstate_1 = require("./setstate");
13
+ const getstate_1 = require("./getstate");
14
+ const sendpic_1 = require("./sendpic");
15
+ const dynamicValue_1 = require("./dynamicValue");
16
+ const action_1 = require("./action");
17
+ const subscribeStates_1 = require("./subscribeStates");
18
+ const echarts_1 = require("./echarts");
19
+ const httpRequest_1 = require("./httpRequest");
20
+ const logging_1 = require("./logging");
21
+ const string_1 = require("../lib/string");
22
+ let setStateIdsToListenTo = [];
23
+ let timeouts = [];
24
+ async function checkEveryMenuForData(obj) {
25
+ const { menuData, calledValue, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, menus, isUserActiveCheckbox, token, directoryPicture, timeoutKey, } = obj;
26
+ for (const menu of menus) {
27
+ const groupData = menuData.data[menu];
28
+ main_1._this.log.debug(`Menu: ${menu}`);
29
+ main_1._this.log.debug(`Nav: ${(0, string_1.jsonString)(menuData.data[menu])}`);
30
+ if (await processData({
31
+ menuData,
32
+ calledValue,
33
+ userToSend,
34
+ groupWithUser: menu,
35
+ instanceTelegram,
36
+ resize_keyboard: resize_keyboard,
37
+ one_time_keyboard: one_time_keyboard,
38
+ userListWithChatID,
39
+ allMenusWithData: menuData.data,
40
+ menus,
41
+ isUserActiveCheckbox,
42
+ token,
43
+ directoryPicture,
44
+ timeoutKey,
45
+ groupData,
46
+ })) {
47
+ main_1._this.log.debug('CalledText found');
48
+ return true;
49
+ }
50
+ }
51
+ return false;
52
+ }
53
+ async function processData(obj) {
54
+ const { menuData, calledValue, userToSend, groupWithUser, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, allMenusWithData, menus, isUserActiveCheckbox, token, directoryPicture, timeoutKey, groupData, } = obj;
55
+ try {
56
+ let part = {};
57
+ let call = '';
58
+ if ((0, dynamicValue_1.getDynamicValue)(userToSend)) {
59
+ const res = (0, dynamicValue_1.getDynamicValue)(userToSend);
60
+ let valueToSet;
61
+ if (res && res.valueType) {
62
+ valueToSet = (0, action_1.adjustValueType)(calledValue, res.valueType);
63
+ }
64
+ else {
65
+ valueToSet = calledValue;
66
+ }
67
+ if (valueToSet && res?.id) {
68
+ await main_1._this.setForeignStateAsync(res?.id, valueToSet, res?.ack);
69
+ }
70
+ else {
71
+ await (0, telegram_1.sendToTelegram)({
72
+ user: userToSend,
73
+ textToSend: `You insert a wrong Type of value, please insert type: ${res?.valueType}`,
74
+ keyboard: undefined,
75
+ instance: instanceTelegram,
76
+ resize_keyboard: resize_keyboard,
77
+ one_time_keyboard: one_time_keyboard,
78
+ userListWithChatID: userListWithChatID,
79
+ parse_mode: 'false',
80
+ });
81
+ }
82
+ (0, dynamicValue_1.removeUserFromDynamicValue)(userToSend);
83
+ const result = await (0, backMenu_1.switchBack)(userToSend, allMenusWithData, menus, true);
84
+ if (result) {
85
+ await (0, telegram_1.sendToTelegram)({
86
+ user: userToSend,
87
+ textToSend: result.texttosend || '',
88
+ keyboard: result.menuToSend,
89
+ instance: instanceTelegram,
90
+ resize_keyboard: resize_keyboard,
91
+ one_time_keyboard: one_time_keyboard,
92
+ userListWithChatID: userListWithChatID,
93
+ parse_mode: result.parseMode,
94
+ });
95
+ }
96
+ else {
97
+ await (0, sendNav_1.sendNav)(part, userToSend, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard);
98
+ }
99
+ return true;
100
+ }
101
+ if (calledValue.includes('menu:')) {
102
+ call = calledValue.split(':')[2];
103
+ }
104
+ else {
105
+ call = calledValue;
106
+ }
107
+ part = groupData[call];
108
+ if (typeof call === 'string' &&
109
+ groupData &&
110
+ part &&
111
+ !calledValue.toString().includes('menu:') &&
112
+ userToSend &&
113
+ groupWithUser &&
114
+ isUserActiveCheckbox[groupWithUser]) {
115
+ if (part.nav) {
116
+ main_1._this.log.debug(`Menu to Send: ${part.nav}`);
117
+ (0, backMenu_1.backMenuFunc)(call, part.nav, userToSend);
118
+ if (JSON.stringify(part.nav).includes('menu:')) {
119
+ main_1._this.log.debug(`Submenu: ${part.nav}`);
120
+ const result = await (0, subMenu_1.callSubMenu)(JSON.stringify(part.nav), groupData, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, part, allMenusWithData, menus, setStateIdsToListenTo, part.nav);
121
+ if (result && result.setStateIdsToListenTo) {
122
+ setStateIdsToListenTo = result.setStateIdsToListenTo;
123
+ }
124
+ if (result && result.newNav) {
125
+ await checkEveryMenuForData({
126
+ menuData,
127
+ calledValue: result.newNav,
128
+ userToSend,
129
+ instanceTelegram,
130
+ resize_keyboard,
131
+ one_time_keyboard,
132
+ userListWithChatID,
133
+ menus,
134
+ isUserActiveCheckbox,
135
+ token,
136
+ directoryPicture,
137
+ timeoutKey,
138
+ });
139
+ }
140
+ }
141
+ else {
142
+ await (0, sendNav_1.sendNav)(part, userToSend, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard);
143
+ }
144
+ return true;
145
+ }
146
+ if (part.switch) {
147
+ const result = await (0, setstate_1.setState)(part, userToSend, 0, false, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID);
148
+ if (result) {
149
+ setStateIdsToListenTo = result;
150
+ }
151
+ if (Array.isArray(setStateIdsToListenTo)) {
152
+ await (0, subscribeStates_1._subscribeAndUnSubscribeForeignStatesAsync)({ array: setStateIdsToListenTo });
153
+ }
154
+ return true;
155
+ }
156
+ if (part.getData) {
157
+ (0, getstate_1.getState)(part, userToSend, instanceTelegram, one_time_keyboard, resize_keyboard, userListWithChatID);
158
+ return true;
159
+ }
160
+ if (part.sendPic) {
161
+ const result = (0, sendpic_1.sendPic)(part, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, token, directoryPicture, timeouts, timeoutKey);
162
+ if (result) {
163
+ timeouts = result;
164
+ }
165
+ else {
166
+ main_1._this.log.debug(`Timeouts not found`);
167
+ }
168
+ return true;
169
+ }
170
+ if (part.location) {
171
+ main_1._this.log.debug('Send location');
172
+ await (0, telegram_1.sendLocationToTelegram)(userToSend, part.location, instanceTelegram, userListWithChatID);
173
+ return true;
174
+ }
175
+ if (part.echarts) {
176
+ main_1._this.log.debug('Send echars');
177
+ (0, echarts_1.getChart)(part.echarts, directoryPicture, userToSend, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard);
178
+ return true;
179
+ }
180
+ if (part.httpRequest) {
181
+ main_1._this.log.debug('Send http request');
182
+ const result = await (0, httpRequest_1.httpRequest)(part, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, directoryPicture);
183
+ if (result) {
184
+ return true;
185
+ }
186
+ }
187
+ }
188
+ if ((calledValue.startsWith('menu') || calledValue.startsWith('submenu')) &&
189
+ menuData.data[groupWithUser][call]) {
190
+ main_1._this.log.debug('Call Submenu');
191
+ const result = await (0, subMenu_1.callSubMenu)(calledValue, menuData, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, part, allMenusWithData, menus, setStateIdsToListenTo, part.nav);
192
+ if (result && result.setStateIdsToListenTo) {
193
+ setStateIdsToListenTo = result.setStateIdsToListenTo;
194
+ }
195
+ return true;
196
+ }
197
+ return false;
198
+ }
199
+ catch (e) {
200
+ (0, logging_1.errorLogger)('Error processData:', e);
201
+ }
202
+ }
203
+ function getStateIdsToListenTo() {
204
+ return setStateIdsToListenTo;
205
+ }
206
+ function getTimeouts() {
207
+ return timeouts;
208
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sendNav = sendNav;
5
+ const telegram_1 = require("./telegram");
6
+ const utilities_1 = require("../lib/utilities");
7
+ const main_1 = require("../main");
8
+ const logging_1 = require("./logging");
9
+ async function sendNav(part, userToSend, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard) {
10
+ try {
11
+ if (userToSend) {
12
+ main_1._this.log.debug('Send Nav to Telegram');
13
+ const nav = part.nav;
14
+ const text = await (0, utilities_1.checkStatusInfo)(part.text);
15
+ await (0, telegram_1.sendToTelegram)({
16
+ user: userToSend,
17
+ textToSend: text,
18
+ keyboard: nav,
19
+ instance: instanceTelegram,
20
+ resize_keyboard: resize_keyboard,
21
+ one_time_keyboard: one_time_keyboard,
22
+ userListWithChatID: userListWithChatID,
23
+ parse_mode: part.parse_mode || 'false',
24
+ });
25
+ }
26
+ }
27
+ catch (e) {
28
+ (0, logging_1.errorLogger)('Error sendNav:', e);
29
+ }
30
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.sendPic = sendPic;
5
+ const telegram_1 = require("./telegram");
6
+ const global_1 = require("./global");
7
+ const child_process_1 = require("child_process");
8
+ const logging_1 = require("./logging");
9
+ const main_1 = require("../main");
10
+ const string_1 = require("../lib/string");
11
+ function sendPic(part, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, token, directoryPicture, timeouts, timeoutKey) {
12
+ try {
13
+ part.sendPic?.forEach(element => {
14
+ const { id, delay, fileName } = element;
15
+ let path = '';
16
+ if (id != '-') {
17
+ const newUrl = (0, string_1.replaceAll)(id, '&', '&');
18
+ (0, child_process_1.exec)(`curl -H "Autorisation: Bearer ${token.trim()}" "${newUrl}" > ${directoryPicture}${fileName}`, (error, stdout, stderr) => {
19
+ if (stdout) {
20
+ main_1._this.log.debug(`Stdout: ${stdout}`);
21
+ }
22
+ if (stderr) {
23
+ main_1._this.log.debug(`Stderr: ${stderr}`);
24
+ }
25
+ if (error) {
26
+ (0, logging_1.errorLogger)('Error in exec:', error);
27
+ return;
28
+ }
29
+ });
30
+ main_1._this.log.debug(`Delay Time: ${delay}`);
31
+ timeoutKey += 1;
32
+ if (!(0, global_1.checkDirectoryIsOk)(directoryPicture)) {
33
+ return;
34
+ }
35
+ path = `${directoryPicture}${fileName}`;
36
+ main_1._this.log.debug(`Path: ${path}`);
37
+ }
38
+ else {
39
+ return;
40
+ }
41
+ const timeout = main_1._this.setTimeout(async () => {
42
+ await (0, telegram_1.sendToTelegram)({
43
+ user: userToSend,
44
+ textToSend: path,
45
+ instance: instanceTelegram,
46
+ resize_keyboard: resize_keyboard,
47
+ one_time_keyboard: one_time_keyboard,
48
+ userListWithChatID: userListWithChatID,
49
+ parse_mode: 'false',
50
+ });
51
+ let timeoutToClear = [];
52
+ timeoutToClear = timeouts.filter(item => item.key == timeoutKey);
53
+ timeoutToClear.forEach(item => {
54
+ main_1._this.clearTimeout(item.timeout);
55
+ });
56
+ timeouts = timeouts.filter(item => item.key !== timeoutKey);
57
+ main_1._this.log.debug('Picture sent');
58
+ }, parseInt(String(element.delay)));
59
+ if (timeout) {
60
+ timeouts.push({ key: timeoutKey, timeout: timeout });
61
+ }
62
+ });
63
+ return timeouts;
64
+ }
65
+ catch (e) {
66
+ (0, logging_1.errorLogger)('Error send pic:', e);
67
+ }
68
+ return timeouts;
69
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.setState = void 0;
5
+ const telegram_1 = require("./telegram");
6
+ const utilities_1 = require("../lib/utilities");
7
+ const dynamicValue_1 = require("./dynamicValue");
8
+ const global_1 = require("./global");
9
+ const main_1 = require("../main");
10
+ const logging_1 = require("./logging");
11
+ const string_1 = require("../lib/string");
12
+ const modifiedValue = (valueFromSubmenu, value) => {
13
+ if (value && value.includes('{value}')) {
14
+ return value.replace('{value}', valueFromSubmenu);
15
+ }
16
+ return valueFromSubmenu;
17
+ };
18
+ const isDynamicValueToSet = async (value) => {
19
+ if (typeof value === 'string' && value.includes('{id:')) {
20
+ const result = (0, global_1.decomposeText)(value, '{id:', '}');
21
+ const id = result.substring.replace('{id:', '').replace('}', '');
22
+ const newValue = await main_1._this.getForeignStateAsync(id);
23
+ if (newValue && newValue.val && typeof newValue.val === 'string') {
24
+ return value.replace(result.substring, newValue.val);
25
+ }
26
+ }
27
+ return value;
28
+ };
29
+ const setValue = async (id, value, SubmenuValuePriority, valueFromSubmenu, ack) => {
30
+ try {
31
+ let valueToSet;
32
+ SubmenuValuePriority
33
+ ? (valueToSet = modifiedValue(valueFromSubmenu, value))
34
+ : (valueToSet = await isDynamicValueToSet(value));
35
+ await (0, utilities_1.checkTypeOfId)(id, valueToSet).then((val) => {
36
+ valueToSet = val;
37
+ main_1._this.log.debug(`Value to Set: ${(0, string_1.jsonString)(valueToSet)}`);
38
+ if (valueToSet !== undefined && valueToSet !== null) {
39
+ main_1._this.setForeignState(id, valueToSet, ack);
40
+ }
41
+ });
42
+ }
43
+ catch (error) {
44
+ (0, logging_1.errorLogger)('Error setValue', error);
45
+ }
46
+ };
47
+ const setState = async (part, userToSend, valueFromSubmenu, SubmenuValuePriority, telegramInstance, resize_keyboard, one_time_keyboard, userListWithChatID) => {
48
+ try {
49
+ const setStateIds = [];
50
+ if (!part.switch) {
51
+ return;
52
+ }
53
+ for (const element of part.switch) {
54
+ let ack = false;
55
+ let returnText = element.returnText;
56
+ ack = element?.ack ? element.ack === 'true' : false;
57
+ if (returnText.includes('{setDynamicValue')) {
58
+ const { confirmText, id } = await (0, dynamicValue_1.setDynamicValue)(returnText, ack, element.id, userToSend, telegramInstance, one_time_keyboard, resize_keyboard, userListWithChatID, element.parse_mode, element.confirm);
59
+ if (element.confirm) {
60
+ setStateIds.push({
61
+ id: id || element.id,
62
+ confirm: element.confirm,
63
+ returnText: confirmText,
64
+ userToSend: userToSend,
65
+ });
66
+ return setStateIds;
67
+ }
68
+ }
69
+ if (!returnText.includes("{'id':'")) {
70
+ setStateIds.push({
71
+ id: element.id,
72
+ confirm: element.confirm,
73
+ returnText: returnText,
74
+ userToSend: userToSend,
75
+ parse_mode: element.parse_mode,
76
+ });
77
+ }
78
+ else {
79
+ returnText = returnText.replace(/'/g, '"');
80
+ const textToSend = returnText.slice(0, returnText.indexOf('{')).trim();
81
+ const returnObj = JSON.parse(returnText.slice(returnText.indexOf('{'), returnText.indexOf('}') + 1));
82
+ returnObj.text = returnObj.text + returnText.slice(returnText.indexOf('}') + 1);
83
+ if (textToSend && textToSend !== '') {
84
+ await (0, telegram_1.sendToTelegram)({
85
+ user: userToSend,
86
+ textToSend: textToSend,
87
+ keyboard: undefined,
88
+ instance: telegramInstance,
89
+ resize_keyboard: one_time_keyboard,
90
+ one_time_keyboard: resize_keyboard,
91
+ userListWithChatID: userListWithChatID,
92
+ parse_mode: element.parse_mode,
93
+ });
94
+ }
95
+ setStateIds.push({
96
+ id: returnObj.id,
97
+ confirm: true,
98
+ returnText: returnObj.text,
99
+ userToSend: userToSend,
100
+ });
101
+ }
102
+ if (element.toggle) {
103
+ main_1._this
104
+ .getForeignStateAsync(element.id)
105
+ .then(val => {
106
+ if (val) {
107
+ main_1._this.setForeignStateAsync(element.id, !val.val, ack).catch((e) => {
108
+ (0, logging_1.errorLogger)('Error setForeignStateAsync:', e);
109
+ });
110
+ }
111
+ })
112
+ .catch((e) => {
113
+ (0, logging_1.errorLogger)('Error getForeignStateAsync:', e);
114
+ });
115
+ }
116
+ else {
117
+ await setValue(element.id, element.value, SubmenuValuePriority, valueFromSubmenu, ack);
118
+ }
119
+ }
120
+ return setStateIds;
121
+ }
122
+ catch (error) {
123
+ (0, logging_1.errorLogger)('Error Switch', error);
124
+ }
125
+ };
126
+ exports.setState = setState;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.shoppingListSubscribeStateAndDeleteItem = shoppingListSubscribeStateAndDeleteItem;
5
+ exports.deleteMessageAndSendNewShoppingList = deleteMessageAndSendNewShoppingList;
6
+ const messageIds_js_1 = require("./messageIds.js");
7
+ const jsonTable_js_1 = require("./jsonTable.js");
8
+ const telegram_js_1 = require("./telegram.js");
9
+ const subscribeStates_js_1 = require("./subscribeStates.js");
10
+ const logging_js_1 = require("./logging.js");
11
+ const main_js_1 = require("../main.js");
12
+ const string_1 = require("../lib/string");
13
+ const objData = {};
14
+ let isSubscribed = false;
15
+ async function shoppingListSubscribeStateAndDeleteItem(val, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard) {
16
+ try {
17
+ let array, user, idList, instance, idItem, res;
18
+ if (val != null) {
19
+ array = val.split(':');
20
+ user = array[0].replace('[', '').replace(']sList', '');
21
+ idList = array[1];
22
+ instance = array[2];
23
+ idItem = array[3];
24
+ res = await main_js_1._this.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);
25
+ if (res) {
26
+ objData[user] = { idList: idList };
27
+ main_js_1._this.log.debug(`Alexa-shoppinglist: ${idList}`);
28
+ if (!isSubscribed) {
29
+ await (0, subscribeStates_js_1._subscribeAndUnSubscribeForeignStatesAsync)({ id: `alexa-shoppinglist.${idList}` });
30
+ isSubscribed = true;
31
+ }
32
+ await main_js_1._this.setForeignStateAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`, true, false);
33
+ return;
34
+ }
35
+ await (0, telegram_js_1.sendToTelegram)({
36
+ user: user,
37
+ textToSend: 'Cannot delete the Item',
38
+ keyboard: undefined,
39
+ instance: instanceTelegram,
40
+ resize_keyboard: resize_keyboard,
41
+ one_time_keyboard: one_time_keyboard,
42
+ userListWithChatID: userListWithChatID,
43
+ parse_mode: 'true',
44
+ });
45
+ main_js_1._this.log.debug('Cannot delete the Item');
46
+ return;
47
+ }
48
+ }
49
+ catch (e) {
50
+ (0, logging_js_1.errorLogger)('Error shoppingList:', e);
51
+ }
52
+ }
53
+ async function deleteMessageAndSendNewShoppingList(instanceTelegram, userListWithChatID, userToSend) {
54
+ try {
55
+ const user = userToSend;
56
+ const idList = objData[user].idList;
57
+ await (0, subscribeStates_js_1._subscribeAndUnSubscribeForeignStatesAsync)({ id: `alexa-shoppinglist.${idList}` });
58
+ await (0, messageIds_js_1.deleteMessageIds)(user, userListWithChatID, instanceTelegram, 'last');
59
+ const result = await main_js_1._this.getForeignStateAsync(`alexa-shoppinglist.${idList}`);
60
+ if (result && result.val) {
61
+ main_js_1._this.log.debug(`Result from Shoppinglist: ${(0, string_1.jsonString)(result)}`);
62
+ const newId = `alexa-shoppinglist.${idList}`;
63
+ const resultJson = (0, jsonTable_js_1.createKeyboardFromJson)(result.val, null, newId, user);
64
+ if (resultJson && resultJson.text && resultJson.keyboard) {
65
+ (0, telegram_js_1.sendToTelegramSubmenu)(user, resultJson.text, resultJson.keyboard, instanceTelegram, userListWithChatID, 'true');
66
+ }
67
+ }
68
+ }
69
+ catch (e) {
70
+ (0, logging_js_1.errorLogger)('Error deleteMessageAndSendNewShoppingList:', e);
71
+ }
72
+ }