iobroker.telegram-menu 3.0.3 → 3.0.4
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/build/app/setstate.js +9 -10
- package/build/app/setstate.js.map +3 -3
- package/build/app/subMenu.js +1 -1
- package/build/app/subMenu.js.map +2 -2
- package/build/app/validateMenus.js +4 -1
- package/build/app/validateMenus.js.map +2 -2
- package/io-package.json +14 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,10 @@ 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
|
+
### 3.0.4 (2025-08-22)
|
|
39
|
+
|
|
40
|
+
- FIX: Submenu percent
|
|
41
|
+
|
|
38
42
|
### 3.0.3 (2025-08-17)
|
|
39
43
|
|
|
40
44
|
- FIX: #374 Cannot check menu checkbox
|
package/build/app/setstate.js
CHANGED
|
@@ -112,19 +112,11 @@ const handleSetState = async (part, userToSend, valueFromSubmenu, telegramParams
|
|
|
112
112
|
if (!isValidJson) {
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
-
const text2 = returnText.replace(substring, json.text);
|
|
116
|
-
let value2 = null;
|
|
117
115
|
if (json.id) {
|
|
118
116
|
const state = await import_main.adapter.getForeignStateAsync(json.id);
|
|
119
|
-
|
|
117
|
+
const val = state ? String(state == null ? void 0 : state.val) : "";
|
|
118
|
+
returnText = returnText.replace(substring, `${json.text} ${val}`);
|
|
120
119
|
}
|
|
121
|
-
const { textToSend } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, text2, valueFromSubmenu != null ? valueFromSubmenu : value2);
|
|
122
|
-
await (0, import_telegram.sendToTelegram)({
|
|
123
|
-
userToSend,
|
|
124
|
-
textToSend,
|
|
125
|
-
telegramParams,
|
|
126
|
-
parse_mode
|
|
127
|
-
});
|
|
128
120
|
await (0, import_setStateIdsToListenTo.addSetStateIds)({
|
|
129
121
|
id: json.id,
|
|
130
122
|
confirm: true,
|
|
@@ -132,6 +124,13 @@ const handleSetState = async (part, userToSend, valueFromSubmenu, telegramParams
|
|
|
132
124
|
userToSend
|
|
133
125
|
});
|
|
134
126
|
}
|
|
127
|
+
const { textToSend } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, returnText, valueFromSubmenu != null ? valueFromSubmenu : value);
|
|
128
|
+
await (0, import_telegram.sendToTelegram)({
|
|
129
|
+
userToSend,
|
|
130
|
+
textToSend,
|
|
131
|
+
telegramParams,
|
|
132
|
+
parse_mode
|
|
133
|
+
});
|
|
135
134
|
if (toggle) {
|
|
136
135
|
const state = await import_main.adapter.getForeignStateAsync(ID);
|
|
137
136
|
state ? await setstateIobroker({ id: ID, value: !state.val, ack }) : await setstateIobroker({ id: ID, value: false, ack });
|
|
@@ -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';\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: null | string | number | boolean,\n ack: boolean,\n): Promise<void> => {\n try {\n
|
|
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;AAC/B,2BAA8B;AAE9B,MAAM,gBAAgB,CAAC,kBAA0B,UAA0B;AACvE,SAAO,MAAM,SAAS,qBAAO,aAAa,IACpC,MAAM,QAAQ,qBAAO,eAAe,gBAAgB,IACpD;AACV;AAEA,MAAM,sBAAsB,OAAO,UAAyE;AACxG,MAAI,OAAO,UAAU,YAAY,MAAM,SAAS,qBAAO,aAAa,KAAK,GAAG;AACxE,UAAM,EAAE,WAAW,wBAAwB,GAAG,QAAI;AAAA,MAC9C;AAAA,MACA,qBAAO,aAAa;AAAA,MACpB,qBAAO,aAAa;AAAA,IACxB;AAEA,UAAM,WAAW,MAAM,oBAAQ,qBAAqB,EAAE;AAEtD,WAAO,MAAM,QAAQ,WAAW,OAAO,qCAAU,GAAG,CAAC;AAAA,EACzD;AACA,SAAO;AACX;AAEO,MAAM,mBAAmB,OAAO;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACJ,MAIqB;AACjB,MAAI;AACA,UAAM,MAAM,UAAM,2CAAyB,IAAI,KAAK;AAEpD,wBAAQ,IAAI,MAAM,qBAAiB,0BAAW,GAAG,CAAC,EAAE;AACpD,YAAI,wBAAU,GAAG,GAAG;AAChB,YAAM,oBAAQ,qBAAqB,IAAI,KAAK,GAAG;AAAA,IACnD;AAAA,EACJ,SAAS,OAAY;AACjB,oCAAY,kBAAkB,OAAO,mBAAO;AAAA,EAChD;AACJ;AAEA,MAAM,WAAW,OACb,IACA,OACA,kBACA,QACgB;AAChB,MAAI;
|
|
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: null | string | number | boolean,\n ack: boolean,\n): Promise<void> => {\n try {\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: null | 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 return;\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\n if (json.id) {\n const state = await adapter.getForeignStateAsync(json.id);\n const val = state ? String(state?.val) : '';\n returnText = returnText.replace(substring, `${json.text} ${val}`);\n }\n\n await addSetStateIds({\n id: json.id,\n confirm: true,\n returnText: json.text,\n userToSend: userToSend,\n });\n }\n const { textToSend } = exchangeValue(adapter, returnText, valueFromSubmenu ?? value);\n\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\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": []
|
|
7
7
|
}
|
package/build/app/subMenu.js
CHANGED
|
@@ -253,7 +253,7 @@ async function subMenu({
|
|
|
253
253
|
if ((0, import_validateMenus.isCreateSubmenuNumber)(menuString, cbData) && menuToHandle) {
|
|
254
254
|
return createSubmenuNumber({ cbData, text, menuToHandle });
|
|
255
255
|
}
|
|
256
|
-
if ((0, import_validateMenus.isSetSubmenuNumber)(menuString
|
|
256
|
+
if ((0, import_validateMenus.isSetSubmenuNumber)(menuString)) {
|
|
257
257
|
const { value } = (0, import_splitValues.getSubmenuNumberValues)(menuString);
|
|
258
258
|
await (0, import_setstate.handleSetState)(part, userToSend, value, telegramParams);
|
|
259
259
|
}
|
package/build/app/subMenu.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/subMenu.ts"],
|
|
4
|
-
"sourcesContent": ["import { switchBack } from './backMenu';\nimport { handleSetState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { returnTextModifier } from '../lib/utilities';\nimport { deleteMessageIds } from './messageIds';\nimport { createDynamicSwitchMenu } from './dynamicSwitchMenu';\nimport type {\n AllMenusWithData,\n BackMenuType,\n CallSubMenu,\n CreateMenu,\n Keyboard,\n KeyboardItems,\n Part,\n SetMenuValue,\n SplittedData,\n TelegramParams,\n} from '../types/types';\nimport { isNonEmptyString, jsonString } from '../lib/string';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport { getMenuValues, getSubmenuNumberValues } from '../lib/splitValues';\nimport {\n isCreateDynamicSwitch,\n isCreateSubmenuNumber,\n isCreateSubmenuPercent,\n isCreateSwitch,\n isDeleteMenu,\n isFirstMenuValue,\n isMenuBack,\n isSecondMenuValue,\n isSetDynamicSwitchVal,\n isSetSubmenuNumber,\n isSetSubmenuPercent,\n} from './validateMenus';\n\nlet step = 0;\nlet splittedData: SplittedData = [];\n\nconst createSubmenuPercent = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n const { cbData, menuToHandle } = obj;\n\n step = parseFloat(cbData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${menuToHandle}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${menuToHandle}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: menuToHandle };\n};\n\nconst setMenuValue = async ({ telegramParams, userToSend, part, menuNumber }: SetMenuValue): Promise<void> => {\n if (!splittedData[menuNumber]) {\n return;\n }\n let val: string | boolean | undefined = splittedData[menuNumber].split('.')?.[1];\n\n if (val === undefined) {\n return;\n }\n\n if (val === 'false') {\n val = false;\n } else if (val === 'true') {\n val = true;\n }\n await handleSetState(part, userToSend, val, telegramParams);\n};\n\nconst createSubmenuNumber = ({\n cbData,\n menuToHandle,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; menuToHandle: string } => {\n if (cbData.includes('(-)')) {\n cbData = cbData.replace('(-)', 'negativ');\n }\n const splittedData = cbData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${cbData}:${menuToHandle}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n adapter.log.debug(`Keyboard : ${jsonString(keyboard)}`);\n\n return { text, keyboard, menuToHandle };\n};\n\nconst createSwitchMenu = ({\n menuToHandle,\n cbData,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = cbData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${menuToHandle}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${menuToHandle}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: menuToHandle };\n};\n\nconst back = async ({ telegramParams, userToSend, allMenusWithData, menus }: BackMenuType): Promise<void> => {\n const result = await switchBack(userToSend, allMenusWithData, menus);\n if (result) {\n const { keyboard, parse_mode, textToSend = '' } = result;\n await sendToTelegram({ userToSend, textToSend, keyboard, parse_mode: parse_mode, telegramParams });\n }\n};\n\nexport async function callSubMenu({\n jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: CallSubMenu): Promise<{ newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n menuString: jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n });\n adapter.log.debug(`Submenu : ${jsonString(obj)}`);\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);\n }\n return { newNav: obj?.navToGoBack };\n } catch (e: any) {\n errorLogger('Error callSubMenu:', e, adapter);\n }\n}\n\nexport async function subMenu({\n menuString,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: {\n menuString: string;\n userToSend: string;\n telegramParams: TelegramParams;\n part: Part;\n allMenusWithData: AllMenusWithData;\n menus: string[];\n}): Promise<{ text?: string; keyboard?: Keyboard; device?: string; navToGoBack?: string } | undefined> {\n try {\n adapter.log.debug(`Menu : ${menuString}`);\n\n const text = await returnTextModifier(part.text);\n\n if (isDeleteMenu(menuString)) {\n await deleteMessageIds(userToSend, telegramParams, 'all');\n const menu: string | undefined = menuString.split(':')?.[2]?.split('\"')?.[0]; //[[\"menu:deleteAll:\u00DCbersicht\"],[\"\"]]\n if (menu && isNonEmptyString(menu)) {\n return { navToGoBack: menu };\n }\n }\n\n const { cbData, menuToHandle, val } = getMenuValues(menuString);\n if (isCreateSwitch(cbData) && menuToHandle) {\n return createSwitchMenu({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isFirstMenuValue(cbData)) {\n await setMenuValue({\n part,\n userToSend,\n telegramParams,\n menuNumber: 1,\n });\n }\n\n if (isSecondMenuValue(cbData)) {\n await setMenuValue({ part, userToSend, telegramParams, menuNumber: 2 });\n }\n\n if (isCreateDynamicSwitch(cbData) && menuToHandle) {\n return createDynamicSwitchMenu(menuString, menuToHandle, text);\n }\n\n if (isSetDynamicSwitchVal(cbData) && val) {\n await handleSetState(part, userToSend, val, telegramParams); //SetDynamicValue\n }\n\n if (isCreateSubmenuPercent(menuString, cbData) && menuToHandle) {\n return createSubmenuPercent({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuPercent(menuString, step)) {\n const value = parseInt(menuString.split(':')[1].split(',')[1]);\n await handleSetState(part, userToSend, value, telegramParams);\n }\n\n if (isCreateSubmenuNumber(menuString, cbData) && menuToHandle) {\n return createSubmenuNumber({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuNumber(menuString
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { switchBack } from './backMenu';\nimport { handleSetState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { returnTextModifier } from '../lib/utilities';\nimport { deleteMessageIds } from './messageIds';\nimport { createDynamicSwitchMenu } from './dynamicSwitchMenu';\nimport type {\n AllMenusWithData,\n BackMenuType,\n CallSubMenu,\n CreateMenu,\n Keyboard,\n KeyboardItems,\n Part,\n SetMenuValue,\n SplittedData,\n TelegramParams,\n} from '../types/types';\nimport { isNonEmptyString, jsonString } from '../lib/string';\nimport { adapter } from '../main';\nimport { errorLogger } from './logging';\nimport { getMenuValues, getSubmenuNumberValues } from '../lib/splitValues';\nimport {\n isCreateDynamicSwitch,\n isCreateSubmenuNumber,\n isCreateSubmenuPercent,\n isCreateSwitch,\n isDeleteMenu,\n isFirstMenuValue,\n isMenuBack,\n isSecondMenuValue,\n isSetDynamicSwitchVal,\n isSetSubmenuNumber,\n isSetSubmenuPercent,\n} from './validateMenus';\n\nlet step = 0;\nlet splittedData: SplittedData = [];\n\nconst createSubmenuPercent = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n const { cbData, menuToHandle } = obj;\n\n step = parseFloat(cbData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${menuToHandle}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${menuToHandle}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: menuToHandle };\n};\n\nconst setMenuValue = async ({ telegramParams, userToSend, part, menuNumber }: SetMenuValue): Promise<void> => {\n if (!splittedData[menuNumber]) {\n return;\n }\n let val: string | boolean | undefined = splittedData[menuNumber].split('.')?.[1];\n\n if (val === undefined) {\n return;\n }\n\n if (val === 'false') {\n val = false;\n } else if (val === 'true') {\n val = true;\n }\n await handleSetState(part, userToSend, val, telegramParams);\n};\n\nconst createSubmenuNumber = ({\n cbData,\n menuToHandle,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; menuToHandle: string } => {\n if (cbData.includes('(-)')) {\n cbData = cbData.replace('(-)', 'negativ');\n }\n const splittedData = cbData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${cbData}:${menuToHandle}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n adapter.log.debug(`Keyboard : ${jsonString(keyboard)}`);\n\n return { text, keyboard, menuToHandle };\n};\n\nconst createSwitchMenu = ({\n menuToHandle,\n cbData,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = cbData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${menuToHandle}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${menuToHandle}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: menuToHandle };\n};\n\nconst back = async ({ telegramParams, userToSend, allMenusWithData, menus }: BackMenuType): Promise<void> => {\n const result = await switchBack(userToSend, allMenusWithData, menus);\n if (result) {\n const { keyboard, parse_mode, textToSend = '' } = result;\n await sendToTelegram({ userToSend, textToSend, keyboard, parse_mode: parse_mode, telegramParams });\n }\n};\n\nexport async function callSubMenu({\n jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: CallSubMenu): Promise<{ newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n menuString: jsonStringNav,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n });\n adapter.log.debug(`Submenu : ${jsonString(obj)}`);\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);\n }\n return { newNav: obj?.navToGoBack };\n } catch (e: any) {\n errorLogger('Error callSubMenu:', e, adapter);\n }\n}\n\nexport async function subMenu({\n menuString,\n userToSend,\n telegramParams,\n part,\n allMenusWithData,\n menus,\n}: {\n menuString: string;\n userToSend: string;\n telegramParams: TelegramParams;\n part: Part;\n allMenusWithData: AllMenusWithData;\n menus: string[];\n}): Promise<{ text?: string; keyboard?: Keyboard; device?: string; navToGoBack?: string } | undefined> {\n try {\n adapter.log.debug(`Menu : ${menuString}`);\n\n const text = await returnTextModifier(part.text);\n\n if (isDeleteMenu(menuString)) {\n await deleteMessageIds(userToSend, telegramParams, 'all');\n const menu: string | undefined = menuString.split(':')?.[2]?.split('\"')?.[0]; //[[\"menu:deleteAll:\u00DCbersicht\"],[\"\"]]\n if (menu && isNonEmptyString(menu)) {\n return { navToGoBack: menu };\n }\n }\n\n const { cbData, menuToHandle, val } = getMenuValues(menuString);\n if (isCreateSwitch(cbData) && menuToHandle) {\n return createSwitchMenu({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isFirstMenuValue(cbData)) {\n await setMenuValue({\n part,\n userToSend,\n telegramParams,\n menuNumber: 1,\n });\n }\n\n if (isSecondMenuValue(cbData)) {\n await setMenuValue({ part, userToSend, telegramParams, menuNumber: 2 });\n }\n\n if (isCreateDynamicSwitch(cbData) && menuToHandle) {\n return createDynamicSwitchMenu(menuString, menuToHandle, text);\n }\n\n if (isSetDynamicSwitchVal(cbData) && val) {\n await handleSetState(part, userToSend, val, telegramParams); //SetDynamicValue\n }\n\n if (isCreateSubmenuPercent(menuString, cbData) && menuToHandle) {\n return createSubmenuPercent({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuPercent(menuString, step)) {\n const value = parseInt(menuString.split(':')[1].split(',')[1]);\n await handleSetState(part, userToSend, value, telegramParams);\n }\n\n if (isCreateSubmenuNumber(menuString, cbData) && menuToHandle) {\n return createSubmenuNumber({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuNumber(menuString)) {\n const { value } = getSubmenuNumberValues(menuString);\n await handleSetState(part, userToSend, value, telegramParams);\n }\n\n if (isMenuBack(menuString)) {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n telegramParams,\n });\n }\n } catch (error: any) {\n errorLogger('Error subMenu:', error, adapter);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["splittedData", "step"]
|
|
7
7
|
}
|
|
@@ -42,7 +42,10 @@ const isSetDynamicSwitchVal = (str) => str.includes("dynS");
|
|
|
42
42
|
const isSubmenuOrMenu = (val) => val.startsWith("menu") || val.startsWith("submenu");
|
|
43
43
|
const isCreateSubmenuPercent = (menuString, cbData) => !menuString.includes("submenu") && cbData.includes("percent");
|
|
44
44
|
const isSetSubmenuPercent = (menuString, step) => menuString.includes(`submenu:percent${step}`);
|
|
45
|
-
const isSetSubmenuNumber = (menuString
|
|
45
|
+
const isSetSubmenuNumber = (menuString) => (
|
|
46
|
+
// menuString.includes(`submenu:${cbData}`);
|
|
47
|
+
menuString.includes(`submenu:number`)
|
|
48
|
+
);
|
|
46
49
|
function isCreateSubmenuNumber(menuString, callbackData) {
|
|
47
50
|
return !menuString.includes("submenu") && callbackData.includes("number");
|
|
48
51
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/validateMenus.ts"],
|
|
4
|
-
"sourcesContent": ["export const isMenuBack = (str: string): boolean => str.includes('menu:back');\nexport const isDeleteMenu = (str: string): boolean => str.includes('delete');\nexport const isCreateSwitch = (str: string): boolean => str.includes('switch');\nexport const isFirstMenuValue = (str: string): boolean => str.includes('first');\nexport const isSecondMenuValue = (str: string): boolean => str.includes('second');\nexport const isCreateDynamicSwitch = (str: string): boolean => str.includes('dynSwitch');\nexport const isSetDynamicSwitchVal = (str: string): boolean => str.includes('dynS');\nexport const isSubmenuOrMenu = (val: string): boolean => val.startsWith('menu') || val.startsWith('submenu');\nexport const isCreateSubmenuPercent = (menuString: string, cbData: string): boolean =>\n !menuString.includes('submenu') && cbData.includes('percent');\n\nexport const isSetSubmenuPercent = (menuString: string, step: number): boolean =>\n menuString.includes(`submenu:percent${step}`);\n\nexport const isSetSubmenuNumber = (menuString: string
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,aAAa,CAAC,QAAyB,IAAI,SAAS,WAAW;AACrE,MAAM,eAAe,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACpE,MAAM,iBAAiB,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACtE,MAAM,mBAAmB,CAAC,QAAyB,IAAI,SAAS,OAAO;AACvE,MAAM,oBAAoB,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACzE,MAAM,wBAAwB,CAAC,QAAyB,IAAI,SAAS,WAAW;AAChF,MAAM,wBAAwB,CAAC,QAAyB,IAAI,SAAS,MAAM;AAC3E,MAAM,kBAAkB,CAAC,QAAyB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,SAAS;AACpG,MAAM,yBAAyB,CAAC,YAAoB,WACvD,CAAC,WAAW,SAAS,SAAS,KAAK,OAAO,SAAS,SAAS;AAEzD,MAAM,sBAAsB,CAAC,YAAoB,SACpD,WAAW,SAAS,kBAAkB,IAAI,EAAE;AAEzC,MAAM,qBAAqB,CAAC,
|
|
4
|
+
"sourcesContent": ["export const isMenuBack = (str: string): boolean => str.includes('menu:back');\nexport const isDeleteMenu = (str: string): boolean => str.includes('delete');\nexport const isCreateSwitch = (str: string): boolean => str.includes('switch');\nexport const isFirstMenuValue = (str: string): boolean => str.includes('first');\nexport const isSecondMenuValue = (str: string): boolean => str.includes('second');\nexport const isCreateDynamicSwitch = (str: string): boolean => str.includes('dynSwitch');\nexport const isSetDynamicSwitchVal = (str: string): boolean => str.includes('dynS');\nexport const isSubmenuOrMenu = (val: string): boolean => val.startsWith('menu') || val.startsWith('submenu');\nexport const isCreateSubmenuPercent = (menuString: string, cbData: string): boolean =>\n !menuString.includes('submenu') && cbData.includes('percent');\n\nexport const isSetSubmenuPercent = (menuString: string, step: number): boolean =>\n menuString.includes(`submenu:percent${step}`);\n\nexport const isSetSubmenuNumber = (menuString: string): boolean =>\n // menuString.includes(`submenu:${cbData}`);\n menuString.includes(`submenu:number`);\n\nexport function isCreateSubmenuNumber(menuString: string, callbackData: string): boolean {\n return !menuString.includes('submenu') && callbackData.includes('number');\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,aAAa,CAAC,QAAyB,IAAI,SAAS,WAAW;AACrE,MAAM,eAAe,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACpE,MAAM,iBAAiB,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACtE,MAAM,mBAAmB,CAAC,QAAyB,IAAI,SAAS,OAAO;AACvE,MAAM,oBAAoB,CAAC,QAAyB,IAAI,SAAS,QAAQ;AACzE,MAAM,wBAAwB,CAAC,QAAyB,IAAI,SAAS,WAAW;AAChF,MAAM,wBAAwB,CAAC,QAAyB,IAAI,SAAS,MAAM;AAC3E,MAAM,kBAAkB,CAAC,QAAyB,IAAI,WAAW,MAAM,KAAK,IAAI,WAAW,SAAS;AACpG,MAAM,yBAAyB,CAAC,YAAoB,WACvD,CAAC,WAAW,SAAS,SAAS,KAAK,OAAO,SAAS,SAAS;AAEzD,MAAM,sBAAsB,CAAC,YAAoB,SACpD,WAAW,SAAS,kBAAkB,IAAI,EAAE;AAEzC,MAAM,qBAAqB,CAAC;AAAA;AAAA,EAE/B,WAAW,SAAS,gBAAgB;AAAA;AAEjC,SAAS,sBAAsB,YAAoB,cAA+B;AACrF,SAAO,CAAC,WAAW,SAAS,SAAS,KAAK,aAAa,SAAS,QAAQ;AAC5E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "telegram-menu",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.4",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.4": {
|
|
7
|
+
"en": "FIX: Submenu percent",
|
|
8
|
+
"de": "FIX: Submenu Prozent",
|
|
9
|
+
"ru": "FIX: Подменю%",
|
|
10
|
+
"pt": "FIX: Submenu por cento",
|
|
11
|
+
"nl": "FIX: Submenupercentage",
|
|
12
|
+
"fr": "FIXE: Pourcentage du sous-menu",
|
|
13
|
+
"it": "FIX: Sottomenu per cento",
|
|
14
|
+
"es": "FIX: Submenú por ciento",
|
|
15
|
+
"pl": "FIX: Podmenu procent",
|
|
16
|
+
"uk": "FIX: Відсоток субмену",
|
|
17
|
+
"zh-cn": "FIX: 子菜单百分比"
|
|
18
|
+
},
|
|
6
19
|
"3.0.3": {
|
|
7
20
|
"en": "FIX: #374 Cannot check menu checkbox\nFIX: Errors reported by sentry",
|
|
8
21
|
"de": "FIX: #374 Kann das Menü nicht überprüfen\nFIX: Fehler, die von sentry gemeldet werden",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "FIX: # 342 Wynik nie w prawidłowej kolejności\nFIX: # 341 Zmiana stanu ustawienia Wartość\nFIX: # 338 Wartość wymiany nie działa w nowej linii",
|
|
81
94
|
"uk": "FIX: #342 Результат не в правильному порядку\nFIX: #341 Зміна Setstate Ціна\nFIX: #338 Вартість обміну не працює в новому режимі",
|
|
82
95
|
"zh-cn": "FIX: #342 (英语). 结果不正确\nFIX: # 341 状态变化 数值\nFIX: 第338号 交换值在新行中无效"
|
|
83
|
-
},
|
|
84
|
-
"2.4.3": {
|
|
85
|
-
"en": "FIX: #332 Copy dropdown\nFIX: SetDynamicValue \nFIX: Change value in getStatus",
|
|
86
|
-
"de": "FIX: #332 Dropdown kopieren\nFIX: SetDynamicValue\nFIX: Wert ändern in getStatus",
|
|
87
|
-
"ru": "FIX: #332 Copy dropdown\nОригинальное название: SetDynamicValue\nFIX: Изменение стоимости GetStatus",
|
|
88
|
-
"pt": "FIX: #332 Descarte de cópia\nFIX: SetDynamicValue\nFIX: Valor de mudança no getStatus",
|
|
89
|
-
"nl": "FIX: #332 Kopiëren dropdown\nFIX: SetDynamicValue\nFIX: Wijzig waarde in getStatus",
|
|
90
|
-
"fr": "FIXE: #332 Copier la liste déroulante\nFIX: SetDynamicValue\nFIX: Modifier la valeur de getStatus",
|
|
91
|
-
"it": "FIX: #332 Copia a discesa\nFIX: SetDynamicValue\nFIX: Cambia valore in getStatus",
|
|
92
|
-
"es": "FIX: #332 Copia desplegable\nFIX: SetDynamicValue\nFIX: Cambiar el valor en getStatus",
|
|
93
|
-
"pl": "FIX: # 332 Kopiuj zrzut\nFIX: SetDynamicValue\nFIX: Zmień wartość w getStatus",
|
|
94
|
-
"uk": "FIX: #332 Копіювати спад\nFIX: SetDynamicValue\nFIX: Зміна значення в getStatus",
|
|
95
|
-
"zh-cn": "FIX: #332 复制下拉\nFIX: 设置动态变量\nFIX: 获取状态中更改值"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|