iobroker.telegram-menu 2.2.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/admin/build/index.js +49 -49
- package/admin/build/index.js.map +3 -3
- package/admin/css/button.css +3 -0
- package/admin/css/row-editor.css +1 -1
- package/admin/css/style.css +46 -25
- package/admin/css/textarea.css +7 -11
- package/admin/i18n/de/translations.json +124 -123
- package/admin/i18n/en/translations.json +3 -2
- package/admin/i18n/es/translations.json +3 -2
- package/admin/i18n/fr/translations.json +3 -2
- package/admin/i18n/it/translations.json +3 -2
- package/admin/i18n/nl/translations.json +3 -2
- package/admin/i18n/pl/translations.json +3 -2
- package/admin/i18n/pt/translations.json +3 -2
- package/admin/i18n/ru/translations.json +3 -2
- package/admin/i18n/uk/translations.json +3 -2
- package/admin/i18n/zh-cn/translations.json +3 -2
- package/admin/words.js +3 -1
- package/build/admin/src/config/helper.js +178 -0
- package/build/admin/src/config/helper.js.map +1 -0
- package/build/admin/src/lib/Utils.js +64 -0
- package/build/admin/src/lib/Utils.js.map +1 -0
- package/build/admin/src/types/event.js +3 -0
- package/build/admin/src/types/event.js.map +1 -0
- package/build/app/action.js +270 -0
- package/build/app/action.js.map +7 -0
- package/build/app/adapterManager.js +36 -0
- package/build/app/adapterManager.js.map +7 -0
- package/build/app/adapterStartMenuSend.js +59 -0
- package/build/app/adapterStartMenuSend.js.map +7 -0
- package/build/app/backMenu.js +110 -0
- package/build/app/backMenu.js.map +7 -0
- package/build/app/botAction.js +47 -0
- package/build/app/botAction.js.map +7 -0
- package/build/app/configVariables.js +56 -0
- package/build/app/configVariables.js.map +7 -0
- package/build/app/connection.js +42 -0
- package/build/app/connection.js.map +7 -0
- package/build/app/createState.js +42 -0
- package/build/app/createState.js.map +7 -0
- package/build/app/dynamicSwitch.js +69 -0
- package/build/app/dynamicSwitch.js.map +7 -0
- package/build/app/dynamicSwitchMenu.js +69 -0
- package/build/app/dynamicSwitchMenu.js.map +7 -0
- package/build/app/dynamicValue.js +80 -0
- package/build/app/dynamicValue.js.map +7 -0
- package/build/app/echarts.js +60 -0
- package/build/app/echarts.js.map +7 -0
- package/build/app/getstate.js +148 -0
- package/build/app/getstate.js.map +7 -0
- package/build/app/global.js +2 -0
- package/build/app/global.js.map +7 -0
- package/build/app/httpRequest.js +84 -0
- package/build/app/httpRequest.js.map +7 -0
- package/build/app/jsonTable.js +158 -0
- package/build/app/jsonTable.js.map +7 -0
- package/build/app/logging.js +46 -0
- package/build/app/logging.js.map +7 -0
- package/build/app/messageIds.js +116 -0
- package/build/app/messageIds.js.map +7 -0
- package/build/app/processData.js +198 -0
- package/build/app/processData.js.map +7 -0
- package/build/app/sendNav.js +49 -0
- package/build/app/sendNav.js.map +7 -0
- package/build/app/sendpic.js +95 -0
- package/build/app/sendpic.js.map +7 -0
- package/build/app/sentry.js +43 -0
- package/build/app/sentry.js.map +7 -0
- package/build/app/setStateIdsToListenTo.js +42 -0
- package/build/app/setStateIdsToListenTo.js.map +7 -0
- package/build/app/setstate.js +145 -0
- package/build/app/setstate.js.map +7 -0
- package/build/app/shoppingList.js +97 -0
- package/build/app/shoppingList.js.map +7 -0
- package/build/app/subMenu.js +281 -0
- package/build/app/subMenu.js.map +7 -0
- package/build/app/subscribeStates.js +41 -0
- package/build/app/subscribeStates.js.map +7 -0
- package/build/app/telegram.js +131 -0
- package/build/app/telegram.js.map +7 -0
- package/build/app/validateMenus.js +64 -0
- package/build/app/validateMenus.js.map +7 -0
- package/build/build/src/app/action.js +447 -0
- package/build/build/src/app/adapterStartMenuSend.js +37 -0
- package/build/build/src/app/backMenu.js +70 -0
- package/build/build/src/app/botAction.js +25 -0
- package/build/build/src/app/connection.js +19 -0
- package/build/build/src/app/createState.js +19 -0
- package/build/build/src/app/dynamicSwitch.js +51 -0
- package/build/build/src/app/dynamicValue.js +64 -0
- package/build/build/src/app/echarts.js +45 -0
- package/build/build/src/app/getstate.js +157 -0
- package/build/build/src/app/global.js +59 -0
- package/build/build/src/app/httpRequest.js +64 -0
- package/build/build/src/app/jsonTable.js +147 -0
- package/build/build/src/app/logging.js +13 -0
- package/build/build/src/app/messageIds.js +88 -0
- package/build/build/src/app/processData.js +208 -0
- package/build/build/src/app/sendNav.js +30 -0
- package/build/build/src/app/sendpic.js +69 -0
- package/build/build/src/app/setstate.js +126 -0
- package/build/build/src/app/shoppingList.js +72 -0
- package/build/build/src/app/subMenu.js +361 -0
- package/build/build/src/app/subscribeStates.js +25 -0
- package/build/build/src/app/telegram.js +101 -0
- package/build/build/src/lib/string.js +28 -0
- package/build/build/src/lib/time.js +23 -0
- package/build/build/src/lib/utilities.js +263 -0
- package/build/build/src/lib/utils.js +13 -0
- package/build/build/src/main.js +402 -0
- package/build/config/config.js +134 -0
- package/build/config/config.js.map +7 -0
- package/build/io-package.json +87 -87
- package/build/lib/action.js +1 -3
- package/build/lib/action.js.map +2 -2
- package/build/lib/adapterStartMenuSend.js.map +1 -1
- package/build/lib/appUtils.js +158 -0
- package/build/lib/appUtils.js.map +7 -0
- package/build/lib/appUtilsString.js +37 -0
- package/build/lib/appUtilsString.js.map +7 -0
- package/build/lib/backMenu.js.map +2 -2
- package/build/lib/botAction.js.map +1 -1
- package/build/lib/dynamicSwitch.js.map +1 -1
- package/build/lib/dynamicValue.js.map +1 -1
- package/build/lib/echarts.js.map +1 -1
- package/build/lib/getstate.js.map +1 -1
- package/build/lib/global.js.map +1 -1
- package/build/lib/httpRequest.js.map +1 -1
- package/build/lib/json.js +54 -0
- package/build/lib/json.js.map +7 -0
- package/build/lib/jsonTable.js.map +1 -1
- package/build/lib/math.js +41 -0
- package/build/lib/math.js.map +7 -0
- package/build/lib/messageIds.js.map +1 -1
- package/build/lib/object.js +35 -0
- package/build/lib/object.js.map +7 -0
- package/build/lib/processData.js +4 -18
- package/build/lib/processData.js.map +3 -3
- package/build/lib/sendNav.js.map +1 -1
- package/build/lib/sendpic.js +23 -22
- package/build/lib/sendpic.js.map +2 -2
- package/build/lib/setstate.js.map +1 -1
- package/build/lib/shoppingList.js.map +1 -1
- package/build/lib/splitValues.js +63 -0
- package/build/lib/splitValues.js.map +7 -0
- package/build/lib/string.js +125 -3
- package/build/lib/string.js.map +2 -2
- package/build/lib/subMenu.js +1 -2
- package/build/lib/subMenu.js.map +2 -2
- package/build/lib/subscribeStates.js.map +1 -1
- package/build/lib/telegram.js.map +1 -1
- package/build/lib/time.js +93 -0
- package/build/lib/time.js.map +7 -0
- package/build/lib/utilities.js +84 -281
- package/build/lib/utilities.js.map +3 -3
- package/build/lib/utils.js +66 -0
- package/build/lib/utils.js.map +7 -0
- package/build/main.js +151 -233
- package/build/main.js.map +3 -3
- package/build/src/app/action.js +239 -0
- package/build/src/app/action.js.map +1 -0
- package/build/src/app/adapterManager.js +12 -0
- package/build/src/app/adapterManager.js.map +1 -0
- package/build/src/app/adapterStartMenuSend.js +36 -0
- package/build/src/app/adapterStartMenuSend.js.map +1 -0
- package/build/src/app/backMenu.js +81 -0
- package/build/src/app/backMenu.js.map +1 -0
- package/build/src/app/botAction.js +25 -0
- package/build/src/app/botAction.js.map +1 -0
- package/build/src/app/configVariables.js +32 -0
- package/build/src/app/configVariables.js.map +1 -0
- package/build/src/app/connection.js +20 -0
- package/build/src/app/connection.js.map +1 -0
- package/build/src/app/createState.js +19 -0
- package/build/src/app/createState.js.map +1 -0
- package/build/src/app/dynamicSwitch.js +52 -0
- package/build/src/app/dynamicSwitch.js.map +1 -0
- package/build/src/app/dynamicSwitchMenu.js +52 -0
- package/build/src/app/dynamicSwitchMenu.js.map +1 -0
- package/build/src/app/dynamicValue.js +52 -0
- package/build/src/app/dynamicValue.js.map +1 -0
- package/build/src/app/echarts.js +33 -0
- package/build/src/app/echarts.js.map +1 -0
- package/build/src/app/getstate.js +122 -0
- package/build/src/app/getstate.js.map +1 -0
- package/build/src/app/global.js +8 -0
- package/build/src/app/global.js.map +1 -0
- package/build/src/app/httpRequest.js +55 -0
- package/build/src/app/httpRequest.js.map +1 -0
- package/build/src/app/jsonTable.js +147 -0
- package/build/src/app/jsonTable.js.map +1 -0
- package/build/src/app/logging.js +22 -0
- package/build/src/app/logging.js.map +1 -0
- package/build/src/app/messageIds.js +89 -0
- package/build/src/app/messageIds.js.map +1 -0
- package/build/src/app/processData.js +153 -0
- package/build/src/app/processData.js.map +1 -0
- package/build/src/app/sendNav.js +26 -0
- package/build/src/app/sendNav.js.map +1 -0
- package/build/src/app/sendpic.js +66 -0
- package/build/src/app/sendpic.js.map +1 -0
- package/build/src/app/sentry.js +18 -0
- package/build/src/app/sentry.js.map +1 -0
- package/build/src/app/setStateIdsToListenTo.js +17 -0
- package/build/src/app/setStateIdsToListenTo.js.map +1 -0
- package/build/src/app/setstate.js +114 -0
- package/build/src/app/setstate.js.map +1 -0
- package/build/src/app/shoppingList.js +74 -0
- package/build/src/app/shoppingList.js.map +1 -0
- package/build/src/app/subMenu.js +237 -0
- package/build/src/app/subMenu.js.map +1 -0
- package/build/src/app/subscribeStates.js +17 -0
- package/build/src/app/subscribeStates.js.map +1 -0
- package/build/src/app/telegram.js +83 -0
- package/build/src/app/telegram.js.map +1 -0
- package/build/src/app/validateMenus.js +30 -0
- package/build/src/app/validateMenus.js.map +1 -0
- package/build/src/config/config.js +100 -0
- package/build/src/config/config.js.map +1 -0
- package/build/src/lib/appUtils.js +126 -0
- package/build/src/lib/appUtils.js.map +1 -0
- package/build/src/lib/appUtilsString.js +13 -0
- package/build/src/lib/appUtilsString.js.map +1 -0
- package/build/src/lib/json.js +37 -0
- package/build/src/lib/json.js.map +1 -0
- package/build/src/lib/math.js +17 -0
- package/build/src/lib/math.js.map +1 -0
- package/build/src/lib/object.js +10 -0
- package/build/src/lib/object.js.map +1 -0
- package/build/src/lib/splitValues.js +35 -0
- package/build/src/lib/splitValues.js.map +1 -0
- package/build/src/lib/string.js +121 -0
- package/build/src/lib/string.js.map +1 -0
- package/build/src/lib/time.js +57 -0
- package/build/src/lib/time.js.map +1 -0
- package/build/src/lib/utilities.js +111 -0
- package/build/src/lib/utilities.js.map +1 -0
- package/build/src/lib/utils.js +37 -0
- package/build/src/lib/utils.js.map +1 -0
- package/build/src/main.js +332 -0
- package/build/src/main.js.map +1 -0
- package/build/src/test/setup.js +12 -0
- package/build/src/test/setup.js.map +1 -0
- package/build/src/types/types.js +3 -0
- package/build/src/types/types.js.map +1 -0
- package/build/test/integration.js +0 -1
- package/build/test/integration.js.map +1 -1
- package/build/test/mocha.setup.js +0 -1
- package/build/test/mocha.setup.js.map +1 -1
- package/build/test/package.js +0 -1
- package/build/test/package.js.map +1 -1
- package/build/test/setup.js +12 -0
- package/build/test/setup.js.map +1 -0
- package/build/test/test/appUtils.test.js +507 -0
- package/build/test/test/appUtils.test.js.map +1 -0
- package/build/test/test/appUtilsString.test.js +16 -0
- package/build/test/test/appUtilsString.test.js.map +1 -0
- package/build/test/test/math.test.js +33 -0
- package/build/test/test/math.test.js.map +1 -0
- package/build/test/test/object.test.js +54 -0
- package/build/test/test/object.test.js.map +1 -0
- package/build/test/test/string.test.js +361 -0
- package/build/test/test/string.test.js.map +1 -0
- package/build/test/test/time.test.js +201 -0
- package/build/test/test/time.test.js.map +1 -0
- package/build/test/test/utils.test.js +115 -0
- package/build/test/test/utils.test.js.map +1 -0
- package/build/types/types.js +15 -0
- package/build/types/types.js.map +3 -3
- package/io-package.json +19 -14
- package/package.json +14 -10
- package/build/main.test.js +0 -24
- package/build/main.test.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/getstate.ts"],
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, getValueToExchange, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`TextToSend: ${modifiedTextToSend} val: ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const {\n newValue: _val,\n textToSend: _text,\n error,\n } = getValueToExchange(adapter, modifiedTextToSend, modifiedStateVal);\n\n modifiedStateVal = String(_val);\n modifiedTextToSend = _text;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n const isNewline = getNewline(newline);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend.includes(config.rowSplitter)\n ? `${modifiedTextToSend.replace(config.rowSplitter, modifiedStateVal.toString())}${isNewline}`\n : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;\n });\n await Promise.all(promises);\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsD;AACtD,oBAA0C;AAC1C,uBAAgE;AAChE,uBAAgC;AAChC,mBAA0B;AAC1B,kBAAwB;AAExB,kBAAsC;AACtC,oBAAyF;AACzF,sBAAsC;AACtC,oBAAuB;AACvB,qBAA4B;AAE5B,eAAsB,SAAS,MAAY,YAAoB,gBAA+C;AAb9G;AAcI,MAAI;AACA,UAAM,cAAa,UAAK,YAAL,mBAAe,GAAG;AACrC,UAAM,4BAAsC,CAAC;AAC7C,UAAM,YAAY,KAAK,WAAW,CAAC,GAAG,IAAI,OAAO,EAAE,SAAS,MAAM,GAAG,GAAG,UAAyB;AAjBzG,UAAAA;AAkBY,0BAAQ,IAAI,MAAM,iBAAiB,EAAE,EAAE;AAEvC,UAAI,GAAG,SAAS,qBAAO,gBAAgB,GAAG;AACtC,kBAAM,4BAAa;AAAA,UACf,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD;AAAA,MACJ;AAEA,UAAI,KAAK,SAAS,qBAAO,QAAQ,KAAK,GAAG;AACrC,kBAAM,2BAAY,MAAM,YAAY,gBAAgB,UAAU;AAC9D;AAAA,MACJ;AAEA,YAAM,QAAQ,MAAM,oBAAQ,qBAAqB,EAAE;AAEnD,UAAI,KAAC,wBAAU,KAAK,GAAG;AACnB,4BAAQ,IAAI,MAAM,qBAAqB;AACvC,kCAA0B,KAAK,IAAI;AACnC,eAAO,QAAQ,QAAQ;AAAA,MAC3B;AAEA,YAAM,iBAAa,8BAAcA,MAAA,MAAM,QAAN,gBAAAA,IAAW,UAAU;AAEtD,UAAI,mBAAmB;AACvB,UAAI,qBAAqB;AAEzB,UAAI,KAAK,SAAS,qBAAO,UAAU,EAAE,KAAK,KAAK,SAAS,qBAAO,UAAU,EAAE,GAAG;AAC1E,6BAAqB,UAAM,kCAAgB,MAAM,EAAE;AACnD,2BAAmB;AAAA,MACvB;AAEA,UAAI,mBAAmB,SAAS,qBAAO,IAAI,GAAG;AAC1C,iCAAqB,mCAAsB,oBAAoB,UAAU;AACzE,2BAAmB;AAAA,MACvB;AAEA,UAAI,mBAAmB,SAAS,qBAAO,KAAK,KAAK,GAAG;AAChD,cAAM,EAAE,YAAY,YAAY,OAAAC,OAAM,QAAI,2BAAU,oBAAoB,kBAAkB,mBAAO;AACjG,YAAI,CAACA,QAAO;AACR,+BAAqB;AACrB,6BAAmB;AAEnB,8BAAQ,IAAI,MAAM,eAAe,kBAAkB,SAAS,gBAAgB,EAAE;AAAA,QAClF;AAAA,MACJ;AAEA,UAAI,mBAAmB,SAAS,qBAAO,MAAM,KAAK,GAAG;AACjD,cAAM,EAAE,OAAAA,QAAO,MAAAC,OAAM,aAAa,QAAI,4BAAW,OAAO,gBAAgB,GAAG,kBAAkB;AAC7F,YAAI,CAACD,QAAO;AACR,8BAAQ,IAAI,MAAM,oBAAgB,0BAAW,gBAAgB,CAAC,WAAO,0BAAW,YAAY,CAAC,EAAE;AAC/F,6BAAmB;AACnB,+BAAqBC;AAAA,QACzB;AAAA,MACJ;AAEA,UAAI,mBAAmB,SAAS,qBAAO,KAAK,KAAK,GAAG;AAChD,cAAM,EAAE,UAAU,QAAI,6BAAc,oBAAoB,qBAAO,KAAK,OAAO,qBAAO,KAAK,GAAG;AAE1F,YAAI,UAAU,SAAS,qBAAO,KAAK,SAAS,GAAG;AAC3C,gBAAM,aAAS,0CAAwB,YAAY,kBAAkB;AACrE,cAAI,QAAQ;AACR,sBAAM,gCAAe;AAAA,cACjB;AAAA,cACA,YAAY;AAAA,cACZ;AAAA,cACA;AAAA,YACJ,CAAC;AACD;AAAA,UACJ;AACA,8BAAQ,IAAI,MAAM,4BAA4B;AAAA,QAClD,OAAO;AACH,gBAAM,aAAS,yCAAuB,YAAY,oBAAoB,IAAI,UAAU;AACpF,cAAI,cAAc,WAAW,SAAS,GAAG;AACrC,gBAAI,UAAU,OAAO,QAAQ,OAAO,UAAU;AAC1C,yDAAsB,YAAY,OAAO,MAAM,OAAO,UAAU,gBAAgB,UAAU;AAAA,YAC9F;AACA;AAAA,UACJ;AACA,oBAAM,gCAAe;AAAA,YACjB;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,UACJ,CAAC;AACD,8BAAQ,IAAI,MAAM,qBAAqB;AACvC;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM;AAAA,QACF,UAAU;AAAA,QACV,YAAY;AAAA,QACZ;AAAA,MACJ,QAAI,kCAAmB,qBAAS,oBAAoB,gBAAgB;AAEpE,yBAAmB,OAAO,IAAI;AAC9B,2BAAqB;AAErB,0BAAQ,IAAI,MAAM,CAAC,QAAQ,qBAAqB,kBAAkB,KAAK,WAAW;AAElF,YAAM,gBAAY,0BAAW,OAAO;AAEpC,gCAA0B,KAAK,IAAI,mBAAmB,SAAS,qBAAO,WAAW,IAC3E,GAAG,mBAAmB,QAAQ,qBAAO,aAAa,iBAAiB,SAAS,CAAC,CAAC,GAAG,SAAS,KAC1F,GAAG,kBAAkB,IAAI,gBAAgB,IAAI,SAAS;AAAA,IAChE,CAAC;AACD,UAAM,QAAQ,IAAI,QAAQ;AAC1B,cAAM,gCAAe;AAAA,MACjB;AAAA,MACA,YAAY,0BAA0B,KAAK,EAAE;AAAA,MAC7C;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL,SAAS,OAAY;AACjB,oCAAY,kBAAkB,OAAO,mBAAO;AAAA,EAChD;AACJ;",
|
|
6
|
+
"names": ["_a", "error", "text"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var httpRequest_exports = {};
|
|
30
|
+
__export(httpRequest_exports, {
|
|
31
|
+
httpRequest: () => httpRequest
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(httpRequest_exports);
|
|
34
|
+
var import_axios = __toESM(require("axios"));
|
|
35
|
+
var import_telegram = require("./telegram");
|
|
36
|
+
var import_path = __toESM(require("path"));
|
|
37
|
+
var import_fs = __toESM(require("fs"));
|
|
38
|
+
var import_logging = require("./logging");
|
|
39
|
+
var import_utils = require("../lib/utils");
|
|
40
|
+
var import_main = require("../main");
|
|
41
|
+
async function httpRequest(parts, userToSend, telegramParams, directoryPicture) {
|
|
42
|
+
if (!parts.httpRequest) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
for (const { url, password, user: username, filename } of parts.httpRequest) {
|
|
46
|
+
import_main.adapter.log.debug(`URL: ${url}`);
|
|
47
|
+
try {
|
|
48
|
+
const response = await (0, import_axios.default)(
|
|
49
|
+
username && password ? {
|
|
50
|
+
method: "get",
|
|
51
|
+
url,
|
|
52
|
+
responseType: "arraybuffer",
|
|
53
|
+
auth: {
|
|
54
|
+
username,
|
|
55
|
+
password
|
|
56
|
+
}
|
|
57
|
+
} : {
|
|
58
|
+
method: "get",
|
|
59
|
+
url,
|
|
60
|
+
responseType: "arraybuffer"
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
if (!(0, import_utils.validateDirectory)(import_main.adapter, directoryPicture)) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const imagePath = import_path.default.join(directoryPicture, filename);
|
|
67
|
+
import_fs.default.writeFileSync(imagePath, Buffer.from(response.data), "binary");
|
|
68
|
+
import_main.adapter.log.debug(`Pic saved: ${imagePath}`);
|
|
69
|
+
await (0, import_telegram.sendToTelegram)({
|
|
70
|
+
userToSend,
|
|
71
|
+
textToSend: imagePath,
|
|
72
|
+
telegramParams
|
|
73
|
+
});
|
|
74
|
+
} catch (e) {
|
|
75
|
+
(0, import_logging.errorLogger)("Error http request:", e, import_main.adapter);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
+
0 && (module.exports = {
|
|
82
|
+
httpRequest
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=httpRequest.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/httpRequest.ts"],
|
|
4
|
+
"sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { validateDirectory } from '../lib/utils';\nimport { adapter } from '../main';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const { url, password, user: username, filename } of parts.httpRequest) {\n adapter.log.debug(`URL: ${url}`);\n\n try {\n //prettier-ignore\n\n const response = await axios(\n username && password\n ? {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n auth: {\n username,\n password,\n },\n }\n : {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n },\n );\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n adapter.log.debug(`Pic saved: ${imagePath}`);\n\n await sendToTelegram({\n userToSend,\n textToSend: imagePath,\n telegramParams,\n });\n } catch (e: any) {\n errorLogger('Error http request:', e, adapter);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA4B;AAE5B,mBAAkC;AAClC,kBAAwB;AAExB,eAAe,YACX,OACA,YACA,gBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,EAAE,KAAK,UAAU,MAAM,UAAU,SAAS,KAAK,MAAM,aAAa;AACzE,wBAAQ,IAAI,MAAM,QAAQ,GAAG,EAAE;AAE/B,QAAI;AAGA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,IACA;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACV;AAEA,UAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,QAAQ;AAEtD,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,0BAAQ,IAAI,MAAM,cAAc,SAAS,EAAE;AAE3C,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,sCAAY,uBAAuB,GAAG,mBAAO;AAAA,IACjD;AAAA,EACJ;AACA,SAAO;AACX;",
|
|
6
|
+
"names": ["axios", "path", "fs"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var jsonTable_exports = {};
|
|
20
|
+
__export(jsonTable_exports, {
|
|
21
|
+
createKeyboardFromJson: () => createKeyboardFromJson,
|
|
22
|
+
createTextTableFromJson: () => createTextTableFromJson
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(jsonTable_exports);
|
|
25
|
+
var import_logging = require("./logging");
|
|
26
|
+
var import_main = require("../main");
|
|
27
|
+
var import_string = require("../lib/string");
|
|
28
|
+
var import_json = require("../lib/json");
|
|
29
|
+
const lastText = {};
|
|
30
|
+
const createKeyboardFromJson = (val, text, id, user) => {
|
|
31
|
+
try {
|
|
32
|
+
if (text) {
|
|
33
|
+
lastText[user] = text;
|
|
34
|
+
} else {
|
|
35
|
+
text = lastText[user];
|
|
36
|
+
}
|
|
37
|
+
const { substring } = (0, import_string.decomposeText)(text, "{json:", "}");
|
|
38
|
+
const array = substring.split(";");
|
|
39
|
+
const headline = array[2];
|
|
40
|
+
const itemArray = array[1].replace("[", "").replace("]", "").replace(/"/g, "").split(",");
|
|
41
|
+
let idShoppingList = false;
|
|
42
|
+
if (array.length > 3 && array[3] == "shoppinglist") {
|
|
43
|
+
idShoppingList = true;
|
|
44
|
+
}
|
|
45
|
+
const { validJson, error } = (0, import_json.makeValidJson)(val, import_main.adapter);
|
|
46
|
+
import_main.adapter.log.debug(`Val: ${validJson} with type: ${typeof val}`);
|
|
47
|
+
if (error) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const { json, isValidJson } = (0, import_string.parseJSON)(validJson, import_main.adapter);
|
|
51
|
+
if (!isValidJson) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const keyboard = { inline_keyboard: [] };
|
|
55
|
+
json.forEach((element, index) => {
|
|
56
|
+
const firstRow = [];
|
|
57
|
+
const rowArray = [];
|
|
58
|
+
itemArray.forEach((item) => {
|
|
59
|
+
if (index == 0) {
|
|
60
|
+
const btnText = item.split(":")[1];
|
|
61
|
+
if (btnText.length > 0) {
|
|
62
|
+
firstRow.push({ text: btnText, callback_data: "1" });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (idShoppingList) {
|
|
66
|
+
const value = element.buttondelete;
|
|
67
|
+
const valueDeleteLinkArray = (0, import_string.decomposeText)(value, "('", "')").substring.replace("('", "").replace(",true')", "").split(".");
|
|
68
|
+
const instanceAlexa = valueDeleteLinkArray[1];
|
|
69
|
+
const valueDeleteId = valueDeleteLinkArray[5];
|
|
70
|
+
const instanceShoppingListID = `${id.split(".")[1]}.${id.split(".")[2]}`;
|
|
71
|
+
rowArray.push({
|
|
72
|
+
text: element[item.split(":")[0]],
|
|
73
|
+
callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`
|
|
74
|
+
});
|
|
75
|
+
} else {
|
|
76
|
+
rowArray.push({ text: element[item.split(":")[0]], callback_data: "1" });
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (index == 0) {
|
|
80
|
+
keyboard.inline_keyboard.push(firstRow);
|
|
81
|
+
}
|
|
82
|
+
keyboard.inline_keyboard.push(rowArray);
|
|
83
|
+
});
|
|
84
|
+
import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
|
|
85
|
+
return { text: headline, keyboard };
|
|
86
|
+
} catch (err) {
|
|
87
|
+
(0, import_logging.errorLogger)("Error createKeyboardFromJson:", err, import_main.adapter);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
function createTextTableFromJson(val, textToSend) {
|
|
91
|
+
try {
|
|
92
|
+
const substring = (0, import_string.decomposeText)(textToSend, "{json:", "}").substring;
|
|
93
|
+
const array = substring.split(";");
|
|
94
|
+
const itemArray = array[1].replace("[", "").replace("]", "").replace(/"/g, "").split(",");
|
|
95
|
+
const valArray = JSON.parse(val);
|
|
96
|
+
const lengthArray = [];
|
|
97
|
+
itemArray.forEach((element) => {
|
|
98
|
+
lengthArray.push(element.split(":")[1].length);
|
|
99
|
+
});
|
|
100
|
+
valArray.forEach((element) => {
|
|
101
|
+
itemArray.forEach((item, index) => {
|
|
102
|
+
if (lengthArray[index] < element[item.split(":")[0]].toString().length) {
|
|
103
|
+
lengthArray[index] = element[item.split(":")[0]].toString().length;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
import_main.adapter.log.debug(`Length of rows: ${(0, import_string.jsonString)(lengthArray)}`);
|
|
108
|
+
const headline = array[2];
|
|
109
|
+
let textTable = textToSend.replace(substring, "").trim();
|
|
110
|
+
if (textTable != "") {
|
|
111
|
+
textTable += " \n\n";
|
|
112
|
+
}
|
|
113
|
+
textTable += ` ${headline}
|
|
114
|
+
\``;
|
|
115
|
+
const enlargeColumn = 1;
|
|
116
|
+
const reduce = lengthArray.length == 1 ? 2 : 0;
|
|
117
|
+
const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;
|
|
118
|
+
textTable += `${"-".repeat(lineLength)}
|
|
119
|
+
`;
|
|
120
|
+
valArray.forEach((element, elementIndex) => {
|
|
121
|
+
itemArray.forEach((item, index) => {
|
|
122
|
+
if (elementIndex == 0 && index == 0) {
|
|
123
|
+
textTable += "|";
|
|
124
|
+
itemArray.forEach((item2, i) => {
|
|
125
|
+
if (item2.split(":")[1].length > 0) {
|
|
126
|
+
textTable += ` ${item2.split(":")[1].toString().padEnd(lengthArray[i] + enlargeColumn, " ")}|`;
|
|
127
|
+
if (i == itemArray.length - 1) {
|
|
128
|
+
textTable += "\n";
|
|
129
|
+
textTable += `${"-".repeat(lineLength)}
|
|
130
|
+
`;
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
textTable = textTable.slice(0, -1);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
if (index == 0) {
|
|
138
|
+
textTable += "|";
|
|
139
|
+
}
|
|
140
|
+
textTable += ` ${element[item.split(":")[0]].toString().padEnd(lengthArray[index] + enlargeColumn, " ")}|`;
|
|
141
|
+
if (index == itemArray.length - 1) {
|
|
142
|
+
textTable += "\n";
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
textTable += "-".repeat(lineLength);
|
|
147
|
+
textTable += "`";
|
|
148
|
+
return textTable;
|
|
149
|
+
} catch (e) {
|
|
150
|
+
(0, import_logging.errorLogger)("Error createTextTableFromJson:", e, import_main.adapter);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
154
|
+
0 && (module.exports = {
|
|
155
|
+
createKeyboardFromJson,
|
|
156
|
+
createTextTableFromJson
|
|
157
|
+
});
|
|
158
|
+
//# sourceMappingURL=jsonTable.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/jsonTable.ts"],
|
|
4
|
+
"sourcesContent": ["import { errorLogger } from './logging';\nimport type { Keyboard, KeyboardItem, LastText, ValArray } from '../types/types';\nimport { adapter } from '../main';\nimport { decomposeText, jsonString, parseJSON } from '../lib/string';\nimport { makeValidJson } from '../lib/json';\n\nconst lastText: LastText = {};\nconst createKeyboardFromJson = (\n val: string,\n text: string | null,\n id: string,\n user: string,\n): { text: string; keyboard: Keyboard } | undefined => {\n try {\n if (text) {\n lastText[user] = text;\n } else {\n text = lastText[user];\n }\n const { substring } = decomposeText(text, '{json:', '}');\n\n const array = substring.split(';');\n const headline = array[2];\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n let idShoppingList = false;\n if (array.length > 3 && array[3] == 'shoppinglist') {\n idShoppingList = true;\n }\n const { validJson, error } = makeValidJson(val, adapter);\n\n adapter.log.debug(`Val: ${validJson} with type: ${typeof val}`);\n if (error) {\n return;\n }\n\n const { json, isValidJson } = parseJSON<ValArray[]>(validJson, adapter);\n if (!isValidJson) {\n return;\n }\n\n const keyboard: Keyboard = { inline_keyboard: [] };\n\n json.forEach((element, index) => {\n const firstRow: KeyboardItem[] = [];\n const rowArray: KeyboardItem[] = [];\n itemArray.forEach(item => {\n if (index == 0) {\n const btnText: string = item.split(':')[1];\n if (btnText.length > 0) {\n firstRow.push({ text: btnText, callback_data: '1' });\n }\n }\n if (idShoppingList) {\n const value = element.buttondelete;\n const valueDeleteLinkArray = decomposeText(value, \"('\", \"')\")\n .substring.replace(\"('\", '')\n .replace(\",true')\", '')\n .split('.');\n const instanceAlexa = valueDeleteLinkArray[1];\n const valueDeleteId = valueDeleteLinkArray[5];\n\n const instanceShoppingListID = `${id.split('.')[1]}.${id.split('.')[2]}`;\n rowArray.push({\n text: element[item.split(':')[0]],\n callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`,\n });\n } else {\n rowArray.push({ text: element[item.split(':')[0]], callback_data: '1' });\n }\n });\n if (index == 0) {\n keyboard.inline_keyboard.push(firstRow);\n }\n keyboard.inline_keyboard.push(rowArray);\n });\n\n adapter.log.debug(`Keyboard: ${jsonString(keyboard)}`);\n\n return { text: headline, keyboard };\n } catch (err: any) {\n errorLogger('Error createKeyboardFromJson:', err, adapter);\n }\n};\n\nfunction createTextTableFromJson(val: string, textToSend: string): string | undefined {\n try {\n const substring = decomposeText(textToSend, '{json:', '}').substring;\n const array = substring.split(';');\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n const valArray: ValArray[] = JSON.parse(val);\n\n const lengthArray: number[] = []; // Array f\u00FCr die L\u00E4nge der Items\n\n itemArray.forEach(element => {\n lengthArray.push(element.split(':')[1].length);\n });\n valArray.forEach(element => {\n itemArray.forEach((item, index) => {\n if (lengthArray[index] < element[item.split(':')[0]].toString().length) {\n lengthArray[index] = element[item.split(':')[0]].toString().length;\n }\n });\n });\n adapter.log.debug(`Length of rows: ${jsonString(lengthArray)}`);\n const headline = array[2];\n let textTable = textToSend.replace(substring, '').trim();\n if (textTable != '') {\n textTable += ' \\n\\n';\n }\n textTable += ` ${headline} \\n\\``;\n const enlargeColumn = 1;\n const reduce = lengthArray.length == 1 ? 2 : 0;\n const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n valArray.forEach((element, elementIndex) => {\n itemArray.forEach((item, index) => {\n // TableHead\n if (elementIndex == 0 && index == 0) {\n textTable += '|';\n itemArray.forEach((item2, i) => {\n if (item2.split(':')[1].length > 0) {\n textTable += ` ${item2\n .split(':')[1]\n .toString()\n .padEnd(lengthArray[i] + enlargeColumn, ' ')}|`;\n if (i == itemArray.length - 1) {\n textTable += '\\n';\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n }\n } else {\n textTable = textTable.slice(0, -1);\n }\n });\n }\n // TableBody\n if (index == 0) {\n textTable += '|';\n }\n textTable += ` ${element[item.split(':')[0]].toString().padEnd(lengthArray[index] + enlargeColumn, ' ')}|`;\n if (index == itemArray.length - 1) {\n textTable += '\\n';\n }\n });\n });\n // Breakline\n textTable += '-'.repeat(lineLength);\n textTable += '`';\n return textTable;\n } catch (e: any) {\n errorLogger('Error createTextTableFromJson:', e, adapter);\n }\n}\nexport { createKeyboardFromJson, createTextTableFromJson };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var logging_exports = {};
|
|
20
|
+
__export(logging_exports, {
|
|
21
|
+
errorLogger: () => errorLogger
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(logging_exports);
|
|
24
|
+
const errorLogger = (title, e, adapter) => {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
if (adapter.supportsFeature && adapter.supportsFeature("PLUGINS")) {
|
|
27
|
+
const sentryInstance = adapter.getPluginInstance("sentry");
|
|
28
|
+
if (sentryInstance) {
|
|
29
|
+
sentryInstance.getSentryObject().captureException(e);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
adapter.log.error(title);
|
|
33
|
+
adapter.log.error(`Error message: ${e.message}`);
|
|
34
|
+
adapter.log.error(`Error stack: ${e.stack}`);
|
|
35
|
+
if (e == null ? void 0 : e.response) {
|
|
36
|
+
adapter.log.error(`Server response: ${(_a = e == null ? void 0 : e.response) == null ? void 0 : _a.status}`);
|
|
37
|
+
}
|
|
38
|
+
if (e == null ? void 0 : e.response) {
|
|
39
|
+
adapter.log.error(`Server status: ${(_b = e == null ? void 0 : e.response) == null ? void 0 : _b.statusText}`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
errorLogger
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/logging.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Adapter } from '../types/types';\n\nexport const errorLogger = (title: string, e: any, adapter: Adapter): void => {\n if (adapter.supportsFeature && adapter.supportsFeature('PLUGINS')) {\n const sentryInstance = adapter.getPluginInstance('sentry');\n if (sentryInstance) {\n sentryInstance.getSentryObject().captureException(e);\n }\n }\n adapter.log.error(title);\n\n adapter.log.error(`Error message: ${e.message}`);\n adapter.log.error(`Error stack: ${e.stack}`);\n if (e?.response) {\n adapter.log.error(`Server response: ${e?.response?.status}`);\n }\n if (e?.response) {\n adapter.log.error(`Server status: ${e?.response?.statusText}`);\n }\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,cAAc,CAAC,OAAe,GAAQ,YAA2B;AAF9E;AAGI,MAAI,QAAQ,mBAAmB,QAAQ,gBAAgB,SAAS,GAAG;AAC/D,UAAM,iBAAiB,QAAQ,kBAAkB,QAAQ;AACzD,QAAI,gBAAgB;AAChB,qBAAe,gBAAgB,EAAE,iBAAiB,CAAC;AAAA,IACvD;AAAA,EACJ;AACA,UAAQ,IAAI,MAAM,KAAK;AAEvB,UAAQ,IAAI,MAAM,kBAAkB,EAAE,OAAO,EAAE;AAC/C,UAAQ,IAAI,MAAM,gBAAgB,EAAE,KAAK,EAAE;AAC3C,MAAI,uBAAG,UAAU;AACb,YAAQ,IAAI,MAAM,qBAAoB,4BAAG,aAAH,mBAAa,MAAM,EAAE;AAAA,EAC/D;AACA,MAAI,uBAAG,UAAU;AACb,YAAQ,IAAI,MAAM,mBAAkB,4BAAG,aAAH,mBAAa,UAAU,EAAE;AAAA,EACjE;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var messageIds_exports = {};
|
|
20
|
+
__export(messageIds_exports, {
|
|
21
|
+
deleteMessageIds: () => deleteMessageIds,
|
|
22
|
+
saveMessageIds: () => saveMessageIds
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(messageIds_exports);
|
|
25
|
+
var import_main = require("../main");
|
|
26
|
+
var import_botAction = require("./botAction");
|
|
27
|
+
var import_logging = require("./logging");
|
|
28
|
+
var import_utils = require("../lib/utils");
|
|
29
|
+
var import_string = require("../lib/string");
|
|
30
|
+
let isDeleting = false;
|
|
31
|
+
async function saveMessageIds(state, instanceTelegram) {
|
|
32
|
+
var _a;
|
|
33
|
+
try {
|
|
34
|
+
let requestMessageId = {};
|
|
35
|
+
const requestMessageIdObj = !isDeleting ? await import_main.adapter.getStateAsync("communication.requestIds") : null;
|
|
36
|
+
isDeleting = false;
|
|
37
|
+
const requestUserIdObj = await import_main.adapter.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);
|
|
38
|
+
const request = await import_main.adapter.getForeignStateAsync(`${instanceTelegram}.communicate.request`);
|
|
39
|
+
if (!(requestUserIdObj == null ? void 0 : requestUserIdObj.val)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const { json, isValidJson } = (0, import_string.parseJSON)(String(requestMessageIdObj == null ? void 0 : requestMessageIdObj.val), import_main.adapter);
|
|
43
|
+
requestMessageId = isValidJson ? json : {};
|
|
44
|
+
const userIDValue = requestUserIdObj.val.toString();
|
|
45
|
+
if (!requestMessageId[userIDValue]) {
|
|
46
|
+
requestMessageId[userIDValue] = [];
|
|
47
|
+
}
|
|
48
|
+
if (!((_a = requestMessageId[userIDValue]) == null ? void 0 : _a.find((message) => message.id === state.val))) {
|
|
49
|
+
requestMessageId[userIDValue].push({
|
|
50
|
+
id: state.val,
|
|
51
|
+
time: Date.now(),
|
|
52
|
+
request: request == null ? void 0 : request.val
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
requestMessageId = removeOldMessageIds(requestMessageId, userIDValue);
|
|
56
|
+
await import_main.adapter.setState("communication.requestIds", JSON.stringify(requestMessageId), true);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
(0, import_logging.errorLogger)("Error saveMessageIds:", e, import_main.adapter);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function removeOldMessageIds(messages, chatID) {
|
|
62
|
+
messages[chatID] = messages[chatID].filter((message) => {
|
|
63
|
+
return message.time && message.time > Date.now() - 1e3 * 60 * 60 * 24 * 2;
|
|
64
|
+
});
|
|
65
|
+
return messages;
|
|
66
|
+
}
|
|
67
|
+
const removeMessageFromList = ({
|
|
68
|
+
element,
|
|
69
|
+
chat_id,
|
|
70
|
+
copyMessageIds
|
|
71
|
+
}) => {
|
|
72
|
+
return copyMessageIds[chat_id].filter((message) => message.id !== element.id);
|
|
73
|
+
};
|
|
74
|
+
async function deleteMessageIds(user, telegramParams, whatShouldDelete) {
|
|
75
|
+
const { telegramInstance, userListWithChatID } = telegramParams;
|
|
76
|
+
try {
|
|
77
|
+
const requestMessageIdObj = await import_main.adapter.getStateAsync("communication.requestIds");
|
|
78
|
+
const lastMessageId = await import_main.adapter.getForeignStateAsync(`${telegramInstance}.communicate.requestMessageId`);
|
|
79
|
+
if (!requestMessageIdObj || typeof requestMessageIdObj.val !== "string" || !JSON.parse(requestMessageIdObj.val)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const chat_id = (0, import_utils.getChatID)(userListWithChatID, user);
|
|
83
|
+
const { json, isValidJson } = (0, import_string.parseJSON)(requestMessageIdObj.val);
|
|
84
|
+
if (!isValidJson || !chat_id) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (lastMessageId && lastMessageId.val) {
|
|
88
|
+
json[chat_id].push({ id: lastMessageId.val.toString() });
|
|
89
|
+
}
|
|
90
|
+
isDeleting = true;
|
|
91
|
+
const copyMessageIds = (0, import_utils.deepCopy)(json, import_main.adapter);
|
|
92
|
+
json[chat_id].forEach((element, index) => {
|
|
93
|
+
var _a;
|
|
94
|
+
const id = (_a = element.id) == null ? void 0 : _a.toString();
|
|
95
|
+
if (whatShouldDelete === "all" && id) {
|
|
96
|
+
(0, import_botAction.deleteMessageByBot)(telegramInstance, user, parseInt(id), chat_id);
|
|
97
|
+
}
|
|
98
|
+
if (whatShouldDelete === "last" && index === json[chat_id].length - 1 && id) {
|
|
99
|
+
(0, import_botAction.deleteMessageByBot)(telegramInstance, user, parseInt(id), chat_id);
|
|
100
|
+
}
|
|
101
|
+
if (!copyMessageIds) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
copyMessageIds[chat_id] = removeMessageFromList({ element, chat_id, copyMessageIds });
|
|
105
|
+
});
|
|
106
|
+
await import_main.adapter.setState("communication.requestIds", JSON.stringify(copyMessageIds), true);
|
|
107
|
+
} catch (e) {
|
|
108
|
+
(0, import_logging.errorLogger)("Error deleteMessageIds:", e, import_main.adapter);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
112
|
+
0 && (module.exports = {
|
|
113
|
+
deleteMessageIds,
|
|
114
|
+
saveMessageIds
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=messageIds.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/app/messageIds.ts"],
|
|
4
|
+
"sourcesContent": ["import { adapter } from '../main';\nimport { deleteMessageByBot } from './botAction';\nimport { errorLogger } from './logging';\nimport type { MessageInfos, Messages, TelegramParams, WhatShouldDelete } from '../types/types';\nimport { deepCopy, getChatID } from '../lib/utils';\nimport { parseJSON } from '../lib/string';\n\nlet isDeleting = false;\nasync function saveMessageIds(state: ioBroker.State, instanceTelegram: string): Promise<void> {\n try {\n let requestMessageId: Messages = {};\n\n const requestMessageIdObj = !isDeleting ? await adapter.getStateAsync('communication.requestIds') : null;\n\n isDeleting = false;\n const requestUserIdObj = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.requestChatId`);\n\n const request = await adapter.getForeignStateAsync(`${instanceTelegram}.communicate.request`);\n\n if (!requestUserIdObj?.val) {\n return;\n }\n const { json, isValidJson } = parseJSON<Messages>(String(requestMessageIdObj?.val), adapter);\n requestMessageId = isValidJson ? json : {};\n\n const userIDValue = requestUserIdObj.val.toString();\n if (!requestMessageId[userIDValue]) {\n requestMessageId[userIDValue] = [];\n }\n\n if (!requestMessageId[userIDValue]?.find(message => message.id === state.val)) {\n requestMessageId[userIDValue].push({\n id: state.val,\n time: Date.now(),\n request: request?.val,\n });\n }\n\n requestMessageId = removeOldMessageIds(requestMessageId, userIDValue);\n await adapter.setState('communication.requestIds', JSON.stringify(requestMessageId), true);\n } catch (e: any) {\n errorLogger('Error saveMessageIds:', e, adapter);\n }\n}\nfunction removeOldMessageIds(messages: Messages, chatID: string): Messages {\n messages[chatID] = messages[chatID].filter(message => {\n return message.time && message.time > Date.now() - 1000 * 60 * 60 * 24 * 2;\n });\n return messages;\n}\n\nconst removeMessageFromList = ({\n element,\n chat_id,\n copyMessageIds,\n}: {\n element: MessageInfos;\n chat_id: string;\n copyMessageIds: Messages;\n}): MessageInfos[] => {\n return copyMessageIds[chat_id].filter(message => message.id !== element.id);\n};\n\nasync function deleteMessageIds(\n user: string,\n telegramParams: TelegramParams,\n whatShouldDelete: WhatShouldDelete,\n): Promise<void> {\n const { telegramInstance, userListWithChatID } = telegramParams;\n try {\n const requestMessageIdObj = await adapter.getStateAsync('communication.requestIds');\n const lastMessageId = await adapter.getForeignStateAsync(`${telegramInstance}.communicate.requestMessageId`);\n\n if (\n !requestMessageIdObj ||\n typeof requestMessageIdObj.val !== 'string' ||\n !JSON.parse(requestMessageIdObj.val)\n ) {\n return;\n }\n\n const chat_id = getChatID(userListWithChatID, user);\n const { json, isValidJson } = parseJSON<Messages>(requestMessageIdObj.val);\n\n if (!isValidJson || !chat_id) {\n return;\n }\n if (lastMessageId && lastMessageId.val) {\n json[chat_id].push({ id: lastMessageId.val.toString() });\n }\n\n isDeleting = true;\n const copyMessageIds = deepCopy(json, adapter);\n json[chat_id].forEach((element, index) => {\n const id = element.id?.toString();\n if (whatShouldDelete === 'all' && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (whatShouldDelete === 'last' && index === json[chat_id].length - 1 && id) {\n deleteMessageByBot(telegramInstance, user, parseInt(id), chat_id);\n }\n if (!copyMessageIds) {\n return;\n }\n copyMessageIds[chat_id] = removeMessageFromList({ element, chat_id, copyMessageIds });\n });\n\n await adapter.setState('communication.requestIds', JSON.stringify(copyMessageIds), true);\n } catch (e: any) {\n errorLogger('Error deleteMessageIds:', e, adapter);\n }\n}\n\nexport { deleteMessageIds, saveMessageIds };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|