From 52ba56e8a0f78d238f25aaef4531196978e4332d Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 19 Jan 2024 23:06:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B5=D1=84=D1=84=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D1=8B=20SC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OPI/src/CommonModules/OPI_Telegram/Module.bsl | 76 +++++++++++-------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/OPI/src/CommonModules/OPI_Telegram/Module.bsl b/OPI/src/CommonModules/OPI_Telegram/Module.bsl index 8de591344..53d96a236 100644 --- a/OPI/src/CommonModules/OPI_Telegram/Module.bsl +++ b/OPI/src/CommonModules/OPI_Telegram/Module.bsl @@ -79,16 +79,23 @@ // // Возвращаемое значение: // Структура - Обработанный запрос на http-сервис от Telegram: -// * Вид - Строка -// * Никнейм - Строка -// * IDПользователя - Строка -// * IDСообщения - Строка -// * IDЧата - Строка -// * Сообщение - Строка -// * Дата - Дата -// * БотОтключен - Булево -// * Вид - Строка +// * Вид - Строка - Вид запроса от телеграм +// * Никнейм - Строка - Никнейм пользователя +// * IDПользователя - Строка - ID пользователя +// * IDСообщения - Строка - ID сообщения +// * IDЧата - Строка - ID чата +// * Сообщение - Строка - Текст сообщения +// * Дата - Дата - Дата запроса +// * БотОтключен - Булево - Истина, если запрос - запрос остановки бота Функция ОбработатьДанные(Знач Запрос) Экспорт +// BSLLS:DuplicateStringLiteral-off + + Message = "message"; + From = "from"; + Chat = "chat"; + Id_ = "id"; + Username = "username"; + MessageId = "message_id"; ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Запрос.ПолучитьТелоКакСтроку()); @@ -96,17 +103,17 @@ СтруктураПараметровВходная = ПрочитатьJSON(ЧтениеJSON); СтруктураПараметровВыходная = Новый Структура; - Если СтруктураПараметровВходная.Свойство("message") Тогда + Если СтруктураПараметровВходная.Свойство(Message) Тогда - СтруктураСообщения = СтруктураПараметровВходная["message"]; - СтруктураПользователя = СтруктураСообщения["from"]; - СтруктураЧата = СтруктураСообщения["chat"]; + СтруктураСообщения = СтруктураПараметровВходная[Message]; + СтруктураПользователя = СтруктураСообщения[From]; + СтруктураЧата = СтруктураСообщения[Chat]; СтруктураПараметровВыходная.Вставить("Вид" , "Сообщение"); - СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя["username"]); - СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя["id"]); - СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения["message_id"]); - СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата["id"]); + СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]); + СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]); + СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения[MessageId]); + СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата[Id_]); СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["text"]); СтруктураПараметровВыходная.Вставить("Дата" , Дата(1970,1,1,1,0,0) + СтруктураСообщения["date"]); СтруктураПараметровВыходная.Вставить("БотОтключен" , Ложь); @@ -114,14 +121,14 @@ ИначеЕсли СтруктураПараметровВходная.Свойство("my_chat_member") Тогда СтруктураСообщения = СтруктураПараметровВходная["my_chat_member"]; - СтруктураПользователя = СтруктураСообщения["from"]; - СтруктураЧата = СтруктураСообщения["chat"]; + СтруктураПользователя = СтруктураСообщения[From]; + СтруктураЧата = СтруктураСообщения[Chat]; СтруктураПараметровВыходная.Вставить("Вид" , "Запуск/Остановка"); - СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя["username"]); - СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя["id"]); + СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]); + СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]); СтруктураПараметровВыходная.Вставить("IDСообщения" , ""); - СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата["id"]); + СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата[Id_]); СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["new_chat_member"]["status"]); СтруктураПараметровВыходная.Вставить("Дата" , Дата(1970,1,1,1,0,0) + СтруктураСообщения["date"]); СтруктураПараметровВыходная.Вставить("БотОтключен" @@ -131,17 +138,17 @@ СтруктураСообщения = СтруктураПараметровВходная["callback_query"]; - СтруктураПользователя = СтруктураСообщения["from"]; + СтруктураПользователя = СтруктураСообщения[From]; СтруктураПараметровВыходная.Вставить("Вид" , "Кнопка под сообщением"); - СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя["username"]); - СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя["id"]); - СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения["message"]["message_id"]); - СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураСообщения["message"]["chat"]["id"]); + СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]); + СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]); + СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения[Message][MessageId]); + СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураСообщения[Message][Chat][Id_]); СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["data"]); СтруктураПараметровВыходная.Вставить("БотОтключен" , Ложь); СтруктураПараметровВыходная.Вставить("Дата" - , Дата(1970,1,1,1,0,0) + СтруктураСообщения["message"]["date"]); + , Дата(1970,1,1,1,0,0) + СтруктураСообщения[Message]["date"]); Иначе @@ -157,7 +164,8 @@ КонецЕсли; Возврат СтруктураПараметровВыходная; - + +// BSLLS:DuplicateStringLiteral-on КонецФункции #КонецОбласти @@ -282,9 +290,9 @@ // Токен - Строка - Токен // IDЧата - Строка,Число - ID целевого чата // Текст - Строка - Текст -// СоответствиеФайлов - Соответствие из Строка,ДвоичныеДанные: -// * Ключ - Строка -// * Значение - ДвоичныеДанные,Строка +// СоответствиеФайлов - Соответствие из Строка,ДвоичныеДанные - Коллекция файлов: +// * Ключ - ДвоичныеДанные,Строка - Файл +// * Значение - Строка - Тип файла: audio, document, photo, video // Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок // // Возвращаемое значение: @@ -717,7 +725,9 @@ // // Возвращаемое значение: // Строка - JSON клавиатуры -Функция СформироватьКлавиатуруПоМассивуКнопок(Знач МассивКнопок, Знач ПодСообщением = Ложь, Знач ОднаПодОдной = Истина) Экспорт +Функция СформироватьКлавиатуруПоМассивуКнопок(Знач МассивКнопок + , Знач ПодСообщением = Ложь + , Знач ОднаПодОдной = Истина) Экспорт Если ОднаПодОдной Тогда