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.
Files changed (40) hide show
  1. package/README.md +13 -2
  2. package/admin/build/index.js +68 -68
  3. package/admin/build/index.js.map +4 -4
  4. package/admin/css/button.css +1 -1
  5. package/admin/css/custom_classes.css +116 -0
  6. package/admin/css/description.css +29 -0
  7. package/admin/css/style.css +85 -36
  8. package/admin/css/textarea.css +22 -20
  9. package/admin/i18n/de/translations.json +10 -3
  10. package/admin/i18n/en/translations.json +122 -115
  11. package/admin/i18n/es/translations.json +8 -1
  12. package/admin/i18n/fr/translations.json +8 -1
  13. package/admin/i18n/it/translations.json +8 -1
  14. package/admin/i18n/nl/translations.json +8 -1
  15. package/admin/i18n/pl/translations.json +8 -1
  16. package/admin/i18n/pt/translations.json +8 -1
  17. package/admin/i18n/ru/translations.json +8 -1
  18. package/admin/i18n/uk/translations.json +8 -1
  19. package/admin/i18n/zh-cn/translations.json +8 -1
  20. package/admin/words.js +6 -5
  21. package/build/lib/action.js +1 -1
  22. package/build/lib/action.js.map +1 -1
  23. package/build/lib/echarts.js +8 -4
  24. package/build/lib/echarts.js.map +2 -2
  25. package/build/lib/global.js +32 -2
  26. package/build/lib/global.js.map +3 -3
  27. package/build/lib/httpRequest.js +10 -5
  28. package/build/lib/httpRequest.js.map +2 -2
  29. package/build/lib/processData.js +1 -1
  30. package/build/lib/processData.js.map +2 -2
  31. package/build/lib/sendNav.js +1 -1
  32. package/build/lib/sendNav.js.map +1 -1
  33. package/build/lib/sendpic.js +6 -2
  34. package/build/lib/sendpic.js.map +2 -2
  35. package/build/lib/telegram.js +3 -1
  36. package/build/lib/telegram.js.map +2 -2
  37. package/build/main.js +31 -14
  38. package/build/main.js.map +2 -2
  39. package/io-package.json +28 -28
  40. package/package.json +1 -1
@@ -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('&amp;&amp;')) {\n text2Send += newText.replace('&amp;&amp;', 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(/&amp;/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('&amp;&amp;')) {\n searchString = '&amp;&amp;';\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('&amp;&amp;')) {\n text2Send += newText.replace('&amp;&amp;', 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(/&amp;/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('&amp;&amp;')) {\n searchString = '&amp;&amp;';\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
  }
@@ -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 splitted = echart.preset.split(".");
45
- const echartInstance = `${splitted[0]}.${splitted[1]}`;
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
- echartInstance,
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 },
@@ -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 splitted = echart.preset.split('.');\n const echartInstance = `${splitted[0]}.${splitted[1]}`;\n //TODO: Is filename ein string?\n _this.sendTo(\n echartInstance,\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 '',\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}\nexport { getChart };\n"],
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,WAAW,OAAO,OAAO,MAAM,GAAG;AACxC,YAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AAEpD,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;",
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
  }
@@ -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 (error) {
40
- console.error([{ text: "Error:", val: error }]);
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
@@ -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;AAEA,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,SAAS,OAAO;AACZ,YAAQ,MAAM,CAAC,EAAE,MAAM,UAAU,KAAK,MAAM,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;AACO,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;AACO,SAAS,SAAS,OAAiC;AACtD,SAAO,OAAO,UAAU;AAC5B;",
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
  }
@@ -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 user = part.user;
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
- user && password ? {
52
+ userName && password ? {
51
53
  method,
52
54
  url,
53
55
  responseType: "arraybuffer",
54
56
  auth: {
55
- username: user,
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
- user,
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 user = part.user;\n const password = part.password;\n const method = 'get';\n\n try {\n //prettier-ignore\n const response = await axios(\n\t\t\t\tuser && password\n\t\t\t\t\t? {\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\tresponseType: \"arraybuffer\",\n\t\t\t\t\t\tauth: {\n\t\t\t\t\t\t\tusername: user,\n\t\t\t\t\t\t\tpassword: password,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\t: {\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\tresponseType: \"arraybuffer\",\n\t\t\t\t\t},\n\t\t\t);\n if (!part.filename) {\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 user,\n imagePath,\n [],\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n '',\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}\nexport { httpRequest };\n"],
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,OAAO,KAAK;AAClB,UAAM,WAAW,KAAK;AACtB,UAAM,SAAS;AAEf,QAAI;AAEA,YAAM,WAAW,UAAM,aAAAA;AAAA,QAC/B,QAAQ,WACL;AAAA,UACD;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACL,UAAU;AAAA,YACV;AAAA,UACD;AAAA,QACD,IACE;AAAA,UACD;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QACf;AAAA,MACF;AACS,UAAI,CAAC,KAAK,UAAU;AAChB;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;",
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
  }
@@ -137,7 +137,7 @@ async function processData(obj) {
137
137
  resize_keyboard,
138
138
  one_time_keyboard,
139
139
  userListWithChatID,
140
- ""
140
+ "false"
141
141
  );
142
142
  }
143
143
  (0, import_dynamicValue.removeUserFromDynamicValue)(userToSend);
@@ -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
  }
@@ -39,7 +39,7 @@ async function sendNav(part, userToSend, instanceTelegram, userListWithChatID, r
39
39
  resize_keyboard,
40
40
  one_time_keyboard,
41
41
  userListWithChatID,
42
- part.parse_mode || ""
42
+ part.parse_mode || "false"
43
43
  );
44
44
  }
45
45
  } catch (e) {
@@ -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
  }
@@ -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 sended" }]);
91
+ (0, import_logging.debug)([{ text: "Picture sent" }]);
88
92
  }, parseInt(element.delay));
89
93
  if (timeout) {
90
94
  timeouts.push({ key: timeoutKey, timeout });
@@ -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, '&amp;', '&');\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 sended' }]);\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;AAGzB,SAAS,QACL,MACA,YACA,kBACA,iBACA,mBACA,oBACA,OACA,kBACA,UACA,YACU;AAlBd;AAmBI,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;AACd,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,iBAAiB,CAAC,CAAC;AAAA,MACtC,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;",
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, '&amp;', '&');\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
  }
@@ -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 (val === "true" || val === true) {
143
+ if ((0, import_global.isTruthy)(val)) {
142
144
  return "HTML";
143
145
  }
144
146
  return "Markdown";