iobroker.telegram-menu 2.3.1 → 2.4.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.
- package/README.md +6 -0
- package/build/app/action.js +10 -65
- package/build/app/action.js.map +2 -2
- package/build/app/getstate.js +6 -9
- package/build/app/getstate.js.map +2 -2
- package/build/app/idBySelector.js +103 -0
- package/build/app/idBySelector.js.map +7 -0
- package/build/app/setstate.js +5 -5
- package/build/app/setstate.js.map +3 -3
- package/build/app/subMenu.js +8 -21
- package/build/app/subMenu.js.map +2 -2
- package/build/app/telegram.js +2 -3
- package/build/app/telegram.js.map +2 -2
- package/build/lib/appUtils.js +2 -12
- package/build/lib/appUtils.js.map +2 -2
- package/build/lib/exchangeValue.js +81 -0
- package/build/lib/exchangeValue.js.map +7 -0
- package/build/lib/string.js +1 -23
- package/build/lib/string.js.map +2 -2
- package/build/lib/utilities.js +5 -4
- package/build/lib/utilities.js.map +2 -2
- package/build/main.js +10 -22
- package/build/main.js.map +3 -3
- package/build/types/types.js.map +1 -1
- package/io-package.json +14 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,12 @@ You can create different groups with separate menus, and then assign users to th
|
|
|
35
35
|
Placeholder for the next version (at the beginning of the line):
|
|
36
36
|
### **WORK IN PROGRESS**
|
|
37
37
|
-->
|
|
38
|
+
### 2.4.0 (2025-05-24)
|
|
39
|
+
|
|
40
|
+
- FIX: Error returnText is empty
|
|
41
|
+
- FEAT: Extension for get by function
|
|
42
|
+
- FIX: Errors reported by sentry
|
|
43
|
+
|
|
38
44
|
### 2.3.1 (2025-05-20)
|
|
39
45
|
|
|
40
46
|
|
package/build/app/action.js
CHANGED
|
@@ -22,8 +22,7 @@ __export(action_exports, {
|
|
|
22
22
|
bindingFunc: () => bindingFunc,
|
|
23
23
|
checkEvent: () => checkEvent,
|
|
24
24
|
generateActions: () => generateActions,
|
|
25
|
-
getUserToSendFromUserListWithChatID: () => getUserToSendFromUserListWithChatID
|
|
26
|
-
idBySelector: () => idBySelector
|
|
25
|
+
getUserToSendFromUserListWithChatID: () => getUserToSendFromUserListWithChatID
|
|
27
26
|
});
|
|
28
27
|
module.exports = __toCommonJS(action_exports);
|
|
29
28
|
var import_telegram = require("./telegram");
|
|
@@ -73,62 +72,6 @@ const bindingFunc = async (text, userToSend, telegramParams, parse_mode) => {
|
|
|
73
72
|
(0, import_logging.errorLogger)("Error Binding function: ", e, import_main.adapter);
|
|
74
73
|
}
|
|
75
74
|
};
|
|
76
|
-
const idBySelector = async ({
|
|
77
|
-
selector,
|
|
78
|
-
text,
|
|
79
|
-
userToSend,
|
|
80
|
-
newline,
|
|
81
|
-
telegramParams
|
|
82
|
-
}) => {
|
|
83
|
-
let text2Send = "";
|
|
84
|
-
try {
|
|
85
|
-
const functions = selector.replace(import_config.config.functionSelektor, "");
|
|
86
|
-
let enums = [];
|
|
87
|
-
const result = await import_main.adapter.getEnumsAsync();
|
|
88
|
-
if (!(result == null ? void 0 : result["enum.functions"][`enum.functions.${functions}`])) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
enums = result["enum.functions"][`enum.functions.${functions}`].common.members;
|
|
92
|
-
if (!enums) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const promises = enums.map(async (id) => {
|
|
96
|
-
const value = await import_main.adapter.getForeignStateAsync(id);
|
|
97
|
-
if ((0, import_utils.isDefined)(value == null ? void 0 : value.val)) {
|
|
98
|
-
let newText = text;
|
|
99
|
-
let res;
|
|
100
|
-
if (text.includes("{common.name}")) {
|
|
101
|
-
res = await import_main.adapter.getForeignObjectAsync(id);
|
|
102
|
-
import_main.adapter.log.debug(`Name ${(0, import_string.jsonString)(res == null ? void 0 : res.common.name)}`);
|
|
103
|
-
if (res && typeof res.common.name === "string") {
|
|
104
|
-
newText = newText.replace("{common.name}", res.common.name);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (text.includes("&&")) {
|
|
108
|
-
text2Send += newText.replace("&&", String(value.val));
|
|
109
|
-
} else if (text.includes("&&")) {
|
|
110
|
-
text2Send += newText.replace("&&", String(value.val));
|
|
111
|
-
} else {
|
|
112
|
-
text2Send += newText;
|
|
113
|
-
text2Send += ` ${value.val}`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
text2Send += (0, import_string.getNewline)(newline);
|
|
117
|
-
import_main.adapter.log.debug(`text2send ${JSON.stringify(text2Send)}`);
|
|
118
|
-
});
|
|
119
|
-
Promise.all(promises).then(async () => {
|
|
120
|
-
await (0, import_telegram.sendToTelegram)({
|
|
121
|
-
userToSend,
|
|
122
|
-
textToSend: text2Send,
|
|
123
|
-
telegramParams
|
|
124
|
-
});
|
|
125
|
-
}).catch((e) => {
|
|
126
|
-
(0, import_logging.errorLogger)("Error Promise:", e, import_main.adapter);
|
|
127
|
-
});
|
|
128
|
-
} catch (error) {
|
|
129
|
-
(0, import_logging.errorLogger)("Error idBySelector: ", error, import_main.adapter);
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
75
|
function generateActions({
|
|
133
76
|
action,
|
|
134
77
|
userObject
|
|
@@ -142,7 +85,7 @@ function generateActions({
|
|
|
142
85
|
}
|
|
143
86
|
userObject[triggerName] = { switch: [] };
|
|
144
87
|
IDs.forEach(function(id, index2) {
|
|
145
|
-
var _a;
|
|
88
|
+
var _a, _b;
|
|
146
89
|
listOfSetStateIds.push(id);
|
|
147
90
|
const toggle = (0, import_utils.isTruthy)(switch_checkbox[index2]);
|
|
148
91
|
const newObj = {
|
|
@@ -151,10 +94,10 @@ function generateActions({
|
|
|
151
94
|
toggle,
|
|
152
95
|
confirm: confirm[index2],
|
|
153
96
|
returnText: returnText[index2],
|
|
154
|
-
ack: (0, import_utils.isTruthy)(ack[index2]),
|
|
97
|
+
ack: (0, import_utils.isTruthy)((_a = ack == null ? void 0 : ack[index2]) != null ? _a : false),
|
|
155
98
|
parse_mode: (0, import_utils.isTruthy)(parse_mode[0])
|
|
156
99
|
};
|
|
157
|
-
if (Array.isArray((
|
|
100
|
+
if (Array.isArray((_b = userObject[triggerName]) == null ? void 0 : _b.switch)) {
|
|
158
101
|
userObject[triggerName].switch.push(newObj);
|
|
159
102
|
}
|
|
160
103
|
});
|
|
@@ -208,9 +151,12 @@ const checkEvent = async (dataObject, id, state, menuData, telegramParams, users
|
|
|
208
151
|
const menuArray = [];
|
|
209
152
|
let ok = false;
|
|
210
153
|
let calledNav = "";
|
|
154
|
+
if (!dataObject.action) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
211
157
|
Object.keys(dataObject.action).forEach((menu) => {
|
|
212
|
-
var _a2;
|
|
213
|
-
if ((_a2 = dataObject.action[menu]) == null ? void 0 :
|
|
158
|
+
var _a2, _b;
|
|
159
|
+
if ((_b = (_a2 = dataObject.action) == null ? void 0 : _a2[menu]) == null ? void 0 : _b.events) {
|
|
214
160
|
dataObject.action[menu].events.forEach((event) => {
|
|
215
161
|
if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {
|
|
216
162
|
const condition = event.condition[0];
|
|
@@ -264,7 +210,6 @@ const getUserToSendFromUserListWithChatID = (userListWithChatID, chatID) => {
|
|
|
264
210
|
bindingFunc,
|
|
265
211
|
checkEvent,
|
|
266
212
|
generateActions,
|
|
267
|
-
getUserToSendFromUserListWithChatID
|
|
268
|
-
idBySelector
|
|
213
|
+
getUserToSendFromUserListWithChatID
|
|
269
214
|
});
|
|
270
215
|
//# sourceMappingURL=action.js.map
|
package/build/app/action.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/action.ts"],
|
|
4
|
-
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { callSubMenu } from './subMenu';\nimport { sendNav } from './sendNav';\nimport { backMenuFunc } from './backMenu';\nimport { errorLogger } from './logging';\nimport { adapter } from '../main';\nimport type {\n Actions,\n BindingObject,\n BooleanString,\n DataObject,\n GenerateActionsNewObject,\n MenuData,\n NewObjectStructure,\n Part,\n Switch,\n TelegramParams,\n UserListWithChatId,\n UserObjectActions,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText, getNewline, jsonString } from '../lib/string';\nimport { isDefined, isFalsy, isTruthy } from '../lib/utils';\nimport { evaluate } from '../lib/math';\nimport { arrayOfEntries, config } from '../config/config';\nimport { getBindingValues } from '../lib/splitValues';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): Promise<void> => {\n let textToSend;\n\n try {\n const { substringExcludeSearch } = decomposeText(text, config.binding.start, config.binding.end);\n const arrayOfItems = substringExcludeSearch.split(config.binding.splitChar);\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const { key, id } = getBindingValues(item);\n if (id) {\n const result = await adapter.getForeignStateAsync(id);\n\n if (result) {\n bindingObject.values[key] = result.val?.toString() ?? '';\n }\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n const { val } = evaluate(item, adapter);\n textToSend = String(val);\n }\n }\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n } catch (e: any) {\n errorLogger('Error Binding function: ', e, adapter);\n }\n};\n\nconst idBySelector = async ({\n selector,\n text,\n userToSend,\n newline,\n telegramParams,\n}: {\n selector: string;\n text: string;\n userToSend: string;\n newline: BooleanString;\n telegramParams: TelegramParams;\n}): Promise<void> => {\n let text2Send = '';\n try {\n const functions = selector.replace(config.functionSelektor, '');\n let enums: string[] | undefined = [];\n const result = await adapter.getEnumsAsync();\n\n if (!result?.['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n\n const promises = enums.map(async (id: string) => {\n const value = await adapter.getForeignStateAsync(id);\n if (isDefined(value?.val)) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await adapter.getForeignObjectAsync(id);\n adapter.log.debug(`Name ${jsonString(res?.common.name)}`);\n\n if (res && typeof res.common.name === 'string') {\n newText = newText.replace('{common.name}', res.common.name);\n }\n }\n if (text.includes('&&')) {\n text2Send += newText.replace('&&', String(value.val));\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', String(value.val));\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n\n text2Send += getNewline(newline);\n\n adapter.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(async () => {\n await sendToTelegram({\n userToSend,\n textToSend: text2Send,\n telegramParams,\n });\n })\n .catch(e => {\n errorLogger('Error Promise:', e, adapter);\n });\n } catch (error: any) {\n errorLogger('Error idBySelector: ', error, adapter);\n }\n};\n\nfunction generateActions({\n action,\n userObject,\n}: {\n action?: Actions;\n userObject: NewObjectStructure;\n}): { obj: NewObjectStructure; ids: string[] } | undefined {\n try {\n const listOfSetStateIds: string[] = [];\n action?.set.forEach(function (\n { trigger, switch_checkbox, returnText, parse_mode, values, confirm, ack, IDs },\n index,\n ) {\n const triggerName = trigger[0];\n if (index == 0) {\n userObject[triggerName] = { switch: [] };\n }\n userObject[triggerName] = { switch: [] };\n\n IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = isTruthy(switch_checkbox[index]);\n\n const newObj: Switch = {\n id: IDs[index],\n value: values[index],\n toggle: toggle,\n confirm: confirm[index],\n returnText: returnText[index],\n ack: isTruthy(ack[index]),\n parse_mode: isTruthy(parse_mode[0]),\n };\n if (Array.isArray(userObject[triggerName]?.switch)) {\n userObject[triggerName].switch.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n const actions = action?.[item.objName as keyof Actions];\n\n actions?.forEach(function (element, index) {\n const trigger = element.trigger[0];\n userObject[trigger] = { [item.name]: [] };\n if (index == 0) {\n userObject[trigger] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (id, index) {\n const newObj = {} as GenerateActionsNewObject;\n item.elements.forEach(({ name, value, index: elIndex }) => {\n const elName = (value ? value : name) as keyof typeof element;\n const newIndex = elIndex ? elIndex : index;\n\n const val = !element[elName] ? false : element[elName][newIndex] || 'false';\n\n if (name === 'parse_mode') {\n newObj.parse_mode = isTruthy(val);\n }\n\n if (typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&/g, '&') as any;\n }\n });\n\n (userObject?.[trigger]?.[item.name as keyof Part] as GenerateActionsNewObject[]).push(newObj);\n });\n });\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n errorLogger('Error generateActions:', err, adapter);\n }\n}\n\nconst adjustValueType = (value: keyof NewObjectStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value)) {\n adapter.log.error(`Error: Value is not a number: ${value}`);\n return false;\n }\n return parseFloat(value);\n }\n if (valueType == 'boolean') {\n return isTruthy(value);\n }\n return value;\n};\n\nexport const checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n telegramParams: TelegramParams,\n usersInGroup: UsersInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu]?.events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n const condition = event.condition[0];\n if (\n ((state.val == true || state.val == 'true') && isTruthy(condition)) ||\n ((state.val == false || state.val == 'false') && isFalsy(condition)) ||\n (typeof state.val == 'number' && state.val == parseInt(condition)) ||\n state.val == condition\n ) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (!ok || !menuArray.length) {\n return false;\n }\n\n for (const menu of menuArray) {\n const part = menuData[menu][calledNav as keyof DataObject];\n if (usersInGroup[menu] && part) {\n for (const user of usersInGroup[menu]) {\n const menus = Object.keys(menuData);\n\n if (part.nav) {\n backMenuFunc({ activePage: calledNav, navigation: part.nav, userToSend: user });\n }\n\n if (part?.nav?.[0][0].includes('menu:')) {\n await callSubMenu({\n jsonStringNav: part.nav[0][0],\n userToSend: user,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: menuData,\n menus: menus,\n });\n return true;\n }\n await sendNav(part, user, telegramParams);\n }\n }\n }\n return true;\n};\n\nexport const getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | undefined => {\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n return element.name;\n }\n }\n};\n\nexport { idBySelector, generateActions, bindingFunc, adjustValueType };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { callSubMenu } from './subMenu';\nimport { sendNav } from './sendNav';\nimport { backMenuFunc } from './backMenu';\nimport { errorLogger } from './logging';\n\nimport { adapter } from '../main';\n\nimport type {\n Actions,\n BindingObject,\n DataObject,\n GenerateActionsNewObject,\n MenuData,\n NewObjectStructure,\n Part,\n Switch,\n TelegramParams,\n UserListWithChatId,\n UserObjectActions,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText } from '../lib/string';\nimport { isFalsy, isTruthy } from '../lib/utils';\nimport { evaluate } from '../lib/math';\nimport { arrayOfEntries, config } from '../config/config';\nimport { getBindingValues } from '../lib/splitValues';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): Promise<void> => {\n let textToSend;\n\n try {\n const { substringExcludeSearch } = decomposeText(text, config.binding.start, config.binding.end);\n const arrayOfItems = substringExcludeSearch.split(config.binding.splitChar);\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const { key, id } = getBindingValues(item);\n if (id) {\n const result = await adapter.getForeignStateAsync(id);\n\n if (result) {\n bindingObject.values[key] = result.val?.toString() ?? '';\n }\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n const { val } = evaluate(item, adapter);\n textToSend = String(val);\n }\n }\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n } catch (e: any) {\n errorLogger('Error Binding function: ', e, adapter);\n }\n};\n\nfunction generateActions({\n action,\n userObject,\n}: {\n action?: Actions;\n userObject: NewObjectStructure;\n}): { obj: NewObjectStructure; ids: string[] } | undefined {\n try {\n const listOfSetStateIds: string[] = [];\n action?.set.forEach(function (\n { trigger, switch_checkbox, returnText, parse_mode, values, confirm, ack, IDs },\n index,\n ) {\n const triggerName = trigger[0];\n if (index == 0) {\n userObject[triggerName] = { switch: [] };\n }\n userObject[triggerName] = { switch: [] };\n\n IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = isTruthy(switch_checkbox[index]);\n\n const newObj: Switch = {\n id: IDs[index],\n value: values[index],\n toggle: toggle,\n confirm: confirm[index],\n returnText: returnText[index],\n ack: isTruthy(ack?.[index] ?? false),\n parse_mode: isTruthy(parse_mode[0]),\n };\n if (Array.isArray(userObject[triggerName]?.switch)) {\n userObject[triggerName].switch.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n const actions = action?.[item.objName as keyof Actions];\n\n actions?.forEach(function (element, index) {\n const trigger = element.trigger[0];\n userObject[trigger] = { [item.name]: [] };\n if (index == 0) {\n userObject[trigger] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (id, index) {\n const newObj = {} as GenerateActionsNewObject;\n item.elements.forEach(({ name, value, index: elIndex }) => {\n const elName = (value ? value : name) as keyof typeof element;\n const newIndex = elIndex ? elIndex : index;\n\n const val = !element[elName] ? false : element[elName][newIndex] || 'false';\n\n if (name === 'parse_mode') {\n newObj.parse_mode = isTruthy(val);\n }\n\n if (typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&/g, '&') as any;\n }\n });\n\n (userObject?.[trigger]?.[item.name as keyof Part] as GenerateActionsNewObject[]).push(newObj);\n });\n });\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n errorLogger('Error generateActions:', err, adapter);\n }\n}\n\nconst adjustValueType = (value: keyof NewObjectStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value)) {\n adapter.log.error(`Error: Value is not a number: ${value}`);\n return false;\n }\n return parseFloat(value);\n }\n if (valueType == 'boolean') {\n return isTruthy(value);\n }\n return value;\n};\n\nexport const checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n telegramParams: TelegramParams,\n usersInGroup: UsersInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n\n if (!dataObject.action) {\n return false;\n }\n\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action?.[menu]?.events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n const condition = event.condition[0];\n if (\n ((state.val == true || state.val == 'true') && isTruthy(condition)) ||\n ((state.val == false || state.val == 'false') && isFalsy(condition)) ||\n (typeof state.val == 'number' && state.val == parseInt(condition)) ||\n state.val == condition\n ) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (!ok || !menuArray.length) {\n return false;\n }\n\n for (const menu of menuArray) {\n const part = menuData[menu][calledNav as keyof DataObject];\n if (usersInGroup[menu] && part) {\n for (const user of usersInGroup[menu]) {\n const menus = Object.keys(menuData);\n\n if (part.nav) {\n backMenuFunc({ activePage: calledNav, navigation: part.nav, userToSend: user });\n }\n\n if (part?.nav?.[0][0].includes('menu:')) {\n await callSubMenu({\n jsonStringNav: part.nav[0][0],\n userToSend: user,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: menuData,\n menus: menus,\n });\n return true;\n }\n await sendNav(part, user, telegramParams);\n }\n }\n }\n return true;\n};\n\nexport const getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | undefined => {\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n return element.name;\n }\n }\n};\n\nexport { generateActions, bindingFunc, adjustValueType };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["index", "_a"]
|
|
7
7
|
}
|
package/build/app/getstate.js
CHANGED
|
@@ -32,6 +32,8 @@ var import_string = require("../lib/string");
|
|
|
32
32
|
var import_appUtils = require("../lib/appUtils");
|
|
33
33
|
var import_config = require("../config/config");
|
|
34
34
|
var import_logging = require("./logging");
|
|
35
|
+
var import_exchangeValue = require("../lib/exchangeValue");
|
|
36
|
+
var import_idBySelector = require("./idBySelector");
|
|
35
37
|
async function getState(part, userToSend, telegramParams) {
|
|
36
38
|
var _a;
|
|
37
39
|
try {
|
|
@@ -41,7 +43,8 @@ async function getState(part, userToSend, telegramParams) {
|
|
|
41
43
|
var _a2;
|
|
42
44
|
import_main.adapter.log.debug(`Get Value ID: ${id}`);
|
|
43
45
|
if (id.includes(import_config.config.functionSelektor)) {
|
|
44
|
-
await (0,
|
|
46
|
+
await (0, import_idBySelector.idBySelector)({
|
|
47
|
+
adapter: import_main.adapter,
|
|
45
48
|
selector: id,
|
|
46
49
|
text,
|
|
47
50
|
userToSend,
|
|
@@ -119,15 +122,9 @@ async function getState(part, userToSend, telegramParams) {
|
|
|
119
122
|
return;
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
|
-
const {
|
|
123
|
-
newValue: _val,
|
|
124
|
-
textToSend: _text,
|
|
125
|
-
error
|
|
126
|
-
} = (0, import_string.getValueToExchange)(import_main.adapter, modifiedTextToSend, modifiedStateVal);
|
|
127
|
-
modifiedStateVal = String(_val);
|
|
128
|
-
modifiedTextToSend = _text;
|
|
125
|
+
const { textToSend: _text, error } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, modifiedTextToSend, modifiedStateVal);
|
|
129
126
|
const isNewline = (0, import_string.getNewline)(newline);
|
|
130
|
-
modifiedTextToSend =
|
|
127
|
+
modifiedTextToSend = `${_text} ${isNewline}`;
|
|
131
128
|
import_main.adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);
|
|
132
129
|
valueArrayForCorrectOrder[index] = modifiedTextToSend;
|
|
133
130
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/getstate.ts"],
|
|
4
|
-
"sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsD;AACtD,
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\nimport { exchangeValue } from '../lib/exchangeValue';\nimport { idBySelector } from './idBySelector';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n adapter,\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`textToSend : ${modifiedTextToSend} val : ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const { textToSend: _text, error } = exchangeValue(adapter, modifiedTextToSend, modifiedStateVal);\n\n const isNewline = getNewline(newline);\n modifiedTextToSend = `${_text} ${isNewline}`;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend;\n });\n await Promise.all(promises);\n\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsD;AACtD,oBAA4B;AAC5B,uBAAgE;AAChE,uBAAgC;AAChC,mBAA0B;AAC1B,kBAAwB;AAExB,kBAAsC;AACtC,oBAAqE;AACrE,sBAAsC;AACtC,oBAAuB;AACvB,qBAA4B;AAC5B,2BAA8B;AAC9B,0BAA6B;AAE7B,eAAsB,SAAS,MAAY,YAAoB,gBAA+C;AAf9G;AAgBI,MAAI;AACA,UAAM,cAAa,UAAK,YAAL,mBAAe,GAAG;AACrC,UAAM,4BAAsC,CAAC;AAC7C,UAAM,YAAY,KAAK,WAAW,CAAC,GAAG,IAAI,OAAO,EAAE,SAAS,MAAM,GAAG,GAAG,UAAyB;AAnBzG,UAAAA;AAoBY,0BAAQ,IAAI,MAAM,iBAAiB,EAAE,EAAE;AAEvC,UAAI,GAAG,SAAS,qBAAO,gBAAgB,GAAG;AACtC,kBAAM,kCAAa;AAAA,UACf;AAAA,UACA,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD;AAAA,MACJ;AAEA,UAAI,KAAK,SAAS,qBAAO,QAAQ,KAAK,GAAG;AACrC,kBAAM,2BAAY,MAAM,YAAY,gBAAgB,UAAU;AAC9D;AAAA,MACJ;AAEA,YAAM,QAAQ,MAAM,oBAAQ,qBAAqB,EAAE;AAEnD,UAAI,KAAC,wBAAU,KAAK,GAAG;AACnB,4BAAQ,IAAI,MAAM,qBAAqB;AACvC,kCAA0B,KAAK,IAAI;AACnC,eAAO,QAAQ,QAAQ;AAAA,MAC3B;AAEA,YAAM,iBAAa,8BAAcA,MAAA,MAAM,QAAN,gBAAAA,IAAW,UAAU;AAEtD,UAAI,mBAAmB;AACvB,UAAI,qBAAqB;AAEzB,UAAI,KAAK,SAAS,qBAAO,UAAU,EAAE,KAAK,KAAK,SAAS,qBAAO,UAAU,EAAE,GAAG;AAC1E,6BAAqB,UAAM,kCAAgB,MAAM,EAAE;AACnD,2BAAmB;AAAA,MACvB;AAEA,UAAI,mBAAmB,SAAS,qBAAO,IAAI,GAAG;AAC1C,iCAAqB,mCAAsB,oBAAoB,UAAU;AACzE,2BAAmB;AAAA,MACvB;AAEA,UAAI,mBAAmB,SAAS,qBAAO,KAAK,KAAK,GAAG;AAChD,cAAM,EAAE,YAAY,YAAY,OAAAC,OAAM,QAAI,2BAAU,oBAAoB,kBAAkB,mBAAO;AACjG,YAAI,CAACA,QAAO;AACR,+BAAqB;AACrB,6BAAmB;AAEnB,8BAAQ,IAAI,MAAM,gBAAgB,kBAAkB,UAAU,gBAAgB,EAAE;AAAA,QACpF;AAAA,MACJ;AAEA,UAAI,mBAAmB,SAAS,qBAAO,MAAM,KAAK,GAAG;AACjD,cAAM,EAAE,OAAAA,QAAO,MAAAC,OAAM,aAAa,QAAI,4BAAW,OAAO,gBAAgB,GAAG,kBAAkB;AAC7F,YAAI,CAACD,QAAO;AACR,8BAAQ,IAAI,MAAM,oBAAgB,0BAAW,gBAAgB,CAAC,WAAO,0BAAW,YAAY,CAAC,EAAE;AAC/F,6BAAmB;AACnB,+BAAqBC;AAAA,QACzB;AAAA,MACJ;AAEA,UAAI,mBAAmB,SAAS,qBAAO,KAAK,KAAK,GAAG;AAChD,cAAM,EAAE,UAAU,QAAI,6BAAc,oBAAoB,qBAAO,KAAK,OAAO,qBAAO,KAAK,GAAG;AAE1F,YAAI,UAAU,SAAS,qBAAO,KAAK,SAAS,GAAG;AAC3C,gBAAM,aAAS,0CAAwB,YAAY,kBAAkB;AACrE,cAAI,QAAQ;AACR,sBAAM,gCAAe;AAAA,cACjB;AAAA,cACA,YAAY;AAAA,cACZ;AAAA,cACA;AAAA,YACJ,CAAC;AACD;AAAA,UACJ;AACA,8BAAQ,IAAI,MAAM,4BAA4B;AAAA,QAClD,OAAO;AACH,gBAAM,aAAS,yCAAuB,YAAY,oBAAoB,IAAI,UAAU;AACpF,cAAI,cAAc,WAAW,SAAS,GAAG;AACrC,gBAAI,UAAU,OAAO,QAAQ,OAAO,UAAU;AAC1C,yDAAsB,YAAY,OAAO,MAAM,OAAO,UAAU,gBAAgB,UAAU;AAAA,YAC9F;AACA;AAAA,UACJ;AACA,oBAAM,gCAAe;AAAA,YACjB;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,UACJ,CAAC;AACD,8BAAQ,IAAI,MAAM,qBAAqB;AACvC;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM,EAAE,YAAY,OAAO,MAAM,QAAI,oCAAc,qBAAS,oBAAoB,gBAAgB;AAEhG,YAAM,gBAAY,0BAAW,OAAO;AACpC,2BAAqB,GAAG,KAAK,IAAI,SAAS;AAE1C,0BAAQ,IAAI,MAAM,CAAC,QAAQ,qBAAqB,kBAAkB,KAAK,WAAW;AAElF,gCAA0B,KAAK,IAAI;AAAA,IACvC,CAAC;AACD,UAAM,QAAQ,IAAI,QAAQ;AAE1B,cAAM,gCAAe;AAAA,MACjB;AAAA,MACA,YAAY,0BAA0B,KAAK,EAAE;AAAA,MAC7C;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL,SAAS,OAAY;AACjB,oCAAY,kBAAkB,OAAO,mBAAO;AAAA,EAChD;AACJ;",
|
|
6
6
|
"names": ["_a", "error", "text"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var idBySelector_exports = {};
|
|
20
|
+
__export(idBySelector_exports, {
|
|
21
|
+
idBySelector: () => idBySelector
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(idBySelector_exports);
|
|
24
|
+
var import_config = require("../config/config");
|
|
25
|
+
var import_exchangeValue = require("../lib/exchangeValue");
|
|
26
|
+
var import_string = require("../lib/string");
|
|
27
|
+
var import_telegram = require("./telegram");
|
|
28
|
+
var import_logging = require("./logging");
|
|
29
|
+
const idBySelector = async ({
|
|
30
|
+
adapter,
|
|
31
|
+
selector,
|
|
32
|
+
text,
|
|
33
|
+
userToSend,
|
|
34
|
+
newline,
|
|
35
|
+
telegramParams
|
|
36
|
+
}) => {
|
|
37
|
+
let text2Send = "";
|
|
38
|
+
try {
|
|
39
|
+
const functions = selector.replace(import_config.config.functionSelektor, "");
|
|
40
|
+
let enums = [];
|
|
41
|
+
const result = await adapter.getEnumsAsync();
|
|
42
|
+
const enumsFunctions = result == null ? void 0 : result["enum.functions"][`enum.functions.${functions}`];
|
|
43
|
+
if (!enumsFunctions) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
enums = enumsFunctions.common.members;
|
|
47
|
+
if (!enums) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const promises = enums.map(async (id) => {
|
|
51
|
+
var _a;
|
|
52
|
+
const value = await adapter.getForeignStateAsync(id);
|
|
53
|
+
let newText = text;
|
|
54
|
+
if (text.includes("{common.name}")) {
|
|
55
|
+
const result2 = await adapter.getForeignObjectAsync(id);
|
|
56
|
+
newText = newText.replace("{common.name}", getCommonName({ name: result2 == null ? void 0 : result2.common.name, adapter }));
|
|
57
|
+
}
|
|
58
|
+
if (text.includes("{folder.name}")) {
|
|
59
|
+
const result2 = await adapter.getForeignObjectAsync(removeLastPartOfId(id));
|
|
60
|
+
newText = newText.replace("{folder.name}", getCommonName({ name: result2 == null ? void 0 : result2.common.name, adapter }));
|
|
61
|
+
}
|
|
62
|
+
const { textToSend } = (0, import_exchangeValue.exchangeValue)(adapter, newText, (_a = value == null ? void 0 : value.val) != null ? _a : "");
|
|
63
|
+
text2Send += textToSend;
|
|
64
|
+
text2Send += (0, import_string.getNewline)(newline);
|
|
65
|
+
adapter.log.debug(`Text to send: ${JSON.stringify(text2Send)}`);
|
|
66
|
+
});
|
|
67
|
+
Promise.all(promises).then(async () => {
|
|
68
|
+
await (0, import_telegram.sendToTelegram)({
|
|
69
|
+
userToSend,
|
|
70
|
+
textToSend: text2Send,
|
|
71
|
+
telegramParams
|
|
72
|
+
});
|
|
73
|
+
}).catch((e) => {
|
|
74
|
+
(0, import_logging.errorLogger)("Error Promise", e, adapter);
|
|
75
|
+
});
|
|
76
|
+
} catch (error) {
|
|
77
|
+
(0, import_logging.errorLogger)("Error idBySelector", error, adapter);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
function getCommonName({ name, adapter }) {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
const language = (_a = adapter.language) != null ? _a : "en";
|
|
83
|
+
if (!name) {
|
|
84
|
+
return "";
|
|
85
|
+
}
|
|
86
|
+
if (typeof name === "string") {
|
|
87
|
+
return name;
|
|
88
|
+
}
|
|
89
|
+
if (language) {
|
|
90
|
+
return (_b = name[language]) != null ? _b : "";
|
|
91
|
+
}
|
|
92
|
+
return "";
|
|
93
|
+
}
|
|
94
|
+
function removeLastPartOfId(id) {
|
|
95
|
+
const parts = id.split(".");
|
|
96
|
+
parts.pop();
|
|
97
|
+
return parts.join(".");
|
|
98
|
+
}
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
idBySelector
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=idBySelector.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/idBySelector.ts"],
|
|
4
|
+
"sourcesContent": ["import type { BooleanString, TelegramParams } from '../types/types';\nimport { config } from '../config/config';\nimport type TelegramMenu from '../main';\nimport { exchangeValue } from '../lib/exchangeValue';\nimport { getNewline } from '../lib/string';\nimport { sendToTelegram } from './telegram';\nimport { errorLogger } from './logging';\n\nexport const idBySelector = async ({\n adapter,\n selector,\n text,\n userToSend,\n newline,\n telegramParams,\n}: {\n adapter: TelegramMenu;\n selector: string;\n text: string;\n userToSend: string;\n newline: BooleanString;\n telegramParams: TelegramParams;\n}): Promise<void> => {\n let text2Send = '';\n try {\n const functions = selector.replace(config.functionSelektor, '');\n let enums: string[] | undefined = [];\n const result = await adapter.getEnumsAsync();\n const enumsFunctions = result?.['enum.functions'][`enum.functions.${functions}`];\n if (!enumsFunctions) {\n return;\n }\n enums = enumsFunctions.common.members;\n if (!enums) {\n return;\n }\n\n const promises = enums.map(async (id: string) => {\n const value = await adapter.getForeignStateAsync(id);\n\n let newText = text;\n\n if (text.includes('{common.name}')) {\n const result = await adapter.getForeignObjectAsync(id);\n newText = newText.replace('{common.name}', getCommonName({ name: result?.common.name, adapter }));\n }\n if (text.includes('{folder.name}')) {\n const result = await adapter.getForeignObjectAsync(removeLastPartOfId(id));\n newText = newText.replace('{folder.name}', getCommonName({ name: result?.common.name, adapter }));\n }\n\n const { textToSend } = exchangeValue(adapter, newText, value?.val ?? '');\n\n text2Send += textToSend;\n text2Send += getNewline(newline);\n\n adapter.log.debug(`Text to send: ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(async () => {\n await sendToTelegram({\n userToSend,\n textToSend: text2Send,\n telegramParams,\n });\n })\n .catch(e => {\n errorLogger('Error Promise', e, adapter);\n });\n } catch (error: any) {\n errorLogger('Error idBySelector', error, adapter);\n }\n};\n\nfunction getCommonName({ name, adapter }: { name?: ioBroker.StringOrTranslated; adapter: TelegramMenu }): string {\n const language = adapter.language ?? 'en';\n if (!name) {\n return '';\n }\n if (typeof name === 'string') {\n return name;\n }\n if (language) {\n return name[language] ?? '';\n }\n return '';\n}\n\nfunction removeLastPartOfId(id: string): string {\n const parts = id.split('.');\n parts.pop();\n return parts.join('.');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuB;AAEvB,2BAA8B;AAC9B,oBAA2B;AAC3B,sBAA+B;AAC/B,qBAA4B;AAErB,MAAM,eAAe,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAOqB;AACjB,MAAI,YAAY;AAChB,MAAI;AACA,UAAM,YAAY,SAAS,QAAQ,qBAAO,kBAAkB,EAAE;AAC9D,QAAI,QAA8B,CAAC;AACnC,UAAM,SAAS,MAAM,QAAQ,cAAc;AAC3C,UAAM,iBAAiB,iCAAS,kBAAkB,kBAAkB,SAAS;AAC7E,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA,YAAQ,eAAe,OAAO;AAC9B,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM,IAAI,OAAO,OAAe;AArCzD;AAsCY,YAAM,QAAQ,MAAM,QAAQ,qBAAqB,EAAE;AAEnD,UAAI,UAAU;AAEd,UAAI,KAAK,SAAS,eAAe,GAAG;AAChC,cAAMA,UAAS,MAAM,QAAQ,sBAAsB,EAAE;AACrD,kBAAU,QAAQ,QAAQ,iBAAiB,cAAc,EAAE,MAAMA,WAAA,gBAAAA,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MACpG;AACA,UAAI,KAAK,SAAS,eAAe,GAAG;AAChC,cAAMA,UAAS,MAAM,QAAQ,sBAAsB,mBAAmB,EAAE,CAAC;AACzE,kBAAU,QAAQ,QAAQ,iBAAiB,cAAc,EAAE,MAAMA,WAAA,gBAAAA,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MACpG;AAEA,YAAM,EAAE,WAAW,QAAI,oCAAc,SAAS,UAAS,oCAAO,QAAP,YAAc,EAAE;AAEvE,mBAAa;AACb,uBAAa,0BAAW,OAAO;AAE/B,cAAQ,IAAI,MAAM,kBAAkB,KAAK,UAAU,SAAS,CAAC,EAAE;AAAA,IACnE,CAAC;AACD,YAAQ,IAAI,QAAQ,EACf,KAAK,YAAY;AACd,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,CAAC,EACA,MAAM,OAAK;AACR,sCAAY,iBAAiB,GAAG,OAAO;AAAA,IAC3C,CAAC;AAAA,EACT,SAAS,OAAY;AACjB,oCAAY,sBAAsB,OAAO,OAAO;AAAA,EACpD;AACJ;AAEA,SAAS,cAAc,EAAE,MAAM,QAAQ,GAA0E;AA1EjH;AA2EI,QAAM,YAAW,aAAQ,aAAR,YAAoB;AACrC,MAAI,CAAC,MAAM;AACP,WAAO;AAAA,EACX;AACA,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO;AAAA,EACX;AACA,MAAI,UAAU;AACV,YAAO,UAAK,QAAQ,MAAb,YAAkB;AAAA,EAC7B;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,IAAoB;AAC5C,QAAM,QAAQ,GAAG,MAAM,GAAG;AAC1B,QAAM,IAAI;AACV,SAAO,MAAM,KAAK,GAAG;AACzB;",
|
|
6
|
+
"names": ["result"]
|
|
7
|
+
}
|
package/build/app/setstate.js
CHANGED
|
@@ -31,6 +31,7 @@ var import_string = require("../lib/string");
|
|
|
31
31
|
var import_utils = require("../lib/utils");
|
|
32
32
|
var import_config = require("../config/config");
|
|
33
33
|
var import_setStateIdsToListenTo = require("./setStateIdsToListenTo");
|
|
34
|
+
var import_exchangeValue = require("../lib/exchangeValue");
|
|
34
35
|
const modifiedValue = (valueFromSubmenu, value) => {
|
|
35
36
|
return value.includes(import_config.config.modifiedValue) ? value.replace(import_config.config.modifiedValue, valueFromSubmenu) : valueFromSubmenu;
|
|
36
37
|
};
|
|
@@ -105,14 +106,13 @@ const handleSetState = async (part, userToSend, valueFromSubmenu, telegramParams
|
|
|
105
106
|
});
|
|
106
107
|
} else {
|
|
107
108
|
returnText = returnText.replace(/'/g, '"');
|
|
108
|
-
const
|
|
109
|
-
const { json, isValidJson } = (0, import_string.parseJSON)(
|
|
110
|
-
returnText.slice(returnText.indexOf("{"), returnText.indexOf("}") + 1)
|
|
111
|
-
);
|
|
109
|
+
const { substring } = (0, import_string.decomposeText)(returnText, '{"id":', "}");
|
|
110
|
+
const { json, isValidJson } = (0, import_string.parseJSON)(substring);
|
|
112
111
|
if (!isValidJson) {
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
115
|
-
|
|
114
|
+
const text2 = returnText.replace(substring, json.text);
|
|
115
|
+
const { textToSend } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, text2, valueFromSubmenu);
|
|
116
116
|
await (0, import_telegram.sendToTelegram)({
|
|
117
117
|
userToSend,
|
|
118
118
|
textToSend,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/setstate.ts"],
|
|
4
|
-
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { transformValueToTypeOfId } from '../lib/utilities';\nimport { setDynamicValue } from './dynamicValue';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { decomposeText, isNonEmptyString, jsonString, parseJSON } from '../lib/string';\nimport { isDefined } from '../lib/utils';\nimport { config } from '../config/config';\nimport { addSetStateIds } from './setStateIdsToListenTo';\n\nconst modifiedValue = (valueFromSubmenu: string, value: string): string => {\n return value.includes(config.modifiedValue)\n ? value.replace(config.modifiedValue, valueFromSubmenu)\n : valueFromSubmenu;\n};\n\nconst isDynamicValueToSet = async (value: string | number | boolean): Promise<string | number | boolean> => {\n if (typeof value === 'string' && value.includes(config.dynamicValue.start)) {\n const { substring, substringExcludeSearch: id } = decomposeText(\n value,\n config.dynamicValue.start,\n config.dynamicValue.end,\n );\n\n const newValue = await adapter.getForeignStateAsync(id);\n\n return value.replace(substring, String(newValue?.val));\n }\n return value;\n};\n\nexport const setstateIobroker = async ({\n id,\n value,\n ack,\n}: {\n id: string;\n value: string | number | boolean;\n ack: boolean;\n}): Promise<void> => {\n try {\n const val = await transformValueToTypeOfId(id, value);\n\n adapter.log.debug(`Value to Set: ${jsonString(val)}`);\n if (isDefined(val)) {\n await adapter.setForeignStateAsync(id, val, ack);\n }\n } catch (error: any) {\n errorLogger('Error Setstate', error, adapter);\n }\n};\n\nconst setValue = async (id: string
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAAyC;AACzC,0BAAgC;AAChC,kBAAwB;AACxB,qBAA4B;AAE5B,oBAAuE;AACvE,mBAA0B;AAC1B,oBAAuB;AACvB,mCAA+B;
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { transformValueToTypeOfId } from '../lib/utilities';\nimport { setDynamicValue } from './dynamicValue';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { decomposeText, isNonEmptyString, jsonString, parseJSON } from '../lib/string';\nimport { isDefined } from '../lib/utils';\nimport { config } from '../config/config';\nimport { addSetStateIds } from './setStateIdsToListenTo';\nimport { exchangeValue } from '../lib/exchangeValue';\n\nconst modifiedValue = (valueFromSubmenu: string, value: string): string => {\n return value.includes(config.modifiedValue)\n ? value.replace(config.modifiedValue, valueFromSubmenu)\n : valueFromSubmenu;\n};\n\nconst isDynamicValueToSet = async (value: string | number | boolean): Promise<string | number | boolean> => {\n if (typeof value === 'string' && value.includes(config.dynamicValue.start)) {\n const { substring, substringExcludeSearch: id } = decomposeText(\n value,\n config.dynamicValue.start,\n config.dynamicValue.end,\n );\n\n const newValue = await adapter.getForeignStateAsync(id);\n\n return value.replace(substring, String(newValue?.val));\n }\n return value;\n};\n\nexport const setstateIobroker = async ({\n id,\n value,\n ack,\n}: {\n id: string;\n value: string | number | boolean;\n ack: boolean;\n}): Promise<void> => {\n try {\n const val = await transformValueToTypeOfId(id, value);\n\n adapter.log.debug(`Value to Set: ${jsonString(val)}`);\n if (isDefined(val)) {\n await adapter.setForeignStateAsync(id, val, ack);\n }\n } catch (error: any) {\n errorLogger('Error Setstate', error, adapter);\n }\n};\n\nconst setValue = async (\n id: string,\n value: string,\n valueFromSubmenu: string | number | boolean,\n ack: boolean,\n): Promise<void> => {\n try {\n // If Value is set in Config the value will set to datapoint otherwise the value from submenu, so submenuValuePriority is obsolete\n const valueToSet =\n isDefined(value) && isNonEmptyString(value)\n ? await isDynamicValueToSet(value)\n : modifiedValue(String(valueFromSubmenu), value);\n\n await setstateIobroker({ id, value: valueToSet, ack });\n } catch (error: any) {\n errorLogger('Error setValue', error, adapter);\n }\n};\n\nexport const handleSetState = async (\n part: Part,\n userToSend: string,\n valueFromSubmenu: string | number | boolean,\n telegramParams: TelegramParams,\n): Promise<void> => {\n try {\n if (!part.switch) {\n return;\n }\n for (const { returnText: text, id: ID, parse_mode, confirm, ack, toggle, value } of part.switch) {\n let returnText = text;\n if (returnText.includes(config.setDynamicValue)) {\n const { confirmText, id } = await setDynamicValue(\n returnText,\n ack,\n ID,\n userToSend,\n telegramParams,\n parse_mode,\n confirm,\n );\n\n if (confirm) {\n await addSetStateIds({\n id: id ?? ID,\n confirm,\n returnText: confirmText,\n userToSend,\n });\n }\n }\n\n if (!returnText.includes(\"{'id':'\")) {\n await addSetStateIds({\n id: ID,\n confirm,\n returnText,\n userToSend,\n parse_mode,\n });\n } else {\n returnText = returnText.replace(/'/g, '\"');\n const { substring } = decomposeText(returnText, '{\"id\":', '}');\n const { json, isValidJson } = parseJSON<{ text: string; id: string }>(substring);\n if (!isValidJson) {\n return;\n }\n const text = returnText.replace(substring, json.text);\n const { textToSend } = exchangeValue(adapter, text, valueFromSubmenu);\n\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n\n await addSetStateIds({\n id: json.id,\n confirm: true,\n returnText: json.text,\n userToSend: userToSend,\n });\n }\n if (toggle) {\n const state = await adapter.getForeignStateAsync(ID);\n\n state\n ? await setstateIobroker({ id: ID, value: !state.val, ack })\n : await setstateIobroker({ id: ID, value: false, ack });\n } else {\n await setValue(ID, value, valueFromSubmenu, ack);\n }\n }\n } catch (error: any) {\n errorLogger('Error Switch', error, adapter);\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["text"]
|
|
7
7
|
}
|
package/build/app/subMenu.js
CHANGED
|
@@ -66,26 +66,12 @@ const createSubmenuPercent = (obj) => {
|
|
|
66
66
|
}
|
|
67
67
|
return { text: obj.text, keyboard, device: menuToHandle };
|
|
68
68
|
};
|
|
69
|
-
const
|
|
70
|
-
let val;
|
|
71
|
-
|
|
72
|
-
if (splittedData[1].split(".")[1] == "false") {
|
|
69
|
+
const setMenuValue = async ({ telegramParams, userToSend, part, menuNumber }) => {
|
|
70
|
+
let val = splittedData[menuNumber].split(".")[1];
|
|
71
|
+
if (val === "false") {
|
|
73
72
|
val = false;
|
|
74
|
-
} else if (
|
|
73
|
+
} else if (val === "true") {
|
|
75
74
|
val = true;
|
|
76
|
-
} else {
|
|
77
|
-
val = splittedData[1].split(".")[1];
|
|
78
|
-
}
|
|
79
|
-
await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
|
|
80
|
-
};
|
|
81
|
-
const setSecondMenuValue = async ({ telegramParams, part, userToSend }) => {
|
|
82
|
-
let val;
|
|
83
|
-
if (splittedData[2].split(".")[1] == "false") {
|
|
84
|
-
val = false;
|
|
85
|
-
} else if (splittedData[2].split(".")[1] == "true") {
|
|
86
|
-
val = true;
|
|
87
|
-
} else {
|
|
88
|
-
val = splittedData[2].split(".")[1];
|
|
89
75
|
}
|
|
90
76
|
await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
|
|
91
77
|
};
|
|
@@ -234,14 +220,15 @@ async function subMenu({
|
|
|
234
220
|
return createSwitchMenu({ cbData, text, menuToHandle });
|
|
235
221
|
}
|
|
236
222
|
if ((0, import_validateMenus.isFirstMenuValue)(cbData)) {
|
|
237
|
-
await
|
|
223
|
+
await setMenuValue({
|
|
238
224
|
part,
|
|
239
225
|
userToSend,
|
|
240
|
-
telegramParams
|
|
226
|
+
telegramParams,
|
|
227
|
+
menuNumber: 1
|
|
241
228
|
});
|
|
242
229
|
}
|
|
243
230
|
if ((0, import_validateMenus.isSecondMenuValue)(cbData)) {
|
|
244
|
-
await
|
|
231
|
+
await setMenuValue({ part, userToSend, telegramParams, menuNumber: 2 });
|
|
245
232
|
}
|
|
246
233
|
if ((0, import_validateMenus.isCreateDynamicSwitch)(cbData) && menuToHandle) {
|
|
247
234
|
return (0, import_dynamicSwitchMenu.createDynamicSwitchMenu)(menuString, menuToHandle, text);
|