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 +4 -0
- package/io-package.json +14 -14
- package/lib/js/subMenu.js +15 -9
- package/main.js +17 -7
- package/package.json +1 -1
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
107
|
-
if (
|
|
108
|
-
_subscribeForeignStatesAsync(
|
|
109
|
-
this.log.debug("SetForeignStates: " + JSON.stringify(
|
|
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("
|
|
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
|
/**
|