iobroker.telegram-menu 2.1.9 → 2.2.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 +13 -2
- package/admin/build/index.js +68 -68
- package/admin/build/index.js.map +4 -4
- package/admin/css/button.css +1 -1
- package/admin/css/custom_classes.css +116 -0
- package/admin/css/description.css +29 -0
- package/admin/css/style.css +85 -36
- package/admin/css/textarea.css +22 -20
- package/admin/i18n/de/translations.json +10 -3
- package/admin/i18n/en/translations.json +122 -115
- package/admin/i18n/es/translations.json +8 -1
- package/admin/i18n/fr/translations.json +8 -1
- package/admin/i18n/it/translations.json +8 -1
- package/admin/i18n/nl/translations.json +8 -1
- package/admin/i18n/pl/translations.json +8 -1
- package/admin/i18n/pt/translations.json +8 -1
- package/admin/i18n/ru/translations.json +8 -1
- package/admin/i18n/uk/translations.json +8 -1
- package/admin/i18n/zh-cn/translations.json +8 -1
- package/admin/words.js +6 -5
- package/build/lib/action.js +1 -1
- package/build/lib/action.js.map +1 -1
- package/build/lib/echarts.js +8 -4
- package/build/lib/echarts.js.map +2 -2
- package/build/lib/global.js +32 -2
- package/build/lib/global.js.map +3 -3
- package/build/lib/httpRequest.js +10 -5
- package/build/lib/httpRequest.js.map +2 -2
- package/build/lib/processData.js +1 -1
- package/build/lib/processData.js.map +2 -2
- package/build/lib/sendNav.js +1 -1
- package/build/lib/sendNav.js.map +1 -1
- package/build/lib/sendpic.js +6 -2
- package/build/lib/sendpic.js.map +2 -2
- package/build/lib/telegram.js +3 -1
- package/build/lib/telegram.js.map +2 -2
- package/build/main.js +31 -14
- package/build/main.js.map +2 -2
- package/io-package.json +28 -28
- package/package.json +1 -1
package/build/lib/action.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/action.ts"],
|
|
4
|
-
"sourcesContent": ["import { sendToTelegram } from './telegram.js';\nimport { decomposeText } from './global';\nimport { callSubMenu } from './subMenu.js';\nimport { sendNav } from './sendNav.js';\nimport { backMenuFunc } from './backMenu.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type {\n UserListWithChatId,\n BooleanString,\n BindingObject,\n EditArrayButtons,\n GeneratedNavMenu,\n Newline,\n NewObjectNavStructure,\n Actions,\n GenerateActionsArrayOfEntries,\n Switch,\n UserObjectActions,\n GenerateActionsNewObject,\n NewObjectNavStructureKey,\n Part,\n DataObject,\n MenuData,\n UserInGroup,\n MenusWithUsers,\n} from './telegram-menu.js';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n): Promise<void> => {\n const _this = TelegramMenu.getInstance();\n let value;\n\n try {\n const substring = decomposeText(text, 'binding:', '}').substring;\n const arrayOfItems = substring.replace('binding:{', '').replace('}', '').split(';');\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const key = item.split(':')[0];\n const id = item.split(':')[1];\n\n const result = await _this.getForeignStateAsync(id);\n if (result) {\n bindingObject.values[key] = result.val?.toString() || '';\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n value = eval(item);\n }\n }\n await sendToTelegram(\n userToSend,\n value,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nfunction calcValue(\n _this: TelegramMenu,\n textToSend: string,\n val: string,\n): { textToSend: string; val: string } | undefined {\n const { substring } = decomposeText(textToSend, '{math:', '}');\n const mathValue = substring.replace('{math:', '').replace('}', '');\n try {\n val = eval(val + mathValue);\n textToSend = textToSend.replace(substring, '');\n\n return { textToSend: textToSend, val: val };\n } catch (e: any) {\n error([\n { text: 'Error Eval:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction checkValueForOneLine(text: string): string {\n if (!text.includes('&&')) {\n return `${text}&&`;\n }\n return text;\n}\n\nfunction editArrayButtons(val: EditArrayButtons[], _this: TelegramMenu): GeneratedNavMenu[] | null {\n const newVal: GeneratedNavMenu[] = [];\n try {\n val.forEach(element => {\n let value = '';\n if (typeof element.value === 'string') {\n value = checkValueForOneLine(element.value);\n }\n let array: string[] | string[][] = [];\n if (value.indexOf('&&') != -1) {\n array = value.split('&&');\n }\n\n if (array.length > 1) {\n array.forEach(function (element, index: number) {\n if (typeof element === 'string') {\n let navArray = element.split(',');\n navArray = navArray.map(item => item.trim());\n array[index] = navArray;\n }\n });\n } else if (typeof element.value === 'string') {\n array = element.value.split(',');\n array.forEach(function (element, index: number) {\n array[index] = [element.trim()];\n });\n }\n\n newVal.push({ call: element.call, text: element.text, parse_mode: element.parse_mode, nav: array });\n });\n\n return newVal;\n } catch (err: any) {\n error([\n { text: 'Error EditArray:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nconst idBySelector = async (\n _this: TelegramMenu,\n selector: string,\n text: string,\n userToSend: string,\n newline: Newline,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): Promise<void> => {\n let text2Send = '';\n try {\n if (!selector.includes('functions')) {\n return;\n }\n\n const functions = selector.replace('functions=', '');\n let enums: string[] | undefined = [];\n const result = await _this.getEnumsAsync();\n\n if (!result || !result['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n const promises = enums.map(async (id: string) => {\n const value = await _this.getForeignStateAsync(id);\n if (value && value.val !== undefined && value.val !== null) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await _this.getForeignObjectAsync(id);\n _this.log.debug(`Name ${JSON.stringify(res?.common.name)}`);\n\n if (res && res.common.name) {\n newText = newText.replace('{common.name}', res.common.name as string);\n }\n }\n if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n if (newline === 'true') {\n text2Send += ' \\n';\n } else {\n text2Send += ' ';\n }\n _this.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(() => {\n sendToTelegram(\n userToSend,\n text2Send,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n '',\n ).catch(e => {\n error([\n { text: 'Error SendToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n debug([\n { text: 'TextToSend:', val: text2Send },\n { text: 'UserToSend:', val: userToSend },\n ]);\n })\n .catch(e => {\n error([\n { text: 'Error Promise:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n } catch (error: any) {\n error([\n { text: 'Error idBySelector:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ]);\n }\n};\n\nfunction generateNewObjectStructure(val: GeneratedNavMenu[] | null): NewObjectNavStructure | null {\n try {\n if (!val) {\n return null;\n }\n const obj: NewObjectNavStructure = {};\n val.forEach(function (element) {\n const call = element.call;\n obj[call] = {\n nav: element.nav,\n text: element.text,\n parse_mode:\n element.parse_mode == 'true' || element.parse_mode == 'false' ? element.parse_mode : 'false',\n };\n });\n return obj;\n } catch (err: any) {\n error([\n { text: 'Error GenerateNewObjectStructure:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nfunction generateActions(\n action: Actions,\n userObject: NewObjectNavStructure,\n): { obj: NewObjectNavStructure; ids: string[] } | undefined {\n try {\n const arrayOfEntries: GenerateActionsArrayOfEntries[] = [\n {\n objName: 'echarts',\n name: 'echarts',\n loop: 'preset',\n elements: [\n { name: 'preset' },\n { name: 'echartInstance' },\n { name: 'background' },\n { name: 'theme' },\n { name: 'filename' },\n ],\n },\n {\n objName: 'loc',\n name: 'location',\n loop: 'latitude',\n elements: [{ name: 'latitude' }, { name: 'longitude' }, { name: 'parse_mode', key: 0 }],\n },\n {\n objName: 'pic',\n name: 'sendPic',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'fileName' },\n { name: 'delay', value: 'picSendDelay' },\n ],\n },\n {\n objName: 'get',\n name: 'getData',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'text', type: 'text' },\n { name: 'newline', value: 'newline_checkbox' },\n { name: 'parse_mode', key: 0 },\n ],\n },\n {\n objName: 'httpRequest',\n name: 'httpRequest',\n loop: 'url',\n elements: [{ name: 'url' }, { name: 'user' }, { name: 'password' }, { name: 'filename' }],\n },\n ];\n\n const listOfSetStateIds: string[] = [];\n action.set.forEach(function (element, key) {\n if (key == 0) {\n userObject[element.trigger[0]] = { switch: [] };\n }\n userObject[element.trigger[0]] = { switch: [] };\n element.IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = element.switch_checkbox[index] === 'true';\n let value;\n\n if (element.values[index] === 'true' || element.values[index] === 'false') {\n value = element.values[index] === 'true';\n } else {\n value = element.values[index];\n }\n const newObj: Switch = {\n id: element.IDs[index],\n value: value.toString(),\n toggle: toggle,\n confirm: element.confirm[index],\n returnText: element.returnText[index],\n ack: element.ack ? element.ack[index] : 'false',\n parse_mode: element.parse_mode ? element.parse_mode[0] : 'false',\n };\n if (userObject[element.trigger[0]] && userObject[element.trigger[0]]?.switch) {\n userObject[element.trigger[0]].switch!.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n if (action[item.objName as keyof Actions]) {\n action[item.objName as keyof Actions].forEach(function (element, index: number) {\n userObject[element.trigger[0]] = { [item.name]: [] };\n if (index == 0) {\n userObject[element.trigger[0]] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (\n id: string,\n key: number,\n ) {\n const newObj: GenerateActionsNewObject = {};\n item.elements.forEach(elementItem => {\n const name = elementItem.name;\n const value = elementItem.value ? elementItem.value : elementItem.name;\n const newKey = elementItem.key ? elementItem.key : key;\n let val: string | boolean;\n\n if (!element[value as keyof typeof element]) {\n val = false;\n } else {\n val = element[value as keyof typeof element][newKey] || 'false';\n }\n\n if (elementItem.type == 'text' && typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&/g, '&') as any;\n } else {\n newObj[name as keyof GenerateActionsNewObject] = val as any;\n }\n });\n if (item.name && typeof item.name === 'string') {\n userObject[element.trigger as NewObjectNavStructureKey][item?.name as keyof Part].push(\n newObj,\n );\n }\n });\n });\n }\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n error([\n { text: 'Error generateActions:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nfunction roundValue(val: string, textToSend: string): { val: string; textToSend: string } | undefined {\n try {\n const floatedNumber = parseFloat(val);\n const { substring, textWithoutSubstring } = decomposeText(textToSend, '{round:', '}');\n\n const decimalPlaces = substring.split(':')[1].replace('}', '');\n const floatedString = floatedNumber.toFixed(parseInt(decimalPlaces));\n return { val: floatedString, textToSend: textWithoutSubstring };\n } catch (err: any) {\n error([\n { text: 'Error roundValue:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nconst exchangePlaceholderWithValue = (textToSend: string, text: string | number): string => {\n let searchString = '';\n if (textToSend.includes('&&')) {\n searchString = '&&';\n } else if (textToSend.includes('&&')) {\n searchString = '&&';\n }\n searchString !== '' && textToSend.toString().indexOf(searchString) != -1\n ? (textToSend = textToSend.replace(searchString, text.toString()))\n : (textToSend += ` ${text}`);\n\n return textToSend;\n};\n\nconst adjustValueType = (value: keyof NewObjectNavStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value as string)) {\n error([{ text: 'Error: Value is not a number:', val: value }]);\n return false;\n }\n return parseFloat(value as string);\n }\n if (valueType == 'boolean') {\n if (value == 'true') {\n return true;\n }\n error([{ text: 'Error: Value is not a boolean:', val: value }]);\n return false;\n }\n return value;\n};\n\nconst checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n usersInGroup: UserInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu] && dataObject.action[menu].events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n if ((state.val == true || state.val == 'true') && event.condition == 'true') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if ((state.val == false || state.val == 'false') && event.condition[0] == 'false') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (typeof state.val == 'number' && state.val == parseInt(event.condition[0])) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (state.val == event.condition[0]) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (ok) {\n if (menuArray.length >= 1) {\n for (const menu of menuArray) {\n if (usersInGroup[menu] && menuData.data[menu][calledNav as keyof DataObject]) {\n for (const user of usersInGroup[menu]) {\n const part = menuData.data[menu][calledNav as keyof DataObject];\n const menus = Object.keys(menuData.data);\n if (part.nav) {\n backMenuFunc(calledNav, part.nav, user);\n }\n if (part && part.nav && JSON.stringify(part?.nav[0]).includes('menu:')) {\n await callSubMenu(\n JSON.stringify(part?.nav[0]),\n menuData,\n user,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n menuData.data,\n menus,\n null,\n );\n } else {\n await sendNav(\n part,\n user,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n }\n }\n }\n }\n }\n\n return ok;\n};\n\nconst getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | null => {\n let userToSend: string | null = null;\n\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n userToSend = element.name;\n debug([\n { text: 'User and ChatID:', val: element },\n { text: 'User:', val: userToSend },\n ]);\n break;\n }\n }\n\n return userToSend;\n};\nconst getMenusWithUserToSend = (menusWithUsers: MenusWithUsers, userToSend: string): NewObjectNavStructureKey[] => {\n const menus: NewObjectNavStructureKey[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport {\n editArrayButtons,\n idBySelector,\n generateNewObjectStructure,\n generateActions,\n calcValue,\n roundValue,\n bindingFunc,\n exchangePlaceholderWithValue,\n adjustValueType,\n checkEvent,\n getUserToSendFromUserListWithChatID,\n getMenusWithUserToSend,\n};\n"],
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram } from './telegram.js';\nimport { decomposeText } from './global';\nimport { callSubMenu } from './subMenu.js';\nimport { sendNav } from './sendNav.js';\nimport { backMenuFunc } from './backMenu.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type {\n UserListWithChatId,\n BooleanString,\n BindingObject,\n EditArrayButtons,\n GeneratedNavMenu,\n Newline,\n NewObjectNavStructure,\n Actions,\n GenerateActionsArrayOfEntries,\n Switch,\n UserObjectActions,\n GenerateActionsNewObject,\n NewObjectNavStructureKey,\n Part,\n DataObject,\n MenuData,\n UserInGroup,\n MenusWithUsers,\n} from './telegram-menu.js';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n): Promise<void> => {\n const _this = TelegramMenu.getInstance();\n let value;\n\n try {\n const substring = decomposeText(text, 'binding:', '}').substring;\n const arrayOfItems = substring.replace('binding:{', '').replace('}', '').split(';');\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const key = item.split(':')[0];\n const id = item.split(':')[1];\n\n const result = await _this.getForeignStateAsync(id);\n if (result) {\n bindingObject.values[key] = result.val?.toString() || '';\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n value = eval(item);\n }\n }\n await sendToTelegram(\n userToSend,\n value,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nfunction calcValue(\n _this: TelegramMenu,\n textToSend: string,\n val: string,\n): { textToSend: string; val: string } | undefined {\n const { substring } = decomposeText(textToSend, '{math:', '}');\n const mathValue = substring.replace('{math:', '').replace('}', '');\n try {\n val = eval(val + mathValue);\n textToSend = textToSend.replace(substring, '');\n\n return { textToSend: textToSend, val: val };\n } catch (e: any) {\n error([\n { text: 'Error Eval:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction checkValueForOneLine(text: string): string {\n if (!text.includes('&&')) {\n return `${text}&&`;\n }\n return text;\n}\n\nfunction editArrayButtons(val: EditArrayButtons[], _this: TelegramMenu): GeneratedNavMenu[] | null {\n const newVal: GeneratedNavMenu[] = [];\n try {\n val.forEach(element => {\n let value = '';\n if (typeof element.value === 'string') {\n value = checkValueForOneLine(element.value);\n }\n let array: string[] | string[][] = [];\n if (value.indexOf('&&') != -1) {\n array = value.split('&&');\n }\n\n if (array.length > 1) {\n array.forEach(function (element, index: number) {\n if (typeof element === 'string') {\n let navArray = element.split(',');\n navArray = navArray.map(item => item.trim());\n array[index] = navArray;\n }\n });\n } else if (typeof element.value === 'string') {\n array = element.value.split(',');\n array.forEach(function (element, index: number) {\n array[index] = [element.trim()];\n });\n }\n\n newVal.push({ call: element.call, text: element.text, parse_mode: element.parse_mode, nav: array });\n });\n\n return newVal;\n } catch (err: any) {\n error([\n { text: 'Error EditArray:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nconst idBySelector = async (\n _this: TelegramMenu,\n selector: string,\n text: string,\n userToSend: string,\n newline: Newline,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): Promise<void> => {\n let text2Send = '';\n try {\n if (!selector.includes('functions')) {\n return;\n }\n\n const functions = selector.replace('functions=', '');\n let enums: string[] | undefined = [];\n const result = await _this.getEnumsAsync();\n\n if (!result || !result['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n const promises = enums.map(async (id: string) => {\n const value = await _this.getForeignStateAsync(id);\n if (value && value.val !== undefined && value.val !== null) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await _this.getForeignObjectAsync(id);\n _this.log.debug(`Name ${JSON.stringify(res?.common.name)}`);\n\n if (res && res.common.name) {\n newText = newText.replace('{common.name}', res.common.name as string);\n }\n }\n if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n if (newline === 'true') {\n text2Send += ' \\n';\n } else {\n text2Send += ' ';\n }\n _this.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(() => {\n sendToTelegram(\n userToSend,\n text2Send,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n 'false',\n ).catch(e => {\n error([\n { text: 'Error SendToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n debug([\n { text: 'TextToSend:', val: text2Send },\n { text: 'UserToSend:', val: userToSend },\n ]);\n })\n .catch(e => {\n error([\n { text: 'Error Promise:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n } catch (error: any) {\n error([\n { text: 'Error idBySelector:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ]);\n }\n};\n\nfunction generateNewObjectStructure(val: GeneratedNavMenu[] | null): NewObjectNavStructure | null {\n try {\n if (!val) {\n return null;\n }\n const obj: NewObjectNavStructure = {};\n val.forEach(function (element) {\n const call = element.call;\n obj[call] = {\n nav: element.nav,\n text: element.text,\n parse_mode:\n element.parse_mode == 'true' || element.parse_mode == 'false' ? element.parse_mode : 'false',\n };\n });\n return obj;\n } catch (err: any) {\n error([\n { text: 'Error GenerateNewObjectStructure:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nfunction generateActions(\n action: Actions,\n userObject: NewObjectNavStructure,\n): { obj: NewObjectNavStructure; ids: string[] } | undefined {\n try {\n const arrayOfEntries: GenerateActionsArrayOfEntries[] = [\n {\n objName: 'echarts',\n name: 'echarts',\n loop: 'preset',\n elements: [\n { name: 'preset' },\n { name: 'echartInstance' },\n { name: 'background' },\n { name: 'theme' },\n { name: 'filename' },\n ],\n },\n {\n objName: 'loc',\n name: 'location',\n loop: 'latitude',\n elements: [{ name: 'latitude' }, { name: 'longitude' }, { name: 'parse_mode', key: 0 }],\n },\n {\n objName: 'pic',\n name: 'sendPic',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'fileName' },\n { name: 'delay', value: 'picSendDelay' },\n ],\n },\n {\n objName: 'get',\n name: 'getData',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'text', type: 'text' },\n { name: 'newline', value: 'newline_checkbox' },\n { name: 'parse_mode', key: 0 },\n ],\n },\n {\n objName: 'httpRequest',\n name: 'httpRequest',\n loop: 'url',\n elements: [{ name: 'url' }, { name: 'user' }, { name: 'password' }, { name: 'filename' }],\n },\n ];\n\n const listOfSetStateIds: string[] = [];\n action.set.forEach(function (element, key) {\n if (key == 0) {\n userObject[element.trigger[0]] = { switch: [] };\n }\n userObject[element.trigger[0]] = { switch: [] };\n element.IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = element.switch_checkbox[index] === 'true';\n let value;\n\n if (element.values[index] === 'true' || element.values[index] === 'false') {\n value = element.values[index] === 'true';\n } else {\n value = element.values[index];\n }\n const newObj: Switch = {\n id: element.IDs[index],\n value: value.toString(),\n toggle: toggle,\n confirm: element.confirm[index],\n returnText: element.returnText[index],\n ack: element.ack ? element.ack[index] : 'false',\n parse_mode: element.parse_mode ? element.parse_mode[0] : 'false',\n };\n if (userObject[element.trigger[0]] && userObject[element.trigger[0]]?.switch) {\n userObject[element.trigger[0]].switch!.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n if (action[item.objName as keyof Actions]) {\n action[item.objName as keyof Actions].forEach(function (element, index: number) {\n userObject[element.trigger[0]] = { [item.name]: [] };\n if (index == 0) {\n userObject[element.trigger[0]] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (\n id: string,\n key: number,\n ) {\n const newObj: GenerateActionsNewObject = {};\n item.elements.forEach(elementItem => {\n const name = elementItem.name;\n const value = elementItem.value ? elementItem.value : elementItem.name;\n const newKey = elementItem.key ? elementItem.key : key;\n let val: string | boolean;\n\n if (!element[value as keyof typeof element]) {\n val = false;\n } else {\n val = element[value as keyof typeof element][newKey] || 'false';\n }\n\n if (elementItem.type == 'text' && typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&/g, '&') as any;\n } else {\n newObj[name as keyof GenerateActionsNewObject] = val as any;\n }\n });\n if (item.name && typeof item.name === 'string') {\n userObject[element.trigger as NewObjectNavStructureKey][item?.name as keyof Part].push(\n newObj,\n );\n }\n });\n });\n }\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n error([\n { text: 'Error generateActions:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nfunction roundValue(val: string, textToSend: string): { val: string; textToSend: string } | undefined {\n try {\n const floatedNumber = parseFloat(val);\n const { substring, textWithoutSubstring } = decomposeText(textToSend, '{round:', '}');\n\n const decimalPlaces = substring.split(':')[1].replace('}', '');\n const floatedString = floatedNumber.toFixed(parseInt(decimalPlaces));\n return { val: floatedString, textToSend: textWithoutSubstring };\n } catch (err: any) {\n error([\n { text: 'Error roundValue:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nconst exchangePlaceholderWithValue = (textToSend: string, text: string | number): string => {\n let searchString = '';\n if (textToSend.includes('&&')) {\n searchString = '&&';\n } else if (textToSend.includes('&&')) {\n searchString = '&&';\n }\n searchString !== '' && textToSend.toString().indexOf(searchString) != -1\n ? (textToSend = textToSend.replace(searchString, text.toString()))\n : (textToSend += ` ${text}`);\n\n return textToSend;\n};\n\nconst adjustValueType = (value: keyof NewObjectNavStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value as string)) {\n error([{ text: 'Error: Value is not a number:', val: value }]);\n return false;\n }\n return parseFloat(value as string);\n }\n if (valueType == 'boolean') {\n if (value == 'true') {\n return true;\n }\n error([{ text: 'Error: Value is not a boolean:', val: value }]);\n return false;\n }\n return value;\n};\n\nconst checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n usersInGroup: UserInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu] && dataObject.action[menu].events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n if ((state.val == true || state.val == 'true') && event.condition == 'true') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if ((state.val == false || state.val == 'false') && event.condition[0] == 'false') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (typeof state.val == 'number' && state.val == parseInt(event.condition[0])) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (state.val == event.condition[0]) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (ok) {\n if (menuArray.length >= 1) {\n for (const menu of menuArray) {\n if (usersInGroup[menu] && menuData.data[menu][calledNav as keyof DataObject]) {\n for (const user of usersInGroup[menu]) {\n const part = menuData.data[menu][calledNav as keyof DataObject];\n const menus = Object.keys(menuData.data);\n if (part.nav) {\n backMenuFunc(calledNav, part.nav, user);\n }\n if (part && part.nav && JSON.stringify(part?.nav[0]).includes('menu:')) {\n await callSubMenu(\n JSON.stringify(part?.nav[0]),\n menuData,\n user,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n menuData.data,\n menus,\n null,\n );\n } else {\n await sendNav(\n part,\n user,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n }\n }\n }\n }\n }\n\n return ok;\n};\n\nconst getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | null => {\n let userToSend: string | null = null;\n\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n userToSend = element.name;\n debug([\n { text: 'User and ChatID:', val: element },\n { text: 'User:', val: userToSend },\n ]);\n break;\n }\n }\n\n return userToSend;\n};\nconst getMenusWithUserToSend = (menusWithUsers: MenusWithUsers, userToSend: string): NewObjectNavStructureKey[] => {\n const menus: NewObjectNavStructureKey[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport {\n editArrayButtons,\n idBySelector,\n generateNewObjectStructure,\n generateActions,\n calcValue,\n roundValue,\n bindingFunc,\n exchangePlaceholderWithValue,\n adjustValueType,\n checkEvent,\n getUserToSendFromUserListWithChatID,\n getMenusWithUserToSend,\n};\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["TelegramMenu", "text", "val", "_this", "value", "element", "item", "userToSend", "telegramInstance", "one_time_keyboard", "resize_keyboard", "userListWithChatID", "error", "textToSend", "substring"]
|
|
7
7
|
}
|
package/build/lib/echarts.js
CHANGED
|
@@ -34,6 +34,7 @@ module.exports = __toCommonJS(echarts_exports);
|
|
|
34
34
|
var import_main = __toESM(require("../main"));
|
|
35
35
|
var import_logging = require("./logging");
|
|
36
36
|
var import_telegram = require("./telegram");
|
|
37
|
+
var import_global = require("./global");
|
|
37
38
|
function getChart(echarts, directoryPicture, user, instanceTelegram, userListWithChatID, resize_keyboard, one_time_keyboard) {
|
|
38
39
|
const _this = import_main.default.getInstance();
|
|
39
40
|
try {
|
|
@@ -41,10 +42,13 @@ function getChart(echarts, directoryPicture, user, instanceTelegram, userListWit
|
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
for (const echart of echarts) {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
45
|
+
const splitPreset = echart.preset.split(".");
|
|
46
|
+
const instanceOfEchart = `${splitPreset[0]}.${splitPreset[1]}`;
|
|
47
|
+
if (!(0, import_global.checkDirectoryIsOk)(directoryPicture)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
46
50
|
_this.sendTo(
|
|
47
|
-
|
|
51
|
+
instanceOfEchart,
|
|
48
52
|
{
|
|
49
53
|
preset: echart.preset,
|
|
50
54
|
renderer: "jpg",
|
|
@@ -62,7 +66,7 @@ function getChart(echarts, directoryPicture, user, instanceTelegram, userListWit
|
|
|
62
66
|
resize_keyboard,
|
|
63
67
|
one_time_keyboard,
|
|
64
68
|
userListWithChatID,
|
|
65
|
-
""
|
|
69
|
+
"false"
|
|
66
70
|
).catch((e) => {
|
|
67
71
|
(0, import_logging.error)([
|
|
68
72
|
{ text: "Error", val: e.message },
|
package/build/lib/echarts.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/echarts.ts"],
|
|
4
|
-
"sourcesContent": ["import TelegramMenu from '../main';\nimport { error } from './logging';\nimport { sendToTelegram } from './telegram';\nimport type { Echart, UserListWithChatId } from './telegram-menu';\nfunction getChart(\n echarts: Echart[],\n directoryPicture: string,\n user: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): void {\n const _this = TelegramMenu.getInstance();\n try {\n if (!echarts) {\n return;\n }\n for (const echart of echarts) {\n const
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,qBAAsB;AACtB,sBAA+B;AAE/B,SAAS,SACL,SACA,kBACA,MACA,kBACA,oBACA,iBACA,mBACI;AACJ,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,eAAW,UAAU,SAAS;AAC1B,YAAM,
|
|
4
|
+
"sourcesContent": ["import TelegramMenu from '../main';\nimport { error } from './logging';\nimport { sendToTelegram } from './telegram';\nimport type { Echart, UserListWithChatId } from './telegram-menu';\nimport { checkDirectoryIsOk } from './global';\n\nfunction getChart(\n echarts: Echart[],\n directoryPicture: string,\n user: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): void {\n const _this = TelegramMenu.getInstance();\n try {\n if (!echarts) {\n return;\n }\n for (const echart of echarts) {\n const splitPreset = echart.preset.split('.');\n const instanceOfEchart = `${splitPreset[0]}.${splitPreset[1]}`;\n\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n _this.sendTo(\n instanceOfEchart,\n {\n preset: echart.preset,\n renderer: 'jpg',\n background: echart.background,\n theme: echart.theme,\n quality: 1.0,\n fileOnDisk: directoryPicture + echart.filename,\n },\n (result: any) => {\n sendToTelegram(\n user,\n result.error || directoryPicture + echart.filename,\n [],\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n ).catch((e: any) => {\n error([\n { text: 'Error', val: e.message },\n { text: 'Stack', val: e.stack },\n ]);\n });\n },\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { getChart };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,qBAAsB;AACtB,sBAA+B;AAE/B,oBAAmC;AAEnC,SAAS,SACL,SACA,kBACA,MACA,kBACA,oBACA,iBACA,mBACI;AACJ,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,eAAW,UAAU,SAAS;AAC1B,YAAM,cAAc,OAAO,OAAO,MAAM,GAAG;AAC3C,YAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;AAE5D,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM;AAAA,QACF;AAAA,QACA;AAAA,UACI,QAAQ,OAAO;AAAA,UACf,UAAU;AAAA,UACV,YAAY,OAAO;AAAA,UACnB,OAAO,OAAO;AAAA,UACd,SAAS;AAAA,UACT,YAAY,mBAAmB,OAAO;AAAA,QAC1C;AAAA,QACA,CAAC,WAAgB;AACb;AAAA,YACI;AAAA,YACA,OAAO,SAAS,mBAAmB,OAAO;AAAA,YAC1C,CAAC;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ,EAAE,MAAM,CAAC,MAAW;AAChB,sCAAM;AAAA,cACF,EAAE,MAAM,SAAS,KAAK,EAAE,QAAQ;AAAA,cAChC,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM;AAAA,YAClC,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,MACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
|
|
6
6
|
"names": ["TelegramMenu"]
|
|
7
7
|
}
|
package/build/lib/global.js
CHANGED
|
@@ -18,14 +18,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var global_exports = {};
|
|
20
20
|
__export(global_exports, {
|
|
21
|
+
checkDirectoryIsOk: () => checkDirectoryIsOk,
|
|
21
22
|
decomposeText: () => decomposeText,
|
|
22
23
|
deepCopy: () => deepCopy,
|
|
23
24
|
deleteDoubleEntriesInArray: () => deleteDoubleEntriesInArray,
|
|
25
|
+
isDefined: () => isDefined,
|
|
26
|
+
isFalsy: () => isFalsy,
|
|
24
27
|
isJSON: () => isJSON,
|
|
25
28
|
isString: () => isString,
|
|
29
|
+
isTruthy: () => isTruthy,
|
|
26
30
|
replaceAll: () => replaceAll
|
|
27
31
|
});
|
|
28
32
|
module.exports = __toCommonJS(global_exports);
|
|
33
|
+
var import_logging = require("./logging");
|
|
29
34
|
function deleteDoubleEntriesInArray(arr) {
|
|
30
35
|
return arr.filter((item, index) => arr.indexOf(item) === index);
|
|
31
36
|
}
|
|
@@ -36,8 +41,8 @@ function isJSON(_string) {
|
|
|
36
41
|
try {
|
|
37
42
|
JSON.parse(_string);
|
|
38
43
|
return true;
|
|
39
|
-
} catch (
|
|
40
|
-
console.error([{ text: "Error:", val:
|
|
44
|
+
} catch (error2) {
|
|
45
|
+
console.error([{ text: "Error:", val: error2 }]);
|
|
41
46
|
return false;
|
|
42
47
|
}
|
|
43
48
|
}
|
|
@@ -63,13 +68,38 @@ const deepCopy = (obj) => {
|
|
|
63
68
|
function isString(value) {
|
|
64
69
|
return typeof value === "string";
|
|
65
70
|
}
|
|
71
|
+
function isTruthy(value) {
|
|
72
|
+
return value === "1" || value === 1 || value === true || value === "true";
|
|
73
|
+
}
|
|
74
|
+
function isFalsy(value) {
|
|
75
|
+
return ["0", 0, false, "false", void 0, null].includes(value);
|
|
76
|
+
}
|
|
77
|
+
function isDefined(value) {
|
|
78
|
+
return value !== null && value !== void 0;
|
|
79
|
+
}
|
|
80
|
+
function checkDirectoryIsOk(directory) {
|
|
81
|
+
if (["", null, void 0].includes(directory)) {
|
|
82
|
+
(0, import_logging.error)([
|
|
83
|
+
{
|
|
84
|
+
text: "Error:",
|
|
85
|
+
val: "No directory to save the picture. Please add a directory in the settings with full read and write permissions."
|
|
86
|
+
}
|
|
87
|
+
]);
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
66
92
|
// Annotate the CommonJS export names for ESM import in node:
|
|
67
93
|
0 && (module.exports = {
|
|
94
|
+
checkDirectoryIsOk,
|
|
68
95
|
decomposeText,
|
|
69
96
|
deepCopy,
|
|
70
97
|
deleteDoubleEntriesInArray,
|
|
98
|
+
isDefined,
|
|
99
|
+
isFalsy,
|
|
71
100
|
isJSON,
|
|
72
101
|
isString,
|
|
102
|
+
isTruthy,
|
|
73
103
|
replaceAll
|
|
74
104
|
});
|
|
75
105
|
//# sourceMappingURL=global.js.map
|
package/build/lib/global.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/global.ts"],
|
|
4
|
-
"sourcesContent": ["import type { DecomposeText } from './telegram-menu';\n\nfunction deleteDoubleEntriesInArray(arr: string[]): string[] {\n return arr.filter((item, index) => arr.indexOf(item) === index);\n}\n\nfunction replaceAll(text: string, searchValue: string, replaceValue: string): string {\n return text.replace(new RegExp(searchValue, 'g'), replaceValue);\n}\n\nfunction isJSON(_string: string): boolean {\n try {\n JSON.parse(_string);\n return true;\n } catch (error) {\n console.error([{ text: 'Error:', val: error }]);\n return false;\n }\n}\n\nfunction decomposeText(text: string, searchValue: string, secondValue: string): DecomposeText {\n const startindex = text.indexOf(searchValue);\n const endindex = text.indexOf(secondValue, startindex);\n const substring = text.substring(startindex, endindex + secondValue.length);\n const textWithoutSubstring = text.replace(substring, '').trim();\n return {\n startindex: startindex,\n endindex: endindex,\n substring: substring,\n textWithoutSubstring: textWithoutSubstring,\n };\n}\nexport const deepCopy = <T>(obj: T): T | undefined => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n console.error(`Error deepCopy: ${JSON.stringify(err)}`);\n }\n};\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\nexport { deleteDoubleEntriesInArray, replaceAll, isJSON, decomposeText };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import type { DecomposeText } from './telegram-menu';\nimport { error } from './logging';\n\nfunction deleteDoubleEntriesInArray(arr: string[]): string[] {\n return arr.filter((item, index) => arr.indexOf(item) === index);\n}\n\nfunction replaceAll(text: string, searchValue: string, replaceValue: string): string {\n return text.replace(new RegExp(searchValue, 'g'), replaceValue);\n}\n\nfunction isJSON(_string: string): boolean {\n try {\n JSON.parse(_string);\n return true;\n } catch (error) {\n console.error([{ text: 'Error:', val: error }]);\n return false;\n }\n}\n\nfunction decomposeText(text: string, searchValue: string, secondValue: string): DecomposeText {\n const startindex = text.indexOf(searchValue);\n const endindex = text.indexOf(secondValue, startindex);\n const substring = text.substring(startindex, endindex + secondValue.length);\n const textWithoutSubstring = text.replace(substring, '').trim();\n return {\n startindex: startindex,\n endindex: endindex,\n substring: substring,\n textWithoutSubstring: textWithoutSubstring,\n };\n}\n\nexport const deepCopy = <T>(obj: T): T | undefined => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n console.error(`Error deepCopy: ${JSON.stringify(err)}`);\n }\n};\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport { deleteDoubleEntriesInArray, replaceAll, isJSON, decomposeText };\n\nexport function isTruthy(value: string | number | boolean): boolean {\n return value === '1' || value === 1 || value === true || value === 'true';\n}\n\nexport function isFalsy(value: string | number | boolean | undefined | null): boolean {\n return ['0', 0, false, 'false', undefined, null].includes(value);\n}\n\nexport function isDefined<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\nexport function checkDirectoryIsOk(directory: string): boolean {\n if (['', null, undefined].includes(directory)) {\n error([\n {\n text: 'Error:',\n val: 'No directory to save the picture. Please add a directory in the settings with full read and write permissions.',\n },\n ]);\n return false;\n }\n return true;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAsB;AAEtB,SAAS,2BAA2B,KAAyB;AACzD,SAAO,IAAI,OAAO,CAAC,MAAM,UAAU,IAAI,QAAQ,IAAI,MAAM,KAAK;AAClE;AAEA,SAAS,WAAW,MAAc,aAAqB,cAA8B;AACjF,SAAO,KAAK,QAAQ,IAAI,OAAO,aAAa,GAAG,GAAG,YAAY;AAClE;AAEA,SAAS,OAAO,SAA0B;AACtC,MAAI;AACA,SAAK,MAAM,OAAO;AAClB,WAAO;AAAA,EACX,SAASA,QAAO;AACZ,YAAQ,MAAM,CAAC,EAAE,MAAM,UAAU,KAAKA,OAAM,CAAC,CAAC;AAC9C,WAAO;AAAA,EACX;AACJ;AAEA,SAAS,cAAc,MAAc,aAAqB,aAAoC;AAC1F,QAAM,aAAa,KAAK,QAAQ,WAAW;AAC3C,QAAM,WAAW,KAAK,QAAQ,aAAa,UAAU;AACrD,QAAM,YAAY,KAAK,UAAU,YAAY,WAAW,YAAY,MAAM;AAC1E,QAAM,uBAAuB,KAAK,QAAQ,WAAW,EAAE,EAAE,KAAK;AAC9D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEO,MAAM,WAAW,CAAI,QAA0B;AAClD,MAAI;AACA,WAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACzC,SAAS,KAAK;AACV,YAAQ,MAAM,mBAAmB,KAAK,UAAU,GAAG,CAAC,EAAE;AAAA,EAC1D;AACJ;AAEO,SAAS,SAAS,OAAiC;AACtD,SAAO,OAAO,UAAU;AAC5B;AAIO,SAAS,SAAS,OAA2C;AAChE,SAAO,UAAU,OAAO,UAAU,KAAK,UAAU,QAAQ,UAAU;AACvE;AAEO,SAAS,QAAQ,OAA8D;AAClF,SAAO,CAAC,KAAK,GAAG,OAAO,SAAS,QAAW,IAAI,EAAE,SAAS,KAAK;AACnE;AAEO,SAAS,UAAa,OAAyC;AAClE,SAAO,UAAU,QAAQ,UAAU;AACvC;AAEO,SAAS,mBAAmB,WAA4B;AAC3D,MAAI,CAAC,IAAI,MAAM,MAAS,EAAE,SAAS,SAAS,GAAG;AAC3C,8BAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,KAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
|
|
6
|
+
"names": ["error"]
|
|
7
7
|
}
|
package/build/lib/httpRequest.js
CHANGED
|
@@ -36,23 +36,25 @@ var import_telegram = require("./telegram");
|
|
|
36
36
|
var import_path = __toESM(require("path"));
|
|
37
37
|
var import_fs = __toESM(require("fs"));
|
|
38
38
|
var import_logging = require("./logging");
|
|
39
|
+
var import_global = require("./global");
|
|
39
40
|
async function httpRequest(parts, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, directoryPicture) {
|
|
40
41
|
if (!parts.httpRequest) {
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
for (const part of parts.httpRequest) {
|
|
44
45
|
const url = part.url;
|
|
45
|
-
const
|
|
46
|
+
const userName = part.user;
|
|
46
47
|
const password = part.password;
|
|
47
48
|
const method = "get";
|
|
49
|
+
(0, import_logging.debug)([{ text: "URL:", val: url }]);
|
|
48
50
|
try {
|
|
49
51
|
const response = await (0, import_axios.default)(
|
|
50
|
-
|
|
52
|
+
userName && password ? {
|
|
51
53
|
method,
|
|
52
54
|
url,
|
|
53
55
|
responseType: "arraybuffer",
|
|
54
56
|
auth: {
|
|
55
|
-
username:
|
|
57
|
+
username: userName,
|
|
56
58
|
password
|
|
57
59
|
}
|
|
58
60
|
} : {
|
|
@@ -64,18 +66,21 @@ async function httpRequest(parts, userToSend, instanceTelegram, resize_keyboard,
|
|
|
64
66
|
if (!part.filename) {
|
|
65
67
|
return;
|
|
66
68
|
}
|
|
69
|
+
if (!(0, import_global.checkDirectoryIsOk)(directoryPicture)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
67
72
|
const imagePath = import_path.default.join(directoryPicture, part.filename);
|
|
68
73
|
import_fs.default.writeFileSync(imagePath, Buffer.from(response.data), "binary");
|
|
69
74
|
(0, import_logging.debug)([{ text: "Pic saved:", val: imagePath }]);
|
|
70
75
|
await (0, import_telegram.sendToTelegram)(
|
|
71
|
-
|
|
76
|
+
userToSend,
|
|
72
77
|
imagePath,
|
|
73
78
|
[],
|
|
74
79
|
instanceTelegram,
|
|
75
80
|
resize_keyboard,
|
|
76
81
|
one_time_keyboard,
|
|
77
82
|
userListWithChatID,
|
|
78
|
-
""
|
|
83
|
+
"false"
|
|
79
84
|
);
|
|
80
85
|
} catch (e) {
|
|
81
86
|
(0, import_logging.error)([
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/httpRequest.ts"],
|
|
4
|
-
"sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { debug, error } from './logging';\nimport type { Part, UserListWithChatId } from './telegram-menu';\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const part of parts.httpRequest) {\n const url = part.url;\n const
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA6B;AAE7B,eAAe,YACX,OACA,YACA,kBACA,iBACA,mBACA,oBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,QAAQ,MAAM,aAAa;AAClC,UAAM,MAAM,KAAK;AACjB,UAAM,
|
|
4
|
+
"sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { debug, error } from './logging';\nimport type { Part, UserListWithChatId } from './telegram-menu';\nimport { checkDirectoryIsOk } from './global';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const part of parts.httpRequest) {\n const url = part.url;\n const userName = part.user;\n const password = part.password;\n const method = 'get';\n debug([{ text: 'URL:', val: url }]);\n try {\n //prettier-ignore\n const response = await axios(\n userName && password\n ? {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n auth: {\n username: userName,\n password: password,\n },\n }\n : {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n },\n );\n if (!part.filename) {\n return;\n }\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, part.filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n debug([{ text: 'Pic saved:', val: imagePath }]);\n\n await sendToTelegram(\n userToSend,\n imagePath,\n [],\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n );\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n { text: 'Server Response:', val: e.response.status },\n { text: 'Server data:', val: e.response.data },\n ]);\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,qBAA6B;AAE7B,oBAAmC;AAEnC,eAAe,YACX,OACA,YACA,kBACA,iBACA,mBACA,oBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,QAAQ,MAAM,aAAa;AAClC,UAAM,MAAM,KAAK;AACjB,UAAM,WAAW,KAAK;AACtB,UAAM,WAAW,KAAK;AACtB,UAAM,SAAS;AACf,8BAAM,CAAC,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC;AAClC,QAAI;AAEA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF,UAAU;AAAA,YACV;AAAA,UACJ;AAAA,QACJ,IACE;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACR;AACA,UAAI,CAAC,KAAK,UAAU;AAChB;AAAA,MACJ;AACA,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,KAAK,QAAQ;AAE3D,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,gCAAM,CAAC,EAAE,MAAM,cAAc,KAAK,UAAU,CAAC,CAAC;AAE9C,gBAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA,CAAC;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,SAAS,GAAQ;AACb,gCAAM;AAAA,QACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,QACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,QAC/B,EAAE,MAAM,oBAAoB,KAAK,EAAE,SAAS,OAAO;AAAA,QACnD,EAAE,MAAM,gBAAgB,KAAK,EAAE,SAAS,KAAK;AAAA,MACjD,CAAC;AAAA,IACL;AAAA,EACJ;AACA,SAAO;AACX;",
|
|
6
6
|
"names": ["axios", "path", "fs"]
|
|
7
7
|
}
|
package/build/lib/processData.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/processData.ts"],
|
|
4
|
-
"sourcesContent": ["import TelegramMenu from '../main';\nimport { sendLocationToTelegram, sendToTelegram } from './telegram';\nimport { sendNav } from './sendNav';\nimport { callSubMenu } from './subMenu';\nimport { backMenuFunc, switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { getState } from './getstate';\nimport { sendPic } from './sendpic';\nimport { getDynamicValue, removeUserFromDynamicValue } from './dynamicValue';\nimport { adjustValueType } from './action';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { getChart } from './echarts';\nimport { httpRequest } from './httpRequest';\nimport { debug, error } from './logging';\nimport type {\n CheckEveryMenuForDataType,\n IsUserActiveCheckbox,\n MenuData,\n NewObjectNavStructure,\n Part,\n ProcessDataType,\n SetStateIds,\n Timeouts,\n} from './telegram-menu';\n\nlet setStateIdsToListenTo: SetStateIds[] = [];\nlet timeouts: Timeouts[] = [];\n\nasync function checkEveryMenuForData(obj: CheckEveryMenuForDataType): Promise<boolean> {\n const {\n menuData,\n calledValue,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n } = obj;\n const _this = TelegramMenu.getInstance();\n for (const menu of menus) {\n const groupData: NewObjectNavStructure = menuData.data[menu];\n debug([\n { text: 'Nav:', val: menuData.data[menu] },\n { text: 'Menu:', val: menu },\n { text: 'Group:', val: menuData.data[menu] },\n ]);\n\n if (\n await processData({\n _this,\n menuData,\n calledValue: calledValue,\n userToSend,\n groupWithUser: menu,\n instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID,\n allMenusWithData: menuData.data,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n })\n ) {\n debug([{ text: 'CalledText found' }]);\n return true;\n }\n }\n return false;\n}\n\nasync function processData(obj: ProcessDataType): Promise<boolean | undefined> {\n const {\n _this,\n menuData,\n calledValue,\n userToSend,\n groupWithUser,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n allMenusWithData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n } = obj;\n try {\n let part: Part = {} as Part;\n let call: keyof NewObjectNavStructure = '';\n\n if (getDynamicValue(userToSend)) {\n const res = getDynamicValue(userToSend);\n let valueToSet;\n if (res && res.valueType) {\n valueToSet = adjustValueType(calledValue, res.valueType);\n } else {\n valueToSet = calledValue;\n }\n if (valueToSet) {\n await _this.setForeignStateAsync(res?.id, valueToSet, res?.ack);\n } else {\n await sendToTelegram(\n userToSend,\n `You insert a wrong Type of value, please insert type: ${res?.valueType}`,\n undefined,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n '',\n );\n }\n removeUserFromDynamicValue(userToSend);\n const result = await switchBack(userToSend, allMenusWithData, menus, true);\n\n if (result) {\n await sendToTelegram(\n userToSend,\n result.texttosend || '',\n result.menuToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n result.parseMode,\n );\n } else {\n await sendNav(\n part,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n return true;\n }\n if (calledValue.includes('menu:')) {\n call = calledValue.split(':')[2] as keyof MenuData;\n } else {\n call = calledValue as keyof NewObjectNavStructure;\n }\n part = groupData[call];\n\n if (\n typeof call === 'string' &&\n groupData &&\n part &&\n !calledValue.toString().includes('menu:') &&\n userToSend &&\n groupWithUser &&\n isUserActiveCheckbox[groupWithUser as keyof IsUserActiveCheckbox]\n ) {\n if (part.nav) {\n debug([{ text: 'Menu to Send:', val: part.nav }]);\n\n backMenuFunc(call, part.nav, userToSend);\n\n if (JSON.stringify(part.nav).includes('menu:')) {\n debug([{ text: 'Submenu' }]);\n const result = await callSubMenu(\n JSON.stringify(part.nav),\n groupData,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n setStateIdsToListenTo,\n );\n if (result && result.setStateIdsToListenTo) {\n setStateIdsToListenTo = result.setStateIdsToListenTo;\n }\n if (result && result.newNav) {\n await checkEveryMenuForData({\n menuData,\n calledValue: result.newNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n }\n } else {\n await sendNav(\n part,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n return true;\n }\n\n if (part.switch) {\n const result = await setState(\n part,\n userToSend,\n 0,\n false,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n );\n if (result) {\n setStateIdsToListenTo = result;\n }\n if (Array.isArray(setStateIdsToListenTo)) {\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: setStateIdsToListenTo });\n }\n return true;\n }\n if (part.getData) {\n getState(part, userToSend, instanceTelegram, one_time_keyboard, resize_keyboard, userListWithChatID);\n return true;\n }\n if (part.sendPic) {\n const result = sendPic(\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n token,\n directoryPicture,\n timeouts,\n timeoutKey,\n );\n if (result) {\n timeouts = result;\n } else {\n debug([{ text: 'Timeouts not found' }]);\n }\n return true;\n }\n if (part.location) {\n debug([{ text: 'Send Location' }]);\n await sendLocationToTelegram(userToSend, part.location, instanceTelegram, userListWithChatID);\n return true;\n }\n if (part.echarts) {\n debug([{ text: 'Echarts' }]);\n getChart(\n part.echarts,\n directoryPicture,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n return true;\n }\n if (part.httpRequest) {\n debug([{ text: 'HttpRequest' }]);\n const result = await httpRequest(\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n directoryPicture,\n );\n if (result) {\n return true;\n }\n }\n }\n if (\n (calledValue.startsWith('menu') || calledValue.startsWith('submenu')) &&\n menuData.data[groupWithUser][call]\n ) {\n debug([{ text: 'Call Submenu' }]);\n const result = await callSubMenu(\n calledValue,\n menuData,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n setStateIdsToListenTo,\n );\n if (result && result.setStateIdsToListenTo) {\n setStateIdsToListenTo = result.setStateIdsToListenTo;\n }\n return true;\n }\n return false;\n } catch (e: any) {\n error([\n { text: 'Error processData:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction getStateIdsToListenTo(): SetStateIds[] {\n return setStateIdsToListenTo;\n}\nfunction getTimeouts(): Timeouts[] {\n return timeouts;\n}\n\nexport { getStateIdsToListenTo, getTimeouts, checkEveryMenuForData };\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import TelegramMenu from '../main';\nimport { sendLocationToTelegram, sendToTelegram } from './telegram';\nimport { sendNav } from './sendNav';\nimport { callSubMenu } from './subMenu';\nimport { backMenuFunc, switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { getState } from './getstate';\nimport { sendPic } from './sendpic';\nimport { getDynamicValue, removeUserFromDynamicValue } from './dynamicValue';\nimport { adjustValueType } from './action';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { getChart } from './echarts';\nimport { httpRequest } from './httpRequest';\nimport { debug, error } from './logging';\nimport type {\n CheckEveryMenuForDataType,\n IsUserActiveCheckbox,\n MenuData,\n NewObjectNavStructure,\n Part,\n ProcessDataType,\n SetStateIds,\n Timeouts,\n} from './telegram-menu';\n\nlet setStateIdsToListenTo: SetStateIds[] = [];\nlet timeouts: Timeouts[] = [];\n\nasync function checkEveryMenuForData(obj: CheckEveryMenuForDataType): Promise<boolean> {\n const {\n menuData,\n calledValue,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n } = obj;\n const _this = TelegramMenu.getInstance();\n for (const menu of menus) {\n const groupData: NewObjectNavStructure = menuData.data[menu];\n debug([\n { text: 'Nav:', val: menuData.data[menu] },\n { text: 'Menu:', val: menu },\n { text: 'Group:', val: menuData.data[menu] },\n ]);\n\n if (\n await processData({\n _this,\n menuData,\n calledValue: calledValue,\n userToSend,\n groupWithUser: menu,\n instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID,\n allMenusWithData: menuData.data,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n })\n ) {\n debug([{ text: 'CalledText found' }]);\n return true;\n }\n }\n return false;\n}\n\nasync function processData(obj: ProcessDataType): Promise<boolean | undefined> {\n const {\n _this,\n menuData,\n calledValue,\n userToSend,\n groupWithUser,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n allMenusWithData,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n groupData,\n } = obj;\n try {\n let part: Part = {} as Part;\n let call: keyof NewObjectNavStructure = '';\n\n if (getDynamicValue(userToSend)) {\n const res = getDynamicValue(userToSend);\n let valueToSet;\n if (res && res.valueType) {\n valueToSet = adjustValueType(calledValue, res.valueType);\n } else {\n valueToSet = calledValue;\n }\n if (valueToSet) {\n await _this.setForeignStateAsync(res?.id, valueToSet, res?.ack);\n } else {\n await sendToTelegram(\n userToSend,\n `You insert a wrong Type of value, please insert type: ${res?.valueType}`,\n undefined,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n );\n }\n removeUserFromDynamicValue(userToSend);\n const result = await switchBack(userToSend, allMenusWithData, menus, true);\n\n if (result) {\n await sendToTelegram(\n userToSend,\n result.texttosend || '',\n result.menuToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n result.parseMode,\n );\n } else {\n await sendNav(\n part,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n return true;\n }\n if (calledValue.includes('menu:')) {\n call = calledValue.split(':')[2] as keyof MenuData;\n } else {\n call = calledValue as keyof NewObjectNavStructure;\n }\n part = groupData[call];\n\n if (\n typeof call === 'string' &&\n groupData &&\n part &&\n !calledValue.toString().includes('menu:') &&\n userToSend &&\n groupWithUser &&\n isUserActiveCheckbox[groupWithUser as keyof IsUserActiveCheckbox]\n ) {\n if (part.nav) {\n debug([{ text: 'Menu to Send:', val: part.nav }]);\n\n backMenuFunc(call, part.nav, userToSend);\n\n if (JSON.stringify(part.nav).includes('menu:')) {\n debug([{ text: 'Submenu' }]);\n const result = await callSubMenu(\n JSON.stringify(part.nav),\n groupData,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n setStateIdsToListenTo,\n );\n if (result && result.setStateIdsToListenTo) {\n setStateIdsToListenTo = result.setStateIdsToListenTo;\n }\n if (result && result.newNav) {\n await checkEveryMenuForData({\n menuData,\n calledValue: result.newNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menus,\n isUserActiveCheckbox,\n token,\n directoryPicture,\n timeoutKey,\n });\n }\n } else {\n await sendNav(\n part,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n return true;\n }\n\n if (part.switch) {\n const result = await setState(\n part,\n userToSend,\n 0,\n false,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n );\n if (result) {\n setStateIdsToListenTo = result;\n }\n if (Array.isArray(setStateIdsToListenTo)) {\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: setStateIdsToListenTo });\n }\n return true;\n }\n if (part.getData) {\n getState(part, userToSend, instanceTelegram, one_time_keyboard, resize_keyboard, userListWithChatID);\n return true;\n }\n if (part.sendPic) {\n const result = sendPic(\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n token,\n directoryPicture,\n timeouts,\n timeoutKey,\n );\n if (result) {\n timeouts = result;\n } else {\n debug([{ text: 'Timeouts not found' }]);\n }\n return true;\n }\n if (part.location) {\n debug([{ text: 'Send Location' }]);\n await sendLocationToTelegram(userToSend, part.location, instanceTelegram, userListWithChatID);\n return true;\n }\n if (part.echarts) {\n debug([{ text: 'Echarts' }]);\n getChart(\n part.echarts,\n directoryPicture,\n userToSend,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n return true;\n }\n if (part.httpRequest) {\n debug([{ text: 'HttpRequest' }]);\n const result = await httpRequest(\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n directoryPicture,\n );\n if (result) {\n return true;\n }\n }\n }\n if (\n (calledValue.startsWith('menu') || calledValue.startsWith('submenu')) &&\n menuData.data[groupWithUser][call]\n ) {\n debug([{ text: 'Call Submenu' }]);\n const result = await callSubMenu(\n calledValue,\n menuData,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n setStateIdsToListenTo,\n );\n if (result && result.setStateIdsToListenTo) {\n setStateIdsToListenTo = result.setStateIdsToListenTo;\n }\n return true;\n }\n return false;\n } catch (e: any) {\n error([\n { text: 'Error processData:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction getStateIdsToListenTo(): SetStateIds[] {\n return setStateIdsToListenTo;\n}\n\nfunction getTimeouts(): Timeouts[] {\n return timeouts;\n}\n\nexport { getStateIdsToListenTo, getTimeouts, checkEveryMenuForData };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["TelegramMenu"]
|
|
7
7
|
}
|
package/build/lib/sendNav.js
CHANGED
package/build/lib/sendNav.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/sendNav.ts"],
|
|
4
|
-
"sourcesContent": ["import { error } from 'console';\nimport { debug } from './logging';\nimport { sendToTelegram } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport type { Part, UserListWithChatId } from './telegram-menu';\n\nasync function sendNav(\n part: Part,\n userToSend: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n try {\n if (userToSend) {\n debug([{ text: 'Send Nav to Telegram' }]);\n const nav = part.nav;\n const text = await checkStatusInfo(part.text as string);\n\n await sendToTelegram(\n userToSend,\n text as string,\n nav,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part.parse_mode || '',\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error sendNav:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\nexport { sendNav };\n"],
|
|
4
|
+
"sourcesContent": ["import { error } from 'console';\nimport { debug } from './logging';\nimport { sendToTelegram } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport type { Part, UserListWithChatId } from './telegram-menu';\n\nasync function sendNav(\n part: Part,\n userToSend: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n try {\n if (userToSend) {\n debug([{ text: 'Send Nav to Telegram' }]);\n const nav = part.nav;\n const text = await checkStatusInfo(part.text as string);\n\n await sendToTelegram(\n userToSend,\n text as string,\n nav,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part.parse_mode || 'false',\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error sendNav:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { sendNav };\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;AACtB,qBAAsB;AACtB,sBAA+B;AAC/B,uBAAgC;AAGhC,eAAe,QACX,MACA,YACA,kBACA,oBACA,iBACA,mBACa;AACb,MAAI;AACA,QAAI,YAAY;AACZ,gCAAM,CAAC,EAAE,MAAM,uBAAuB,CAAC,CAAC;AACxC,YAAM,MAAM,KAAK;AACjB,YAAM,OAAO,UAAM,kCAAgB,KAAK,IAAc;AAEtD,gBAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,kBAAkB,KAAK,EAAE,QAAQ;AAAA,MACzC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/lib/sendpic.js
CHANGED
|
@@ -36,6 +36,7 @@ var import_utilities = require("./utilities");
|
|
|
36
36
|
var import_child_process = require("child_process");
|
|
37
37
|
var import_logging = require("./logging");
|
|
38
38
|
var import_main = __toESM(require("../main"));
|
|
39
|
+
var import_global = require("./global");
|
|
39
40
|
function sendPic(part, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard, userListWithChatID, token, directoryPicture, timeouts, timeoutKey) {
|
|
40
41
|
var _a;
|
|
41
42
|
try {
|
|
@@ -62,6 +63,9 @@ function sendPic(part, userToSend, instanceTelegram, resize_keyboard, one_time_k
|
|
|
62
63
|
);
|
|
63
64
|
(0, import_logging.debug)([{ text: "Delay Time:", val: element.delay }]);
|
|
64
65
|
timeoutKey += 1;
|
|
66
|
+
if (!(0, import_global.checkDirectoryIsOk)(directoryPicture)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
65
69
|
path = `${directoryPicture}${element.fileName}`;
|
|
66
70
|
(0, import_logging.debug)([{ text: "Path : ", val: path }]);
|
|
67
71
|
} else {
|
|
@@ -76,7 +80,7 @@ function sendPic(part, userToSend, instanceTelegram, resize_keyboard, one_time_k
|
|
|
76
80
|
resize_keyboard,
|
|
77
81
|
one_time_keyboard,
|
|
78
82
|
userListWithChatID,
|
|
79
|
-
""
|
|
83
|
+
"false"
|
|
80
84
|
);
|
|
81
85
|
let timeoutToClear = [];
|
|
82
86
|
timeoutToClear = timeouts.filter((item) => item.key == timeoutKey);
|
|
@@ -84,7 +88,7 @@ function sendPic(part, userToSend, instanceTelegram, resize_keyboard, one_time_k
|
|
|
84
88
|
clearTimeout(item.timeout);
|
|
85
89
|
});
|
|
86
90
|
timeouts = timeouts.filter((item) => item.key !== timeoutKey);
|
|
87
|
-
(0, import_logging.debug)([{ text: "Picture
|
|
91
|
+
(0, import_logging.debug)([{ text: "Picture sent" }]);
|
|
88
92
|
}, parseInt(element.delay));
|
|
89
93
|
if (timeout) {
|
|
90
94
|
timeouts.push({ key: timeoutKey, timeout });
|
package/build/lib/sendpic.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/sendpic.ts"],
|
|
4
|
-
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { replaceAll } from './utilities';\nimport { exec } from 'child_process';\nimport { debug, error } from './logging';\nimport TelegramMenu from '../main';\nimport type { Part, UserListWithChatId, Timeouts } from './telegram-menu';\n\nfunction sendPic(\n part: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n token: string,\n directoryPicture: string,\n timeouts: Timeouts[],\n timeoutKey: string,\n): Timeouts[] {\n try {\n part.sendPic?.forEach(element => {\n const _this = TelegramMenu.getInstance();\n let path = '';\n if (element.id != '-') {\n const url = element.id;\n const newUrl = replaceAll(url, '&', '&');\n\n exec(\n `curl -H \"Autorisation: Bearer ${token.trim()}\" \"${newUrl}\" > ${directoryPicture}${element.fileName}`,\n (error: any, stdout: any, stderr: any) => {\n if (stdout) {\n debug([{ text: 'Stdout:', val: stdout }]);\n }\n if (stderr) {\n debug([{ text: 'Stderr:', val: stderr }]);\n }\n if (error) {\n error([{ text: 'Error:', val: error }]);\n return;\n }\n },\n );\n\n debug([{ text: 'Delay Time:', val: element.delay }]);\n timeoutKey += 1;\n path = `${directoryPicture}${element.fileName}`;\n debug([{ text: 'Path : ', val: path }]);\n } else {\n return;\n }\n\n const timeout = _this.setTimeout(async () => {\n await sendToTelegram(\n userToSend,\n path,\n undefined,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n '',\n );\n let timeoutToClear: Timeouts[] = [];\n timeoutToClear = timeouts.filter(item => item.key == timeoutKey);\n timeoutToClear.forEach(item => {\n clearTimeout(item.timeout);\n });\n\n timeouts = timeouts.filter(item => item.key !== timeoutKey);\n debug([{ text: 'Picture
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAA2B;AAC3B,2BAAqB;AACrB,qBAA6B;AAC7B,kBAAyB;
|
|
4
|
+
"sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { replaceAll } from './utilities';\nimport { exec } from 'child_process';\nimport { debug, error } from './logging';\nimport TelegramMenu from '../main';\nimport type { Part, UserListWithChatId, Timeouts } from './telegram-menu';\nimport { checkDirectoryIsOk } from './global';\n\nfunction sendPic(\n part: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n token: string,\n directoryPicture: string,\n timeouts: Timeouts[],\n timeoutKey: string,\n): Timeouts[] {\n try {\n part.sendPic?.forEach(element => {\n const _this = TelegramMenu.getInstance();\n let path = '';\n if (element.id != '-') {\n const url = element.id;\n const newUrl = replaceAll(url, '&', '&');\n\n exec(\n `curl -H \"Autorisation: Bearer ${token.trim()}\" \"${newUrl}\" > ${directoryPicture}${element.fileName}`,\n (error: any, stdout: any, stderr: any) => {\n if (stdout) {\n debug([{ text: 'Stdout:', val: stdout }]);\n }\n if (stderr) {\n debug([{ text: 'Stderr:', val: stderr }]);\n }\n if (error) {\n error([{ text: 'Error:', val: error }]);\n return;\n }\n },\n );\n\n debug([{ text: 'Delay Time:', val: element.delay }]);\n timeoutKey += 1;\n\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n\n path = `${directoryPicture}${element.fileName}`;\n debug([{ text: 'Path : ', val: path }]);\n } else {\n return;\n }\n\n const timeout = _this.setTimeout(async () => {\n await sendToTelegram(\n userToSend,\n path,\n undefined,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n );\n let timeoutToClear: Timeouts[] = [];\n timeoutToClear = timeouts.filter(item => item.key == timeoutKey);\n timeoutToClear.forEach(item => {\n clearTimeout(item.timeout);\n });\n\n timeouts = timeouts.filter(item => item.key !== timeoutKey);\n debug([{ text: 'Picture sent' }]);\n }, parseInt(element.delay));\n\n if (timeout) {\n timeouts.push({ key: timeoutKey, timeout: timeout });\n }\n });\n return timeouts;\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n return timeouts;\n}\n\nexport { sendPic };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,uBAA2B;AAC3B,2BAAqB;AACrB,qBAA6B;AAC7B,kBAAyB;AAEzB,oBAAmC;AAEnC,SAAS,QACL,MACA,YACA,kBACA,iBACA,mBACA,oBACA,OACA,kBACA,UACA,YACU;AAnBd;AAoBI,MAAI;AACA,eAAK,YAAL,mBAAc,QAAQ,aAAW;AAC7B,YAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,UAAI,OAAO;AACX,UAAI,QAAQ,MAAM,KAAK;AACnB,cAAM,MAAM,QAAQ;AACpB,cAAM,aAAS,6BAAW,KAAK,SAAS,GAAG;AAE3C;AAAA,UACI,iCAAiC,MAAM,KAAK,CAAC,MAAM,MAAM,OAAO,gBAAgB,GAAG,QAAQ,QAAQ;AAAA,UACnG,CAACC,QAAY,QAAa,WAAgB;AACtC,gBAAI,QAAQ;AACR,wCAAM,CAAC,EAAE,MAAM,WAAW,KAAK,OAAO,CAAC,CAAC;AAAA,YAC5C;AACA,gBAAI,QAAQ;AACR,wCAAM,CAAC,EAAE,MAAM,WAAW,KAAK,OAAO,CAAC,CAAC;AAAA,YAC5C;AACA,gBAAIA,QAAO;AACP,cAAAA,OAAM,CAAC,EAAE,MAAM,UAAU,KAAKA,OAAM,CAAC,CAAC;AACtC;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAEA,kCAAM,CAAC,EAAE,MAAM,eAAe,KAAK,QAAQ,MAAM,CAAC,CAAC;AACnD,sBAAc;AAEd,YAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,QACJ;AAEA,eAAO,GAAG,gBAAgB,GAAG,QAAQ,QAAQ;AAC7C,kCAAM,CAAC,EAAE,MAAM,WAAW,KAAK,KAAK,CAAC,CAAC;AAAA,MAC1C,OAAO;AACH;AAAA,MACJ;AAEA,YAAM,UAAU,MAAM,WAAW,YAAY;AACzC,kBAAM;AAAA,UACF;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AACA,YAAI,iBAA6B,CAAC;AAClC,yBAAiB,SAAS,OAAO,UAAQ,KAAK,OAAO,UAAU;AAC/D,uBAAe,QAAQ,UAAQ;AAC3B,uBAAa,KAAK,OAAO;AAAA,QAC7B,CAAC;AAED,mBAAW,SAAS,OAAO,UAAQ,KAAK,QAAQ,UAAU;AAC1D,kCAAM,CAAC,EAAE,MAAM,eAAe,CAAC,CAAC;AAAA,MACpC,GAAG,SAAS,QAAQ,KAAK,CAAC;AAE1B,UAAI,SAAS;AACT,iBAAS,KAAK,EAAE,KAAK,YAAY,QAAiB,CAAC;AAAA,MACvD;AAAA,IACJ;AACA,WAAO;AAAA,EACX,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,MACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACA,SAAO;AACX;",
|
|
6
6
|
"names": ["TelegramMenu", "error"]
|
|
7
7
|
}
|
package/build/lib/telegram.js
CHANGED
|
@@ -36,6 +36,7 @@ module.exports = __toCommonJS(telegram_exports);
|
|
|
36
36
|
var import_logging = require("./logging");
|
|
37
37
|
var import_utilities = require("./utilities");
|
|
38
38
|
var import_main = __toESM(require("../main"));
|
|
39
|
+
var import_global = require("./global");
|
|
39
40
|
async function sendToTelegram(user = "", textToSend, keyboard = [], instance = "telegram.0", resize_keyboard = true, one_time_keyboard = true, userListWithChatID, parse_mode) {
|
|
40
41
|
try {
|
|
41
42
|
const _this = import_main.default.getInstance();
|
|
@@ -51,6 +52,7 @@ async function sendToTelegram(user = "", textToSend, keyboard = [], instance = "
|
|
|
51
52
|
]);
|
|
52
53
|
textToSend = (0, import_utilities.newLine)(textToSend);
|
|
53
54
|
if (keyboard.length == 0) {
|
|
55
|
+
_this.log.debug("No Keyboard");
|
|
54
56
|
_this.sendTo(
|
|
55
57
|
instance,
|
|
56
58
|
"send",
|
|
@@ -138,7 +140,7 @@ const sendLocationToTelegram = async (user, data, instance, userListWithChatID)
|
|
|
138
140
|
}
|
|
139
141
|
};
|
|
140
142
|
function getParseMode(val) {
|
|
141
|
-
if (
|
|
143
|
+
if ((0, import_global.isTruthy)(val)) {
|
|
142
144
|
return "HTML";
|
|
143
145
|
}
|
|
144
146
|
return "Markdown";
|