iobroker.telegram-menu 2.3.0 → 2.3.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 +6 -0
- package/build/app/backMenu.js +1 -1
- package/build/app/backMenu.js.map +2 -2
- package/build/app/dynamicSwitchMenu.js +1 -1
- package/build/app/dynamicSwitchMenu.js.map +2 -2
- package/build/app/getstate.js +4 -3
- package/build/app/getstate.js.map +2 -2
- package/build/app/httpRequest.js +2 -2
- package/build/app/httpRequest.js.map +2 -2
- package/build/app/jsonTable.js +3 -3
- package/build/app/jsonTable.js.map +2 -2
- package/build/app/messageIds.js +7 -1
- package/build/app/messageIds.js.map +2 -2
- package/build/app/processData.js +7 -7
- package/build/app/processData.js.map +2 -2
- package/build/app/sendNav.js +1 -1
- package/build/app/sendNav.js.map +2 -2
- package/build/app/sendpic.js +4 -5
- package/build/app/sendpic.js.map +2 -2
- package/build/app/setstate.js +4 -4
- package/build/app/setstate.js.map +2 -2
- package/build/app/shoppingList.js +3 -3
- package/build/app/shoppingList.js.map +2 -2
- package/build/app/subMenu.js +15 -13
- package/build/app/subMenu.js.map +2 -2
- package/build/app/telegram.js +14 -9
- package/build/app/telegram.js.map +2 -2
- package/build/lib/appUtils.js +4 -5
- package/build/lib/appUtils.js.map +2 -2
- package/build/lib/utilities.js +9 -9
- package/build/lib/utilities.js.map +2 -2
- package/build/main.js +1 -3
- package/build/main.js.map +2 -2
- package/build/src/lib/appUtils.js +3 -3
- package/build/src/lib/appUtils.js.map +1 -1
- package/build/src/lib/utilities.js +1 -1
- package/build/src/lib/utilities.js.map +1 -1
- package/build/test/test/appUtils.test.js +12 -0
- package/build/test/test/appUtils.test.js.map +1 -1
- package/build/test/test/object.test.js +12 -0
- package/build/test/test/object.test.js.map +1 -1
- package/build/test/test/string.test.js +30 -6
- package/build/test/test/string.test.js.map +1 -1
- package/build/test/test/time.test.js +183 -198
- package/build/test/test/time.test.js.map +1 -1
- package/io-package.json +14 -14
- package/package.json +1 -1
|
@@ -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, 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 (
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAAyC;AACzC,0BAAgC;AAChC,kBAAwB;AACxB,qBAA4B;AAE5B,
|
|
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, value: string, valueFromSubmenu: string | number, ack: boolean): 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,\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 textToSend = returnText.slice(0, returnText.indexOf('{')).trim();\n const { json, isValidJson } = parseJSON<{ text: string; id: string }>(\n returnText.slice(returnText.indexOf('{'), returnText.indexOf('}') + 1),\n );\n if (!isValidJson) {\n return;\n }\n\n json.text = json.text + returnText.slice(returnText.indexOf('}') + 1);\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": ";;;;;;;;;;;;;;;;;;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;AAE/B,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,OAAO,IAAY,OAAe,kBAAmC,QAAgC;AAClH,MAAI;AAEA,UAAM,iBACF,wBAAU,KAAK,SAAK,gCAAiB,KAAK,IACpC,MAAM,oBAAoB,KAAK,IAC/B,cAAc,OAAO,gBAAgB,GAAG,KAAK;AAEvD,UAAM,iBAAiB,EAAE,IAAI,OAAO,YAAY,IAAI,CAAC;AAAA,EACzD,SAAS,OAAY;AACjB,oCAAY,kBAAkB,OAAO,mBAAO;AAAA,EAChD;AACJ;AAEO,MAAM,iBAAiB,OAC1B,MACA,YACA,kBACA,mBACgB;AAChB,MAAI;AACA,QAAI,CAAC,KAAK,QAAQ;AACd;AAAA,IACJ;AACA,eAAW,EAAE,YAAY,MAAM,IAAI,IAAI,YAAY,SAAS,KAAK,QAAQ,MAAM,KAAK,KAAK,QAAQ;AAC7F,UAAI,aAAa;AACjB,UAAI,WAAW,SAAS,qBAAO,eAAe,GAAG;AAC7C,cAAM,EAAE,aAAa,GAAG,IAAI,UAAM;AAAA,UAC9B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,YAAI,SAAS;AACT,oBAAM,6CAAe;AAAA,YACjB,IAAI,kBAAM;AAAA,YACV;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,UAAI,CAAC,WAAW,SAAS,SAAS,GAAG;AACjC,kBAAM,6CAAe;AAAA,UACjB,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AACH,qBAAa,WAAW,QAAQ,MAAM,GAAG;AACzC,cAAM,aAAa,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,CAAC,EAAE,KAAK;AACrE,cAAM,EAAE,MAAM,YAAY,QAAI;AAAA,UAC1B,WAAW,MAAM,WAAW,QAAQ,GAAG,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAAA,QACzE;AACA,YAAI,CAAC,aAAa;AACd;AAAA,QACJ;AAEA,aAAK,OAAO,KAAK,OAAO,WAAW,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC;AAEpE,kBAAM,gCAAe;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AAED,kBAAM,6CAAe;AAAA,UACjB,IAAI,KAAK;AAAA,UACT,SAAS;AAAA,UACT,YAAY,KAAK;AAAA,UACjB;AAAA,QACJ,CAAC;AAAA,MACL;AACA,UAAI,QAAQ;AACR,cAAM,QAAQ,MAAM,oBAAQ,qBAAqB,EAAE;AAEnD,gBACM,MAAM,iBAAiB,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,IACzD,MAAM,iBAAiB,EAAE,IAAI,IAAI,OAAO,OAAO,IAAI,CAAC;AAAA,MAC9D,OAAO;AACH,cAAM,SAAS,IAAI,OAAO,kBAAkB,GAAG;AAAA,MACnD;AAAA,IACJ;AAAA,EACJ,SAAS,OAAY;AACjB,oCAAY,gBAAgB,OAAO,mBAAO;AAAA,EAC9C;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -46,7 +46,7 @@ async function shoppingListSubscribeStateAndDeleteItem(val, telegramParams) {
|
|
|
46
46
|
res = await import_main.adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);
|
|
47
47
|
if (res) {
|
|
48
48
|
objData[user] = { idList };
|
|
49
|
-
import_main.adapter.log.debug(`Alexa-shoppinglist: ${idList}`);
|
|
49
|
+
import_main.adapter.log.debug(`Alexa-shoppinglist : ${idList}`);
|
|
50
50
|
if (!isSubscribed) {
|
|
51
51
|
await (0, import_subscribeStates._subscribeForeignStates)(`alexa-shoppinglist.${idList}`);
|
|
52
52
|
isSubscribed = true;
|
|
@@ -78,7 +78,7 @@ async function deleteMessageAndSendNewShoppingList(telegramParams, userToSend) {
|
|
|
78
78
|
await (0, import_messageIds.deleteMessageIds)(user, telegramParams, "last");
|
|
79
79
|
const result = await import_main.adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);
|
|
80
80
|
if (result == null ? void 0 : result.val) {
|
|
81
|
-
import_main.adapter.log.debug(`Result from Shoppinglist: ${(0, import_string.jsonString)(result)}`);
|
|
81
|
+
import_main.adapter.log.debug(`Result from Shoppinglist : ${(0, import_string.jsonString)(result)}`);
|
|
82
82
|
const newId = `alexa-shoppinglist.${idList}`;
|
|
83
83
|
const resultJson = (0, import_jsonTable.createKeyboardFromJson)((0, import_json.toJson)(result.val), null, newId, user);
|
|
84
84
|
if ((resultJson == null ? void 0 : resultJson.text) && (resultJson == null ? void 0 : resultJson.keyboard)) {
|
|
@@ -86,7 +86,7 @@ async function deleteMessageAndSendNewShoppingList(telegramParams, userToSend) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
} catch (e) {
|
|
89
|
-
(0, import_logging.errorLogger)("Error deleteMessageAndSendNewShoppingList
|
|
89
|
+
(0, import_logging.errorLogger)("Error deleteMessageAndSendNewShoppingList", e, import_main.adapter);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/shoppingList.ts"],
|
|
4
|
-
"sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram.js';\nimport { _subscribeForeignStates } from './subscribeStates.js';\nimport { errorLogger } from './logging.js';\nimport { adapter } from '../main.js';\nimport type { TelegramParams } from '../types/types.js';\nimport { jsonString } from '../lib/string';\nimport { setstateIobroker } from './setstate';\nimport { toJson } from '../lib/json';\nimport { isDefined } from '../lib/utils';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nexport async function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n telegramParams: TelegramParams,\n): Promise<void> {\n try {\n let array, user, idList, instance, idItem, res;\n if (isDefined(val)) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n adapter.log.debug(`Alexa-shoppinglist: ${idList}`);\n if (!isSubscribed) {\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n isSubscribed = true;\n }\n await setstateIobroker({\n id: `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n value: true,\n ack: false,\n });\n return;\n }\n await sendToTelegram({\n userToSend: user,\n textToSend: 'Cannot delete the Item',\n telegramParams,\n parse_mode: true,\n });\n adapter.log.debug('Cannot delete the Item');\n }\n } catch (e: any) {\n errorLogger('Error shoppingList:', e, adapter);\n }\n}\n\nexport async function deleteMessageAndSendNewShoppingList(\n telegramParams: TelegramParams,\n userToSend: string,\n): Promise<void> {\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n await deleteMessageIds(user, telegramParams, 'last');\n\n const result = await adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result?.val) {\n adapter.log.debug(`Result from Shoppinglist: ${jsonString(result)}`);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(toJson(result.val), null, newId, user);\n if (resultJson?.text && resultJson?.keyboard) {\n sendToTelegramSubmenu(user, resultJson.text, resultJson.keyboard, telegramParams, true);\n }\n }\n } catch (e: any) {\n errorLogger('Error deleteMessageAndSendNewShoppingList
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAAwC;AACxC,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAAiC;AACjC,kBAAuB;AACvB,mBAA0B;AAO1B,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAsB,wCAClB,KACA,gBACa;AACb,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,YAAI,wBAAU,GAAG,GAAG;AAChB,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,oBAAQ,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAElG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,4BAAQ,IAAI,MAAM,
|
|
4
|
+
"sourcesContent": ["import { deleteMessageIds } from './messageIds.js';\nimport { createKeyboardFromJson } from './jsonTable.js';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram.js';\nimport { _subscribeForeignStates } from './subscribeStates.js';\nimport { errorLogger } from './logging.js';\nimport { adapter } from '../main.js';\nimport type { TelegramParams } from '../types/types.js';\nimport { jsonString } from '../lib/string';\nimport { setstateIobroker } from './setstate';\nimport { toJson } from '../lib/json';\nimport { isDefined } from '../lib/utils';\n\ninterface ObjectData {\n [key: string]: {\n idList: string;\n };\n}\nconst objData: ObjectData = {};\n\nlet isSubscribed = false;\n\nexport async function shoppingListSubscribeStateAndDeleteItem(\n val: string | null,\n telegramParams: TelegramParams,\n): Promise<void> {\n try {\n let array, user, idList, instance, idItem, res;\n if (isDefined(val)) {\n array = val.split(':');\n user = array[0].replace('[', '').replace(']sList', '');\n idList = array[1];\n instance = array[2];\n idItem = array[3];\n res = await adapter.getForeignObjectAsync(`alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}`);\n\n if (res) {\n objData[user] = { idList: idList };\n adapter.log.debug(`Alexa-shoppinglist : ${idList}`);\n if (!isSubscribed) {\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n isSubscribed = true;\n }\n await setstateIobroker({\n id: `alexa2.${instance}.Lists.SHOPPING_LIST.items.${idItem}.#delete`,\n value: true,\n ack: false,\n });\n return;\n }\n await sendToTelegram({\n userToSend: user,\n textToSend: 'Cannot delete the Item',\n telegramParams,\n parse_mode: true,\n });\n adapter.log.debug('Cannot delete the Item');\n }\n } catch (e: any) {\n errorLogger('Error shoppingList:', e, adapter);\n }\n}\n\nexport async function deleteMessageAndSendNewShoppingList(\n telegramParams: TelegramParams,\n userToSend: string,\n): Promise<void> {\n try {\n const user = userToSend;\n const idList = objData[user].idList;\n await _subscribeForeignStates(`alexa-shoppinglist.${idList}`);\n await deleteMessageIds(user, telegramParams, 'last');\n\n const result = await adapter.getForeignStateAsync(`alexa-shoppinglist.${idList}`);\n if (result?.val) {\n adapter.log.debug(`Result from Shoppinglist : ${jsonString(result)}`);\n const newId = `alexa-shoppinglist.${idList}`;\n const resultJson = createKeyboardFromJson(toJson(result.val), null, newId, user);\n if (resultJson?.text && resultJson?.keyboard) {\n sendToTelegramSubmenu(user, resultJson.text, resultJson.keyboard, telegramParams, true);\n }\n }\n } catch (e: any) {\n errorLogger('Error deleteMessageAndSendNewShoppingList', e, adapter);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAiC;AACjC,uBAAuC;AACvC,sBAAsD;AACtD,6BAAwC;AACxC,qBAA4B;AAC5B,kBAAwB;AAExB,oBAA2B;AAC3B,sBAAiC;AACjC,kBAAuB;AACvB,mBAA0B;AAO1B,MAAM,UAAsB,CAAC;AAE7B,IAAI,eAAe;AAEnB,eAAsB,wCAClB,KACA,gBACa;AACb,MAAI;AACA,QAAI,OAAO,MAAM,QAAQ,UAAU,QAAQ;AAC3C,YAAI,wBAAU,GAAG,GAAG;AAChB,cAAQ,IAAI,MAAM,GAAG;AACrB,aAAO,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAE,EAAE,QAAQ,UAAU,EAAE;AACrD,eAAS,MAAM,CAAC;AAChB,iBAAW,MAAM,CAAC;AAClB,eAAS,MAAM,CAAC;AAChB,YAAM,MAAM,oBAAQ,sBAAsB,UAAU,QAAQ,8BAA8B,MAAM,EAAE;AAElG,UAAI,KAAK;AACL,gBAAQ,IAAI,IAAI,EAAE,OAAe;AACjC,4BAAQ,IAAI,MAAM,wBAAwB,MAAM,EAAE;AAClD,YAAI,CAAC,cAAc;AACf,oBAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,yBAAe;AAAA,QACnB;AACA,kBAAM,kCAAiB;AAAA,UACnB,IAAI,UAAU,QAAQ,8BAA8B,MAAM;AAAA,UAC1D,OAAO;AAAA,UACP,KAAK;AAAA,QACT,CAAC;AACD;AAAA,MACJ;AACA,gBAAM,gCAAe;AAAA,QACjB,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AACD,0BAAQ,IAAI,MAAM,wBAAwB;AAAA,IAC9C;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,uBAAuB,GAAG,mBAAO;AAAA,EACjD;AACJ;AAEA,eAAsB,oCAClB,gBACA,YACa;AACb,MAAI;AACA,UAAM,OAAO;AACb,UAAM,SAAS,QAAQ,IAAI,EAAE;AAC7B,cAAM,gDAAwB,sBAAsB,MAAM,EAAE;AAC5D,cAAM,oCAAiB,MAAM,gBAAgB,MAAM;AAEnD,UAAM,SAAS,MAAM,oBAAQ,qBAAqB,sBAAsB,MAAM,EAAE;AAChF,QAAI,iCAAQ,KAAK;AACb,0BAAQ,IAAI,MAAM,kCAA8B,0BAAW,MAAM,CAAC,EAAE;AACpE,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,YAAM,iBAAa,6CAAuB,oBAAO,OAAO,GAAG,GAAG,MAAM,OAAO,IAAI;AAC/E,WAAI,yCAAY,UAAQ,yCAAY,WAAU;AAC1C,mDAAsB,MAAM,WAAW,MAAM,WAAW,UAAU,gBAAgB,IAAI;AAAA,MAC1F;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,6CAA6C,GAAG,mBAAO;AAAA,EACvE;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/app/subMenu.js
CHANGED
|
@@ -68,7 +68,7 @@ const createSubmenuPercent = (obj) => {
|
|
|
68
68
|
};
|
|
69
69
|
const setFirstMenuValue = async ({ telegramParams, userToSend, part }) => {
|
|
70
70
|
let val;
|
|
71
|
-
import_main.adapter.log.debug(`SplitData: ${(0, import_string.jsonString)(splittedData)}`);
|
|
71
|
+
import_main.adapter.log.debug(`SplitData : ${(0, import_string.jsonString)(splittedData)}`);
|
|
72
72
|
if (splittedData[1].split(".")[1] == "false") {
|
|
73
73
|
val = false;
|
|
74
74
|
} else if (splittedData[1].split(".")[1] == "true") {
|
|
@@ -76,7 +76,7 @@ const setFirstMenuValue = async ({ telegramParams, userToSend, part }) => {
|
|
|
76
76
|
} else {
|
|
77
77
|
val = splittedData[1].split(".")[1];
|
|
78
78
|
}
|
|
79
|
-
await (0, import_setstate.handleSetState)(part, userToSend, val,
|
|
79
|
+
await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
|
|
80
80
|
};
|
|
81
81
|
const setSecondMenuValue = async ({ telegramParams, part, userToSend }) => {
|
|
82
82
|
let val;
|
|
@@ -87,7 +87,7 @@ const setSecondMenuValue = async ({ telegramParams, part, userToSend }) => {
|
|
|
87
87
|
} else {
|
|
88
88
|
val = splittedData[2].split(".")[1];
|
|
89
89
|
}
|
|
90
|
-
await (0, import_setstate.handleSetState)(part, userToSend, val,
|
|
90
|
+
await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
|
|
91
91
|
};
|
|
92
92
|
const createSubmenuNumber = ({
|
|
93
93
|
cbData,
|
|
@@ -152,7 +152,7 @@ const createSubmenuNumber = ({
|
|
|
152
152
|
if (rowEntries != 0) {
|
|
153
153
|
keyboard.inline_keyboard.push(menu);
|
|
154
154
|
}
|
|
155
|
-
import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
|
|
155
|
+
import_main.adapter.log.debug(`Keyboard : ${(0, import_string.jsonString)(keyboard)}`);
|
|
156
156
|
return { text, keyboard, menuToHandle };
|
|
157
157
|
};
|
|
158
158
|
const createSwitchMenu = ({
|
|
@@ -201,7 +201,7 @@ async function callSubMenu({
|
|
|
201
201
|
allMenusWithData,
|
|
202
202
|
menus
|
|
203
203
|
});
|
|
204
|
-
import_main.adapter.log.debug(`Submenu: ${(0, import_string.jsonString)(obj)}`);
|
|
204
|
+
import_main.adapter.log.debug(`Submenu : ${(0, import_string.jsonString)(obj)}`);
|
|
205
205
|
if ((obj == null ? void 0 : obj.text) && (obj == null ? void 0 : obj.keyboard)) {
|
|
206
206
|
(0, import_telegram.sendToTelegramSubmenu)(userToSend, obj.text, obj.keyboard, telegramParams, part.parse_mode);
|
|
207
207
|
}
|
|
@@ -218,16 +218,18 @@ async function subMenu({
|
|
|
218
218
|
allMenusWithData,
|
|
219
219
|
menus
|
|
220
220
|
}) {
|
|
221
|
+
var _a, _b, _c;
|
|
221
222
|
try {
|
|
222
223
|
import_main.adapter.log.debug(`Menu : ${menuString}`);
|
|
223
|
-
const text = await (0, import_utilities.
|
|
224
|
-
|
|
225
|
-
if ((0, import_validateMenus.isDeleteMenu)(cbData) && menuToHandle) {
|
|
224
|
+
const text = await (0, import_utilities.returnTextModifier)(part.text);
|
|
225
|
+
if ((0, import_validateMenus.isDeleteMenu)(menuString)) {
|
|
226
226
|
await (0, import_messageIds.deleteMessageIds)(userToSend, telegramParams, "all");
|
|
227
|
-
|
|
228
|
-
|
|
227
|
+
const menu = (_c = (_b = (_a = menuString.split(":")) == null ? void 0 : _a[2]) == null ? void 0 : _b.split('"')) == null ? void 0 : _c[0];
|
|
228
|
+
if (menu && (0, import_string.isNonEmptyString)(menu)) {
|
|
229
|
+
return { navToGoBack: menu };
|
|
229
230
|
}
|
|
230
231
|
}
|
|
232
|
+
const { cbData, menuToHandle, val } = (0, import_splitValues.getMenuValues)(menuString);
|
|
231
233
|
if ((0, import_validateMenus.isCreateSwitch)(cbData) && menuToHandle) {
|
|
232
234
|
return createSwitchMenu({ cbData, text, menuToHandle });
|
|
233
235
|
}
|
|
@@ -245,21 +247,21 @@ async function subMenu({
|
|
|
245
247
|
return (0, import_dynamicSwitchMenu.createDynamicSwitchMenu)(menuString, menuToHandle, text);
|
|
246
248
|
}
|
|
247
249
|
if ((0, import_validateMenus.isSetDynamicSwitchVal)(cbData) && val) {
|
|
248
|
-
await (0, import_setstate.handleSetState)(part, userToSend, val,
|
|
250
|
+
await (0, import_setstate.handleSetState)(part, userToSend, val, telegramParams);
|
|
249
251
|
}
|
|
250
252
|
if ((0, import_validateMenus.isCreateSubmenuPercent)(menuString, cbData) && menuToHandle) {
|
|
251
253
|
return createSubmenuPercent({ cbData, text, menuToHandle });
|
|
252
254
|
}
|
|
253
255
|
if ((0, import_validateMenus.isSetSubmenuPercent)(menuString, step)) {
|
|
254
256
|
const value = parseInt(menuString.split(":")[1].split(",")[1]);
|
|
255
|
-
await (0, import_setstate.handleSetState)(part, userToSend, value,
|
|
257
|
+
await (0, import_setstate.handleSetState)(part, userToSend, value, telegramParams);
|
|
256
258
|
}
|
|
257
259
|
if ((0, import_validateMenus.isCreateSubmenuNumber)(menuString, cbData) && menuToHandle) {
|
|
258
260
|
return createSubmenuNumber({ cbData, text, menuToHandle });
|
|
259
261
|
}
|
|
260
262
|
if ((0, import_validateMenus.isSetSubmenuNumber)(menuString, cbData)) {
|
|
261
263
|
const { value } = (0, import_splitValues.getSubmenuNumberValues)(menuString);
|
|
262
|
-
await (0, import_setstate.handleSetState)(part, userToSend, value,
|
|
264
|
+
await (0, import_setstate.handleSetState)(part, userToSend, value, telegramParams);
|
|
263
265
|
}
|
|
264
266
|
if ((0, import_validateMenus.isMenuBack)(menuString)) {
|
|
265
267
|
await back({
|
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 { checkStatusInfo } 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 SetFirstMenuValue,\n SetSecondMenuValue,\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 isCreateSubmenuNumber,\n isCreateSwitch,\n isDeleteMenu,\n isCreateDynamicSwitch,\n isFirstMenuValue,\n isMenuBack,\n isSecondMenuValue,\n isSetDynamicSwitchVal,\n isCreateSubmenuPercent,\n isSetSubmenuPercent,\n isSetSubmenuNumber,\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 setFirstMenuValue = async ({ telegramParams, userToSend, part }: SetFirstMenuValue): Promise<void> => {\n let val;\n adapter.log.debug(`SplitData: ${jsonString(splittedData)}`);\n\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, true, telegramParams);\n};\n\nconst setSecondMenuValue = async ({ telegramParams, part, userToSend }: SetSecondMenuValue): Promise<void> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, true, 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 checkStatusInfo(part.text);\n const { cbData, menuToHandle, val } = getMenuValues(menuString);\n\n if (isDeleteMenu(cbData) && menuToHandle) {\n await deleteMessageIds(userToSend, telegramParams, 'all');\n if (isNonEmptyString(menuToHandle)) {\n return { navToGoBack: menuToHandle };\n }\n }\n\n if (isCreateSwitch(cbData) && menuToHandle) {\n return createSwitchMenu({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isFirstMenuValue(cbData)) {\n await setFirstMenuValue({\n part,\n userToSend,\n telegramParams,\n });\n }\n\n if (isSecondMenuValue(cbData)) {\n await setSecondMenuValue({ part, userToSend, telegramParams });\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, true, 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, true, telegramParams);\n }\n\n if (isCreateSubmenuNumber(menuString, cbData) && menuToHandle) {\n return createSubmenuNumber({ cbData, text, menuToHandle: menuToHandle });\n }\n\n if (isSetSubmenuNumber(menuString, cbData)) {\n const { value } = getSubmenuNumberValues(menuString);\n await handleSetState(part, userToSend, value, true, 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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA2B;AAC3B,sBAA+B;AAC/B,sBAAsD;AACtD,
|
|
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 SetFirstMenuValue,\n SetSecondMenuValue,\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 isCreateSubmenuNumber,\n isCreateSwitch,\n isDeleteMenu,\n isCreateDynamicSwitch,\n isFirstMenuValue,\n isMenuBack,\n isSecondMenuValue,\n isSetDynamicSwitchVal,\n isCreateSubmenuPercent,\n isSetSubmenuPercent,\n isSetSubmenuNumber,\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 setFirstMenuValue = async ({ telegramParams, userToSend, part }: SetFirstMenuValue): Promise<void> => {\n let val;\n adapter.log.debug(`SplitData : ${jsonString(splittedData)}`);\n\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, telegramParams);\n};\n\nconst setSecondMenuValue = async ({ telegramParams, part, userToSend }: SetSecondMenuValue): Promise<void> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n await handleSetState(part, userToSend, val as string, 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 setFirstMenuValue({\n part,\n userToSend,\n telegramParams,\n });\n }\n\n if (isSecondMenuValue(cbData)) {\n await setSecondMenuValue({ part, userToSend, telegramParams });\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, cbData)) {\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
|
}
|
package/build/app/telegram.js
CHANGED
|
@@ -29,6 +29,11 @@ var import_main = require("../main");
|
|
|
29
29
|
var import_utils = require("../lib/utils");
|
|
30
30
|
var import_string = require("../lib/string");
|
|
31
31
|
var import_appUtils = require("../lib/appUtils");
|
|
32
|
+
function validateTextToSend(textToSend) {
|
|
33
|
+
if (!textToSend || (0, import_string.isEmptyString)(textToSend)) {
|
|
34
|
+
import_main.adapter.log.error("There is a problem! Text to send is empty or undefined, please check your configuration.");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
32
37
|
async function sendToTelegram({
|
|
33
38
|
userToSend,
|
|
34
39
|
textToSend,
|
|
@@ -39,12 +44,11 @@ async function sendToTelegram({
|
|
|
39
44
|
try {
|
|
40
45
|
const { telegramInstance, resize_keyboard, one_time_keyboard, userListWithChatID } = telegramParams;
|
|
41
46
|
const chatId = (0, import_utils.getChatID)(userListWithChatID, userToSend);
|
|
42
|
-
import_main.adapter.log.debug(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const validatedTextToSend = (0, import_string.cleanUpString)(textToSend != null ? textToSend : "");
|
|
47
|
+
import_main.adapter.log.debug(
|
|
48
|
+
`Send to: { user: ${userToSend} , chatId :${chatId} , text: ${textToSend} , instance: ${telegramInstance} , userListWithChatID: ${(0, import_string.jsonString)(userListWithChatID)} , parseMode: ${parse_mode} }`
|
|
49
|
+
);
|
|
50
|
+
validateTextToSend(textToSend);
|
|
51
|
+
const validatedTextToSend = (0, import_string.cleanUpString)(textToSend);
|
|
48
52
|
if (!keyboard) {
|
|
49
53
|
import_main.adapter.sendTo(
|
|
50
54
|
telegramInstance,
|
|
@@ -64,7 +68,7 @@ async function sendToTelegram({
|
|
|
64
68
|
{
|
|
65
69
|
chatId,
|
|
66
70
|
parse_mode: (0, import_appUtils.getParseMode)(parse_mode),
|
|
67
|
-
text: await (0, import_utilities.
|
|
71
|
+
text: await (0, import_utilities.returnTextModifier)(validatedTextToSend),
|
|
68
72
|
reply_markup: {
|
|
69
73
|
keyboard,
|
|
70
74
|
resize_keyboard,
|
|
@@ -79,6 +83,7 @@ async function sendToTelegram({
|
|
|
79
83
|
}
|
|
80
84
|
function sendToTelegramSubmenu(user, textToSend, keyboard, telegramParams, parse_mode) {
|
|
81
85
|
const { telegramInstance: instance, userListWithChatID } = telegramParams;
|
|
86
|
+
validateTextToSend(textToSend);
|
|
82
87
|
import_main.adapter.sendTo(
|
|
83
88
|
instance,
|
|
84
89
|
"send",
|
|
@@ -116,11 +121,11 @@ const sendLocationToTelegram = async (user, data, telegramParams) => {
|
|
|
116
121
|
);
|
|
117
122
|
}
|
|
118
123
|
} catch (e) {
|
|
119
|
-
(0, import_logging.errorLogger)("Error
|
|
124
|
+
(0, import_logging.errorLogger)("Error send location to telegram:", e, import_main.adapter);
|
|
120
125
|
}
|
|
121
126
|
};
|
|
122
127
|
function telegramLogger(res) {
|
|
123
|
-
import_main.adapter.log.debug(`
|
|
128
|
+
import_main.adapter.log.debug(`Telegram response : "${(0, import_string.jsonString)(res)}"`);
|
|
124
129
|
}
|
|
125
130
|
// Annotate the CommonJS export names for ESM import in node:
|
|
126
131
|
0 && (module.exports = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/app/telegram.ts"],
|
|
4
|
-
"sourcesContent": ["import { errorLogger } from './logging';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAC5B,
|
|
4
|
+
"sourcesContent": ["import { errorLogger } from './logging';\nimport { returnTextModifier } from '../lib/utilities';\nimport { adapter } from '../main';\nimport type { Keyboard, Location, Telegram, TelegramParams } from '../types/types';\nimport { getChatID } from '../lib/utils';\nimport { cleanUpString, isEmptyString, jsonString } from '../lib/string';\nimport { getParseMode } from '../lib/appUtils';\n\nfunction validateTextToSend(textToSend: string | undefined): void {\n if (!textToSend || isEmptyString(textToSend)) {\n adapter.log.error('There is a problem! Text to send is empty or undefined, please check your configuration.');\n }\n}\n\nasync function sendToTelegram({\n userToSend,\n textToSend,\n keyboard,\n telegramParams,\n parse_mode,\n}: Telegram): Promise<void> {\n try {\n const { telegramInstance, resize_keyboard, one_time_keyboard, userListWithChatID } = telegramParams;\n const chatId = getChatID(userListWithChatID, userToSend);\n\n adapter.log.debug(\n `Send to: { user: ${userToSend} , chatId :${chatId} , text: ${textToSend} , instance: ${telegramInstance} , userListWithChatID: ${jsonString(userListWithChatID)} , parseMode: ${parse_mode} }`,\n );\n validateTextToSend(textToSend);\n\n const validatedTextToSend = cleanUpString(textToSend);\n if (!keyboard) {\n adapter.sendTo(\n telegramInstance,\n 'send',\n {\n text: validatedTextToSend,\n chatId,\n parse_mode: getParseMode(parse_mode),\n },\n res => telegramLogger(res),\n );\n return;\n }\n\n adapter.sendTo(\n telegramInstance,\n 'send',\n {\n chatId,\n parse_mode: getParseMode(parse_mode),\n text: await returnTextModifier(validatedTextToSend),\n reply_markup: {\n keyboard,\n resize_keyboard,\n one_time_keyboard,\n },\n },\n res => telegramLogger(res),\n );\n } catch (e) {\n errorLogger('Error sendToTelegram:', e, adapter);\n }\n}\n\nfunction sendToTelegramSubmenu(\n user: string,\n textToSend: string,\n keyboard: Keyboard,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): void {\n const { telegramInstance: instance, userListWithChatID } = telegramParams;\n validateTextToSend(textToSend);\n adapter.sendTo(\n instance,\n 'send',\n {\n chatId: getChatID(userListWithChatID, user),\n parse_mode: getParseMode(parse_mode),\n text: cleanUpString(textToSend),\n reply_markup: keyboard,\n },\n (res: any) => telegramLogger(res),\n );\n}\n\nconst sendLocationToTelegram = async (\n user: string,\n data: Location[],\n telegramParams: TelegramParams,\n): Promise<void> => {\n const { userListWithChatID, telegramInstance: instance } = telegramParams;\n try {\n const chatId = getChatID(userListWithChatID, user);\n\n for (const { longitude: longitudeID, latitude: latitudeID } of data) {\n if (!(latitudeID || longitudeID)) {\n continue;\n }\n\n const latitude = await adapter.getForeignStateAsync(latitudeID);\n const longitude = await adapter.getForeignStateAsync(longitudeID);\n if (!latitude || !longitude) {\n continue;\n }\n adapter.sendTo(\n instance,\n {\n chatId: chatId,\n latitude: latitude.val,\n longitude: longitude.val,\n disable_notification: true,\n },\n (res: any) => telegramLogger(res),\n );\n }\n } catch (e: any) {\n errorLogger('Error send location to telegram:', e, adapter);\n }\n};\n\nfunction telegramLogger(res: any): void {\n adapter.log.debug(`Telegram response : \"${jsonString(res)}\"`);\n}\n\nexport { sendToTelegram, sendToTelegramSubmenu, sendLocationToTelegram };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAC5B,uBAAmC;AACnC,kBAAwB;AAExB,mBAA0B;AAC1B,oBAAyD;AACzD,sBAA6B;AAE7B,SAAS,mBAAmB,YAAsC;AAC9D,MAAI,CAAC,kBAAc,6BAAc,UAAU,GAAG;AAC1C,wBAAQ,IAAI,MAAM,0FAA0F;AAAA,EAChH;AACJ;AAEA,eAAe,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA4B;AACxB,MAAI;AACA,UAAM,EAAE,kBAAkB,iBAAiB,mBAAmB,mBAAmB,IAAI;AACrF,UAAM,aAAS,wBAAU,oBAAoB,UAAU;AAEvD,wBAAQ,IAAI;AAAA,MACR,oBAAoB,UAAU,cAAc,MAAM,YAAY,UAAU,gBAAgB,gBAAgB,8BAA0B,0BAAW,kBAAkB,CAAC,iBAAiB,UAAU;AAAA,IAC/L;AACA,uBAAmB,UAAU;AAE7B,UAAM,0BAAsB,6BAAc,UAAU;AACpD,QAAI,CAAC,UAAU;AACX,0BAAQ;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN;AAAA,UACA,gBAAY,8BAAa,UAAU;AAAA,QACvC;AAAA,QACA,SAAO,eAAe,GAAG;AAAA,MAC7B;AACA;AAAA,IACJ;AAEA,wBAAQ;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,QACI;AAAA,QACA,gBAAY,8BAAa,UAAU;AAAA,QACnC,MAAM,UAAM,qCAAmB,mBAAmB;AAAA,QAClD,cAAc;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,SAAO,eAAe,GAAG;AAAA,IAC7B;AAAA,EACJ,SAAS,GAAG;AACR,oCAAY,yBAAyB,GAAG,mBAAO;AAAA,EACnD;AACJ;AAEA,SAAS,sBACL,MACA,YACA,UACA,gBACA,YACI;AACJ,QAAM,EAAE,kBAAkB,UAAU,mBAAmB,IAAI;AAC3D,qBAAmB,UAAU;AAC7B,sBAAQ;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,MACI,YAAQ,wBAAU,oBAAoB,IAAI;AAAA,MAC1C,gBAAY,8BAAa,UAAU;AAAA,MACnC,UAAM,6BAAc,UAAU;AAAA,MAC9B,cAAc;AAAA,IAClB;AAAA,IACA,CAAC,QAAa,eAAe,GAAG;AAAA,EACpC;AACJ;AAEA,MAAM,yBAAyB,OAC3B,MACA,MACA,mBACgB;AAChB,QAAM,EAAE,oBAAoB,kBAAkB,SAAS,IAAI;AAC3D,MAAI;AACA,UAAM,aAAS,wBAAU,oBAAoB,IAAI;AAEjD,eAAW,EAAE,WAAW,aAAa,UAAU,WAAW,KAAK,MAAM;AACjE,UAAI,EAAE,cAAc,cAAc;AAC9B;AAAA,MACJ;AAEA,YAAM,WAAW,MAAM,oBAAQ,qBAAqB,UAAU;AAC9D,YAAM,YAAY,MAAM,oBAAQ,qBAAqB,WAAW;AAChE,UAAI,CAAC,YAAY,CAAC,WAAW;AACzB;AAAA,MACJ;AACA,0BAAQ;AAAA,QACJ;AAAA,QACA;AAAA,UACI;AAAA,UACA,UAAU,SAAS;AAAA,UACnB,WAAW,UAAU;AAAA,UACrB,sBAAsB;AAAA,QAC1B;AAAA,QACA,CAAC,QAAa,eAAe,GAAG;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,oCAAoC,GAAG,mBAAO;AAAA,EAC9D;AACJ;AAEA,SAAS,eAAe,KAAgB;AACpC,sBAAQ,IAAI,MAAM,4BAAwB,0BAAW,GAAG,CAAC,GAAG;AAChE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/lib/appUtils.js
CHANGED
|
@@ -26,7 +26,7 @@ __export(appUtils_exports, {
|
|
|
26
26
|
getParseMode: () => getParseMode,
|
|
27
27
|
getStartSides: () => getStartSides,
|
|
28
28
|
getTypeofTimestamp: () => getTypeofTimestamp,
|
|
29
|
-
|
|
29
|
+
isSameType: () => isSameType,
|
|
30
30
|
isStartside: () => isStartside,
|
|
31
31
|
roundValue: () => roundValue,
|
|
32
32
|
splitNavigation: () => splitNavigation,
|
|
@@ -134,9 +134,8 @@ const exchangePlaceholderWithValue = (textToSend, val) => {
|
|
|
134
134
|
}
|
|
135
135
|
return `${textToSend} ${val}`.trim();
|
|
136
136
|
};
|
|
137
|
-
function
|
|
138
|
-
|
|
139
|
-
return receivedType === ((_a = obj == null ? void 0 : obj.common) == null ? void 0 : _a.type) || !((_b = obj == null ? void 0 : obj.common) == null ? void 0 : _b.type);
|
|
137
|
+
function isSameType(receivedType, obj) {
|
|
138
|
+
return receivedType === obj.common.type;
|
|
140
139
|
}
|
|
141
140
|
// Annotate the CommonJS export names for ESM import in node:
|
|
142
141
|
0 && (module.exports = {
|
|
@@ -148,7 +147,7 @@ function isNoTypeDefined(receivedType, obj) {
|
|
|
148
147
|
getParseMode,
|
|
149
148
|
getStartSides,
|
|
150
149
|
getTypeofTimestamp,
|
|
151
|
-
|
|
150
|
+
isSameType,
|
|
152
151
|
isStartside,
|
|
153
152
|
roundValue,
|
|
154
153
|
splitNavigation,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/appUtils.ts"],
|
|
4
|
-
"sourcesContent": ["import { config } from '../config/config';\nimport type {\n Adapter,\n DataObject,\n GetTimeWithPad,\n MenusWithUsers,\n Navigation,\n NavigationRow,\n NewObjectStructure,\n ParseModeType,\n PrimitiveType,\n splittedNavigation,\n StartSides,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText, removeQuotes } from './string';\nimport { evaluate } from './math';\nimport { isTruthy } from './utils';\nimport { trimAllItems } from './object';\nimport { getPlaceholderValue } from './appUtilsString';\n\nexport const checkOneLineValue = (text: string): string =>\n !text.includes(config.rowSplitter) ? `${text} ${config.rowSplitter}` : text;\n\nexport function calcValue(\n textToSend: string,\n val: string,\n adapter: Adapter,\n): { textToSend: string; calculated: any; error: boolean } {\n const { substringExcludeSearch, textExcludeSubstring } = decomposeText(\n textToSend,\n config.math.start,\n config.math.end,\n );\n const { val: evalVal, error } = evaluate([val, substringExcludeSearch], adapter);\n\n return error\n ? { textToSend: textExcludeSubstring, calculated: val, error }\n : { textToSend: textExcludeSubstring, calculated: evalVal, error };\n}\n\nexport function roundValue(val: string, textToSend: string): { roundedValue: string; text: string; error: boolean } {\n const floatVal = parseFloat(val);\n const { textExcludeSubstring, substringExcludeSearch: decimalPlaces } = decomposeText(\n textToSend,\n config.round.start,\n config.round.end,\n );\n const decimalPlacesNum = parseInt(decimalPlaces);\n\n if (isNaN(floatVal)) {\n return { roundedValue: 'NaN', text: textExcludeSubstring, error: true };\n }\n if (isNaN(decimalPlacesNum)) {\n return { roundedValue: val, text: textExcludeSubstring, error: true };\n }\n\n return { roundedValue: floatVal.toFixed(decimalPlacesNum), text: textExcludeSubstring, error: false };\n}\n\nexport const getListOfMenusIncludingUser = (menusWithUsers: MenusWithUsers, userToSend: string): string[] => {\n const menus: string[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport const getParseMode = (val = false): ParseModeType => (val ? 'HTML' : 'Markdown');\n\nexport const getTypeofTimestamp = (val: string): 'lc' | 'ts' => (val.includes('lc') ? 'lc' : 'ts');\n\nexport const timeStringReplacer = ({ d, h, m, ms, y, s, mo }: GetTimeWithPad, string?: string): string | undefined => {\n if (string) {\n string = string\n .replace('sss', ms)\n .replace('ss', s)\n .replace('mm', m)\n .replace('hh', h)\n .replace('DD', d)\n .replace('MM', mo)\n .replace('YYYY', y)\n .replace('YY', y.slice(-2))\n .replace('(', '')\n .replace(')', '');\n }\n return string;\n};\n\nexport function statusIdAndParams(substringExcludeSearch: string): { id: string; shouldChange: boolean } {\n const splitArray = substringExcludeSearch.split(':');\n const firstEl = splitArray[0];\n const secondEl = splitArray[1] ?? '';\n const thirdEl = splitArray[2] ?? '';\n return substringExcludeSearch.includes(config.status.oldWithId)\n ? {\n id: removeQuotes(secondEl), //'id':'ID':true\n shouldChange: isTruthy(removeQuotes(thirdEl)),\n }\n : {\n id: removeQuotes(firstEl), //'ID':true\n shouldChange: isTruthy(removeQuotes(secondEl)),\n };\n}\n\nexport function isStartside(startSide: string): boolean {\n return startSide != '-' && startSide != '';\n}\n\nexport function splitNavigation(rows: NavigationRow[]): splittedNavigation[] {\n const generatedNavigation: splittedNavigation[] = [];\n\n rows.forEach(({ value, text, parse_mode, call }) => {\n const nav: Navigation = [];\n\n checkOneLineValue(value)\n .split(config.rowSplitter)\n .forEach(function (el, index: number) {\n nav[index] = trimAllItems(el.split(','));\n });\n\n generatedNavigation.push({ call, text, parse_mode: isTruthy(parse_mode), nav });\n });\n return generatedNavigation;\n}\n\nexport function getNewStructure(val: splittedNavigation[]): NewObjectStructure {\n const obj: NewObjectStructure = {};\n val.forEach(function ({ nav, text, parse_mode, call }) {\n obj[call] = { nav, text, parse_mode };\n });\n return obj;\n}\n\nexport const getStartSides = (menusWithUsers: UsersInGroup, dataObject: DataObject): StartSides => {\n const startSides: StartSides = {};\n Object.keys(menusWithUsers).forEach(element => {\n startSides[element] = dataObject.nav[element][0].call;\n });\n return startSides;\n};\n\nexport const exchangePlaceholderWithValue = (textToSend: string, val: PrimitiveType): string => {\n const searchString = getPlaceholderValue(textToSend);\n if (searchString !== '') {\n return textToSend.replace(searchString, val.toString()).trim();\n }\n return `${textToSend} ${val}`.trim();\n};\n\nexport function
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import { config } from '../config/config';\nimport type {\n Adapter,\n DataObject,\n GetTimeWithPad,\n MenusWithUsers,\n Navigation,\n NavigationRow,\n NewObjectStructure,\n ParseModeType,\n PrimitiveType,\n splittedNavigation,\n StartSides,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText, removeQuotes } from './string';\nimport { evaluate } from './math';\nimport { isTruthy } from './utils';\nimport { trimAllItems } from './object';\nimport { getPlaceholderValue } from './appUtilsString';\n\nexport const checkOneLineValue = (text: string): string =>\n !text.includes(config.rowSplitter) ? `${text} ${config.rowSplitter}` : text;\n\nexport function calcValue(\n textToSend: string,\n val: string,\n adapter: Adapter,\n): { textToSend: string; calculated: any; error: boolean } {\n const { substringExcludeSearch, textExcludeSubstring } = decomposeText(\n textToSend,\n config.math.start,\n config.math.end,\n );\n const { val: evalVal, error } = evaluate([val, substringExcludeSearch], adapter);\n\n return error\n ? { textToSend: textExcludeSubstring, calculated: val, error }\n : { textToSend: textExcludeSubstring, calculated: evalVal, error };\n}\n\nexport function roundValue(val: string, textToSend: string): { roundedValue: string; text: string; error: boolean } {\n const floatVal = parseFloat(val);\n const { textExcludeSubstring, substringExcludeSearch: decimalPlaces } = decomposeText(\n textToSend,\n config.round.start,\n config.round.end,\n );\n const decimalPlacesNum = parseInt(decimalPlaces);\n\n if (isNaN(floatVal)) {\n return { roundedValue: 'NaN', text: textExcludeSubstring, error: true };\n }\n if (isNaN(decimalPlacesNum)) {\n return { roundedValue: val, text: textExcludeSubstring, error: true };\n }\n\n return { roundedValue: floatVal.toFixed(decimalPlacesNum), text: textExcludeSubstring, error: false };\n}\n\nexport const getListOfMenusIncludingUser = (menusWithUsers: MenusWithUsers, userToSend: string): string[] => {\n const menus: string[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport const getParseMode = (val = false): ParseModeType => (val ? 'HTML' : 'Markdown');\n\nexport const getTypeofTimestamp = (val: string): 'lc' | 'ts' => (val.includes('lc') ? 'lc' : 'ts');\n\nexport const timeStringReplacer = ({ d, h, m, ms, y, s, mo }: GetTimeWithPad, string?: string): string | undefined => {\n if (string) {\n string = string\n .replace('sss', ms)\n .replace('ss', s)\n .replace('mm', m)\n .replace('hh', h)\n .replace('DD', d)\n .replace('MM', mo)\n .replace('YYYY', y)\n .replace('YY', y.slice(-2))\n .replace('(', '')\n .replace(')', '');\n }\n return string;\n};\n\nexport function statusIdAndParams(substringExcludeSearch: string): { id: string; shouldChange: boolean } {\n const splitArray = substringExcludeSearch.split(':');\n const firstEl = splitArray[0];\n const secondEl = splitArray[1] ?? '';\n const thirdEl = splitArray[2] ?? '';\n return substringExcludeSearch.includes(config.status.oldWithId)\n ? {\n id: removeQuotes(secondEl), //'id':'ID':true\n shouldChange: isTruthy(removeQuotes(thirdEl)),\n }\n : {\n id: removeQuotes(firstEl), //'ID':true\n shouldChange: isTruthy(removeQuotes(secondEl)),\n };\n}\n\nexport function isStartside(startSide: string): boolean {\n return startSide != '-' && startSide != '';\n}\n\nexport function splitNavigation(rows: NavigationRow[]): splittedNavigation[] {\n const generatedNavigation: splittedNavigation[] = [];\n\n rows.forEach(({ value, text, parse_mode, call }) => {\n const nav: Navigation = [];\n\n checkOneLineValue(value)\n .split(config.rowSplitter)\n .forEach(function (el, index: number) {\n nav[index] = trimAllItems(el.split(','));\n });\n\n generatedNavigation.push({ call, text, parse_mode: isTruthy(parse_mode), nav });\n });\n return generatedNavigation;\n}\n\nexport function getNewStructure(val: splittedNavigation[]): NewObjectStructure {\n const obj: NewObjectStructure = {};\n val.forEach(function ({ nav, text, parse_mode, call }) {\n obj[call] = { nav, text, parse_mode };\n });\n return obj;\n}\n\nexport const getStartSides = (menusWithUsers: UsersInGroup, dataObject: DataObject): StartSides => {\n const startSides: StartSides = {};\n Object.keys(menusWithUsers).forEach(element => {\n startSides[element] = dataObject.nav[element][0].call;\n });\n return startSides;\n};\n\nexport const exchangePlaceholderWithValue = (textToSend: string, val: PrimitiveType): string => {\n const searchString = getPlaceholderValue(textToSend);\n if (searchString !== '') {\n return textToSend.replace(searchString, val.toString()).trim();\n }\n return `${textToSend} ${val}`.trim();\n};\n\nexport function isSameType(\n receivedType: 'undefined' | 'object' | 'boolean' | 'number' | 'string' | 'function' | 'symbol' | 'bigint',\n obj: ioBroker.Object,\n): boolean {\n return receivedType === obj.common.type;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/lib/utilities.js
CHANGED
|
@@ -19,8 +19,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var utilities_exports = {};
|
|
20
20
|
__export(utilities_exports, {
|
|
21
21
|
checkStatus: () => checkStatus,
|
|
22
|
-
checkStatusInfo: () => checkStatusInfo,
|
|
23
22
|
processTimeIdLc: () => processTimeIdLc,
|
|
23
|
+
returnTextModifier: () => returnTextModifier,
|
|
24
24
|
transformValueToTypeOfId: () => transformValueToTypeOfId
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(utilities_exports);
|
|
@@ -62,7 +62,7 @@ const checkStatus = async (text) => {
|
|
|
62
62
|
const { id, shouldChange } = (0, import_appUtils.statusIdAndParams)(substringExcludeSearch);
|
|
63
63
|
const stateValue = await import_main.adapter.getForeignStateAsync(id);
|
|
64
64
|
if (!(0, import_utils.isDefined)(stateValue == null ? void 0 : stateValue.val)) {
|
|
65
|
-
import_main.adapter.log.debug(`State not found: ${id}`);
|
|
65
|
+
import_main.adapter.log.debug(`State not found for id : "${id}"`);
|
|
66
66
|
return text.replace(substring, "");
|
|
67
67
|
}
|
|
68
68
|
const stateValueString = String(stateValue.val);
|
|
@@ -75,12 +75,12 @@ const checkStatus = async (text) => {
|
|
|
75
75
|
const { newValue: val, textToSend, error } = (0, import_string.getValueToExchange)(import_main.adapter, text, stateValue.val);
|
|
76
76
|
return (!error ? textToSend : text).replace(substring, !error ? val.toString() : stateValueString);
|
|
77
77
|
};
|
|
78
|
-
const
|
|
78
|
+
const returnTextModifier = async (text) => {
|
|
79
79
|
if (!text) {
|
|
80
80
|
return "";
|
|
81
81
|
}
|
|
82
82
|
try {
|
|
83
|
-
|
|
83
|
+
const inputText = text;
|
|
84
84
|
if (text.includes(import_config.config.status.start)) {
|
|
85
85
|
while (text.includes(import_config.config.status.start)) {
|
|
86
86
|
text = await checkStatus(text);
|
|
@@ -103,10 +103,10 @@ const checkStatusInfo = async (text) => {
|
|
|
103
103
|
await (0, import_setstate.setstateIobroker)({ id, value: convertedValue, ack });
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
import_main.adapter.log.debug(`
|
|
106
|
+
text === inputText ? import_main.adapter.log.debug(`Return text : ${text} `) : import_main.adapter.log.debug(`Return text was modified from "${inputText}" to "${text}" `);
|
|
107
107
|
return text;
|
|
108
108
|
} catch (e) {
|
|
109
|
-
(0, import_logging.errorLogger)("Error
|
|
109
|
+
(0, import_logging.errorLogger)("Error returnTextModifier:", e, import_main.adapter);
|
|
110
110
|
return "";
|
|
111
111
|
}
|
|
112
112
|
};
|
|
@@ -114,7 +114,7 @@ async function transformValueToTypeOfId(id, value) {
|
|
|
114
114
|
try {
|
|
115
115
|
const receivedType = typeof value;
|
|
116
116
|
const obj = await import_main.adapter.getForeignObjectAsync(id);
|
|
117
|
-
if (!obj || !(0, import_utils.isDefined)(value) || (0, import_appUtils.
|
|
117
|
+
if (!obj || !(0, import_utils.isDefined)(value) || (0, import_appUtils.isSameType)(receivedType, obj)) {
|
|
118
118
|
return value;
|
|
119
119
|
}
|
|
120
120
|
import_main.adapter.log.debug(`Change Value type from "${receivedType}" to "${obj.common.type}"`);
|
|
@@ -124,7 +124,7 @@ async function transformValueToTypeOfId(id, value) {
|
|
|
124
124
|
case "number":
|
|
125
125
|
return typeof value === "string" ? parseFloat(value) : parseFloat((0, import_string.jsonString)(value));
|
|
126
126
|
case "boolean":
|
|
127
|
-
return (0, import_utils.
|
|
127
|
+
return (0, import_utils.isDefined)(value) && !["false", false, 0, "0", "null", "undefined"].includes(value);
|
|
128
128
|
default:
|
|
129
129
|
return value;
|
|
130
130
|
}
|
|
@@ -135,8 +135,8 @@ async function transformValueToTypeOfId(id, value) {
|
|
|
135
135
|
// Annotate the CommonJS export names for ESM import in node:
|
|
136
136
|
0 && (module.exports = {
|
|
137
137
|
checkStatus,
|
|
138
|
-
checkStatusInfo,
|
|
139
138
|
processTimeIdLc,
|
|
139
|
+
returnTextModifier,
|
|
140
140
|
transformValueToTypeOfId
|
|
141
141
|
});
|
|
142
142
|
//# sourceMappingURL=utilities.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/utilities.ts"],
|
|
4
|
-
"sourcesContent": ["import { isDefined
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"sourcesContent": ["import { isDefined } from './utils';\nimport { decomposeText, getValueToExchange, isEmptyString, jsonString, replaceAllItems } from './string';\nimport { errorLogger } from '../app/logging';\nimport { extractTimeValues, getTimeWithPad, integrateTimeIntoText } from './time';\nimport { adapter } from '../main';\nimport { config } from '../config/config';\nimport { isSameType, statusIdAndParams, timeStringReplacer } from './appUtils';\nimport { setstateIobroker } from '../app/setstate';\nimport { getProcessTimeValues } from './splitValues';\n\nexport const processTimeIdLc = async (textToSend: string, id?: string): Promise<string> => {\n const { substring, substringExcludeSearch } = decomposeText(\n textToSend,\n config.timestamp.start,\n config.timestamp.end,\n ); //{time.lc,(DD MM YYYY hh:mm:ss:sss),id:'ID'}\n const { typeofTimestamp, timeString, idString } = getProcessTimeValues(substringExcludeSearch);\n\n if (!id && (!idString || idString.length < 5)) {\n return textToSend.replace(substring, 'Invalid ID');\n }\n const value = await adapter.getForeignStateAsync(id ?? idString);\n\n if (!value) {\n return textToSend.replace(substring, 'Invalid ID');\n }\n const timeStringUser = replaceAllItems(timeString, [',(', ')', '}']); //\"(DD MM YYYY hh:mm:ss:sss)\"\n const unixTs = value[typeofTimestamp];\n\n const timeWithPad = getTimeWithPad(extractTimeValues(unixTs));\n const timeStringReplaced = timeStringReplacer(timeWithPad, timeStringUser);\n\n return timeStringReplaced ?? textToSend;\n};\n\n// TODO Check Usage of function\nexport const checkStatus = async (text: string): Promise<string> => {\n const { substring, substringExcludeSearch, textExcludeSubstring } = decomposeText(\n text,\n config.status.start,\n config.status.end,\n ); //substring {status:'ID':true} new | old {status:'id':'ID':true}\n\n const { id, shouldChange } = statusIdAndParams(substringExcludeSearch);\n\n const stateValue = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(stateValue?.val)) {\n adapter.log.debug(`State not found for id : \"${id}\"`);\n return text.replace(substring, '');\n }\n\n const stateValueString = String(stateValue.val);\n\n if (text.includes(config.time)) {\n return integrateTimeIntoText(textExcludeSubstring, stateValueString).replace(stateValueString, '');\n }\n\n if (!shouldChange) {\n return text.replace(substring, stateValueString);\n }\n\n const { newValue: val, textToSend, error } = getValueToExchange(adapter, text, stateValue.val);\n\n return (!error ? textToSend : text).replace(substring, !error ? val.toString() : stateValueString);\n};\n\nexport const returnTextModifier = async (text?: string): Promise<string> => {\n if (!text) {\n return '';\n }\n try {\n const inputText = text;\n\n if (text.includes(config.status.start)) {\n while (text.includes(config.status.start)) {\n text = await checkStatus(text);\n }\n }\n if (text.includes(config.timestamp.lc) || text.includes(config.timestamp.ts)) {\n text = await processTimeIdLc(text);\n }\n if (text.includes(config.set.start)) {\n const { substring, textExcludeSubstring } = decomposeText(text, config.set.start, config.set.end);\n const id = substring.split(',')[0].replace(\"{set:'id':\", '').replace(/'/g, '');\n const importedValue = substring.split(',')[1];\n\n text = textExcludeSubstring;\n const convertedValue = await transformValueToTypeOfId(id, importedValue);\n\n const ack = substring.split(',')[2].replace('}', '') == 'true';\n\n if (isEmptyString(text)) {\n text = 'W\u00E4hle eine Aktion';\n }\n if (convertedValue) {\n await setstateIobroker({ id, value: convertedValue, ack });\n }\n }\n\n text === inputText\n ? adapter.log.debug(`Return text : ${text} `)\n : adapter.log.debug(`Return text was modified from \"${inputText}\" to \"${text}\" `);\n return text;\n } catch (e: any) {\n errorLogger('Error returnTextModifier:', e, adapter);\n return '';\n }\n};\n\nexport async function transformValueToTypeOfId(\n id: string,\n value: ioBroker.StateValue,\n): Promise<ioBroker.StateValue | undefined> {\n try {\n const receivedType = typeof value;\n const obj = await adapter.getForeignObjectAsync(id);\n\n if (!obj || !isDefined(value) || isSameType(receivedType, obj)) {\n return value;\n }\n\n adapter.log.debug(`Change Value type from \"${receivedType}\" to \"${obj.common.type}\"`);\n\n switch (obj.common.type) {\n case 'string':\n return String(value);\n case 'number':\n return typeof value === 'string' ? parseFloat(value) : parseFloat(jsonString(value));\n case 'boolean':\n return isDefined(value) && !['false', false, 0, '0', 'null', 'undefined'].includes(value);\n default:\n return value;\n }\n } catch (e: any) {\n errorLogger('Error checkTypeOfId:', e, adapter);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/main.js
CHANGED
|
@@ -189,8 +189,7 @@ class TelegramMenu extends utils.Adapter {
|
|
|
189
189
|
return;
|
|
190
190
|
}
|
|
191
191
|
if (state && (setStateIdsToListenTo == null ? void 0 : setStateIdsToListenTo.find((element) => element.id == id))) {
|
|
192
|
-
adapter.log.debug(`
|
|
193
|
-
adapter.log.debug(`State: ${(0, import_string.jsonString)(state)}`);
|
|
192
|
+
adapter.log.debug(`Subscribed state changed: { id : ${id} , state : ${(0, import_string.jsonString)(state)} }`);
|
|
194
193
|
for (const el of setStateIdsToListenTo) {
|
|
195
194
|
const { id: elId, userToSend: userToSend2, confirm, returnText, parse_mode } = el;
|
|
196
195
|
const key = setStateIdsToListenTo.indexOf(el);
|
|
@@ -200,7 +199,6 @@ class TelegramMenu extends utils.Adapter {
|
|
|
200
199
|
if ((0, import_utils.isTruthy)(confirm) && !(state == null ? void 0 : state.ack) && returnText.includes("{confirmSet:")) {
|
|
201
200
|
const { substring } = (0, import_string.decomposeText)(returnText, "{confirmSet:", "}");
|
|
202
201
|
const splitSubstring = substring.split(":");
|
|
203
|
-
adapter.log.debug(`Substring: ${(0, import_string.jsonString)(splitSubstring)}`);
|
|
204
202
|
let text = "";
|
|
205
203
|
if ((0, import_utils.isDefined)(state.val)) {
|
|
206
204
|
text = ((_a2 = splitSubstring[2]) == null ? void 0 : _a2.includes("noValue")) ? splitSubstring[1] : (0, import_appUtils.exchangePlaceholderWithValue)(splitSubstring[1], state.val.toString());
|