Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

iobroker.telegram-menu

Package Overview
Dependencies
Maintainers
2
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iobroker.telegram-menu - npm Package Compare versions

Comparing version 0.6.4 to 0.6.5

admin/js/global.js

4

admin/js/component.js

@@ -9,5 +9,5 @@ /*global $*/

}
function userSelectionTelegram(user, menu) {
function userSelectionTelegram(user, menu, chatID) {
$(`#group_UserInput .${menu}`)
.append(/*html*/ `<div data-name="${user}"><p>${user}</p><label><input data-menu="${user}" type="checkbox" class="filled-in userSelection" /><span></span></label></div>
.append(/*html*/ `<div data-name="${user}" data-id="${chatID}"><p>${user}</p><label><input data-menu="${user}" type="checkbox" class="filled-in userSelection" /><span></span></label></div>
`);

@@ -14,0 +14,0 @@ }

@@ -1,2 +0,2 @@

/*global newUserBtn,getUsersFromTelegram ,navElement, userSelectionTelegram ,actionElement,createSelectTrigger,newTableRow_Action,newTableRow_Action,newTrInAction,userActivCheckbox,$, groupUserInput*/
/*global deleteDoubleEntrysInArray,sortArray,newUserBtn,getUsersFromTelegram ,navElement, userSelectionTelegram ,actionElement,createSelectTrigger,newTableRow_Action,newTableRow_Action,newTrInAction,userActivCheckbox,$, groupUserInput*/
/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "disableEnableInputField|isStringEmty|generate|create|set|fill|reset|add|show|ins|table|get|new|show|checkValueModal|disable|checkUpAndDownArrowBtn|"}]*/

@@ -37,3 +37,3 @@

*/
function removeUsedTrigger(triggers, activemenu) {
function splitUsedUnusedTrigger(triggers, activemenu) {
const usedTriggers = [];

@@ -68,5 +68,5 @@ const list = [

if (typeof value == "string") value = value.trim();
usedTriggers.push(value);
if (typeof value === "string" && triggers.includes(value)) {
triggers.splice(triggers.indexOf(value), 1);
usedTriggers.push(value);
}

@@ -83,2 +83,3 @@ });

});
if (!$(`#group_active_checkbox div.${activeMenu} input`).prop("checked") || checked) {

@@ -138,22 +139,3 @@ $("#userSelection").addClass("hide");

}
/**
*
* @param {string} classes Class to browse for empty String
* @returns boolean True Everything is ok
*/
// @ts-ignore
function isStringEmty(classes) {
let allOk = true;
// @ts-ignore
$(classes).each(function (key, element) {
if (element.value == "") {
$(element).parent().addClass("bg-error");
allOk = false;
} else {
$(element).parent().removeClass("bg-error");
}
});
return allOk;
}
// @ts-ignore
function checkUpAndDownArrowBtn(activeuser) {

@@ -230,12 +212,15 @@ const lengthOfNavList = $(`tbody#${activeuser}.visibilityArrowBtn tr`).length - 1;

const userListe = [];
const userListWithChatID = [];
for (const user in usersInTelegram) {
userListe.push(usersInTelegram[user]["firstName"]);
userListWithChatID.push({ name: usersInTelegram[user]["firstName"], chatID: user });
}
$(menus).each(function (key, menu) {
$(userListe).each(function (key, user) {
$(userListWithChatID).each(function (key, user) {
// @ts-ignore
userSelectionTelegram(user, menu);
userSelectionTelegram(user.name, menu, user.chatID);
});
checkCheckbox(menu, userListe, userinGroup);
});
return userListWithChatID;
}

@@ -347,8 +332,8 @@

*
* @param {Array} checkbox Entrys with Checkbox Values
* @param {Array} checkboxes Entrys with Checkbox Values
*/
// @ts-ignore
function setCheckbox(checkbox) {
Object.keys(checkbox).forEach((key) => {
if (checkbox[key]) {
function setCheckbox(checkboxes) {
Object.keys(checkboxes).forEach((key) => {
if (checkboxes[key]) {
$(`#${key}`).prop("checked", true);

@@ -383,9 +368,7 @@ } else $(`#${key}`).prop("checked", false);

//TODO - Submenu Trigger
//ANCHOR - Trigger erstellen
// @ts-ignore
function generateSelectTrigger(activeMenu, menus) {
const submenu = checkSubMenu(activeMenu);
let list = [];
let usedAndNotUsedTrigger = {};
if (submenu) {

@@ -406,6 +389,7 @@ const activeUserList = getAllCheckedUserInMenu(activeMenu);

list = list.concat(splitTextInArray(menu));
const usedAndNotUsedTrigger = splitUsedUnusedTrigger(list, menu);
list = usedAndNotUsedTrigger.triggers;
// @ts-ignore
list = deleteDoubleEntrysInArray(list);
list = deleteUnnessesaryElements(list);
const usedAndNotUsedTrigger = removeUsedTrigger(list, menu);
list = usedAndNotUsedTrigger.triggers;
usedAndNotUsedTrigger.usedTriggers.forEach(function (element) {

@@ -419,3 +403,2 @@ if (usedTriggers.includes(element)) {

if (!triggerInUse) {
console.log(usedTriggers);
if (usedTriggers.length != 0) usedTriggers.concat(usedAndNotUsedTrigger.usedTriggers);

@@ -430,9 +413,11 @@ else usedTriggers = usedAndNotUsedTrigger.usedTriggers;

});
} else list = splitTextInArray(activeMenu);
list = deleteDoubleEntrysInArray(list);
list = deleteUnnessesaryElements(list);
const usedAndNotUsedTrigger = removeUsedTrigger(list, activeMenu);
list = usedAndNotUsedTrigger.triggers;
} else {
list = splitTextInArray(activeMenu);
usedAndNotUsedTrigger = splitUsedUnusedTrigger(list, activeMenu);
list = usedAndNotUsedTrigger.triggers;
// @ts-ignore
list = deleteDoubleEntrysInArray(list);
list = deleteUnnessesaryElements(list);
}
// @ts-ignore
list = sortArray(list);

@@ -446,5 +431,2 @@ // HTML Elemente löschen und neu aufbauen

function deleteDoubleEntrysInArray(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
}
function deleteUnnessesaryElements(list) {

@@ -455,3 +437,2 @@ const newlist = [];

if (e.includes("menu:")) e = e.split(":")[2];
newlist.push(e);

@@ -462,21 +443,3 @@ }

}
/**
*
* @param {any[]} arr
* @returns Sorted Array
*/
function sortArray(arr) {
arr.sort((a, b) => {
// @ts-ignore
const lowerCaseA = a.toLowerCase();
// @ts-ignore
const lowerCaseB = b.toLowerCase();
if (lowerCaseA < lowerCaseB) return -1;
if (lowerCaseA > lowerCaseB) return 1;
return 0;
});
return arr;
}
// @ts-ignore

@@ -483,0 +446,0 @@ function fillTable(id, data, newTableRow_Nav, users) {

{
"common": {
"name": "telegram-menu",
"version": "0.6.4",
"news": {
"0.6.4": {
"en": "Trigger check, used triggers are no longer available in action, in nav it is visualized that the trigger is already in use",
"de": "Trigger-Check, verwendete Trigger sind nicht mehr in Aktion, in nav wird visualisiert, dass der Trigger bereits im Einsatz ist",
"ru": "Проверка Trigger, используемые триггеры больше не доступны в действии, в nav визуализируется, что триггер уже используется",
"pt": "Verificação de gatilho, gatilhos usados não estão mais disponíveis em ação, nav é visualizado que o gatilho já está em uso",
"nl": "Trigger controle, gebruikte triggers zijn niet meer beschikbaar in actie, in Nav is het gevisualiseerd dat de trekker al gebruikt is",
"fr": "Trigger check, triggers utilisés ne sont plus disponibles en action, dans nav il est visualisé que le trigger est déjà en service",
"it": "Controllo del trigger, i trigger utilizzati non sono più disponibili in azione, in nav è visualizzato che il trigger è già in uso",
"es": "Comprobación del desencadenante, los disparadores usados ya no están disponibles en acción, en nav se visualiza que el gatillo ya está en uso",
"pl": "Kontrola Triggera nie jest już dostępna w akcji, w nav jest wizualizowana, że wyzwalanie jest już w użyciu",
"uk": "Перевірка тригера, використовувані тригери більше не доступні в дії, в нав він візуалізований, що тригер вже в використанні",
"zh-cn": "突然的检查不再可供采取行动,在无知的情况下,触发者已经使用。"
},
"0.6.3": {
"en": "user check, least one user must be checked",
"de": "benutzerüberprüfung, mindestens ein benutzer muss überprüft werden",
"ru": "проверка пользователя, хотя бы один пользователь должен быть проверен",
"pt": "verificação do usuário, pelo menos um usuário deve ser verificado",
"nl": "eén gebruiker moet gecontroleerd worden",
"fr": "contrôle utilisateur, le moins d'un utilisateur doit être vérifié",
"it": "controllo utente, almeno un utente deve essere controllato",
"es": "control de usuario, al menos un usuario debe ser revisado",
"pl": "wskaźnik użytkownika musi być sprawdzany przynajmniej jeden użytkownik",
"uk": "перевірка користувачів, принаймні один користувач повинен перевіряти",
"zh-cn": "用户检查,至少必须检查一名用户。"
},
"0.6.2": {
"en": "Active Menu Output fixed\nchange instance, user will be load from new instance",
"de": "Aktive Menüausgabe fest\nänderungsinstanz, benutzer wird aus neuer instanz geladen",
"ru": "Активное меню Выход фиксированный\nизменить пример, пользователь будет загружаться из нового экземпляра",
"pt": "Saída do menu ativo fixo\ninstância de mudança, o usuário será carregado de nova instância",
"nl": "Active Menu Output gerepareerd\nverandering instance, gebruiker zal worden geladen van nieuwe instanties",
"fr": "Active Menu Sortie fixe\nchangement d'instance, l'utilisateur sera chargé de la nouvelle instance",
"it": "Uscita menu attivo fisso\ncambiamento istanza, l'utente verrà caricato da nuova istanza",
"es": "Juego de menú activo\ninstancia de cambio, el usuario será cargado desde nueva instancia",
"pl": "Aktywny Menu Output\nna przykład, użytkownik może być obciążony nowymi instancjami",
"uk": "Активне меню Вихід фіксований\nзміна екземпляра, користувач буде завантажуватися з нового екземпляра",
"zh-cn": "积极产出\n例如,用户将从新情况中负荷"
},
"0.6.1": {
"en": "bug fixed style",
"de": "fehler behoben stil",
"ru": "баг фиксированный стиль",
"pt": "bug estilo fixo",
"nl": "quality over quantity (qoq) releases vertaling:",
"fr": "bug fixed style",
"it": "bug stile fisso",
"es": "estilo fijo",
"pl": "styl gry",
"uk": "виправлений стиль помилок",
"zh-cn": "b 固定格式"
},
"0.6.0": {
"en": "checkbox for Telegram Users\nstyling\nsmall fixes\nAdd Row Button in Nav for every Row\nMore Groups with the same User\nTrigger generates without saving",
"de": "checkbox für Telegram-Benutzer\nstyling\nkleine fixierungen\nFügen Sie Row Button in Nav für jede Row\nWeitere Gruppen mit demselben Benutzer\nTrigger erzeugt ohne Speicher",
"ru": "checkbox для пользователей Telegram\nстайлинг\nнебольшие исправления\nДобавьте Row Button в Nav для каждого Row\nБольше групп с тем же пользователем\nTrigger генерирует без экономии",
"pt": "caixa de seleção para Usuários de Telegram\nestilo\npequenas correções\nAdicionar botão de linha em Nav para cada linha\nMais Grupos com o mesmo Usuário\nTrigger gera sem salvar",
"nl": "controlebox van Telegram Users\nstyling\nkleine fixes\nAdd Row Button voor elke Row\nMeer groepen met dezelfde User\nTrigger genereert zonder spaargeld",
"fr": "case à cocher pour les utilisateurs de télégramme\nstyling\npetites corrections\nAjouter Row Button en Nav pour chaque Row\nPlus de groupes avec le même Utilisateur\nTrigger génère sans sauver",
"it": "casella di controllo per utenti Telegram\nstile\npiccole correzioni\nAggiungi pulsante di riga in Nav per ogni riga\nAltri gruppi con lo stesso utente\nTrigger genera senza salvare",
"es": "checkbox for Telegram Users\nstyling\npequeños accesorios\nAñadir Row Button en Nav para cada fila\nMás Grupos con el mismo Usuario\nTrigger genera sin salvar",
"pl": "okładka\nstylistyka\ndrobne rozwiązanie\nAdd Row Button (ang.)\nWięcej grup z tymi samymi grupami User\nTrigger generuje bez oszczędzania",
"uk": "поштова скринька для користувачів Telegram\nстрахування\nмаленькі кріплення\nДодати кнопку Row в Nav для кожного рядка\nБільше груп з тим самим Користувачем\nТригер генерує без збереження",
"zh-cn": "电报用户检查箱\n处理\n小型配件\n增加纳维州的Row Button\n与同一用户的更多集团\n不节约的漏洞"
},
"0.5.1": {
"en": "sent to the wrong instance, fixed",
"de": "an die falsche instanz gesendet, fixiert",
"ru": "отправлено в неправильный экземпляр, исправлено",
"pt": "enviado para a instância errada, corrigido",
"nl": "verzonden naar de verkeerde instantie",
"fr": "envoyé à la mauvaise instance, fixe",
"it": "inviato all'istanza sbagliata, fisso",
"es": "enviado al caso equivocado, fijo",
"pl": "wysłany do niewłaściwej instancji, ustalony",
"uk": "відправлений на неправильний екземпляр, фіксований",
"zh-cn": "向错误案件发出的固定通知"
},
"0.5.0": {
"en": "trigger avoid duplicate entries and sort alphabetical\nadapter stops responding after some time, fixed #42\ngenerate Trigger in Action, fixed\nmath value for getstate\nsettings instance #41, menus, fixed\nno spellcheck for input fields\nmenu go back to last Sides",
"de": "trigger vermeiden doppelte einträge und sortieren alphabetisch\nadapter stoppt nach einiger zeit, fixiert #42\ntrigger in Aktion generieren, fixiert\nmath wert für getstate\neinstellungen instanz #41, menüs, fixiert\nkeine rechtschreibprüfung für eingabefelder\nmenü zurück zu den letzten Seiten",
"ru": "триггер избегает дублирования записей и сортировать алфавитный\nадаптер останавливается после некоторого времени, фиксированный #42\nгенерировать триггер в действии, фиксированный\nматематическое значение для getstate\nнастройки экземпляра #41, меню, фиксированные\nбез орфографии для входящих полей\nменю вернуться к последним Сторонам",
"pt": "gatilho evitar entradas duplicadas e classificar alfabético\nadaptador pára de responder após algum tempo, fixo #42\ngerar gatilho em Ação, fixo\nvalor de matemática para getstate\nsetting instance #41, menus, fixo\nsem verificação ortográfica para campos de entrada\nmenu voltar para os últimos lados",
"nl": "de trekker ontwijkt duplicaat en alfabetische\nadapter stopt met reageren na enige tijd, gerepareerd #42\ngenereerde Trigger in Actie, gerepareerd\nwiskunde waarde voor onroerend goed\nvertaling:\ngeen spellcheck voor input velden\nmenu gaat terug naar de laatste Sides",
"fr": "déclencheur éviter les doubles entrées et trier alphabétique\nadaptateur s'arrête après un certain temps, fixe #42\ngénérer Trigger en action, fixe\nmath value for getstate\nparamètres instance #41, menus, fixe\npas de sortcheck pour les champs d'entrée\nmenu retourner aux derniers côtés",
"it": "trigger evitare voci duplicate e ordinare alfabetico\nadattatore smette di rispondere dopo qualche tempo, fisso #42\ngenerare Trigger in Azione, fisso\nvalore matematico per getstate\nimpostazioni istanza #41, menu, fisso\nnessun spellcheck per i campi di input\nmenu torna all'ultimo lato",
"es": "gatillo evitar entradas duplicadas y ordenar entradas alfabéticas\nadaptador deja de responder después de algún tiempo, fijo #42\ngenerar Trigger en Acción, fijo\nvalor matemático para getstate\nconfiguración instancia #41, menús, fijo\nno hechizo para campos de entrada\nmenu go back to last Sides",
"pl": "wykorzystywanie wyjściowe unikanie duplikacji wpisów i alfabetyzacji\npo pewnym czasie przerwy reagują na stałe #42\ngeneruje Triggera w akcji\nwartość matrycowa\nna przykład #41, menus, ustawiony\nzaklęcie dla pól wejściowych\nmenu wraca do ostatniej strony",
"uk": "уникнути дублікатів записів і сортування алфавіту\nадаптер припиняє реагувати на деякий час, фіксований #42\nгенерувати Трігер в дії, фіксований\nматематичне значення для getstate\nзамість налаштувань #41, меню, фіксовані\nвідсутність орцепції для вхідних полів\nім'я користувача",
"zh-cn": "2. 避免重复物品和名称\n适应者在一段时间后停止作出反应,固定的编号为42\na. 行动的三倍,固定\n获取国产值\n例如第41号、男性、固定地点\n没有对投入领域进行明确的检查\n男子回到最后的Sides。"
}
},
"titleLang": {
"en": "Telegram Menu",
"de": "Telegramm-Menü",
"ru": "Меню телеграммы",
"pt": "Menu Telegram",
"nl": "Telegram-menu",
"fr": "Menu Télégramme",
"it": "Menù telegramma",
"es": "Menú de telegramas",
"pl": "menu telegramu",
"zh-cn": "电报菜单",
"uk": "Меню Telegram"
},
"desc": {
"en": "Easily create Telegram Menus",
"de": "Erstellen Sie ganz einfach Telegrammmenüs",
"ru": "Легко создавать меню Telegram",
"pt": "Crie facilmente menus de telegrama",
"nl": "Maak eenvoudig Telegram-menu's",
"fr": "Créez facilement des menus de télégramme",
"it": "Crea facilmente menu di Telegram",
"es": "Crea fácilmente menús de Telegram",
"pl": "Z łatwością twórz menu telegramu",
"zh-cn": "轻松创建电报菜单",
"uk": "Легко створюйте меню Telegram"
},
"authors": [
"MiRo1310 <michael.roling@gmx.de>"
],
"keywords": [
"telegram",
"menu"
],
"license": "MIT",
"platform": "Javascript/Node.js",
"main": "main.js",
"icon": "telegram-menu.png",
"enabled": true,
"messagebox": true,
"extIcon": "https://raw.githubusercontent.com/MiRo1310/ioBroker.telegram-menu/main/admin/telegram-menu.png",
"readme": "https://github.com/MiRo1310/ioBroker.telegram-menu/blob/main/README.md",
"loglevel": "info",
"mode": "daemon",
"type": "messaging",
"compact": true,
"connectionType": "local",
"dataSource": "poll",
"adminUI": {
"config": "materialize"
},
"dependencies": [
{
"js-controller": ">=3.3.22"
}
],
"globalDependencies": [
{
"admin": ">=5.0.0",
"telegram": ">=1.15.0"
}
]
},
"native": {
"nav": {},
"instance": "",
"data": {},
"checkbox": [],
"usersForGlobal": "",
"users": [],
"startsides": [],
"tokenGrafana": "",
"directory": "",
"userActiveCheckbox": [],
"usersInGroup": {},
"textNoEntry": ""
},
"objects": [],
"instanceObjects": [
{
"_id": "info",
"type": "channel",
"common": {
"name": "Information"
},
"native": {}
},
{
"_id": "info.connection",
"type": "state",
"common": {
"role": "indicator.connected",
"name": "Device or service connected",
"type": "boolean",
"read": true,
"write": false,
"def": false
},
"native": {}
}
]
"common": {
"name": "telegram-menu",
"version": "0.6.5",
"news": {
"0.6.5": {
"en": "get user by chatID and send back to this chatID",
"de": "benutzer per chatID ermitteln und zurück senden an diese chatID",
"ru": "получить пользователя по чатID и отправить обратно в этот чатID",
"pt": "obter usuário por chatID e enviar de volta para este chatID",
"nl": "haal gebruiker van chatID en stuur terug naar dit chatID",
"fr": "obtenir utilisateur par chatID et renvoyer à ce chatID",
"it": "ottenere l'utente da chatID e tornare a questo chatID",
"es": "obtener usuario por chatID y enviar de nuevo a este chatID",
"pl": "użytkowanie przez czat i wysyłane do tego czatID",
"uk": "отримати користувач по chatID і відправити назад в цей чатID",
"zh-cn": "被混乱者利用,然后再送给这一混乱的裁研所。"
},
"0.6.4": {
"en": "Trigger check, used triggers are no longer available in action, in nav it is visualized that the trigger is already in use",
"de": "Trigger-Check, verwendete Trigger sind nicht mehr in Aktion, in nav wird visualisiert, dass der Trigger bereits im Einsatz ist",
"ru": "Проверка Trigger, используемые триггеры больше не доступны в действии, в nav визуализируется, что триггер уже используется",
"pt": "Verificação de gatilho, gatilhos usados não estão mais disponíveis em ação, nav é visualizado que o gatilho já está em uso",
"nl": "Trigger controle, gebruikte triggers zijn niet meer beschikbaar in actie, in Nav is het gevisualiseerd dat de trekker al gebruikt is",
"fr": "Trigger check, triggers utilisés ne sont plus disponibles en action, dans nav il est visualisé que le trigger est déjà en service",
"it": "Controllo del trigger, i trigger utilizzati non sono più disponibili in azione, in nav è visualizzato che il trigger è già in uso",
"es": "Comprobación del desencadenante, los disparadores usados ya no están disponibles en acción, en nav se visualiza que el gatillo ya está en uso",
"pl": "Kontrola Triggera nie jest już dostępna w akcji, w nav jest wizualizowana, że wyzwalanie jest już w użyciu",
"uk": "Перевірка тригера, використовувані тригери більше не доступні в дії, в нав він візуалізований, що тригер вже в використанні",
"zh-cn": "突然的检查不再可供采取行动,在无知的情况下,触发者已经使用。"
},
"0.6.3": {
"en": "user check, least one user must be checked",
"de": "benutzerüberprüfung, mindestens ein benutzer muss überprüft werden",
"ru": "проверка пользователя, хотя бы один пользователь должен быть проверен",
"pt": "verificação do usuário, pelo menos um usuário deve ser verificado",
"nl": "eén gebruiker moet gecontroleerd worden",
"fr": "contrôle utilisateur, le moins d'un utilisateur doit être vérifié",
"it": "controllo utente, almeno un utente deve essere controllato",
"es": "control de usuario, al menos un usuario debe ser revisado",
"pl": "wskaźnik użytkownika musi być sprawdzany przynajmniej jeden użytkownik",
"uk": "перевірка користувачів, принаймні один користувач повинен перевіряти",
"zh-cn": "用户检查,至少必须检查一名用户。"
},
"0.6.2": {
"en": "Active Menu Output fixed\nchange instance, user will be load from new instance",
"de": "Aktive Menüausgabe fest\nänderungsinstanz, benutzer wird aus neuer instanz geladen",
"ru": "Активное меню Выход фиксированный\nизменить пример, пользователь будет загружаться из нового экземпляра",
"pt": "Saída do menu ativo fixo\ninstância de mudança, o usuário será carregado de nova instância",
"nl": "Active Menu Output gerepareerd\nverandering instance, gebruiker zal worden geladen van nieuwe instanties",
"fr": "Active Menu Sortie fixe\nchangement d'instance, l'utilisateur sera chargé de la nouvelle instance",
"it": "Uscita menu attivo fisso\ncambiamento istanza, l'utente verrà caricato da nuova istanza",
"es": "Juego de menú activo\ninstancia de cambio, el usuario será cargado desde nueva instancia",
"pl": "Aktywny Menu Output\nna przykład, użytkownik może być obciążony nowymi instancjami",
"uk": "Активне меню Вихід фіксований\nзміна екземпляра, користувач буде завантажуватися з нового екземпляра",
"zh-cn": "积极产出\n例如,用户将从新情况中负荷"
},
"0.6.1": {
"en": "bug fixed style",
"de": "fehler behoben stil",
"ru": "баг фиксированный стиль",
"pt": "bug estilo fixo",
"nl": "quality over quantity (qoq) releases vertaling:",
"fr": "bug fixed style",
"it": "bug stile fisso",
"es": "estilo fijo",
"pl": "styl gry",
"uk": "виправлений стиль помилок",
"zh-cn": "b 固定格式"
},
"0.6.0": {
"en": "checkbox for Telegram Users\nstyling\nsmall fixes\nAdd Row Button in Nav for every Row\nMore Groups with the same User\nTrigger generates without saving",
"de": "checkbox für Telegram-Benutzer\nstyling\nkleine fixierungen\nFügen Sie Row Button in Nav für jede Row\nWeitere Gruppen mit demselben Benutzer\nTrigger erzeugt ohne Speicher",
"ru": "checkbox для пользователей Telegram\nстайлинг\nнебольшие исправления\nДобавьте Row Button в Nav для каждого Row\nБольше групп с тем же пользователем\nTrigger генерирует без экономии",
"pt": "caixa de seleção para Usuários de Telegram\nestilo\npequenas correções\nAdicionar botão de linha em Nav para cada linha\nMais Grupos com o mesmo Usuário\nTrigger gera sem salvar",
"nl": "controlebox van Telegram Users\nstyling\nkleine fixes\nAdd Row Button voor elke Row\nMeer groepen met dezelfde User\nTrigger genereert zonder spaargeld",
"fr": "case à cocher pour les utilisateurs de télégramme\nstyling\npetites corrections\nAjouter Row Button en Nav pour chaque Row\nPlus de groupes avec le même Utilisateur\nTrigger génère sans sauver",
"it": "casella di controllo per utenti Telegram\nstile\npiccole correzioni\nAggiungi pulsante di riga in Nav per ogni riga\nAltri gruppi con lo stesso utente\nTrigger genera senza salvare",
"es": "checkbox for Telegram Users\nstyling\npequeños accesorios\nAñadir Row Button en Nav para cada fila\nMás Grupos con el mismo Usuario\nTrigger genera sin salvar",
"pl": "okładka\nstylistyka\ndrobne rozwiązanie\nAdd Row Button (ang.)\nWięcej grup z tymi samymi grupami User\nTrigger generuje bez oszczędzania",
"uk": "поштова скринька для користувачів Telegram\nстрахування\nмаленькі кріплення\nДодати кнопку Row в Nav для кожного рядка\nБільше груп з тим самим Користувачем\nТригер генерує без збереження",
"zh-cn": "电报用户检查箱\n处理\n小型配件\n增加纳维州的Row Button\n与同一用户的更多集团\n不节约的漏洞"
},
"0.5.1": {
"en": "sent to the wrong instance, fixed",
"de": "an die falsche instanz gesendet, fixiert",
"ru": "отправлено в неправильный экземпляр, исправлено",
"pt": "enviado para a instância errada, corrigido",
"nl": "verzonden naar de verkeerde instantie",
"fr": "envoyé à la mauvaise instance, fixe",
"it": "inviato all'istanza sbagliata, fisso",
"es": "enviado al caso equivocado, fijo",
"pl": "wysłany do niewłaściwej instancji, ustalony",
"uk": "відправлений на неправильний екземпляр, фіксований",
"zh-cn": "向错误案件发出的固定通知"
}
},
"titleLang": {
"en": "Telegram Menu",
"de": "Telegramm-Menü",
"ru": "Меню телеграммы",
"pt": "Menu Telegram",
"nl": "Telegram-menu",
"fr": "Menu Télégramme",
"it": "Menù telegramma",
"es": "Menú de telegramas",
"pl": "menu telegramu",
"zh-cn": "电报菜单",
"uk": "Меню Telegram"
},
"desc": {
"en": "Easily create Telegram Menus",
"de": "Erstellen Sie ganz einfach Telegrammmenüs",
"ru": "Легко создавать меню Telegram",
"pt": "Crie facilmente menus de telegrama",
"nl": "Maak eenvoudig Telegram-menu's",
"fr": "Créez facilement des menus de télégramme",
"it": "Crea facilmente menu di Telegram",
"es": "Crea fácilmente menús de Telegram",
"pl": "Z łatwością twórz menu telegramu",
"zh-cn": "轻松创建电报菜单",
"uk": "Легко створюйте меню Telegram"
},
"authors": ["MiRo1310 <michael.roling@gmx.de>"],
"keywords": ["telegram", "menu"],
"license": "MIT",
"platform": "Javascript/Node.js",
"main": "main.js",
"icon": "telegram-menu.png",
"enabled": true,
"messagebox": true,
"extIcon": "https://raw.githubusercontent.com/MiRo1310/ioBroker.telegram-menu/main/admin/telegram-menu.png",
"readme": "https://github.com/MiRo1310/ioBroker.telegram-menu/blob/main/README.md",
"loglevel": "info",
"mode": "daemon",
"type": "messaging",
"compact": true,
"connectionType": "local",
"dataSource": "poll",
"adminUI": {
"config": "materialize"
},
"dependencies": [
{
"js-controller": ">=3.3.22"
}
],
"globalDependencies": [
{
"admin": ">=5.0.0",
"telegram": ">=1.15.0"
}
]
},
"native": {
"nav": {},
"instance": "",
"data": {},
"checkbox": [],
"usersForGlobal": "",
"users": [],
"startsides": [],
"tokenGrafana": "",
"directory": "",
"userActiveCheckbox": [],
"usersInGroup": {},
"textNoEntry": "",
"userListWithChatID": []
},
"objects": [],
"instanceObjects": [
{
"_id": "info",
"type": "channel",
"common": {
"name": "Information"
},
"native": {}
},
{
"_id": "info.connection",
"type": "state",
"common": {
"role": "indicator.connected",
"name": "Device or service connected",
"type": "boolean",
"read": true,
"write": false,
"def": false
},
"native": {}
}
]
}

@@ -86,3 +86,13 @@ const sendToTelegram = require("./telegram").sendToTelegram;

*/
const idBySelector = async (_this, selector, text, userToSend, newline) => {
const idBySelector = async (
_this,
selector,
text,
userToSend,
newline,
telegramInstance,
one_time_keyboard,
resize_keyboard,
userListWithChatID,
) => {
let text2Send = "";

@@ -127,3 +137,12 @@ try {

sendToTelegram(_this, userToSend, text2Send);
sendToTelegram(
_this,
userToSend,
text,
undefined,
telegramInstance,
one_time_keyboard,
resize_keyboard,
userListWithChatID,
);
})

@@ -156,3 +175,2 @@ .catch((e) => {

};
_this.log.debug("elementVal " + JSON.stringify(element.value));
});

@@ -159,0 +177,0 @@ return obj;

@@ -6,3 +6,3 @@ const sendToTelegram = require("./telegram").sendToTelegram;

function getstate(_this, part, userToSend, telegramInstance) {
function getstate(_this, part, userToSend, telegramInstance, one_time_keyboard, resize_keyboard, userListWithChatID) {
try {

@@ -17,3 +17,13 @@ let text = "";

// const selector = id.replace(/\"/g, "");
idBySelector(_this, id, element.text, userToSend, element.newline);
idBySelector(
_this,
id,
element.text,
userToSend,
element.newline,
telegramInstance,
one_time_keyboard,
resize_keyboard,
userListWithChatID,
);
} else {

@@ -55,3 +65,13 @@ _this.getForeignStateAsync(element.id).then((value) => {

_this.log.debug("User to send: " + JSON.stringify(userToSend));
if (userToSend) sendToTelegram(_this, userToSend, text, undefined, telegramInstance);
if (userToSend)
sendToTelegram(
_this,
userToSend,
text,
undefined,
telegramInstance,
one_time_keyboard,
resize_keyboard,
userListWithChatID,
);
}

@@ -58,0 +78,0 @@ i++;

@@ -15,3 +15,12 @@ const setstate = require("./setstate").setstate;

*/
function subMenu(_this, text, groupData, userToSend, instanceTelegram, resize_keyboard, one_time_keyboard) {
function subMenu(
_this,
text,
groupData,
userToSend,
instanceTelegram,
resize_keyboard,
one_time_keyboard,
userListWithChatID,
) {
const splittetText = JSON.stringify(text).split(`"`)[1].split(":");

@@ -157,2 +166,3 @@ const callbackData = splittetText[1];

one_time_keyboard,
userListWithChatID,
);

@@ -159,0 +169,0 @@ }

@@ -19,2 +19,3 @@ /**

one_time_keyboard = true,
userListWithChatID,
) {

@@ -24,2 +25,6 @@ _this.log.debug("Send this Value : " + JSON.stringify(value));

_this.log.debug("Instance : " + JSON.stringify(instance));
let chatId = "";
userListWithChatID.forEach((element) => {
if (element.name === user) chatId = element.chatID;
});
if (keyboard.length == 0) {

@@ -31,3 +36,3 @@ _this.sendTo(

text: value,
user: user,
chatId: chatId,
},

@@ -43,3 +48,3 @@ function (res) {

{
user: user,
chatId: chatId,
text: value,

@@ -58,6 +63,10 @@ reply_markup: {

}
function sendToTelegramSubmenu(_this, name, text, keyboard, instance = "telegram.0") {
function sendToTelegramSubmenu(_this, user, text, keyboard, instance = "telegram.0", userListWithChatID) {
let chatId = "";
userListWithChatID.forEach((element) => {
if (element.name === user) chatId = element.chatID;
});
_this.sendTo(instance, "send", {
// chatId: chatId,
name: name,
chatId: chatId,
// name: user,
text: text,

@@ -64,0 +73,0 @@ reply_markup: keyboard,

@@ -71,2 +71,3 @@ "use strict";

const textNoEntryFound = this.config.textNoEntry;
const userListWithChatID = this.config.userListWithChatID;
const menu = {

@@ -130,2 +131,3 @@ data: {},

backMenuFuc(this, startside, null, user);
this.log.debug("User List " + JSON.stringify(userListWithChatID));
sendToTelegram(

@@ -139,2 +141,3 @@ _this,

one_time_keyboard,
userListWithChatID,
);

@@ -154,3 +157,15 @@ });

const value = state.val;
const user = value.slice(1, value.indexOf("]"));
const chatID = await this.getForeignStateAsync(
`${instanceTelegram}.communicate.requestChatId`,
);
let user;
if (chatID) {
this.log.debug("ChatID: " + JSON.stringify(chatID.val));
userListWithChatID.forEach((element) => {
this.log.debug("element " + JSON.stringify(element));
if (element.chatID == chatID.val) user = element.name;
this.log.debug("user " + JSON.stringify(user));
});
}
const calledValue = value.slice(value.indexOf("]") + 1, value.length);

@@ -187,3 +202,12 @@ this.log.debug(

if (!dataFound && checkboxNoEntryFound) {
sendToTelegram(this, userToSend, textNoEntryFound, undefined, instanceTelegram);
sendToTelegram(
this,
userToSend,
textNoEntryFound,
undefined,
instanceTelegram,
resize_keyboard,
one_time_keyboard,
userListWithChatID,
);
}

@@ -234,2 +258,5 @@

instanceTelegram,
resize_keyboard,
one_time_keyboard,
userListWithChatID,
);

@@ -279,2 +306,3 @@ // Die Elemente auf die Reagiert wurde entfernen

one_time_keyboard,
userListWithChatID,
);

@@ -290,3 +318,11 @@ return true;

} else if (part.getData) {
getstate(_this, part, userToSend, instanceTelegram);
getstate(
_this,
part,
userToSend,
instanceTelegram,
one_time_keyboard,
resize_keyboard,
userListWithChatID,
);
return true;

@@ -326,3 +362,12 @@ } else if (part.sendPic) {

_this.log.debug("Send Pic to Telegram");
sendToTelegram(_this, userToSend, path, undefined, instanceTelegram);
sendToTelegram(
_this,
userToSend,
path,
undefined,
instanceTelegram,
resize_keyboard,
one_time_keyboard,
userListWithChatID,
);

@@ -364,2 +409,3 @@ let timeoutToClear = {};

one_time_keyboard,
userListWithChatID,
);

@@ -366,0 +412,0 @@ if (subMenuData && subMenuData[3]) setStateIdsToListenTo = subMenuData[3];

{
"name": "iobroker.telegram-menu",
"version": "0.6.4",
"version": "0.6.5",
"description": "Easily create Telegram Menus",

@@ -27,3 +27,3 @@ "author": {

"devDependencies": {
"@alcalzone/release-script": "^3.5.9",
"@alcalzone/release-script": "^3.6.0",
"@alcalzone/release-script-plugin-iobroker": "^3.6.0",

@@ -45,11 +45,11 @@ "@alcalzone/release-script-plugin-license": "^3.5.9",

"chai-as-promised": "^7.1.1",
"eslint": "^8.44.0",
"eslint": "^8.48.0",
"eslint-config-prettier": "^8.9.0",
"eslint-plugin-prettier": "^4.2.1",
"mocha": "^10.2.0",
"prettier": "^3.0.0",
"prettier": "^3.0.3",
"proxyquire": "^2.1.3",
"sinon": "^15.2.0",
"sinon-chai": "^3.7.0",
"typescript": "~5.1.6"
"typescript": "~5.2.2"
},

@@ -56,0 +56,0 @@ "main": "main.js",

@@ -36,2 +36,7 @@ ![Logo](admin/telegram-menu.png)

-->
### 0.6.5 (2023-09-01)
- get user by chatID and send back to this chatID
### 0.6.4 (2023-08-20)

@@ -38,0 +43,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc