Skip to content

Commit 74191d6

Browse files
authored
Merge pull request #6 from 240596448/develop
Добавлены копирование, удаление сообщений; установка команд
2 parents f141036 + 16119ea commit 74191d6

File tree

2 files changed

+110
-9
lines changed

2 files changed

+110
-9
lines changed

src/ТелеграмАПИ.os

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,25 +229,45 @@
229229

230230
КонецФункции
231231

232+
// Формирует данные для создания удаляемого сообщения
233+
// (Метод deleteMessage)
234+
//
235+
// Параметры:
236+
// ЧатИД - Число - id чата, где находится сообщение
237+
// СообщениеИД - Число - id удаляемого сообщения
238+
//
239+
// Возвращаемое значение:
240+
// Структура - для передачи в УдалитьСообщение() в классе ТелеграмБот
241+
//
242+
Функция УдаляемоеСообщение(ЧатИД, СообщениеИД) Экспорт
243+
244+
Структура = Новый Структура;
245+
Структура.Вставить("chat_id", ЧатИД);
246+
Структура.Вставить("message_id", СообщениеИД);
247+
248+
Возврат Структура;
249+
250+
КонецФункции
251+
232252
// Создает каркас для нового опроса (не добавляет варианты ответа!)
233253
// (Метод sendPoll)
234254
//
235255
// Параметры:
236256
// ПолучательИД - Число - chat_id получателя
237-
// ТекстВопроса - Строка - Текст вопроса, длинна 1-255 символов
238-
// Анонимныей - Булево - Если Ложь, то показывается какой вариант ответа выбрал участник опроса
257+
// ТекстВопроса - Строка - Текст вопроса, длина 1-255 символов
258+
// Анонимный - Булево - Если Ложь, то показывается какой вариант ответа выбрал участник опроса
239259
// ВозможенМножественныйОтвет - Булево - Если Истина, то участник может проголосовать за несколько вариантов
240260
// БезОповещения - Булево - Если Истина, то сообщение будет переслано без оповещения получателя
241261
//
242262
// Возвращаемое значение:
243263
// Структура - Структура, которую дополнительно нужно передать в функцию ДобавитьВариантОтветаНаОпрос()
244264
//
245-
Функция НовыйОпрос(ПолучательИД, ТекстВопроса, Анонимныей = Истина, ВозможенМножественныйОтвет = Ложь, БезОповещения = Ложь) Экспорт
265+
Функция НовыйОпрос(ПолучательИД, ТекстВопроса, Анонимный = Истина, ВозможенМножественныйОтвет = Ложь, БезОповещения = Ложь) Экспорт
246266

247267
Опрос = Новый Соответствие;
248268
Опрос.Вставить("chat_id", ПолучательИД);
249269
Опрос.Вставить("question", ТекстВопроса);
250-
Опрос.Вставить("is_anonymous", Анонимныей);
270+
Опрос.Вставить("is_anonymous", Анонимный);
251271
Опрос.Вставить("allows_multiple_answers", ВозможенМножественныйОтвет);
252272
Опрос.Вставить("disable_notification", БезОповещения);
253273
МассивВариантовОтвета = Новый Массив();
@@ -263,7 +283,7 @@
263283
//
264284
// Параметры:
265285
// Опрос - Структура - То, что вернулось от НовыйОпрос()
266-
// ВариантОтвета - Строка - Текст варианта ответа, длинна 1-100 символов
286+
// ВариантОтвета - Строка - Текст варианта ответа, длина 1-100 символов
267287
//
268288
// Возвращаемое значение:
269289
// Структура - Структура, готовая для передачи в ОтправитьОпрос() в классе ТелеграмБот
@@ -274,4 +294,24 @@
274294

275295
Возврат Опрос;
276296

297+
КонецФункции
298+
299+
// Команда бота (BotCommand), элемент массива устанавливаемых команд
300+
// (Метод setMyCommand)
301+
//
302+
// Параметры:
303+
// Имя - Строка - Имя команды, длина 1-32 символа
304+
// Описание - Строка - Описание команды, длина 3-256 символов
305+
//
306+
// Возвращаемое значение:
307+
// Структура - команда, добавляемая в массив команд
308+
//
309+
Функция КомандаБота(Имя, Описание) Экспорт
310+
311+
Структура = Новый Структура;
312+
Структура.Вставить("command", Имя);
313+
Структура.Вставить("description", Описание);
314+
315+
Возврат Структура;
316+
277317
КонецФункции

src/ТелеграмБот.os

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,16 @@
5555

5656
Функция ОтправитьДанные(Сообщение, Команда) Экспорт
5757

58-
Ресурс = "/bot" + ТокенАвторизации + "/" + Команда;
59-
Запрос = Новый HTTPЗапрос(Ресурс);
58+
Ресурс = "/bot{TOKEN}/" + Команда;
59+
Запрос = Новый HTTPЗапрос(ЗаменитьТокен(Ресурс));
6060
Запрос.Заголовки = ПолучитьЗаголовки();
6161

6262
ТекстТелаЗапроса = ПарсерJSON.ЗаписатьJSON(Сообщение);
6363
КодированнаяСтрока = РаскодироватьСтроку(ТекстТелаЗапроса, СпособКодированияСтроки.КодировкаURL);
6464
Запрос.УстановитьТелоИзСтроки(КодированнаяСтрока);
6565

66+
Лог.Отладка(КодированнаяСтрока);
67+
6668
Попытка
6769
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
6870
Исключение
@@ -109,13 +111,72 @@
109111

110112
КонецФункции
111113

114+
Функция СкопироватьСообщение(Сообщение) Экспорт
115+
116+
Команда = "copyMessage";
117+
Возврат ОтправитьДанные(Сообщение, Команда);
118+
119+
КонецФункции
120+
121+
Функция УдалитьСообщение(Сообщение) Экспорт
122+
123+
Команда = "deleteMessage";
124+
Возврат ОтправитьДанные(Сообщение, Команда);
125+
126+
КонецФункции
127+
112128
Функция ОтправитьОпрос(Сообщение) Экспорт
113129

114130
Команда = "sendPoll";
115131
Возврат ОтправитьДанные(Сообщение, Команда);
116132

117133
КонецФункции
118134

135+
Функция УстановитьКоманды(МассивКомандБота) Экспорт
136+
137+
Параметры = Новый Структура("commands", МассивКомандБота);
138+
139+
Команда = "setMyCommands";
140+
141+
Возврат ОтправитьДанные(Параметры, Команда);
142+
143+
КонецФункции
144+
145+
Функция ЗакрепитьСообщение(ЧатИД, СообщениеИД, ОтключитьОповещение=Ложь) Экспорт
146+
147+
Сообщение = Новый Структура();
148+
Сообщение.Вставить("chat_id", ЧатИД);
149+
Сообщение.Вставить("message_id", СообщениеИД);
150+
Сообщение.Вставить("disable_notification", ОтключитьОповещение);
151+
152+
Команда = "pinChatMessage";
153+
Возврат ОтправитьДанные(Сообщение, Команда);
154+
155+
КонецФункции
156+
157+
Функция ОткрепитьСообщение(ЧатИД, СообщениеИД=Неопределено) Экспорт
158+
159+
Сообщение = Новый Структура("chat_id", ЧатИД);
160+
Если СообщениеИД <> Неопределено Тогда
161+
Сообщение.Вставить("message_id", СообщениеИД);
162+
КонецЕсли;
163+
164+
Команда = "unpinChatMessage";
165+
166+
Возврат ОтправитьДанные(Сообщение, Команда);
167+
168+
КонецФункции
169+
170+
Функция ОткрепитьВсеСообщения(ЧатИД) Экспорт
171+
172+
Сообщение = Новый Структура("chat_id", ЧатИД);
173+
174+
Команда = "unpinAllChatMessages";
175+
176+
Возврат ОтправитьДанные(Сообщение, Команда);
177+
178+
КонецФункции
179+
119180
#КонецОбласти
120181

121182
#Область СлужебныеПроцедурыИФункции
@@ -157,8 +218,8 @@
157218
Функция СделатьХук(Суффикс)
158219

159220
Команда = "setWebhook";
160-
Ресурс = "/bot" + ТокенАвторизации + "/" + Команда + "?url=" + Суффикс;
161-
Запрос = Новый HTTPЗапрос(Ресурс);
221+
Ресурс = "/bot{TOKEN}/" + Команда + "?url=" + Суффикс;
222+
Запрос = Новый HTTPЗапрос(ЗаменитьТокен(Ресурс));
162223

163224
Попытка
164225
Ответ = Соединение.Получить(Запрос);

0 commit comments

Comments
 (0)