iobroker.telegram-menu 2.4.0 → 2.4.2

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 (158) hide show
  1. package/README.md +8 -1
  2. package/admin/build/index.js +1 -1
  3. package/admin/build/index.js.map +3 -3
  4. package/build/app/action.js +4 -3
  5. package/build/app/action.js.map +2 -2
  6. package/build/app/echarts.js.map +1 -1
  7. package/build/app/getstate.js +8 -6
  8. package/build/app/getstate.js.map +2 -2
  9. package/build/app/idBySelector.js.map +2 -2
  10. package/build/app/telegram.js +5 -1
  11. package/build/app/telegram.js.map +2 -2
  12. package/build/lib/appUtils.js.map +2 -2
  13. package/build/lib/exchangeValue.js +8 -4
  14. package/build/lib/exchangeValue.js.map +2 -2
  15. package/build/lib/string.js +7 -1
  16. package/build/lib/string.js.map +2 -2
  17. package/build/types/types.js.map +1 -1
  18. package/io-package.json +27 -27
  19. package/package.json +5 -5
  20. package/build/.eslintrc.js +0 -70
  21. package/build/.eslintrc.js.map +0 -1
  22. package/build/build/src/app/action.js +0 -447
  23. package/build/build/src/app/adapterStartMenuSend.js +0 -37
  24. package/build/build/src/app/backMenu.js +0 -70
  25. package/build/build/src/app/botAction.js +0 -25
  26. package/build/build/src/app/connection.js +0 -19
  27. package/build/build/src/app/createState.js +0 -19
  28. package/build/build/src/app/dynamicSwitch.js +0 -51
  29. package/build/build/src/app/dynamicValue.js +0 -64
  30. package/build/build/src/app/echarts.js +0 -45
  31. package/build/build/src/app/getstate.js +0 -157
  32. package/build/build/src/app/global.js +0 -59
  33. package/build/build/src/app/httpRequest.js +0 -64
  34. package/build/build/src/app/jsonTable.js +0 -147
  35. package/build/build/src/app/logging.js +0 -13
  36. package/build/build/src/app/messageIds.js +0 -88
  37. package/build/build/src/app/processData.js +0 -208
  38. package/build/build/src/app/sendNav.js +0 -30
  39. package/build/build/src/app/sendpic.js +0 -69
  40. package/build/build/src/app/setstate.js +0 -126
  41. package/build/build/src/app/shoppingList.js +0 -72
  42. package/build/build/src/app/subMenu.js +0 -361
  43. package/build/build/src/app/subscribeStates.js +0 -25
  44. package/build/build/src/app/telegram.js +0 -101
  45. package/build/build/src/lib/string.js +0 -28
  46. package/build/build/src/lib/time.js +0 -23
  47. package/build/build/src/lib/utilities.js +0 -263
  48. package/build/build/src/lib/utils.js +0 -13
  49. package/build/build/src/main.js +0 -402
  50. package/build/io-package.json +0 -324
  51. package/build/src/app/action.js +0 -239
  52. package/build/src/app/action.js.map +0 -1
  53. package/build/src/app/adapterManager.js +0 -12
  54. package/build/src/app/adapterManager.js.map +0 -1
  55. package/build/src/app/adapterStartMenuSend.js +0 -36
  56. package/build/src/app/adapterStartMenuSend.js.map +0 -1
  57. package/build/src/app/backMenu.js +0 -81
  58. package/build/src/app/backMenu.js.map +0 -1
  59. package/build/src/app/botAction.js +0 -25
  60. package/build/src/app/botAction.js.map +0 -1
  61. package/build/src/app/configVariables.js +0 -32
  62. package/build/src/app/configVariables.js.map +0 -1
  63. package/build/src/app/connection.js +0 -20
  64. package/build/src/app/connection.js.map +0 -1
  65. package/build/src/app/createState.js +0 -19
  66. package/build/src/app/createState.js.map +0 -1
  67. package/build/src/app/dynamicSwitch.js +0 -52
  68. package/build/src/app/dynamicSwitch.js.map +0 -1
  69. package/build/src/app/dynamicSwitchMenu.js +0 -52
  70. package/build/src/app/dynamicSwitchMenu.js.map +0 -1
  71. package/build/src/app/dynamicValue.js +0 -52
  72. package/build/src/app/dynamicValue.js.map +0 -1
  73. package/build/src/app/echarts.js +0 -33
  74. package/build/src/app/echarts.js.map +0 -1
  75. package/build/src/app/getstate.js +0 -122
  76. package/build/src/app/getstate.js.map +0 -1
  77. package/build/src/app/global.js +0 -8
  78. package/build/src/app/global.js.map +0 -1
  79. package/build/src/app/httpRequest.js +0 -55
  80. package/build/src/app/httpRequest.js.map +0 -1
  81. package/build/src/app/jsonTable.js +0 -147
  82. package/build/src/app/jsonTable.js.map +0 -1
  83. package/build/src/app/logging.js +0 -22
  84. package/build/src/app/logging.js.map +0 -1
  85. package/build/src/app/messageIds.js +0 -89
  86. package/build/src/app/messageIds.js.map +0 -1
  87. package/build/src/app/processData.js +0 -153
  88. package/build/src/app/processData.js.map +0 -1
  89. package/build/src/app/sendNav.js +0 -26
  90. package/build/src/app/sendNav.js.map +0 -1
  91. package/build/src/app/sendpic.js +0 -66
  92. package/build/src/app/sendpic.js.map +0 -1
  93. package/build/src/app/sentry.js +0 -18
  94. package/build/src/app/sentry.js.map +0 -1
  95. package/build/src/app/setStateIdsToListenTo.js +0 -17
  96. package/build/src/app/setStateIdsToListenTo.js.map +0 -1
  97. package/build/src/app/setstate.js +0 -114
  98. package/build/src/app/setstate.js.map +0 -1
  99. package/build/src/app/shoppingList.js +0 -74
  100. package/build/src/app/shoppingList.js.map +0 -1
  101. package/build/src/app/subMenu.js +0 -237
  102. package/build/src/app/subMenu.js.map +0 -1
  103. package/build/src/app/subscribeStates.js +0 -17
  104. package/build/src/app/subscribeStates.js.map +0 -1
  105. package/build/src/app/telegram.js +0 -83
  106. package/build/src/app/telegram.js.map +0 -1
  107. package/build/src/app/validateMenus.js +0 -30
  108. package/build/src/app/validateMenus.js.map +0 -1
  109. package/build/src/config/config.js +0 -100
  110. package/build/src/config/config.js.map +0 -1
  111. package/build/src/lib/appUtils.js +0 -126
  112. package/build/src/lib/appUtils.js.map +0 -1
  113. package/build/src/lib/appUtilsString.js +0 -13
  114. package/build/src/lib/appUtilsString.js.map +0 -1
  115. package/build/src/lib/json.js +0 -37
  116. package/build/src/lib/json.js.map +0 -1
  117. package/build/src/lib/math.js +0 -17
  118. package/build/src/lib/math.js.map +0 -1
  119. package/build/src/lib/object.js +0 -10
  120. package/build/src/lib/object.js.map +0 -1
  121. package/build/src/lib/splitValues.js +0 -35
  122. package/build/src/lib/splitValues.js.map +0 -1
  123. package/build/src/lib/string.js +0 -121
  124. package/build/src/lib/string.js.map +0 -1
  125. package/build/src/lib/time.js +0 -57
  126. package/build/src/lib/time.js.map +0 -1
  127. package/build/src/lib/utilities.js +0 -111
  128. package/build/src/lib/utilities.js.map +0 -1
  129. package/build/src/lib/utils.js +0 -37
  130. package/build/src/lib/utils.js.map +0 -1
  131. package/build/src/main.js +0 -332
  132. package/build/src/main.js.map +0 -1
  133. package/build/src/test/setup.js +0 -12
  134. package/build/src/test/setup.js.map +0 -1
  135. package/build/src/types/types.js +0 -3
  136. package/build/src/types/types.js.map +0 -1
  137. package/build/test/integration.js +0 -6
  138. package/build/test/integration.js.map +0 -1
  139. package/build/test/mocha.setup.js +0 -14
  140. package/build/test/mocha.setup.js.map +0 -1
  141. package/build/test/package.js +0 -6
  142. package/build/test/package.js.map +0 -1
  143. package/build/test/setup.js +0 -12
  144. package/build/test/setup.js.map +0 -1
  145. package/build/test/test/appUtils.test.js +0 -519
  146. package/build/test/test/appUtils.test.js.map +0 -1
  147. package/build/test/test/appUtilsString.test.js +0 -16
  148. package/build/test/test/appUtilsString.test.js.map +0 -1
  149. package/build/test/test/math.test.js +0 -33
  150. package/build/test/test/math.test.js.map +0 -1
  151. package/build/test/test/object.test.js +0 -66
  152. package/build/test/test/object.test.js.map +0 -1
  153. package/build/test/test/string.test.js +0 -385
  154. package/build/test/test/string.test.js.map +0 -1
  155. package/build/test/test/time.test.js +0 -186
  156. package/build/test/test/time.test.js.map +0 -1
  157. package/build/test/test/utils.test.js +0 -115
  158. package/build/test/test/utils.test.js.map +0 -1
@@ -1,88 +0,0 @@
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
- }
@@ -1,208 +0,0 @@
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
- }
@@ -1,30 +0,0 @@
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
- }
@@ -1,69 +0,0 @@
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
- }
@@ -1,126 +0,0 @@
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;
@@ -1,72 +0,0 @@
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
- }