Skip to content

Commit e762fc3

Browse files
committed
Merge branch 'release/v0.2.0'
2 parents 9ab8181 + db3fe57 commit e762fc3

File tree

6 files changed

+338
-78
lines changed

6 files changed

+338
-78
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.vscode/
2-
*.ospx
2+
*.ospx
3+
oscript_modules/

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Описание.Имя("slack")
2-
.Версия("0.1.0")
2+
.Версия("0.2.0")
33
.ВключитьФайл("src")
44
.ЗависитОт("json", "1.1.1")
Lines changed: 195 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,228 @@
1-
Перем fallback;
2-
Перем text;
3-
Перем pretext;
4-
Перем color;
5-
Перем fields;
1+
Перем fallback Экспорт;
2+
Перем color Экспорт;
3+
Перем pretext Экспорт;
64

7-
Процедура ПриСозданииОбъекта(Знач КраткийТекст = "", Знач Текст = "", Знач Заголовок = "", Знач Цвет = "")
8-
9-
fallback = КраткийТекст;
10-
text = Текст;
11-
pretext = Заголовок;
12-
color = Цвет;
13-
fields = Новый Массив;
14-
15-
КонецПроцедуры
5+
Перем author_name Экспорт;
6+
Перем author_link Экспорт;
7+
Перем author_icon Экспорт;
168

17-
Функция НовоеПоле(Знач title, Знач value, Знач short)
9+
Перем title Экспорт;
10+
Перем title_link Экспорт;
1811

19-
Структура = Новый Структура;
20-
Структура.Вставить("title", title);
21-
Структура.Вставить("value", value);
22-
Структура.Вставить("short", short);
23-
Возврат Структура;
24-
25-
КонецФункции
12+
Перем text Экспорт;
13+
14+
Перем fields Экспорт;
15+
16+
Перем image_url Экспорт;
17+
Перем thumb_url Экспорт;
18+
19+
Перем footer Экспорт;
20+
Перем footer_icon Экспорт;
21+
22+
Перем ts Экспорт;
2623

2724
#Область ПрограммныйИнтерфейс
2825

29-
Функция ДобавитьПоле(Знач Заголовок, Знач Значение = "", Знач Кратко = Ложь) Экспорт
26+
// Добавляет новое поле к вложению
27+
//
28+
// Параметры:
29+
// Заголовок - Строка - заголовок поля (title)
30+
// Значение - Строка(800) - значение поля (value)
31+
// Короткое - Булево - флаг, указывающий, что значение поля достаточно короткое для вывода в одну строку (short)
32+
//
33+
Функция ДобавитьПоле(Знач Заголовок, Знач Значение = "", Знач Короткое = Ложь) Экспорт
3034

31-
fields.Добавить(НовоеПоле(Заголовок, Значение, Кратко));
35+
fields.Добавить(НовоеПоле(Заголовок, Значение, Короткое));
3236

3337
Возврат ЭтотОбъект;
3438

3539
КонецФункции
3640

41+
// Устанавливает fallback-текст вложения
42+
//
43+
// Параметры:
44+
// Значение - Строка - fallback-текст, не может содержать форматирование
45+
//
3746
Функция КраткийТекст(Знач Значение) Экспорт
3847
fallback = Значение;
3948
Возврат ЭтотОбъект;
4049
КонецФункции
4150

51+
// Устанавливает цвет боковой полоски вложения
52+
//
53+
// Параметры:
54+
// Значение - Строка - имя (good, warning, danger) или hex (#FF38FF) цвета
55+
//
56+
Функция Цвет(Знач Значение) Экспорт
57+
color = Значение;
58+
Возврат ЭтотОбъект;
59+
КонецФункции
60+
61+
// Устанавливает pretext вложения - то, что будет отображено над блоком вложения
62+
//
63+
// Параметры:
64+
// Значение - Строка - претекст
65+
//
66+
Функция Претекст(Знач Значение) Экспорт
67+
pretext = Значение;
68+
Возврат ЭтотОбъект;
69+
КонецФункции
70+
71+
// Устанавливает author_name
72+
//
73+
// Параметры:
74+
// Значение - Строка - имя автора
75+
//
76+
Функция ИмяАвтора(Знач Значение) Экспорт
77+
author_name = Значение;
78+
Возврат ЭтотОбъект;
79+
КонецФункции
80+
81+
// Устанавливает author_link - учитывается только при установленном имени автора
82+
//
83+
// Параметры:
84+
// Значение - Строка - URL-указатель на автора
85+
//
86+
Функция СсылкаАвтора(Знач Значение) Экспорт
87+
author_link = Значение;
88+
Возврат ЭтотОбъект;
89+
КонецФункции
90+
91+
// Устанавливает author_icon - ссылку на маленькую (16x16px) иконку автора
92+
//
93+
// Параметры:
94+
// Значение - Строка - URL-указатель на картинку
95+
//
96+
Функция ИконкаАвтора(Знач Значение) Экспорт
97+
author_icon = Значение;
98+
Возврат ЭтотОбъект;
99+
КонецФункции
100+
101+
// Устанавливает заголовок вложения - будет отображен увеличенным жирным шрифтом наверху вложения
102+
//
103+
// Параметры:
104+
// Значение - Строка - URL-указатель на картинку
105+
//
106+
Функция Заголовок(Знач Значение) Экспорт
107+
title = Значение;
108+
Возврат ЭтотОбъект;
109+
КонецФункции
110+
111+
// Устанавливает ссылку заголовка вложения - сделает заголовок гиперссылкой.
112+
// Работает только если заголовок установлен.
113+
//
114+
// Параметры:
115+
// Значение - Строка - URL-указатель
116+
//
117+
Функция СсылкаЗаголовка(Знач Значение) Экспорт
118+
title_link = Значение;
119+
Возврат ЭтотОбъект;
120+
КонецФункции
121+
122+
// Устанавливает основной текст вложения. Ссылки внутри этого текста не будут разворачиваться.
123+
// Если в тексте 700+ знаков или 5+ переводов строки, текст будет показан свёрнутым.
124+
//
125+
// Параметры:
126+
// Значение - Строка - текст вложения
127+
//
42128
Функция Текст(Знач Значение) Экспорт
43129
text = Значение;
44130
Возврат ЭтотОбъект;
45131
КонецФункции
46132

47-
Функция Заголовок(Знач Значение) Экспорт
48-
pretext = Значение;
133+
// Устанавливает ссылку картинки вложения.
134+
// Поддерживаются форматы GIF, JPEG, PNG или BMP.
135+
//
136+
// Параметры:
137+
// Значение - Строка - URL-указатель на картинку
138+
//
139+
Функция СсылкаКартинки(Знач Значение) Экспорт
140+
image_url = Значение;
49141
Возврат ЭтотОбъект;
50142
КонецФункции
51143

52-
Функция Цвет(Знач Значение) Экспорт
53-
color = Значение;
144+
// Устанавливает ссылку картинки-превью, которая будет отображена справа от текста вложения
145+
// Поддерживаются форматы GIF, JPEG, PNG или BMP.
146+
// Максимальный размер - 75x75px
147+
//
148+
// Параметры:
149+
// Значение - Строка - URL-указатель на картинку
150+
//
151+
Функция СсылкаПревью(Знач Значение) Экспорт
152+
thumb_url = Значение;
153+
Возврат ЭтотОбъект;
154+
КонецФункции
155+
156+
// Устанавливает текст подвала вложения
157+
//
158+
// Параметры:
159+
// Значение - Строка - текст подвала
160+
//
161+
Функция Подвал(Знач Значение) Экспорт
162+
footer = Значение;
163+
Возврат ЭтотОбъект;
164+
КонецФункции
165+
166+
// Устанавливает URL иконки подвала (16x16px)
167+
//
168+
// Параметры:
169+
// Значение - Строка - URL-указатель на картинку
170+
//
171+
Функция ИконкаПодвала(Знач Значение) Экспорт
172+
footer_icon = Значение;
173+
Возврат ЭтотОбъект;
174+
КонецФункции
175+
176+
// Устанавливает временную метку события.
177+
// Если передать Число - оно считается датой от начала эпохи unix в секундах
178+
// Если передать Дата - она считается универсальной датой UTC
179+
//
180+
// Параметры:
181+
// Значение - Число, Дата - УниверсальнаяДата (время UTC) либо Число - unix epoch time
182+
//
183+
Функция ВремяСобытия(Знач Значение) Экспорт
184+
ТипЗначения = ТипЗнч(Значение);
185+
Если ТипЗначения = Тип("Число") Тогда
186+
ts = Значение;
187+
ИначеЕсли ТипЗначения = Тип("Дата") Тогда
188+
ts = Значение - Дата(1970, 1, 1); // начало эпохи unix
189+
Иначе
190+
ВызватьИсключение "Неверный тип данных: " + Строка(ТипЗначения);
191+
КонецЕсли;
54192
Возврат ЭтотОбъект;
55193
КонецФункции
56194

57-
Функция ВСтруктуру() Экспорт
195+
#КонецОбласти
58196

59-
СтруктураВложения = Новый Структура;
60-
СтруктураВложения.Вставить("fallback", fallback);
61-
СтруктураВложения.Вставить("text", text);
62-
СтруктураВложения.Вставить("pretext", pretext);
63-
СтруктураВложения.Вставить("color", color);
64-
СтруктураВложения.Вставить("fields", fields);
197+
#Область СлужебныйПрограммныйИнтерфейс
198+
199+
Функция ОбъектныеСвойства() Экспорт
200+
Свойства = Новый Массив;
201+
Возврат Свойства;
202+
КонецФункции
203+
204+
#КонецОбласти
205+
206+
#Область СлужебныеПроцедурыИФункции
207+
208+
Функция НовоеПоле(Знач title, Знач value, Знач short)
209+
210+
Структура = Новый Структура;
211+
Структура.Вставить("title", title);
212+
Структура.Вставить("value", value);
213+
Структура.Вставить("short", short);
214+
Возврат Структура;
65215

66-
Возврат СтруктураВложения;
67216
КонецФункции
68217

218+
Процедура ПриСозданииОбъекта(Знач КраткийТекст = "", Знач Текст = "", Знач Претекст = "", Знач Цвет = "")
219+
220+
fallback = КраткийТекст;
221+
text = Текст;
222+
pretext = Претекст;
223+
color = Цвет;
224+
fields = Новый Массив;
225+
226+
КонецПроцедуры
227+
69228
#КонецОбласти

src/Классы/ОтправительSlack.os

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
#Использовать json
2+
13
Перем WebhookURL;
24

35
// Конструктор объекта ОтправительSlack.
46
//
5-
Процедура ПриСозданииОбъекта(АдресВебХука)
7+
Процедура ПриСозданииОбъекта(АдресВебХука = "")
68
WebhookURL = АдресВебХука;
79
КонецПроцедуры
810

@@ -12,9 +14,11 @@
1214
Возврат ЭтотОбъект;
1315
КонецФункции
1416

15-
Процедура Отправить(Сообщение) Экспорт
17+
Функция Отправить(Сообщение) Экспорт
1618

17-
JSON = Сообщение.КонвертироватьВJSON();
19+
СтруктураСообщения = ОбщиеМетоды.ОбъектВСтруктуру(Сообщение);
20+
Парсер = Новый ПарсерJSON;
21+
JSON = Парсер.ЗаписатьJSON(СтруктураСообщения);
1822

1923
Соединение = Новый HTTPСоединение(WebhookURL, , , , Новый ИнтернетПрокси(Истина));
2024

@@ -29,6 +33,8 @@
2933
ВызватьИсключение СтрокаОшибки;
3034
КонецЕсли;
3135

32-
КонецПроцедуры
36+
Возврат ЭтотОбъект;
37+
38+
КонецФункции
3339

3440
#КонецОбласти

0 commit comments

Comments
 (0)