iobroker.telegram-menu 0.4.0 → 0.4.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.
package/README.md CHANGED
@@ -33,6 +33,10 @@ You can create different groups with separate menus, and then assign users to th
33
33
  Placeholder for the next version (at the beginning of the line):
34
34
  ### **WORK IN PROGRESS**
35
35
  -->
36
+ ### 0.4.1 (2023-07-30)
37
+
38
+ - Return text for submenus adjusted
39
+
36
40
  ### 0.4.0 (2023-07-28)
37
41
 
38
42
  - change output value for getState
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "telegram-menu",
4
- "version": "0.4.0",
4
+ "version": "0.4.1",
5
5
  "news": {
6
+ "0.4.1": {
7
+ "en": "Return text for submenus adjusted",
8
+ "de": "Rückgabetext für submenus angepasst",
9
+ "ru": "Вернуться текст для подменю скорректирован",
10
+ "pt": "Texto de retorno para submenus ajustado",
11
+ "nl": "Een terugkeer sms voor submenus aangepast",
12
+ "fr": "Texte de retour pour les sous-menus ajustés",
13
+ "it": "Testo di ritorno per submenus regolato",
14
+ "es": "Texto de retorno para submenú ajustado",
15
+ "pl": "Powtórne teksty do podmenu poprawiły",
16
+ "uk": "Повернення тексту для підменю",
17
+ "zh-cn": "调整的分遣案文"
18
+ },
6
19
  "0.4.0": {
7
20
  "en": "change output value for getState\ncheckbox to disbale Text No Entry found in the settings #34\nsubmenu\n**changed!!!**, states are always set with ack false\nadapter does not restart when telegram restarts #35",
8
21
  "de": "ausgabewert ändern für getState\ncheckbox zum Ausbalieren Text Kein Eintrag gefunden in den Einstellungen #34\nunterpositionen\ngeändert! zustände werden immer mit ack false gesetzt\nadapter startet nicht neu, wenn telegramm neu gestartet #35",
@@ -80,19 +93,6 @@
80
93
  "pl": "Senna Diagram",
81
94
  "uk": "Відправити граматику Grafana",
82
95
  "zh-cn": "Send Grafana Diagram"
83
- },
84
- "0.0.7": {
85
- "en": "Bugs fixed\nTranslate",
86
- "de": "Fehler behoben\nÜbersetzung",
87
- "ru": "Баги фиксированные\nПеревести",
88
- "pt": "Bugs corrigidos\nTraduzir",
89
- "nl": "Bugs gemaakt\nVertaling:",
90
- "fr": "Bugs corrigés\nTraduire",
91
- "it": "Bug fissi\nTraduttore",
92
- "es": "Errores fijos\nTraducir",
93
- "pl": "Bug\nTranslat",
94
- "uk": "Виправлені помилки\nПереклад",
95
- "zh-cn": "固定的黑体\n笔译"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/lib/js/subMenu.js CHANGED
@@ -1,6 +1,7 @@
1
1
  const setstate = require("./setstate").setstate;
2
2
  let step = 0;
3
3
  let device2Switch = "";
4
+ let returnIDToListenTo;
4
5
  /**
5
6
  *
6
7
  * @param {*} _this
@@ -34,9 +35,11 @@ function subMenu(_this, text, groupData, userToSend) {
34
35
  };
35
36
  return ["Wähle eine Option", JSON.stringify(keyboard), device2Switch];
36
37
  } else if (callbackData === "yes") {
37
- setstate(_this, groupData[device2Switch], userToSend, true);
38
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, true);
39
+ return [null, null, null, returnIDToListenTo];
38
40
  } else if (callbackData === "no") {
39
- setstate(_this, groupData[device2Switch], userToSend, false);
41
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, false);
42
+ return [null, null, null, returnIDToListenTo];
40
43
  } else if (callbackData === "on-off") {
41
44
  const keyboard = {
42
45
  inline_keyboard: [
@@ -55,9 +58,12 @@ function subMenu(_this, text, groupData, userToSend) {
55
58
  device2Switch = splittetText[2];
56
59
  return ["Wähle eine Option", JSON.stringify(keyboard), device2Switch];
57
60
  } else if (callbackData === "on") {
58
- setstate(_this, groupData[device2Switch], userToSend, true, true);
61
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, true, true);
62
+ return [null, null, null, returnIDToListenTo];
59
63
  } else if (callbackData === "off") {
60
- setstate(_this, groupData[device2Switch], userToSend, false, true);
64
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, false, true);
65
+ return [null, null, null, returnIDToListenTo];
66
+ //SECTION - Percent
61
67
  } else if (!text.includes("submenu") && callbackData.includes("percent")) {
62
68
  step = parseInt(callbackData.replace("percent", ""));
63
69
  let rowEntrys = 0;
@@ -75,8 +81,6 @@ function subMenu(_this, text, groupData, userToSend) {
75
81
  text: `0%`,
76
82
  callback_data: `submenu:percent${step}:${0}:`,
77
83
  });
78
- // _this.log.debug("menu " + JSON.stringify(menu));
79
- // _this.log.debug("keyboard " + JSON.stringify(keyboard.inline_keyboard));
80
84
  rowEntrys++;
81
85
  if (rowEntrys == 8) {
82
86
  // @ts-ignore
@@ -92,7 +96,9 @@ function subMenu(_this, text, groupData, userToSend) {
92
96
  return ["Welcher Wert soll gesetzt werden?", JSON.stringify(keyboard), device2Switch];
93
97
  } else if (text.includes(`submenu:percent${step}`)) {
94
98
  const value = parseInt(text.split(":")[2]);
95
- setstate(_this, groupData[device2Switch], userToSend, value, true);
99
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, value, true);
100
+ return [null, null, null, returnIDToListenTo];
101
+ //SECTION - Number
96
102
  } else if (!text.includes("submenu") && callbackData.includes("number")) {
97
103
  const splittedData = callbackData.replace("number", "").split("-");
98
104
  let rowEntrys = 0;
@@ -123,8 +129,8 @@ function subMenu(_this, text, groupData, userToSend) {
123
129
  return ["Welcher Wert soll gesetzt werden?", JSON.stringify(keyboard), device2Switch];
124
130
  } else if (text.includes(`submenu:${callbackData}`)) {
125
131
  const value = parseInt(text.split(":")[2]);
126
- setstate(_this, groupData[device2Switch], userToSend, value, true);
127
- _this.log.debug("cal " + JSON.stringify(callbackData));
132
+ returnIDToListenTo = setstate(_this, groupData[device2Switch], userToSend, value, true);
133
+ return [null, null, null, returnIDToListenTo];
128
134
  }
129
135
  }
130
136
  module.exports = {
package/main.js CHANGED
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ let setStateIdsToListenTo;
4
+ function sendIdToOtherFile(Ids) {
5
+ setStateIdsToListenTo = Ids;
6
+ }
3
7
  /*
4
8
  * Created with @iobroker/create-adapter v2.3.0
5
9
  */
@@ -22,8 +26,7 @@ const sendToTelegramSubmenu = require("./lib/js/telegram").sendToTelegramSubmenu
22
26
 
23
27
  let timeouts = [];
24
28
  let timeoutKey = 0;
25
- let setStateIds;
26
- let setStateIdsToListenTo;
29
+ let subscribeForeignStateIds;
27
30
 
28
31
  // Load your modules here, e.g.:
29
32
  // const fs = require("fs");
@@ -103,10 +106,10 @@ class TelegramMenu extends utils.Adapter {
103
106
  this.log.debug("New Structure: " + JSON.stringify(menu.data[name]));
104
107
  const returnValue = generateActions(_this, action[name], menu.data[name]);
105
108
  menu.data[name] = returnValue?.obj;
106
- setStateIds = returnValue?.ids;
107
- if (setStateIds && setStateIds?.length > 0)
108
- _subscribeForeignStatesAsync(setStateIds, _this);
109
- this.log.debug("SetForeignStates: " + JSON.stringify(setStateIds));
109
+ subscribeForeignStateIds = returnValue?.ids;
110
+ if (subscribeForeignStateIds && subscribeForeignStateIds?.length > 0)
111
+ _subscribeForeignStatesAsync(subscribeForeignStateIds, _this);
112
+ this.log.debug("SetForeignStates: " + JSON.stringify(subscribeForeignStateIds));
110
113
  this.log.debug("Name " + JSON.stringify(name));
111
114
  this.log.debug("Array Buttons: " + JSON.stringify(value));
112
115
  this.log.debug("Gen. Actions: " + JSON.stringify(menu.data[name]));
@@ -278,6 +281,9 @@ class TelegramMenu extends utils.Adapter {
278
281
  }
279
282
  }
280
283
  });
284
+ } else {
285
+ this.log.debug("else " + JSON.stringify(id));
286
+ this.log.debug("else " + JSON.stringify(setStateIdsToListenTo));
281
287
  }
282
288
  }
283
289
 
@@ -287,11 +293,12 @@ class TelegramMenu extends utils.Adapter {
287
293
  if (!state.val) telegramAktiv = false;
288
294
  }
289
295
  } catch (e) {
290
- this.log.debug("Error " + JSON.stringify(e));
296
+ this.log.debug("Error1 " + JSON.stringify(e));
291
297
  }
292
298
  });
293
299
  }
294
300
  });
301
+
295
302
  /**
296
303
  *
297
304
  * @param {*} _this
@@ -301,6 +308,8 @@ class TelegramMenu extends utils.Adapter {
301
308
  */
302
309
  function callSubMenu(_this, part, groupData, userToSend) {
303
310
  const subMenuData = subMenu(_this, part, groupData, userToSend);
311
+ if (subMenuData && subMenuData[3]) setStateIdsToListenTo = subMenuData[3];
312
+
304
313
  _this.log.debug("SubMenuData " + JSON.stringify(subMenuData));
305
314
  if (subMenuData && subMenuData[0]) sendToTelegramSubmenu(_this, userToSend, subMenuData[0], subMenuData[1]);
306
315
  }
@@ -353,6 +362,7 @@ class TelegramMenu extends utils.Adapter {
353
362
  }
354
363
  }
355
364
 
365
+ module.exports = { sendIdToOtherFile };
356
366
  if (require.main !== module) {
357
367
  // Export the constructor in compact mode
358
368
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.telegram-menu",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Easily create Telegram Menus",
5
5
  "author": {
6
6
  "name": "MiRo1310",